一、是非题:判断并给出解释。(5*4)
1.1 分布式操作系统和网络操作系统没有本质区别。
1.2 使用快表技术事实上将增加一次快表访问时间,所以在内存管理中应该慎用该技术。
1.3 死锁在操作系统的设计和实现中绝对不允许出现。
1.4 原语操作是不可被中断的。
二、简述题(5*4)
2.1 进程和线程的不同
2.2 操作系统本质上也需要时空开销,怎样解释这些开销是值得的。
2.3 简述存储器管理的基本目的和基本问题。
2.4 简述设备分配的基本类型和基本策略
三、叙述中断机制在操作系统中的地位和作用(10)
四、试给出一种实现虚存的解决方案(10)
五、举出设备管理子系统中利用中断,轮询和DMA的例子(12)
六、以下是Linux文件系统的四个相关的结构定义中的一部分:
6.1 请描述这些结构的作用和相互关系;(8)
6.2 根据这些结构,请描述文件的物理结构;(8)
6.3 基于这些结构,请设计至少四条有关文件系统功能调用的实现;(12)
struct inode{
struct list_head i_hash;
struct list_head i_denty;
unsigned long i_ino;
unsigned int i_count;
kdev_t i_dev;
umode_t i_mode;
off_t i_size;
time_t i_atime;
time_t i_mtime;
time_t i_ctime;
unsigned long i_blksize;
unsigned long i_blocks;
union{
struct ext2_inode_info ext2_i;
}u;
};
struct ext2_inode_info{
_u32 i_data[15];
_u32 i_flags;
};
struct denty{
int d_count;
struct inode *d_inode;/*Where the name belongs to -NULL is negative*/
struct dentry *d_parent;/*parent directory*/
struct list_head d_hash;/*lookup hash list*/
unsigned char d_iname[DNAME_INLINE_LEN];/*small names*/
};
struct list_head{
struct list_head *next,*prev;
};