操作系统习题课-2010.11.24

更新时间:2023-12-15 02:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

操作系统习题课

2010年11月

一、基本题(直接考概念)

1. 操作系统提供给应用程序的接口是() (2010考研)

A 系统调用 B中断 C 库函数 D 原语

2. 信号量初值是3,当前值为1,M表示资源可用个数,N表示等待进程个数,则M,N

为 (1,0) (2010考研) 3. (1) 为什么要定义进程状态;

(2) 简要说明运行态、就绪态、阻塞态的含义; (3) 说明上述三种状态之间的状态转移关系; 列出发生转换的可能原因。(期末考题)

4. (1) 死锁的含义;(2) 死锁发生的四个基本条件是什么(只需列出名称),请举出一种可以打破其中至少一个条件的方法;

(3) 死锁处理的基本方法有哪些(简单说明即可);

(4) 操作系统面对死锁为什么普遍采用“鸵鸟算法”。(期末考题)

5.什么是并发?为什么引入并发?是否系统内并发的进程越多就越能体现并发的优点?请用两个例子说明你的结论。(期末考题)

6.设置当前工作目录的主要目的是()(2010考研) A. 节省外存 B 节省内存 C加快文件检索 D 加快文件读写

7.索引节点中有7个地址项,4个直接索引,2个一级间接索引,1个二级间接索引,每个地址4字节,索引块和数据块大小均为256字节,则单个文件最长为(1057kb)(2010考研) 8.使用CSCAN(循环扫描)磁盘调度策略,使用2kb的内存记录16384个磁盘块的状态。 (1)如何进行磁盘块空间状态管理。

(2)磁盘转速6000转/分钟,每个磁道100扇区,相邻磁道平均移动时间为1ms。

若此时磁头位于100号磁道处,并沿磁道号大的方向移动,磁道号请求序列为50,90,30,120,请求队列中的每个磁道需读取一个随机分配的扇区,则读完共需多少时间。

20+30+40+20 (寻道时间)

(60000 / 6000 * 1/2 )*4 (旋转时间)(2010考研)

二、难度题(一个概念多绕几个弯,或者是一个点上的设计)

1.请以C语言为例,说明系统调用(比如read())和语言提供的库函数(比如fread())之间的不同。并分析为什么java程序不能直接调用系统调用。(期末)

2.挂起态是指将进程换出到磁盘上的一种状态,为什么会有这种状态?谁来执行这种换入换出,什么时候执行?一个不支持挂起态的操作系统需要做哪些修改才能支持挂起态(简要说明)。(自编)

3.栅栏是指一个n个进程执行到这里都会等待,直到所有进程都到这里会一起放开,用P、V操作实现。(期末)假设不知道是触发栅栏放行的是一个时间,即到达一定的时间后就放心,这时候怎么实现?(自编)

4. 逻辑地址空间和物理地址空间大小都是64KB,进程最多需要6页内存,页的大小是1kb,操作系统采用局部置换策略为此进程分配4个页框(只有这4个页框)

访问逻辑地址17CAH。

(1)逻辑地址对应的页号为。(5号)

(2)采用FIFO置换,逻辑地址对应的物理地址是?(物理页是7)

(3)采用Clock算法,逻辑地址对应的物理地址是?当前指针是2号页框,顺时针移动(物理页号是2)(2010考研)

5.有一个非常大的高清电影文件,(1)当采用文件系统A时,进行播放位置向后拖动很大幅度时明显比采用文件系统B时的播放位置拖动速度要快的多,请解释产生这一差异的有可能的一个原因,并解释为什么? (2)当采用文件系统A时,将播放位置向前小幅拖动时明显比采用文件系统B要快的多,但大幅拖动时明显没有B块,给出一个原因解释为什么?(期末考试)

6.针对下面一段代码:

fd = open(\是存放在磁盘上的一个文件 t = getCurrentTime(); //读取当前系统时间 write(fd,buf,512);

t1 = getElapseTime(t); //读取从t到目前为止所经过的系统时间

t2 = getCpuElapseTime(t); //读取从t到目前为止该程序获得CPU的总时间 write(stdout, buf, 512);

(1) 上述程序中的两条斜体语句在接口上相同,但执行的具体动作存在很大不同,请给出有何不同;并说明操作系统为何给不同动作定义相同的接口。

(2) 假设语句t1 = getElapseTime(t)和t2 = getCpuElapseTime(t)的执行时间可被忽略,比较t1和t2之间的大小关系;说明原因。 (期末考试)

(3) 再加一问,计算机系统(包括操作系统在内)如何变化以后,t1和t2接近相等,给出两个情况。 (自编)

7.三种数据结构包括:页表(Page Table)、页表项(Page Table Entry)和TLB(快表)。对每种数据结构,只需要判断它所占空间会增大、减小、还是不变。

(1) 扩大虚拟地址的位数,页表: 页表项:TLB:(2) 扩大物理内存, 页表:页表项:TLB:(3) 增加同时在MMU中处于活动状态的进程个数,页表:页表项:TLB: (期末考试) 8.说用户级线程比内核级线程负载轻,更灵活,给出10个理由(一个理由一句话)。(自编)

三、发挥题(前后联系,没有答案)

1. 内存变得很大、很便宜的操作系统应该在哪些地方发生变化,如何变化?(自编) 2.一个Windows上的可执行文件要放到Linux上执行,你要做什么?(自编)

3. 你要为一台过滤数据包内容(过滤规则非常多,多到内存放不下,这些规则的结构是从粗到细逐级匹配)的路由器设计一个过滤软件(包括操作系统和应用程序),这个软件要写成什么样子,为什么?(自编)

本文来源:https://www.bwwdw.com/article/g5m5.html

Top