1、1. 什么是操作系统?它的主要功能是什么?答:操作系统是用来管理计算机系统的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合;其主要功能有进程管理、存储器管理、设备管理和文件管理功能。2. 什么是分时系统?什么是实时系统?试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时系统和实时系统。答:分时系统:一个计算机和许多终端设备连接,每个用户可以通过终端向计算机发出指令,请求完成某项工作,在这样的系统中,用户感觉不到其他用户的存在,好像独占计算机一样。实时系统:对外部输入的信息,实时系统能够在规定的时间内处理完毕并作出反应。比较:(1)交互性:实时系统具有交互性,但人与系
2、统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样向终端用户提供数据处理、资源共享等服务。实时系统的交互性要求系统具有连续人机对话的能力,也就是说,在交互的过程中要对用户得输入有一定的记忆和进一步的推断的能力。(2)及时性:实时系统对及时性的要求与分时系统类似,都以人们能够接受的等待时间来确定。而分时系统则对及时性要求更高。(3)独立性:实时系统与分时系统一样具有独立性。每个终端用户提出请求时,是彼此独立的工作、互不干扰。(4)多路性:实时系统与分时一样具有多路性。操作系统按分时原则为多个终端用户提供服务,而对于实时系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多
3、个对象或多个执行机构进行控制。(5)可靠性:分时系统虽然也要求可靠性,但相比之下,实时系统则要求系统高度可靠。9.设内存中有三道程序,A,B,C ,他们按 ABC 的先后次序执行,它们进行“计算”和“I/O 操作”的时间如表 1-2 所示,假设三道程序使用相同的 I/O设备。表 1-2 三道程序的操作时间程序操作ABC计算 I / O 操作 计算2 03 01 03 05 02 01 02 01 0(1) 试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多少时间。I / O 操作计算9 06 05 0 1 4 02 0 1 6 01 7 01 9 02 0 0AABBB CCC总时
4、间=20+30+10+30+50+20+10+20+10=200(2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。I / O 操作程序 A6 05 0 1 4 02 0AA1 0 0BBBCCCAI / O 操作I / O 操作1 2 08 0 9 0程序 B程序 C7 01 3 0总时间=130第二章5 假设系统就绪队列中有 10 个进程,这 10 个进程轮换执行,每隔 300ms 轮换一次,CPU 在进程切换时所花费的时间是 10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少?答:因为每隔 300ms 换一次进程,且每个进程切换时所花费的时间是10
5、ms,则系统化在进程切换上的开销占系统整个时间的比例是10/(300+10 )=3.2%6 试述线程的特点及其与进程之间的关系。答:(1)特点:线程之间的通信要比进程之间的通信方便的多;同一进程内的线程切换也因为线程的轻装而方便的多。同时线程也是被独立调度的分配的;(2)线程与进程的关系:线程和进程是两个密切相关的概念,一个进程至少拥有一个线程,进程根据需要可以创建若干个线程。线程自己基本上不拥有资源,只拥有少量必不可少的资源(线程控制块和堆栈)7 根据图 2-18,回答以下问题。(1) 进程发生状态变迁 1、3、4、6、7 的原因。答:1 表示操作系统把处于创建状态的进程移入就绪队列;3 表
6、示进程请求 I/O 或等待某事件;4 表示进程用行的时间片用完;6 表示 I/O完成或事件完成;7 表示进程完成。(2) 系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。下述变迁是否为因果变迁:32,45,72,36,是说明原因。答:32 是因果变迁,当一个进程从运行态变为阻塞态时,此时 CPU 空闲,系统首先到高优先级队列中选择一个进程。45 是因果变迁,当一个进程运行完毕时,此时 CPU 空闲,系统首先到高优先级队列中选择进程,但如果高优先级队列为空,则从低优先队列中选择一个进程。72 是因果变迁,当一个进程运行完毕时,CPU 空闲,系统首先到高优先级队列
7、中选择一个进程。36 不是因果变迁。一个进程阻塞时由于自身的原因而发生的,和另一个进程等待的时间到达没有因果关系。(3) 根据此进程状态转换图,说明该系统 CPU 调度的策略和效果。答:当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为 100ms。如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,并且赋予该进程的时间片为 500ms。这种策略一方面照顾了短进程,一个进程如果在 100ms 运行完毕它将退出系统,更主要的是照顾了 I/O 量大的进程,进程因 I/O 进入阻塞队列,当 I/O 完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪
8、队列的进程。而对于计算量较大的进程,它的计算如果在 100ms 的时间内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾时间片增大为 500ms。8 回答以下问题。(1) 若系统中没有运行进程,是否一定没有就绪进程?为什么?答:是,因为当 CPU 空闲时,系统就会在就绪队列里调度进程,只有当就绪队列为空时,系统中才没有运行程序。(2) 若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞进程?解释。答:不一定,当运行的程序都因为请求 I/O 或等待事件时而进入阻塞,系
9、统中就没有就绪进程。(3) 如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?为什么?答:不一定,若优先级高的进程进入阻塞状态时,而且优先级高的就绪队列里没有等待的进程,这时就会调度优先级低的就绪队列的进程。9 假如有以下程序段,回答下面的问题。S1: a=3-x;S2: b=2*a;S3: c=5+a;(1) 并发程序执行的 Bernstein 条件是什么?答:若 P1 与 P2R 并发执行,当且仅当 R(P1)W(P2)R(P2) W(P1)W(P1)W(P2)= 时才满足。(2) 试画图表示它们执行时的先后次序。S 1S 2S 3(3) 利用 Bernstein 条
10、件证明,S1、S2 和 S3 哪两个可以并发执行,哪两个不能。答:R(s1)=x,W(s1)=a;R(s2)=a,W(s2)=b;R(s3)=a,W(s3)=c;(1).R(s1)W(s2) R(s2)W(s1)W(s1)W(s2)=a,则 s1 与 s2 不能并发执行;(2). R(s1)W(s3)R(s3) W(s1)W(s1)W(s3)=a,则 s1 与 s3 不能并发执行;(3). R(s2)W(s3)R(s3) W(s2)W(s2)W(s3)=,则 s2 与 s3 可以并发执行。第三章1 设有一个售票大厅,可容纳 200 人购票。如果厅内不足 200 人则允许进入,超过则在厅外等候;
11、售票员某时只能给一个购票者服务,购票者买完票后就离开。试问:(1) 购票者之间是同步关系还是互斥关系?答:互斥关系。(2) 用 P、V 操作描述购票者的工作过程。semaphore empty=200;semaphore mutex=1;semaphore waiting=0;void buy() p(waiting);p(mutex);买票;v(mutex);v(empty);void waiting()p(empty);等待;waiting+;2 有 4 个进程 P1、P2、P3、P4 共享一个缓冲区,进程 P1 向缓冲区存入消息,进程 P2、P3、P4 从缓冲区中取消息,要求发送者必须等
12、三个进程都取过本消息后才能发送下调消息。缓冲区内每次只能容纳一个消息,用 P、V 操作描述四个进程存取消息的情况。答:semaphore p1=0;semaphore p2,p3,p4=1;semaphore cout=0;semaphore mutex=1;void main()P(p2);P(p3);P(4);V(cout);write p1()P(p1) ;P(metux);P(cout);存入消息;V(p1);V(metux);Read p2() P(mutex);P(p1);读消息;V(p1);V(p2);V(metux);Read p3() P(mutex);P(p1);读消息;V
13、(p1);V(p3);V(metux);Read p4() P(mutex);P(p1);读消息;V(p1);V(p4); V(metux);3 分析生产者消费者问题中多个 P 操作颠倒引起的后果。答:semaphore mutex=1;semaphore empty=n;semaphore full=0;int i,j;ITEM buffern;ITEM data_p,data_c;void producer()/*生产者进程*/ void consumer() /*消费者进程*/while(true) while(true) P(mutex) ;P(mutex); P(full);P(em
14、pty); data_c=bufferj;bufferi=data_p; j=(j+1)%n;i=(i+1)%n; V(mutex);V(mutex); V(empty);V(full); 若把生产者进程的 P 操作颠倒,消费者进程的 P 操作颠倒(如图) ,则生产者进程执行到 V(mutex)时,消费者就可以执行 P(mutex) 但由于 full=0,消费者进程不可执行 P(full);当生产者进程执行完 V(full)后,full=1,但由于 mutex=0,消费者进程无法执行,造成死锁。第四章1 系统中有 5 个资源被 4 个进程所共享,如果每个进程最多需要 2 个这种资源,试问系统是
15、否会产生锁死?答:不会产生死锁;因为因为资源数可以满足进程的需要,当其中的一个进程争取到剩下的一个资源可以执行,当执行完成以后会释放资源,供其他进程使用,所以不会产生死锁。2 计算机系统有 8 台磁带机,由 N 个进程竞争使用,每个进程最多需要 3 台。问:N 为多少时,系统没有死锁的危险?答:当 n 为 1、 2、3 时,没有死锁的危险;因为当 n 小于 3 时,每个进程分配 2 台磁带机,还有磁带机剩余,那么当其中的一个进程得到剩余的磁带机则可运行,运行结束后会释放磁带机,供其他进程使用,系统不会有死锁的危险;当 n 为 4 时,每台分配 2 台时没有剩余,则会产生死锁,当大于 5 时同样
16、会死锁。3 系统有 5 个进程,它们的到达时间和服务时间如表 4-8 所示。新进程(没有运行过)与老进程(运行过的进程)的条件相同时,假定系统选新进程运行。表 4-8 进程情况进程名 到达时间 服务时间A 0 3B 2 6C 4 4D 6 5E 8 2若按先来先服务(FCFS) 、时间片轮法(时间片 q=1) 、短进程优先(SPN) 、最短剩余时间优先(SRT,时间片 q=1) 、响应比高者优先(HRRN )及多级反馈队列(MFQ ,第一个队列的时间片为 1,第 i(i1)个队列的时间片 q=2( i-1) )算法进行 CPU 调度,请给出各个进程的完成时间、周转时间、带权周转时间,及所有的进
17、程的平均周转时间和平均带权周转时间。答:A B C D E平均周转时间 平均带权周转时间到达时间服务时间完成时间周转时间带权周转02 4 6 83 6 4 5 23 9 1 3 1 8 2 03 791 2 1 21 1 . 1 7 2 . 2 5 2 . 4 68 . 62 . 5 6F C F SA B C D E平均周转时间 平均带权周转时间到达时间服务时间完成时间周转时间带权周转02 4 6 83 6 4 5 24 1 8 1 7 2 0 1 54 1 6 1 3 1 4 71 . 3 3 2 . 6 7 3 . 2 5 2 . 8 3 . 51 0 . 82 . 7 1时间片轮转A
18、B C D E平均周转时间 平均带权周转时间到达时间服务时间完成时间周转时间带权周转02 4 6 83 6 4 5 23 9 1 5 2 0 1 13 7 1 1 1 4 31 1 . 1 7 2 . 7 5 2 . 8 1 . 57 . 67 . 6S P NA B C D E平均周转时间 平均带权周转时间到达时间服务时间完成时间周转时间带权周转02 4 6 83 6 4 5 23 2 0 8 1 5 1 03 1 8 4 9 21 3 1 1 . 8 17 . 21 . 5 6S R TA B C D E平均周转时间 平均带权周转时间到达时间服务时间完成时间周转时间带权周转02 4 6 8
19、3 6 4 5 23 9 1 3 2 0 1 53 7 9 1 4 71 1 . 1 7 2 . 2 5 2 . 8 3 . 582 . 1 4H R R NA B C D E平均周转时间 平均带权周转时间到达时间服务时间完成时间周转时间带权周转02 4 6 83 6 4 5 23 1 7 1 8 2 0 1 43 1 5 1 4 1 4 61 2 . 5 3 . 5 2 . 8 31 0 . 42 . 5 6M F Q4 设系统中有 5 个进程 P1、P2、P3、P4、P5 ,有 3 种类型的资源 A、B、C,其中 A 资源的数量是 17,B 资源的数量是 5,C 资源的数量是 20,T0
20、时刻系统状态如表 4-9 所示。表 4-9 T0 时刻系统状态已分配资源数量 最大资源需求量 仍然需求资源数进程 A B C A B C A B CP1 2 1 2 5 5 9 3 4 7P2 4 0 2 5 3 6 1 3 4P3 4 0 5 4 0 11 0 0 6P4 2 0 4 4 2 5 2 2 1P5 3 1 4 4 2 4 1 1 0(1) 计算每个进程还可能需要的资源,并填入表的“仍然需要资源数”的栏目。(2) T0 时刻系统是否处于安全状态?为什么?答:处于安全状态,因为序列是一个安全状态。(3) 如果 T0 时刻进程 P2 又有新的资源请求(0,3,4) ,是否实施资源分配
21、?为什么?答:不实施资源分配,因为将所有资源都分配给 p2 时,p2 的 C 是 5,不能够运行,进入死锁。(4) 如果 T0 时刻,若进程 P4 又有新的资源请求(2,0,1) ,是否实施资源分配?为什么?答:实施;因为 p4 请求资源后,存在安全状态。(5) 在(4)的基础上,若进程 P1 又有新的资源请求(0,2,0) ,是否实施资源分配?为什么?答:不实施;第五章1 在系统中采用可变分区存储管理,操作系统占用低地址部分的 126KB,用户区的大小是 386KB,采用空闲分区表管理空闲分区。若分配时从高地址开始,对于下述的作业申请序列:作业 1 申请 80KB;作业 2 申请 56KB;
22、作业 3 申请 120KB;作业 1 完成;作业 3 完成;作业 4 申请 156KB;作业 5 申请80KB。使用首次适应法处理上述作业,并回答以下问题。(1) 画出作业 1、2、3 进入内存后,内存的分布情况。答:01 2 51 2 65 1 11238 0 K B5 6 K B1 2 0 K B空1 3 0 K B(2) 画出作业 1、3 完成后,内存的分布情况。答:01 2 51 2 65 1 1空28 0 K B5 6 K B2 5 0 K B空(3) 画出作业 4、5 进入内存后,内存的分布情况。答01 2 51 2 65 1 128 0 K B5 6 K B1 5 6 K B4空
23、空8 0 K B51 4 K B2 某系统采用页式存储管理策略,某进程的逻辑地址空间为 32 页,页的大小为 2KB,物理地址空间的大小是 4MB。(1) 写出逻辑地址的格式。01 01 11 5页号 页内位移(2) 该进程的页表有多少项?每项至少占多少位?答:因为进程的逻辑地址空间为 32 页,因此该进程的页表项有 32 项。页表中应存储每页的块号。因为物理地址空间大小是 4MB,4MB 的物理地址空间内分成 4MB/2KB=2K 个块,因此块号部分需要 11 位(二进制) ,所以页表中每项占 11 位。(3) 如果物理地址空间减少一半,页表的结构有何变化?答:当减少一半时,有 2MB/2K
24、B=1K 个块,因此块号部分需要 10 位(二进制),所以页表中每项占 10 位。3 某页式存储管理系统,内存的大小为 64KB,被分为 16 块,块号为0、1、2、15。设某进程有 4 页,其页号为 0、1、2、3,被分别装入内存的 2、4、7、5,问:(1) 该进程的大小是多少字节?答:总共 64KB,16 页,则每页有 4KB。该进程有四页,则进程的大小为 16KB。(2) 写出该进程每一页在内存的起始地址。答:01232475页号 块号 起始地址8 K B1 6 K B2 8 K B3 5 K B(3) 逻辑地址 4146 对应的物理地址是多少?答:4146 除以 4096 得 1 余 50,这页号为 1,页内位移为 50;1 对应于 4,这物理地址为 4*4096+50=16434b。4 某段式存储管理系统的段表如图所示。段号 段长 段始址0121 5 K B8 K B1 0 K B4 0 K B8 0 K B1 0 0 K B请将逻辑地址0,137、1,9000、2,3600、3,230转换成物理地址。答:0,137:40*1024+137=41097B1,9000:80*1024+9000=90920B2,3600:100*1024+3600=106000B3,230不合法第六章