操作系统第2章习题分析
操作系统 第二章 习题
第二章练习题及参考答案一、单项选择题1.用户作业可以通过()方式由用户自己按照作业来进行操作。
A.脱机B.自动控制C.在线处理D.联机处理2.()是操作系统提供的一种专门语言,它由操作系统的专门机制解释处理。
A.C语言B.JCL语言C.Ada语言D.Pascal语言3.作业调度算法中()调度算法最有利于提高资源利用率。
A.先来先服务B.优先数C.响应比最高优先D.均衡4.终端用户在终端上控制作业的执行要经历四个阶段,最初阶段是()。
A.用户注册B.终端连接C.作业控制D.用户退出5.在下面作业调度算法中()调度算法最有利于小作业,从而提高系统吞吐能力。
A.先来先服务B.计算时间短的作业优先C.优先数D.响应比最高者优先6.当中央处理器处于目态时,它可以执行的指令是()。
A.计算机系统中的全部指令B.仅限于非特权指令C.仅限于防管指令D.仅限于特权指令7.作业调度算法常考虑因素之一是使系统有最高的吞吐率,为此应()。
A.不让处理机空闲B.能够处理尽可能多的作业C.使各类用户满意D.不使系统过于复杂8. 分时操作系统环境下运行的作业通常称为()。
A.后台作业B.长作业C.批量型作业D.终端型作业9.在作业调度算法中,若所有作业同时到达,则平均等待时间最短的算法是()。
A.先来先服务B.优先数C.响应比最高优先D.计算时间段的作业优先10.作业调度程序从处于()状态的作业队列中选取适当的作业投入运行。
A.执行B.提交C.完成D.后备11.既考虑作业等待时间,又考虑作业执行时间的调度算法是()。
A. 先来先服务B.优先数C.响应比最高优先D.均衡12.()是指从作业提交给系统到作业完成的时间间隔。
A.周转时间B.响应时间C.等待时间D.执行时间13.作业从进入后备队列到被调度程序选中的时间间隔称为()。
A.周转时间B.响应时间C.等待时间D.触发时间二、多项选择题1.响应比最高者优先调度算法是()调度算法的折衷。
操作系统练习题 第2章进程管理
第二章进程管理练习题(一)单项选择题1.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器( )。
A.并发执行B.顺序执行 C.并行执行D.同时执行2. 引入多道程序设计技术后,处理器的利用率( )。
A.无改善B.极大地提高 C.降低了D.无变化,仅使程序执行方便3.计算机系统采用多道程序设计技术后,()。
A.缩短了每个程序的执行时间B.系统效率随并行工作道数成比例增长C.提高了系统效率D.使用设备时不会发生冲突4.进程是( )。
A.一个系统软件B.与程序概念等效C.存放在内存中的程序D.执行中的程序5.进程的( )和并发性是两个很重要的属性。
A.动态性B.静态性C.易用性D.顺序性6.已经获得除( )以外所有运行所需资源的进程处于就绪状态。
A.主存储器B.打印机C.C PU D.磁盘空间7.在一个单处理器系统中,处于运行态的进程( )。
A.可以有多个B.不能被打断C.只有一个D.不能请求系统调用8.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。
A. 顺序执行B. 同时执行C. 并行执行D. 并发执行9.操作系统根据( )控制和管理进程,它是进程存在的标志。
A.程序状态字B.进程控制块C.中断寄存器D.中断装置10.若干个等待占有CPU并运行的进程按一定次序链接起来的队列为( )。
A.运行队列B.后备队列C.等待队列D.就绪队列11.临界区是指( )。
A. 并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段12.对于记录型信号量,在执行一次P操作时,信号量的值应( )。
A.不变B.加1 C.减1D.减指定数值13.在执行signal操作时,当信号量的值( )时,应释放一个等待该信号量的进程。
A.0 B.<0 C.>=0 D.<=014.wait、signal操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。
操作系统--习题课1-第二章
第二章进程的描述与控制-习题【例1】我们为某临界区设置一把锁W,当W=1时,表示关锁;W=0时表示锁已经打开。
试写出开锁和关锁原语,并利用他们实现互斥。
分析:在用锁实现互斥时,必须为每个临界资源设置一把锁W,值得注意的是锁W只能有开或关两种状态,相应地W只能取0或1两个值。
进行关锁操作时,若W处于开的状态,则表示相应的临界资源空闲,进程只需将锁的状态置为关,便可直接进入临界区;否则,若W已处于关状态,则表示其他进程正在使用临界资源,故执行关锁操作的进程必须等待。
进行开锁操作时,则必须将锁的状态置为开状态,以允许其他进程使用临界资源。
答:相应的关锁原语lock(W)和开锁原语unlock(W)可描述为:lock(W): while(W==1);W=1;unlock(W): W=0;在利用关锁原语和开锁原语实现进程互斥时,可将临界区CS放在其间,即:lock(W);CS;unlock(W);【例2】在所示图中,有一计算进程和打印进程,他们共享一个单缓冲区,计算进程不断地计算出一个整型结果并将它放入单缓冲区中,打印进程则负责从单缓冲区中取出每一个结果进行打印,请用信号量来实现它们的同步关系。
分析1:可从临界资源的角度来思考,先找临界资源,并为每种资源设置信号量,在访问临界资源之前加wait操作来申请资源,访问完临界资源后加signal操作来释放临界资源。
本题中有两类临界资源,第一类是计算进程争用的空闲缓冲区,初始状态下有一个缓冲区可供使用,故可为它设置初值为1的信号量empty;第二类是打印进程争用的已放入缓冲中的打印结果,初始状态下缓冲中无结果可供打印,故可为它设置初值为0的信号量full。
答1:具体的同步算法可描述为:semaphore full=0, empty=1;int buffer;cp(){int nextc;while(1){compute the next number in nextc;wait(empty);buffer=nextc;signal(full);}}pp(){int nextp;while(1){wait(full);nextp=buffer;signal(empty);print the number in nextp;}}main(){cobegincp(); pp();coend}其实,本题是一个n=1的生产者—消费者问题,与常规的生产者—消费者问题的算法比较一下,可以发现:单缓冲的情况下,缓冲区只需要简单变量来描述,而不必再用数组;另外,也不再需要in(out)指针来指示产品放到(取自)哪个缓冲区,而且,由于此时生产者、消费者不可能同时访问缓冲区,所以原来的mutex信号量也不再需要。
《操作系统精髓与设计原理·第五版》练习题及答案
《操作系统精髓与设计原理·第五版》练习题及答案第1章计算机系统概述1.1、图1.3中的理想机器还有两条I/O指令:0011 = 从I/O中载⼊AC0111 = 把AC保存到I/O中在这种情况下,12位地址标识⼀个特殊的外部设备。
请给出以下程序的执⾏过程(按照图1.4的格式):1.从设备5中载⼊AC。
2.加上存储器单元940的内容。
3.把AC保存到设备6中。
假设从设备5中取到的下⼀个值为3940单元中的值为2。
答案:存储器(16进制内容):300:3005;301:5940;302:7006步骤1:3005->IR;步骤2:3->AC步骤3:5940->IR;步骤4:3+2=5->AC步骤5:7006->IR:步骤6:AC->设备 61.2、本章中⽤6步来描述图1.4中的程序执⾏情况,请使⽤MAR和MBR扩充这个描述。
答案:1. a. PC中包含第⼀条指令的地址300,该指令的内容被送⼊MAR中。
b. 地址为300的指令的内容(值为⼗六进制数1940)被送⼊MBR,并且PC增1。
这两个步骤是并⾏完成的。
c. MBR中的值被送⼊指令寄存器IR中。
2. a. 指令寄存器IR中的地址部分(940)被送⼊MAR中。
b. 地址940中的值被送⼊MBR中。
c. MBR中的值被送⼊AC中。
3. a. PC中的值(301)被送⼊MAR中。
b. 地址为301的指令的内容(值为⼗六进制数5941)被送⼊MBR,并且PC增1。
c. MBR中的值被送⼊指令寄存器IR中。
4. a. 指令寄存器IR中的地址部分(941)被送⼊MAR中。
b. 地址941中的值被送⼊MBR中。
c. AC中以前的内容和地址为941的存储单元中的内容相加,结果保存到AC中。
5. a. PC中的值(302)被送⼊MAR中。
b. 地址为302的指令的内容(值为⼗六进制数2941)被送⼊MBR,并且PC增1。
第2章习题分析解析(可编辑修改word版)
第二章习题一、判断题1.计算机的性能指标完全由CPU 决定。
2.RAM 中的信息在计算机断电后会全部丢失。
3.存储地址是存储器存储单元的编号,CPU 要存取某个存储单元的信息,一定要知道这个存储单元的地址。
4.通常把计算机的运算器、控制器及内存储器称为主机。
5.由于硬盘的外部传输速率要小于内部传输速率,所以外部传输速率的高低是评价一个硬盘整体性能的决定性因素。
6.存储容量是数码相机的一项重要性能,不论拍摄质量如何,存储容量大的数码相机可拍摄的相片数量肯定比存储容量小的相机多。
7.计算机硬件从逻辑上讲包括CPU、内存储器、外存储器、输入设备和输出设备等,它们通过系统总线互相连接。
8.PC 机主板上有一个集成电路芯片是CMOS 存储器,主要存放着计算机硬件工作时所设置的一些参数,这个存储器是非易失性存储器。
9.CD-R 光盘是一种能够多次读出和反复修改已写入数据的光盘。
10.计算机的性能主要由CPU 决定,CPU 的运算速度又与CPU 的工作频率密切相关。
因此,主频为2GHz Pentium4 作为CPU 的一台PC 机,比使用主频为1GHz Pentium4 作为CPU 的PC机速度高一倍。
11.PC 机的主板上有电池,它的作用是在计算机断电后,给CMOS 芯片供电,保持该芯片中的信息不丢失。
12.大部分数码相机采用CCD 成像芯片,芯片中像素越多,可拍摄的图像最高分辨率(清晰度)就越高。
13.计算机中总线的重要指标之一是带宽,它指的是总线中数据线的宽度,用二进位数目来表示(如16 位,32 位总线)。
14.计算机常用的输入设备为键盘、鼠标,常用的输出设备有显示器、打印机。
15.目前市场上有些PC 机的主板已经集成了许多扩充卡(如声卡、以太网卡、显示卡)的功能,因此不再需要插接相应的适配卡。
16.I/O 操作的启动需要CPU 通过指令进行控制。
17.为了提高CPU 访问硬盘的工作效率,硬盘通过将数据存储在一个比其速度快得多的缓冲区来提高与CPU 交换的速度,这个区就是高速缓冲区,它是由DRAM 芯片构成的。
操作系统第二章练习题与答案
C.DCT D.FCB5.一个进程被唤醒,意味着该进程 D 。
A.重新占有CPU B.优先级变为最大C.移至等待队列之首 D.变为就绪状态6.由各作业JCB形成的队列称为 C 。
A.就绪作业队列 B.阻塞作业队列C.后备作业队列 D.运行作业队列7.既考虑作业等待时间,又考虑作业执行时间的作业调度算法是 A 。
A.响应比高者优先B.短作业优先C.优先级调度D.先来先服务8.作业调度程序从处于 D 状态的队列中选取适当的作业投入运行。
A.就绪 B.提交C.等待 D.后备9. A 是指从作业提交系统到作业完成的时间间隔。
A.周转时间 B.响应时间C.等待时间 D.运行时间10.计算机系统在执行 C 时,会自动从目态变换到管态。
A.P操作 B.V操作C.系统调用 D.I/O指令三、问答1.在多道程序设计系统中,如何理解“内存中的多个程序的执行过程交织在一起,大家都在走走停停”这样一个现象?答:在多道程序设计系统中,内存中存放多个程序,它们以交替的方式使用CPU。
因此,从宏观上看,这些程序都开始了自己的工作。
但由于CPU只有一个,在任何时刻CPU只能执行一个进程程序。
所以这些进程程序的执行过程是交织在一起的。
也就是说,从微观上看,每一个进程一会儿在向前走,一会儿又停步不前,处于一种“走走停停”的状态之中。
2.什么是“原语”、“特权指令”、“系统调用命令”和“访管指令”?它们之间有无一定的联系?答:特权指令和访管指令都是CPU指令系统中的指令,只是前者是一些只能在管态下执行的指令,后者是一条只能在目态下执行的指令。
原语和系统调用命令都是操作系统中的功能程序,只是前者执行时不能被其他程序所打断,后者没有这个要求。
操作系统中有些系统调用命令是以原语的形式出现的,例如创建进程就是一条原语式的系统调用命令。
但并不是所有系统调用命令都是原语。
因为如果那样的话,整个系统的并发性就不可能得到充分地发挥。
3.操作系统是如何处理源程序中出现的系统调用命令的?答:编译程序总是把源程序中的系统调用命令改写成为一条访管指令和相应的参数。
第2章 进程管理课后习题解答
第题中,如果修改问题中的同步算法,要求 对写进程优先,即一旦写进程到达,后续的读者进程必须等待, 而无论是否有读者进程在读文件。写出相应进程的程序段。 semaphore fmutex=1, rmutex=1, wmutex=1;que=1;
int rcount=0, wcount=0; void main() { parbegin(reader, writer); }
12
void reader { while(1) { wait(que); wait(rmutex); if(0==readcount) wait(fmutex); readcount++; signal(rmutex); signal(que); …. begin to read wait(rmutex); readcount--; if(readcount==0) signal (fmutex); signal(rmutex); } }
读者—写者问题(读优先) 读者 写者问题(读优先) 写者问题 semaphore rmutex=1,wmutex=1; int readcount=0; = void main() { parbegin(reader,writer); }
读者进程: 读者进程: void reader() { while(1) { wait(rmutex); if (readcount==0) wait(wmutex); readcount++; signal(rmutex); … 读操作 wait(rmutex); readcount--; if (readcount==0) signal(wmutex); signal(rmutex); } }
18
chopstick[ ={1 semaphore chopstick[5]={1,1,1,1,1}; viod main() { parbegin(P0(),P1(),P2(),P3(),P4()); parbegin(P0(),P1(),P2(),P3(),P4()); } Pi() /*i=0,1,2,3,4*/ { while(1) { wait(chopstick[i]); [ ] wait(chopstick[(i+1)%5]); [ ] eating; … signal(chopstick[i]); [ ] signal(chopstick[(i+1) %5]); [ ] thinking; } }
操作系统复习资料全第二章 进程管理(3)-经典同步问题
信号量S的值除初始化(为资源数目)外,其值只能通过原
语wait和signal,也称P、V操作来改变。
整型信号量的P、V操作描述
wait和signal
wait(S): while S≤0 do no-op S∶=S-1; signal(S): S∶=S+1; 解释:P或wait操作:当S≤0时,说明无资源可用,一直测试直到其他进程 释放该类资源。
1. 至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少 有一位哲学家能够进餐。(增加一个总资源信号量S=4)
2. 仅当哲学家的左、右两只筷子均可用时,才允许他拿起筷子进餐 (AND型信号量)。
3. 规定奇数号哲学家先拿他左边的筷子,然后再去拿右边的筷子; 而偶数号哲学家则相反。按此规定,将是1、 2号哲学家竞争1号 筷子;3、4号哲学家竞争3号筷子。即五位哲学家都先竞争奇数 号筷子,获得后,再去竞争偶数号筷子,最后总会有一位哲学家 能获得两只筷子而进餐。
1. 利用记录型信号量解决读者 为实现Reader与Writer进程间在读或写时的互斥而设置了一个互 斥信号量Wmutex; 设置一个整型变量Readcount表示正在读的进程数目; 当 Readcount=0 时,表示尚无 Reader 进程在读时, Reader 进 程才需要执行 Wait(Wmutex) 操作。若 wait(Wmutex) 操作成功, 做Readcount+1和读文件操作; 当Reader进程在执行了Readcount减1操作后其值为0时,才须 执行signal(Wmutex)操作,以便让Writer进程写; 又因为Readcount是一个可被多个 Reader进程访问的临界资源, 因此,应该为它设置一个互斥信号量rmutex。
计算机操作系统课后习题答案解析张尧学
第一章绪论1.什么是操作系统的基本功能?答:操作系统的职能是管理和控制汁算机系统中的所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。
操作系统的基本功能包括:处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。
2.什么是批处理、分时和实时系统?各有什么特征?答:批处理系统(batchprocessingsystem):操作员把用户提交的作业分类,把一批作业编成一个作业执行序列,由专门编制的监督程序(monitor)自动依次处理。
其主要特征是:用户脱机使用计算机、成批处理、多道程序运行。
分时系统(timesharingoperationsystem):把处理机的运行时间分成很短的时间片,按时间片轮转的方式,把处理机分配给各进程使用。
其主要特征是:交互性、多用户同时性、独立性。
实时系统(realtimesystem):在被控对象允许时间范围内作出响应。
其主要特征是:对实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。
3.多道程序(multiprogramming)和多重处理(multiprocessing)有何区别?答;多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真正地同时值行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行多道程序。
要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统的支持。
6.设计计算机操作系统时与那些硬件器件有关运算器、控制器、存储器、输入设备、输出设备第二章作业管理和用户接口2.作业由哪几部分组成?各有什么功能?答:作业由三部分组成:程序、数据和作业说明书。
程序和数据完成用户所要求的业务处理工作,作业说明书则体现用户的控制意图。
3.作业的输入方式有哪几种?各有何特点答:作业的输入方式有5种:联机输入方式、脱机输入方式、直接耦合方式、SPOOLING(Simultaneous Peripheral OperationsOnline)系统和网络输入方式,各有如下特点:(1)联机输入方式:用户和系统通过交互式会话来输入作业。
操作系统习题2(含答案)
操作系统总复习及相关习题第一章引论名词解释1操作系统操作系统是管理和控制计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
2管态当执行操作系统程序时,处理机所处的状态3目态当执行普通用户程序时,处理机所处的状态。
4多道程序设计在这种设计技术下,内存中能同时存放多道程序,在管理程序的控制下交替的执行。
这些作业共享CPU和系统中的其他资源。
5并发是指两个或多个活动在同一给定的时间间隔中进行。
它是宏观上的概念。
6并行是指两个或多个活动在同一时刻同时执行的情况。
7吞吐量在一段给定的时间内,计算机所能完成的总工作量。
8分时就是对时间的共享。
在分时系统中,分时主要是指若干并发程序对CPU时间的共享。
9实时表示“及时”或“既时”。
10系统调用是用户在程序中能以“函数调用”形式调用的、由操作系统提供的子功能的集合。
每一个子功能称作一条系统调用命令。
它是操作系统对外的接口,是用户级程序取得操作系统服务的唯一途径。
11特权指令指指令系统中这样一些指令,如启动设备指令、设置时钟指令、中断屏蔽指令和清内存指令,这些指令只能由操作系统使用。
12命令解释程序其主要功能是接收用户输入的命令,然后予以解释并且执行。
13脱机I/O是指输入/输出工作不受主机直接控制,而由卫星机专门负责完成I/O,主机专门完成快速计算任务,从而二者可以并行操作。
14联机I/O是指作业的输入、调入内存及结果输出都在cpu直接控制下进行。
15资源共享是指计算机系统中的资源被多个进程所功用。
例如,多个进程同时占用内存,从而对内存共享;它们并发执行时对cpu进行共享;各个进程在执行过程中提出对文件的读写请求,从而对磁盘进行共享等等。
简答题1什么是操作系统?它的主要功能是什么?答:操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
操作系统部分习题参考答案(孙钟秀版)
操作系统部分习题参考答案(孙钟秀版)操作系统部分习题参考答案第⼀章2. ⼀个计算机系统,有⼀台输⼊机和⼀台打印机,现有两道程序投⼊运⾏,且程序A先开始做,程序B后开始运⾏。
程序A的运⾏轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。
程序B的运⾏轨迹为:计算50ms、输⼊80ms、再计算100ms,结束。
试说明(1)两道程序运⾏时,CPU有⽆空闲等待?若有,在哪段时间内等待?为什么会等待?(2)程序A、B有⽆等待CPU的情况?若有,指出发⽣等待的时刻。
答:画出两道程序并发执⾏图如下:(1) 两道程序运⾏期间,CPU存在空闲等待,时间为100⾄150ms之间(见图中有⾊部分)。
(2) 程序A⽆等待现象,但程序B有等待。
程序B有等待时间段为180ms⾄200ms间(见图中有⾊部分)。
5. 在单CPU和两台I/O(I1,I2)设备的多道程序设计环境下,同时投⼊三个作业运⾏。
它们的执⾏轨迹如下:Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)Job2:I1(20ms)、CPU(20ms)、I2(40ms)Job3:CPU(30ms)、I1(20ms)如果CPU、I1和I2都能并⾏⼯作,优先级从⾼到低为Job1、Job2和Job3,优先级⾼的作业可以抢占优先级低的作业的CPU。
试求:(1)每个作业从投⼊到完成分别所需的时间。
(2) 从作业的投⼊到完成CPU的利⽤率。
(3)I/O设备利⽤率。
答:画出三个作业并⾏⼯作图如下(图中着⾊部分为作业等待时间):(1) Job1从投⼊到运⾏完成需80ms,Job2从投⼊到运⾏完成需90ms,Job3从投⼊到运⾏完成需90ms。
(2) CPU空闲时间段为:60ms⾄70ms,80ms⾄90ms。
所以CPU利⽤率为(90-20)/80=77.78%。
(3) 设备I1空闲时间段为:20ms⾄40ms,故I1的利⽤率为(90-20)/90=77.78%。
操作系统习题及解答
第一章绪论一、单项选择题1、在下列选择中,(D)不是操作系统关心的主要问题。
A、管理计算机裸机B、设计、提供用户程序计算机硬件系统的界面C、管理计算机系统资源D、高级程序设计语言的编译器2、批处理系统的主要缺点是(C)。
A、CPU利用率低B、不能并发执行C、缺少交互性D、以上都不是3、多道程序设计是指(D)。
A、在实时系统中并发运行多个程序B、在分布系统中同一时刻运行多个程序C、在一台处理器上同一时刻运行多个程序D、在一台处理器上并发运行多个程序4、以下最早的OS是(D)。
A、分布式系统B、实时系统C、分时系统D、批处理系统5、批处理OS提高了计算机系统的工作效率,但(D)。
A、不能自动选择作业执行B、无法协调资源分配C、不能缩短作业执行时间D、在作业执行时用户不能直接干预6、分时OS追求的目标是(C)。
A、高吞吐量B、充分利用内存C、快速响应D、减少系统开销7、多道批处理系统提高了计算机系统的资源利用率,同时(B)A、减少了各作业的执行时间B、增加了作业吞吐量C、减少了作业的吞吐量D、减少了部分作业的执行时间8、设计实时OS时,(B)不是主要追求目标。
A、安全可靠B、资源利用率C、及时响应D、快速处理9、现代OS的两个基本特征是(C)和资源共享。
A、多道程序设计B、中断处理C、程序的并发执行D、实现分时与时实处理10、OS中采用多道程序设计技术提高了CPU和外部设备的(A)。
A、利用率B、可靠性C、稳定性D、兼容性11、OS的基本类型有(B)A、批处理系统、分时系统及多任务系统B、实时OS、批处理OS及分时OSC、单用户系统、多用户系统及批处理系统D、实时系统、分时系统和多用户系统12、为了使系统中所有的用户都能得到及时响应,该OS应该是(B)A、多道批处理系统B、分时系统C、实时系统D、网络系统13、从下列叙述中选出正确的叙述(A)。
A、OS的不确定性是指在OS控制下的多个作业执行顺序和每个作业的执行时间是不确定的。
现代操作系统课后习题答案
第二章进程管理第一部分教材习题(P81)3、为什么程序并发执行会产生间断性特征?(P36)4、程序并发执行,为何会失去封闭性和可再现性?(P37)【解】程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。
同时由于失去了封闭性,也将导致其再失去可再现性。
程序在并发执行时,由于失去了封闭性,程序经过多次执行后,其计算机结果已与并发程序的执行速度有关,从而使程序的执行失去了可再现性。
5、在操作系统中为什么要引入进程概念?(P37)它会产生什么样的影响?【解】在操作系统中引入进程的概念,是为了实现多个程序的并发执行。
传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。
这是因为并发执行的程序(即进程)是“停停走走”地执行,只有在为它创建进程后,在它停下时,方能将其现场信息保存在它的PCB中,待下次被调度执行是,再从PCB中恢复CPU现场并继续执行,而传统的程序却无法满足上述要求。
建立进程所带来的好处是使多个程序能并发执行,这极提高了资源利用率和系统吞吐量。
但管理进程也需付出一定的代价,包括进程控制块及协调各运行机构所占用的存空间开销,以及为进行进程间的切换、同步及通信等所付出的时间开销。
6、试从动态性、并发性和独立性上比较进程和程序?(P37)【解】(1)动态性:进程既然是进程实体的执行过程,因此,动态性是进程最基本的特性。
动态性还表现为:“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡”。
可见,进程有一定的生命期。
而程序只是一组有序指令的集合,并存放在某种介质上,本身并无运动的含义,因此,程序是个静态实体。
(2)并发性:所谓进程的并发,指的是多个进程实体,同存于存中,能在一段时间同时运行。
并发性是进程的重要特征,同时也成为OS的重要特征。
引入进程的目的也正是为了使其程序能和其它进程的程序并发执行,而程序是无法并发执行的。
《操作系统实训(Linux)——习题解答、例题解析、实验指导》-王红-电子教..
第2章进程管理进程是操作系统中非常重要的概念,进程管理是操作系统最为重要的功能之一。
12.1 基本结构图2进程管理基本知识结构图(见下页)进程管理进程的概念进程的描述进程控制进程的创建与终止进程通信线程程序的顺序执行程序的并发执行进程的概念及特征进程的状态及转换Linux进程的状态Linux进程的PCBLinux进程的系统调用进程的阻塞与唤醒进程的同步与互斥临界资源锁机制信号量进程控制块信号量的应用及同步举例进程的同步与互斥进程控制块的组织方式共享存储器机制消息传递机制管道通信机制信号通信机制线程的概念线程的特点2.2 知识点2.2.1 进程的概念1.程序的顺序执行我们把一个具有独立功能的程序独占处理机,直到最后结束的过程称为程序的顺序执行。
程序顺序执行时的特征为:顺序性、封闭性和可再现性。
4顺序性是指,程序执行时严格按照程序的语句或指令的顺序执行。
封闭性是指,程序执行的结果只有程序本身才可以改变,而与其它外界因素无关。
可再现性是指,只要输入的初始条件相同,则无论何时重复执行该程序,结果都是相同的。
52.程序的并发执行所谓程序的并发性,是指多道程序在同一时间间隔内同时发生。
63.进程的概念及特征(1)进程的概念进程是操作系统中最基本、最重要的概念之一。
进程可以如下定义:进程是程序的一次执行。
进程是可以和别的进程并发执行的计算。
进程就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程。
进程是程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。
进程是动态的,有生命周期的活动。
内核可以创建一个进程,最终将由内核终止该进程使其消亡。
7(2)进程与程序的区别进程和程序是两个完全不同的概念,但又有密切的联系。
8(3)进程的特征进程具有动态性、并发性、独立性、异步性及结构性的特征。
4.进程的状态及转换在操作系统中,进程通常至少有三种基本状态:就绪状态、执行状态和阻塞状态。
910程执行完成或撤消阻塞状态就绪状态进程创建调度用片间时进等待某事件发生如I/O 请求外部事件发生进程的基本状态及转换图完5.Linux进程的状态Linux系统内核在进程控制块中用state成员描述进程当前的状态,并明确定义了5种进程状态。
(完整版)操作系统-进程同步习题答案(22)
D.并发进程在访问共享资源时,不可能出现与时间有关的错误
2.下列资源中,(ACD)是临界资源。
A.打印机 B.非共享的资源
C.共享变量 D.共享缓冲区
3.进程从执行状态转换到阻塞状态的可能原因是(BD ).
A.时间片完B.需要等待其它进程的执行结果
C.执行了V操作D.执行了P操作
B.一个进程处于运行状态,n-1个进程处于等待状态。
C.一个进程处于运行状态,1个进程处于就绪状态,n-2个进程处于等待状态。
D.一个进程处于运行状态,n-1个进程处于就绪状态,没有进程处于等待状态
三、判断正误,错误的简要说明理由
1.一个临界资源可以对应多个临界区。(√)
2.互斥地使用临界资源是通过互斥地进入临界区实现的。(X)
分析在本题中,爸爸、儿子、女儿共用一个盘子,且盘中一次只能放一个水果。当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是苹果,则允许女儿吃,儿子必须等待;若放入果盘中的是桔子,则允许儿子吃,女儿必须等待。本题实际上是生产者-消费者问题的一种变形。这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。
(2)根据所定义的信号量,把应执行的P、V操作填入下述程序中,以保证进程能够正确地并发执行。
COBEGIN PROCESS Pi(i=1,2,…..)
Begin
;
进入售票厅;
购票;
;
退出;
End;
COEND
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
解:
售票厅问题:
(1)定义一信号量S,初始值为20。
A.0 B.1 C.2 D.3
现代操作系统课后答案
现代操作系统课后答案【篇一:现代操作系统习题答案】>(汤小丹编电子工业出版社2008.4)第1章操作系统引论习题及答案1.11 os有哪几大特征?其最基本的特征是什么?答:并发、共享、虚拟和异步四个基本特征,其中最基本的特征是并发和共享。
1.15 处理机管理有哪些主要功能?其主要任务是什么?答案略,见p17。
1.22 (1)微内核操作系统具有哪些优点?它为何能有这些优点?(2)现代操作系统较之传统操作系统又增加了哪些功能和特征?第2章进程的描述与控制习题及答案略第3章进程的同步与通信习题及答案3.9 在生产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?答:资源信号量full表示缓冲区中被占用存储单元的数目,其初值为0,资源信号量empty表示缓冲区中空存储单元的数目,其初值为n,signal(full)在生产者进程中,如果在生产者进程中缺少了signal(full),致使消费者进程一直阻塞等待而无法消费由生产者进程生产的数据;signal(empty)在消费者进程中,如果在消费者进程中缺少了signal(empty),致使生产者进程一直阻塞等待而无法将生产的数据放入缓冲区。
3.13 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。
答:参考答案一:至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用过的两支筷子,从而使更多的哲学家能够进餐。
采用此方案的算法如下:var chopstick:array[0,…,4] of semaphore :=1;room:semphore:=4;repeatwait(room);wait(chopstick[i]);wait(chopstick[(i+1) mod 5]);…eat;…signal(chopstick[i]);signal(chopstick[(i+1) mod 5);signal(room);…think;until false;第4章处理机调度与死锁习题及答案4.1 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?答:略,见p73。
操作系统第二、三章 进程管理习题
第二、三章进程管理习题一、选择题1.从静态角度上看,进程是有A、B、C三部分组成,其中C是进程存在的唯一标志。
当几个进程共享A时,A应当是可重入代码。
A,B,C:(1)JCB;(2)PCB;(3)DCB;(4)FCB;(5)程序段;(6)数据段;(7)I/O缓冲区。
2.进程的三个基本状态是A、B、C。
由A到B是由进程调度所引起;由B到C是正在执行的进程发生了某事件,使之无法执行而暂停。
A,B,C:(1)挂起;(2)阻塞;(3)就绪;(4)执行。
3.产生死锁的四个必要条件是互斥条件、A、不剥夺条件和B。
A:(1)请求和阻塞条件;(2)请求和释放条件;(3)请求和保持(占有且等待)条件;(4)释放和阻塞条件;(5)释放和请求条件。
B:(1)线性增长条件;(2)环路条件;(3)无序释放条件;(4)有序释放条件;(5)无序请求条件。
4.A是一种只能由P和V操作所改变的整型变量,A可用于实现进程的B和C,B是排它性地访问临界资源。
A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型号量。
B,C:(1)同步;(2)通信;(3)调度;(4)互斥。
5.对于记录型信号量,在执行一次P操作时,信号量的值应当A;当其值为B时,进程应阻塞。
在执行V操作时,信号量的值应当C;当其值为D时,应唤醒阻塞队列中的进程。
A,C:(1)不变;(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。
B,D:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于0。
6.我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用A,为照顾紧急作业的用户,应采用B,而能使短作业、长作业及交互作业用户都比较满意时,应采用C。
A,B,C:(1)FCFS调度算法;(2)短作业优先调度算法;(3)时间片轮转法;(4)多级反馈队列调度算法;(5)基于优先权的剥夺调度算法。
二、填空题1. 在单用户单任务环境下,用户独占全机,此时机内资源的状态,只能由运行程序的操作加以改变,此时的程序执行具有性和性。
操作系统习题分析
经典生产者—消费者问题
• 设置信号量
– 公用信号量mutex:保证生产者进程和消费者进程之 间的互斥;初值为1,表示没有进程进入临界区 – 私用信号量avail:生产者进程的私用信号量,表示可 用缓冲区数,初值为n – 私用信号量full:消费者进程的私用信号量,表示产品 数目,初值为 0
生产者进程
各程序内部计算和I/O操作的时间
解:多道程序系统中,在处理机调度程序管理下 各程序状态转换的时间关系图如图2所示。
图2 各程序执行与状态转换的时间关系图 单道系统中,三道程序共运行的时间为:
T=60+2+30+2+40+2+50+2+20+2+50+2+70+2+50+2+40+2+30+2+20+2
输入进程R 打印进程P
缓冲区
3.6 进程同步
例,共享一个缓冲区的合作进程
计算进程PC
缓冲区
打印进程PP
计算进程PC :反复地把每次计算结果放入缓冲区Buf中 打印进程PP :将计算进程每次放入缓冲区Buf中的数据 取出,通过打印机打印输出 缓冲区Buf :一次只可放一个数据
Begin Sc,Sp: semaphore; Sp=0; /*信号量Sp,表示缓冲区Buf 是否存放计算结果*/ Sc=1; /*信号量Sc,表示缓冲区Buf 是否为空*/ Cobegin Pc: While (计算未结束); /*计算进程*/ { 计算; P(Sc); /*缓冲区是否为空?若非空,则等待*/ Buf←计算结果; V(Sp); } Pp: While (打印未完成); /*打印进程*/ { P(Sp); /*缓冲区是否为数据?若无,则等待*/ 从缓冲区Buf取数据; V(Sc); 打印数据; } Coend End
操作系统课后习题答案第1到2章
操作系统课后习题答案第1到2章第一章习题1.什么是计算机系统?计算机系统是怎样构成的?(p.1)计算机系统是一种可以按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。
计算机系统包括硬件子系统和软件子系统。
2.什么是操作系统?请说明操作系统在计算机系统中的作用和地位。
(p.2)操作系统是计算机系统中的一个系统软件,该软件由若干程序模块组成,它的作用是有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便地使用计算机,并使整个计算机系统能高效地运行。
操作系统是计算机系统中的一个极为重要的部分,是系统软件中首要和必不可少的部分。
3.操作系统管理计算机系统的哪些资源?(p.5)操作系统管理计算机系统的硬件资源和软件资源,前者包括中央处理器、内存、外存及其他外部设备、文件和数据;后者包括各种系统软件、支撑软件和应用软件。
4.请从资源管理的角度说明操作系统的主要功能。
(p.5)从资源管理的角度看,操作系统的主要功能是提供一些机制去协调程序间的竞争、对资源进行合理使用、施加保护,以及采取虚拟技术来“扩充”资源等。
5.操作系统有哪些基本特征?(p p.3~4)操作系统的主要特征有以下3各方面:⑴并发性指在计算机系统中同时存在若干个运行着的程序,从宏观上看,这些程序在同时镶嵌推进。
⑵共享性指操作系统程序与多个用户程序共用系统中的各种资源。
⑶随机性操作系统是在一种随机的环境下运行的,操作系统不能对所运行的程序的行为以及硬件设备的情况作出任何事先的假定。
6.请叙述各类操作系统的工作方式及特点。
⑴批处理操作系统的工作方式是用户将作业交给系统操作员,后者在收到作业后成批输入到计算机中,形成一个连续的、自动转接的作业流,系统自动、依次执行每个作业。
最后由操作员将执行完毕的作业结果交给用户。
该操作系统的特点是成批处理,用户不能干预自己作业的远行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.公交车行驶问题
void Driver () { do { 启动开车; 正常行车; 到站停车; } while(TRUE); }
void Conductor () { do { 开车门; 关车门; 卖票; } while(TRUE); }
信号量设置:用两个信号量s1、s2,分别表示可以 开门和可以开车,其初始值都为0。
1.单行隧道问题
分析:解决p2“饥饿”现象的方法:再设一个信号量k,让p1、p2排队,可 以做到p1方向比p2方向晚来的车辆被k阻止。 int c=0,m=1,sd=1,k=1; 问题: cobegin 1. 若P1过隧道,则后续车辆可以跟进; P1() // P2() 2. 若p2过隧道,一次只能过一辆 。 P1() coend P2() { P(k); P(sd); 通过隧道; V(sd); V(k); } { P(k); /* 与P2一起排队 */ P(m); /* m1控制计数器c */ if (c== 0 ) P(sd); /*P1第一辆车通过时占有隧道*/ c=c+1; V(m); V(k); 通过隧道; P(m); c=c-1; if(c==0) V(sd); /*P1最后一辆车通过后释放隧道 */ V(m); }
返回
2.公交车行驶问题
Semaphore s1=0, s2=0;
void Driver () { do { wait (s2); 启动开车; 正常行车; 到站停车; signal (s1); } while(TRUE); } void Conductor () { do { wait (s1); 开车门; 关车门; signal (s2); 卖票; } while(TRUE); }
单行隧道问题再分析
例:单行隧道问题。对一个单行的隧道进行模拟,为了避免 死锁,必须防止汽车同时从两端进入隧道。如果一次只允 许一辆车通过隧道,两个方向按车辆到达的先后顺序依次 通过,请用pv操作设计一个算法实现这个控制。
P1() { 通过隧道; }
P2() { 通过隧道; }
单行隧道问题再分析
分析:解决p2可以过多辆车的方法:按照读者-读者问题处理。即:p1 问题: 为读者,p2为读者,但两个读者不能同时读 。 int若 c1=c2=0,m1=m2=1,sd=1; //c1、c2为计数器,m1、m2 为互斥信 1. P1过隧道,则后续车辆可以跟进,有可能使 p2“ 饥饿” 号量 2. 若 P2过隧道,则后续车辆也可以跟进,有可能使p1“饥饿” cobegin P1() // P2() coend P1() P2() { { P(m1); P(m2); if (c1== 0 ) P(sd); if (c2== 0 ) P(sd); c1=c1+1; c2=c2+1; V(m1); V(m2); 通过隧道; 通过隧道; P(m1); P(m2); c1=c1-1; c2=c2-1; if(c1==0) V(sd); if(c2==0) V(sd); V(m1); V(m2); } }
返回
3. 和尚挑水问题
寺庙里有多个大、小和尚,一水缸。小和
尚取水,大和尚饮水。水缸容积 10 桶水,水取
自同一水井,水井每次只容一个桶取水,桶总
数3个,每次只能一个桶在水缸中入、取水。试
用 P 、 V 操作描述小和尚取水、大和尚饮水的过
程。
3. 和尚挑水问题
void shaveling() { do { 从水井打水; 往缸中放水 }while(TRUE); } void bonze() { do { 从缸中取水; 饮水; }while(TRUE); }
一方向等待的车辆进入隧道行驶。请用PV操作设计一个算
法实现这个控制。
1.单行隧道问题
例:单行隧道问题。对一个单行的隧道进行模拟,为了避免 死锁,必须防止汽车同时从两端进入隧道。如果一次只允 许一辆车通过隧道,两个方向按车辆到达的先后顺序依次 通过,请用pv操作设计一个算法实现这个控制。
P1() { 通过隧道; }
1.单行隧道问题
int countab=0,countba=0; Semaphore s=1, mutexab=1,mutexba=1; void Pab() { do { wait(mutexab);countab++; if (countab==1) then wait(s); signal(mutexab); 从A端驶入,到B端驶出; wait(mutexab); countab- -; if (countab==0) then signal(s) signal(mutexab); } while(TRUE); }
单行隧道问题再分析
假设:问题改为:一旦一辆车进入,则同一方向的车可以立即跟进,隧道最多只能过4辆 问题: 车,如何修改算法? 是p1优先或p2优先的方法。 int 1. c1=c2=0,m1=m2=1,sd=1,k1=4,k2=4 ;//c1、c2为计数器,m1、m2为互斥信号量 cobegin //k1 、 k2为控制各自方向上通过的车辆数 2. p1后续车辆可以跟进, p2 后续车辆也能跟进。 P1() // P2() 3. P1会产生“饥饿”的现象,p2也会产生“饥饿”的现象。 coend
1.单行隧道问题
分析:解决p2可以过多辆车的方法:按照读者-读者问题处理。即:p1 为读者,p2为读者,但两个读者不能同时读 。 int c1=c2=0,m1=m2=1,sd=1; //c1、c2为计数器,m1、m2、sd为互 斥信号量 cobegin P1() // P2() coend P1() P2() { { P(m1); P(m2); if (c1== 0 ) P(sd); if (c2== 0 ) P(sd); c1=c1+1; c2=c2+1; V(m1); V(m2); 通过隧道; 通过隧道; P(m1); P(m2); c1=c1-1; c2=c2-1; if(c1==0) V(sd); if(c2==0) V(sd); V(m1); V(m2); } }
mutex1=mutex2=1;分别代表可以用水井和水缸 empty=10; 水缸的容量 full=0; 水缸中的水量 count=3;水桶个数
4. 哲学家问题
对教程描述的哲学家问题,规定奇数号的哲
学家先拿起他左边的筷子,然后再去拿他右边的筷
子;而偶数号的哲学家则相反。按此规定,用P、
V操作设计一个算法实现这个控制。
进程同步与互斥习题分析
解题步骤: 1. 确定进程的个数及每个进程的工作; 2. 确定关键工作步(需要控制的); 3. 确定信号量表示的含义(开始或结束); 4. 写出伪代码。
1.单行隧道问题
对一个单行的隧道进行模拟,为了避免碰撞,必须
防止汽车同时从两端(A、B端)进入隧道。现要设计一个 自动管理系统,管理规则如下:当隧道中有车辆在行驶时 同方向的车可以驶入隧道,但另一方向的车必须在隧道外 等待;当隧道中无车时,到达 A 端(或 B 端)的车辆可以 进入隧道,但不能从A、B端同时驶入隧道;当某方向在隧 道中行驶的车辆使出了隧道且无车辆进入隧道时,应让另
P2() { 通过隧道; }
1.单行隧道问题
分析:本题涉及两个进程: P1和P2。隧道是一个临界资源 问题: ,一次只能被一辆车占有,可以把它看作互斥问题。 两个方向车辆通过隧道的交换比较平凡,系统效率不高。 设:一个互斥信号量sd=1,表示隧道是否可用。 int sd=1; cobegin P1() // P2() coend
P1() { P(sd); 通过隧道; V(sd); } } P2() { P(sd); 通过隧道; V(sd);
1.单行隧道问题
问题: 分析:为了提高效率,把问题改为:一旦一辆车进入,则同一方向的车 1. 若 P1过隧道,则后续车辆可以跟进; 可以立即跟进。写出用信号量解决此问题的代码,不考虑“饥饿”的 情况。 (按照读者-写者问题处理) 2. 若 p2过隧道,一次只能过一辆; 3个信号量:c表示计数器,m表示对临界资源计数器的控制, sd表 3.设: P1不会产生“饥饿”的现象,而 p2会产生“饥饿”的现象。
示对临界资源隧道的控制,即隧道是否可用。 int c=0,m=1,sd=1; P1() cobegin { P(m); /* m控制计数器c*/ P1() // P2() if (c== 0 ) P(sd); /*p1第一辆车通过时占有隧道*/ coend c=c+1; P2() V(m); { 通过隧道; P(m); P(sd); c=c-1; 通过隧道; if(c==0) V(sd); /*p1最后一辆车通过后释放隧道 */ V(sd); V(m); } }
1.单行隧道问题
void Pab() { do { 从A端驶入,到B端驶出; } while(E); }
void Pba () { do { 从B端驶入,到A端驶出; } while(TRUE); }
计数器:countab、countba分别表示A->B、B->A的车辆数; 信号量:s、mutexab、mutexba;
4. 哲学家问题
semaphore chopstick[5]={1,1,1,1,1}; void philosopher(int i) { do { think(); eat(); } while(true); }
4. 哲学家问题
semaphore chopstick[5]={1,1,1,1,1}; void philosopher(int i) { while(true) { think(); if(i%2 == 0) {//偶数哲学家,先右后左。 wait (chopstick[ i + 1 ] mod 5) ; wait (chopstick[ i]) ; eat(); signal (chopstick[ i + 1 ] mod 5) ; signal (chopstick[ i]) ; } else {//奇数哲学家,先左后右。 wait (chopstick[ i]) ; wait (chopstick[ i + 1 ] mod 5) ; eat(); signal (chopstick[ i]) ; signal (chopstick[ i + 1 ] mod 5) ; } }