《2022年操作系统作业整理 2》由会员分享,可在线阅读,更多相关《2022年操作系统作业整理 2(6页珍藏版)》请在金锄头文库上搜索。
1、1 第二章进程管理6. 试从动态性,并发性和独立性上比较进程和程序? a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。b. 并发性是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。7. 试说明 PCB作用 ?为什么说 PCB是进
2、程存在的唯一标志? a. PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据 ) ,成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。b. 在进程的整个生命周期中,系统总是通过其PCB对进程进行控制, 系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说, PCB是进程存在的唯一标志。18. 同步机构应遵循哪些基本准则?为什么?a. 空闲让进、忙则等待、有限等待、让权等待四条准则b. 为实现进程能互斥地进入到自己的临
3、界区22. 试写出相应的程序来描述图2-17 所示的前驱图。 a. Var a, b, c, d, e, f, g, h; semaphore:= 0, 0, 0, 1, 0, 0, 0, 0; begin parbegin begin S1; signal(a); signal(b); end; begin wait(a); S2; signal(c); signal(d); end; begin wait(b); S3; signal(e); end; begin wait(c); S4; signal(f); end; begin wait(d); S5; signal(g); end;
4、 begin wait(e); S6; signal(h); end; begin wait(f); wait(g); wait(h); S7; end; parend end 7试利用记录型信号量写出一个丌会出现死锁的哲学家迚餐问题的算法. Var chopstick:array0,4 of semaphore; 所有信号量均被初始化为1,第 i 位哲学家的活动可描述为:Repeat Wait(chopsticki); Wait(. chopstick(i+1) mod 5); ,Ea.t ; ,Signal(chopsticki); Signal(chopstick(i+1) mod 5)
5、 ,Think; Until false; 28在测量控制系统中的数据采集仸务,把所采集的数据送一单缓冲区;计算仸务从该单缓冲中叏出数据迚行计算. 试写出利用信号量机制实现两者共享单缓冲的同步算法。答:a. Var mutex, empty, full: semaphore:=1, 1, 0; gather: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 2 begin repeat , gather data in next
6、p; wait(empty); wait(mutex); buffer:=nextp; signal(mutex); signal(full); until false; end compute: begin repeat , wait(full); wait(mutex); nextc:=buffer; signal(mutex); signal(empty); compute data in nextc; until false; end 36. 为什么要在OS中引入线程?在 OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。在 OS中再引入线程,则是为了减少
7、程序在并发执行时所付出的时空开销,使OS具有更好的并发性。38. 从调度性,并发性,拥有资源、系统开销方面对进程和线程比较. a. 调度性。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;b. 并发性。在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;c. 拥有资源。无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,
8、但它可以访问其隶属进程的资源;d. 开销。由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出的开销将显著地大于线程。第三章处理机调度与死锁1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?高级调度的主要任务:用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程,分配必要的资源,然后,再将新创建的进程插入就绪队列上,准备执行。低级调度的主要任务:用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行将处理机分配给该进程的具体操作。引入中级调度的主要目
9、的:是为了提高系统资源的利用率和系统吞吐量。18. 何谓死锁?产生死锁的原因和必要条件是什么?a. 死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;b. 产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;c. 必要条件是 : 互斥,请求和保持条件,不剥夺条件和环路等待条件。20. 请详细说明可通过哪些途径预防死锁? a. 摒弃 请求和保持 条件:系统规定所有进程开始运行之前,都必须一次性地申请其在整个运行过程所需的全部资源,但在分配资源时,只要有一种资源不能满足某进程的要求,即使其它所需的各资源都空闲,也不分配给该进程,而让该进程等待;名师资料总
10、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 3 b. 摒弃 不剥夺 条件:系统规定,进程是逐个地提出对资源的要求的。当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请;c. 摒弃 环路等待 条件:系统将所有资源按类型进行线性排序,并赋予不同的序号,且所有进程对资源的请求必须严格按序号递增的次序提出,这样,在所形成的资源分配图中,不可能再出现环路,因而摒弃了 环
11、路等待 条件。操作系统作业(2011-3-16 ) :1、 有一个报箱为A、B两人共同使用,每次只能装一份报纸。A订阅科技报,B订阅新民晚报 ,投递员 C、D分属科技报社和新民晚报社,试用 P、V操作写出他们的同步执行程序。1、var s,science,night:semaphore:=1,0,0; begin parbegin A: begin while(true) C: begin while(true) wait(science); wait(s); 取科技报 ; 投递科技报 ; signal(s); signal(science); end; end; B: begin while
12、(true) D: begin while(true) wait(night); wait(s); 取新民晚报 ; 投递新民晚报 ; signal(s); signal(night); end; end; parend; end. 第四章存储器管理1. 为什么要配置层次式存储器?a. 设置多个存储器可以使存储器两端的硬件能并行工作。b. 采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。c. 在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。增加CPU中寄存器的数量,也可大大缓解对存储器的压力。3. 何为静态链接?何谓装入时动态链接和运行时动
13、态链接?a. 静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。b. 装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。c. 运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由 OS去找到该模块并将之装入内存,把它链接到调用者模块上。4. 在进行程序链接时,应完成哪些工作
14、? a. 对相对地址进行修改b. 变换外部调用符号6. 为什么要引入动态重定位?如何实现 ? a. 程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。引入重定位的目的就是为了满足程序的这种需要。b. 要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。1、 在分页存储管理系统中,存取一次内存的时间是8us,查询一次快表的时间是1us,缺页中断的时间是20us,
15、假设页表的查询与快表的查询同时进行。当查询页表时,如果该页在内存但快表中没有页表项,系统将自动把该页页表项送入快表。(1)求对某一数据进行一次存取可能需要的时间?(2)现连续对同一页面上的数据进行4 次连续读取,求每次读取数据可能需要的时间? 参考答案 :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 4 (1) 当系统对数据进行存取时,有3 种可能性: 所存取的数据的页面在内存,其页表项已经存储到快表,此时存取数据的时间是:查
16、询快表的时间+存取内存数据的时间=1us+8us= 9us 所存取的数据的页面在内存,但是其页表项没有存储到快表,没有命中快表,此时存取数据的时间是:查询页表的时间+存取内存数据的时间 =8us+8us= 16us 所存取的数据的页面不在内存,发生缺页中断,此时存取数据的时间是:查询页表的时间+缺页中断的时间 +查询页表的时间+存取内存数据的时间=8us+20us+8us+8us = 44us (2) 当对某一数据进行4 次连续读取时: 第 1 次可能的时间为:1us+8us= 9us ;8us+8us= 16us ;8us+20us+8us+8us=44us。 第 2 次时,对应页面的页表项
17、已经交换到快表中。因为存取是连续的,不存在页面被淘汰的可能性,所以第2 次、第 3 次、第 4 次的存取时间是一样的,消耗的时间为1us+8us= 9us 。1、 假定某采用页式存储管理系统中,主存容量为1MB ,被分成 256 块,块号为0,1,2,,255。现有一个共4 页(页号为0,1,2,3)的作业被依次装入到主存的第2,4,1,5 块中。请回答:(1)主存地址应该用多少位来表示?(2)作业每一页的长度为多少字节?逻辑地址中的页内地址部分应占用多少位?(3)画出页表并给出作业中每一页占用的主存块起始地址。(4)若作业执行中要从第0 页的第 75 单元和第 3 页的第 548 单元读信息
18、,那么,实际应从主存的哪两个单元读信息?请把应访问的主存绝对地址用十六进制数表示。 参考答案 (1)主存地址应该用20 位来表示。(2)作业每一页的长度应为2 12 =4096 个字节,逻辑地址中的页内地址部分应占用12 位。(3)作业中每一页占用主存块的起始地址为:页号块号起始地址 0 2 8K 1 4 16K 2 1 4K 3 5 20K (4)若作业执行中要从第0 页的第 75 单元读信息,则实际应从主存的第2 块第 75 单元读,应访问的主存绝对地址用十六进制数表示为0204BH 。若要从第 3 页的第 548 单元读信息, 则实际应从主存的第5 块第 548单元读, 应访问的主存绝对
19、地址用十六进制数表示为:05224H。2、 兄弟俩共用一个账号,他们都可以用该账号到任何一家联网的银行自动存款或取款。假定银行的服务系统由“存款”和“取款”两个并发进程组成,且规定每次的存款额和取款额总是为100 元。请回答下列问题:(1)请估计该系统工作时会出现怎样的错误?为什么?(2)若哥哥先存了两次钱,但在第三次存钱时弟弟却正在取钱,则该账号上可能出现的余额为多少?正确的余额应该为多少?(3)为保证系统的安全,若用PV操作来管理,应怎样定义信号量及其初值?解释信号量的作用。(4)在程序的适当位置加上P操作和 V操作,使其能正确工作。 参考答案 (1)系统工作时会出现与时间有关的错误,这是
20、因为并发进程中没有对共享变量amount 的使用加以限制,进程交叉访问amount 时就会出错。(2)账号上可能出现的余额为100 元或 200 元或 300 元,正确的余额应该为200元(3)用 PV操作管理时可定义一个信号量S,S 的初值为 1,信号量 S 用于限制进程互斥地进入相关临界区执行。(4)使用 PV操作管理后能保证正确并发执行的进程结构如下:begin amount:integer; s:semaphore; amount:=0; s:=1; cobegin| Process SAVE m1:integer; begin P(S); 名师资料总结 - - -精品资料欢迎下载 -
21、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 5 m1:=amount; m1:=m1+100; amount:=m1; V(S) end; Process TAKE m2:integer; begin P(S); m2:=amount; m2:=m2-100; amount:=m2; V(S) end; coend: end; 3、 有一仓库,可存放A和 B两种产品,每次入库时只能存入A或 B一种产品,每次出库时只能取出A或 B一种产品。现要求:(1) -30A 产品
22、数量 -B 产品数量 40 (2) A 产品数量 +B产品数量 200 试用 P、V操作描述产品的入库过程和出库过程。 参考答案 main() Semaphore empty=199; /A+B200 Semaphore full=0; Semaphore mutex=1; Semaphore AB=39; /A-B40 Semaphore BA=29; /B-A30 Cobegin InLib(); OutLib(); Coend 入库过程 InLib(): 出库过程 OutLib() : while( 有产品入库 ) while(有产品出库 ) if(产品为 A) if(产品为 A) P(
23、empty); P(full) P(AB) P(BA) P(mutex) P(mutex) A产品入库 A产品出库 V(mutex) V(mutex) V(BA) V(AB) V(full); V(empty) else else P(empty); P(full); P(BA) P(AB); P(mutex) P(mutex) B产品入库 B产品出库 V(mutex) V(mutex) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - -
24、- - 6 V(AB) V(BA) V(full); V(empty) 操作系统作业(2011-05-05 ) :1.考虑一个 500 字的程序的下述内存访问序列:10,11,104,170,73,309,185,245,246,434,458,364。假定采用页式虚拟内存管理,页面大小为100 字,内存中有2 个物理页面供程序使用,且在开始时物理页面没有被任何进程占用。(1)若采用 FIFO 页面置换算法,求出有关该访问序列的缺页中断次数和缺页率。(2)若采用 LRU页面置换算法,求出有关该访问序列的缺页中断次数和缺页率。参考答案:页面大小为100 字,所以访问序列所在的页面为:1,1,2,
25、2,1,4,2,3,3,5,5,4 (1)FIFO:缺页中断次数:6 次,缺页中断率:50% (2)LRU :缺页中断次数:7 次,缺页中断率:58.3% 2.通道是一种特殊的_A_(3)_,具有 _B_(1)_功能。主机的CPU与通道可以并行工作,并通过_C_(3)_实现彼此之间的通信和同步。A: (1)I/0设备(2)设备控制器(3)处理机(4)I/0控制器B: (1)执行 I/O 指令集(2)执行 CPU 指令集(3)传输 I/O 命令(4)运行 I/O 进程C: (1)I/0指令(2)I/0中断(3)I/0指令和 I/0中断(4)操作员3.磁盘属于 _A_ (3)_,其信息的存取是以_
26、B_(4)_为单位的;磁盘的I/O 控制主要采取 _C_ (3)_方式,打印机的I/O 控制主要采取 _D_(2)_方式。A: (1)字符设备(2)独占设备(3)块设备(4)虚拟设备B: (1)位(2)字节(3)帧(4)固定长数据块C,D: (1)程序 I/O 方式(2)程序中断(3)DMA (4)SPOOLing 4.4、SPOOLing系统由哪几部分组成?以打印机为例说明如何利用SPOOLing技术实现多个进程对打印机的共享?(略)5、设某磁盘有200 个柱面,编号为0,1,2,,,199,磁头刚从140 磁道移到 143 磁道完成了读写。若某时刻有9 个磁盘请求分别对如下各磁道进行读写: 86,147,91,177,94,150,102,175,130 试分别求 FCFS 、SSTF及 SCAN 磁盘调度算法响应请求的次序及磁头移动的总距离。参考答案:FCFS :565 SSTF :162 SCAN:125 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -