跳到主要内容

2007-2008学年下学期期末

2007-2008学年下学期期末试卷(A)

一、(15分)判断题(判断(T表示正确,F表示错误)并说明原因)(3分x5)

  1. 在通写(write-through)策略下,关闭以只读方式打开的文件也需要对磁盘进行写操作。


  2. 间谍软件(spyware)必然是病毒。


  3. 在 Linux 系统中,对于目录具有 x 权限意味着可以在目录中创建或删除文件。


  4. 块设备一定是快速设备,且一定既能支持顺序访问又能支持随机访问。


  5. 采用了具有完备的安全机制的操作系统则必然能够保护系统免受攻击的侵害。


二、(15分)单项选择题(3分x5)

  1. TCP/IP 分别对应了 ISO OSI 七层模型的哪两层:

    A. 传输层/网络层

    B. 会话层/网络层

    C. 数据链路层/物理层

    D. 会话层/传输层


  2. 以下哪种设备常用假脱机方式(spooling)进行 I/O 操作:

    A. 磁带

    B. 磁盘

    C. 网络

    D. 打印机


  3. 以下哪一项对于 u 盘的文件系统和 I/O 操作不适用:

    A. 块分配

    B. 空闲块管理

    C. 磁盘调度

    D. 缓存管理


  4. 以下哪个操作属于磁盘物理格式化的工作:

    A. 删除所有文件

    B. 初始化文件系统结构

    C. 创建一个空的根目录

    D. 在扇区中填入校验码等信息


  5. 以下对于文件控制块,描述错误的是:

    A. 文件控制块一般包含文件的访问控制信息和指向数据块的指针信息

    B. 一个进程在用户态可对其打开的文件的文件控制块信息进行直接修改,修改后的信息在关闭文件时回写到磁盘上

    C. 文件名可以不存储在文件控制块内

    D. inode 是一种文件控制块


三、(20分)名词辨析(写出名词的含义,并说明区别)(4分x5)

  1. 进程和线程


  2. 段式内存管理和页式内存管理


  3. 死锁和饥饿(starvation)


  4. 网络操作系统和分布式操作系统


  5. 微内核和模块化内核


四、(20分)问答题

  1. (9分)请问文件组织和块分配技术中,连续分配、链接分配、索引分配三种方法,哪种最适合随机访问?哪种最不适合随机访问?哪种最适合顺序访问?哪种最不适合顺序访问?对于频繁创建、删除文件的情况,且需要支持随机访问,哪种方法最合适?哪种最不合适?请说明理由。(1.5分x6)


  2. (6分)请列举分布式系统中,进程协同所碰到的三个困难,并说明这些困难是如何造成集中式进程协同技术无法直接被应用于分布式环境的。(2分x3)


  3. (5分)请简要说明采用 DMA 进行数据传输的过程。


五、(10分)计算题

假设磁盘磁头当前在磁道 100,磁道请求队列为:<55,58,39,18,90,160,150,38,184>

  1. 请计算 FIFO(先进先出)策略下的寻道总长度(包括过程)。(4分)


  2. 请计算 SSTF(最近寻道时间优先)策略下的寻道总长度(包括过程)。(4分)


  3. 请问:SSTF 是否一定是总寻道长度最短的,为什么?(2分)


六、(10分)

假设文件系统只能提供 read 和 write 两个对文件的读写操作:

int read(FILE* fd, long pos, char* buf, long len);
int write(FILE* fd, long pos, char* buf, long len);

其中,fd 为文件描述符;pos 为文件指针位置;buf 为读取后数据存放地址;或要写入的数据所在地址;len 为要读或写的数据长度。pos 使用绝对地址(即文件头位置为 0,其它位置的值为其偏移量)。read 的返回值为其读到的实际数据长度,如果 pos+len+1 超出了文件的长度(设为 x),则返回值为 (x-pos),且 pos 永远小于等于 x-1;write 的返回值为其实际写入数据的长度;pos 和 len 都以 char 为单位。文件指针指向下一个要读或写的位置,指针随着读和写顺序移动。

请使用 read 和 write 函数,实现插入函数 insert:

int insert(FILE* fd, long pos, char* buf, long len);

其参数含义同上,返回直为实际插入的数据量。insert 的含义是:如果 pos 不是文件末尾,则将 pos 以后所有数据(从 pos+1 开始,到文件尾为止)往后移 len 的长度,并将 buf 的内容填入文件位置 pos+1 到 pos+len 中。

例如:fd 对应的原始文件为:<abcdefg>,文件长度为 7,buf 内容为:<***>,len 为 3,则 insert(fd, 3, buf, 3) 后文件的内容为:<abcd***efg>,返回值为 3。

  1. 请用写出实现 insert 的主要伪代码和注释(假设 fd 已知,read 和 write 不需要进行出错处理)。(7分)


  2. 请简单描述一下实现的思路。(3分)


七、(10分)

  1. 请简要描述你在课程 project 2 中对文件控制块的实现方式(包括基本数据结构、目录的实现方式,文件控制块缓存的实现方式)。(7分)


  2. 请简要描述在课程 project 2 中你在你们小组中承担的任务。(3分)


2007-2008学年下学期期末试卷(B)

一、(15分)判断题(判断(T表示正确,F表示错误)并说明原因)(3分x5)

  1. 关闭以只读方式打开的文件不需要对数据块进行写操作。


  2. 病毒必然是间谍软件(spyware)。


  3. 在Linux系统中,对于目录具有x权限意味着可以删除该目录。


  4. 磁带是一种字符设备。


  5. 确定文件的访问权限是制定安全策略的一部分。


二、(15分)单项选择题(3分x5)

  1. HTTP对应了ISO OSI七层模型的哪一层:

    A. 网络层

    B. 会话层

    C. 应用层

    D. 传输层


  2. 以下哪种设备常用顺序访问方式进行访问:

    A. 磁带

    B. 磁盘

    C. u盘

    D. 光盘


  3. 以下哪一项对于只读光盘的文件系统和I/O操作不适用:

    A. 预读

    B. 空闲块管理

    C. 磁(光)盘调度

    D. 缓存管理


  4. 文件系统结构初始化是在哪个操作时进行的:

    A. 删除所有文件

    B. 物理格式化

    C. 逻辑格式化

    D. 磁盘分区


  5. 以下对于文件控制块,描述正确的是:

    A. 文件控制块和进程控制块一样,只存在于内存中,在文件关闭时释放

    B. 文件控制块存放于目录项中

    C. 文件控制块中不需要存放文件名

    D. 文件控制块一般不包括文件访问权限信息


三、(20分)名词辨析(写出名词的含义,并说明区别)(4分x5)

  1. 死锁检测和死锁避免


  2. 最短作业优先调度和最短剩余时间优先调度


  3. 动态联编和静态联编


  4. 内部碎片和外部碎片


  5. 核心态和用户态


四、(20分)问答题

  1. (8分)请简述磁盘空闲块管理的位图和链表技术,并比较它们在空间利用率与空闲块分配时的效率。


  2. (6分)请简要论述分布式文件系统和集中式文件系统在命名(名称解析,naming)和数据访问方式及其实现上的异同。


  3. (6分)请简要说明I/O方式中何为程序控制输入输出(programmed I/O)和直接内存访问(direct memory access, DMA)。并说明为何DMA比前一方式进行快速大规模I/O数据交换时效率要高。


五、(10分)计算题

假设磁盘磁头当前在磁道98,磁道请求队列为:<55,58,39,18,90,160,150,38,184>

  1. 请计算FIFO(先进先出)策略下的寻道总长度(包括过程)(5分)


  2. 请计算SSTF(最近寻道时间优先)策略下的寻道总长度(包括过程)(5分)


六、(10分)

假定有一个一层文件系统(即所有文件只能存储于根目录):文件名长度最多为1024个字符;文件名允许使用包括“a-z”、“A-Z”、“0-9”、“.”在内的26 + 26 + 10 + 1 = 63个字符。请设计一种方法,在该一层文件系统上模拟多层文件系统:

  1. 请详细描述你的方法(6分);


  2. 请分析你的方法对于文件个数的限制和对于目录层数的限制(4分)。


七、(10分)

  1. 请简要描述你在课程project 2中对文件读写(权限检查、缓存管理、块申请、文档控制块信息更新)的实现方式(7分);


  2. 请简要描述在课程project 2中你在文件读写部分中承担的任务(3分)。