1一章作业---操作系统引论1。什么是操作系统?其主要功能是什么?2。在某个计算机系统中,有一台输入机和一台打印机,现有两道程序投入运行,程序A、B同时运行,A略早于B。A的运行轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。B的运行轨迹为:计算50ms、输入80ms、再计算100ms,结束。试说明:(1)两道程序运行时,CPU是否空闲等待?若是,在那段时间段等待?(2)程序A、B是否有等待CPU的情况?若有,指出发生等待的时刻。简答:(1)存在空闲等待,时间为100ms~150ms之间(2)A无等待,但B有等待,B等待时间段为180ms~200ms第二章作业—进程和线程1.设公共汽车上,司机和售票员的活动如下:司机的活动:启动车辆;正常行车;到站停车。售票员的活动:关车门;售票;开车门。在汽车不断的到站、停车、行驶过程中,用信号量和P、V操作实现这两个活动的同步关系。答:semaphores1,s2;s1=0;s2=0;cobegin司机();售票员();coendprocess司机(){while(true){P(s1);启动车辆;正常行车;到站停车;V(s2);}}process售票员(){while(true){关车门;V(s1);售票;2P(s2);开车门;上下乘客;}}2.设有三个进程P、Q、R共享一个缓冲区,该缓冲区一次只能存放一个数据,P进程负责循环地从磁带机读入数据并放入缓冲区,Q进程负责循环地从缓冲区取出P进程放入的数据进行加工处理,并把结果放入缓冲区,R进程负责循环地从缓冲区读出Q进程放入的数据并在打印机上打印。请用信号量和P、V操作,写出能够正确执行的程序。答:semaphoresp,sq,sr;intbuf;sp=1;sq=0;sr=0;cobeginprocessP(){while(true){从磁带读入数据;P(sp);Buf=data;V(sq);}}processQ(){while(true){P(sq);data=buf;加工data;buf=data;V(sr);}}processR(){while(true){P(sr);data=buf;V(sp);打印数据;}}3coend.3.简述计数信号量的值与资源使用情况的关系。第三章作业—-死锁1.假定某计算机系统有R1、R2两类可再用资源(其中R1有两个单位,R2有一个单位),它们被进程P1、P2所共享,且已知两个进程均以下列顺序使用两类资源:→申请R1→申请R2→申请R1→释放R1→释放R2→释放R1→试求出系统运行过程中可能到达的死锁点,并画出死锁点的资源分配图。答:,两个进程都执行完第一步,系统进入不安全状态。这个无论哪个进程执行完第二步,死锁都会发生。可能到达的死锁点:进程P1占有一个R1、一个R2,进程P2占有一个R1。或者相反。就形成死锁。(略死锁点的资源分配图)2.系统有同类资源m个,被n个进程共享,问:当mn和m≤n时,每个进程最多可以请求多少个这类资源,使系统一定不会发生死锁?答:m≤n时,每个进程最多请求1个这类资源时不会死锁;当mn时,如果m/n商为k,余数为t:若t为0,每个进程最多请求k个,若t不为0,每个进程最多请求k+1个,则系统不会发生死锁。3.设当前的系统状态如下,此时Available=(1,1,2).进程MaxAllocationR1R2R3R1R2R3P1322100P2613511P3314211P4422002(1)、计算各个进程还需要的资源数(2)、系统是否处于安全状态?为什么?(3)、进程P2发出请求向量request2=(1,0,1),系统能把资源分配给它吗?(4)、若在进程P2申请资源后,P1发出请求向量request1=(1,0,1),系统能把资源分配给它吗?(5)、若在进程P1申请资源后,P3发出请求向量request3=(0,0,1),系统能把资源分配给它吗?答:(1)进程剩余需求P1(2,2,2)P2(1,0,2)P3(1,0,3)P4(4,2,0)(2)安全。存在安全序列:P2→P1→P3→P4(3)可以分配。存在安全序列::P2→P1→P3→P44(4)不可分配,资源不足。(5)不可分配,不安全。第四章作业---调度1.有5个批处理作业A~E均已到达计算中心,其运行时间分别为2min、4min、6min、8min、10min。若采用时间片轮转算法,时间片为2min,计算出平均作业周转时间。答:作业执行时间等待时间周转时间A202B4812C61420D81826E102030平均周转时间=(2+12+20+26+30)/5=18min2.若有如下表所示的4个作业进入系统,分别计算在FCFS、SJF、HRRF算法下平均周转时间和平均带权周转时间。作业提交时间估计运行时间/min18:0012028:505039:001049:5020简答:算法平均周转时间平均带权周转时间FCFS112.54.975SJF953.25HRRF102.53.7753.多道批处理系统中有一台处理器和两台外部设备(I1和I2),用户存储空间为100MB。已知系统的作业调度及进程调度采用可抢占的高优先级调度算法(优先数越大优先级别越高),主存采用不可移动的可变分区分配策略,设备分配遵循动态分配原则。现有4个作业同时提交给系统,如下表所示。求作业的平均周转时间。作业名优先数运行时间及顺序/min主存需求/MBA7CPU:1I1:2I2:250B3CPU:3I1:110C9CPU:2I1:3CPU:260D4CPU:4I1:1205简答:A的周转时间=12B的周转时间=13C的周转时间=7D的周转时间=11平均周转时间=10.75分钟第五章作业---存储管理1.在动态分区存储管理下,按地址排列的主存空闲区为:10KB,4KB,20KB,18KB,7KB,9KB,12KB,15KB。对于下列连续存储区的请求:(1)12KB,10KB,9KB;(2)12KB,10KB,15KB,18KB。试问:使用最先适应算法、最佳适应算法、循环适应算法,哪个空闲区将被使用?答:(1)算法使用的空闲区(数字为区号)最先适应算法3-1-4最佳适应算法7-1-6循环适应算法3-4-6(2)算法使用的空闲区(数字为区号)最先适应算法3-1-4最佳适应算法7-1-8-4循环适应算法3-4-82.一个32位计算机系统使用二级页表,虚地址被分为9位顶级页表、11位二级页表和页内偏移。试问:页面长度是多少?虚地址空间共有多少个页面?答:页面大小4KB,页面个数2203。某计算机系统提供24位虚存空间,主存空间为218Byte,采用请求分页虚拟存储管理,页面尺寸为1KB。假定应用程序产生虚拟地址11123456(八进制),而此页面分得的块号为100(八进制),说明此系统如何产生相应的物理地址并写出物理地址。简答:八进制:2014564。某分段管理采用如下段表:段号段长内存起始地址0380951205252105330036608604501800将虚地址(0,260)、(2,200)、(4,42)转换为物理地址。简答:6(0,260)物理地址:355(2,200)物理地址:越界(4,42)物理地址:18425。一个有快表的页式虚拟存储系统,设主存访问周期为1ㅥs,内外存传送一个页面的平均时间为5ms。如果快表的命中率为75%,缺页中断率为10%,忽略快表的访问时间,试求主存的有效存取时间。答:1*75%+2*15%+(5000+2)*10%=501.25微秒6。设程序大小为460个字,考虑如下访问序列:55,20,108,180,79,310,170,255,246,433,458,369(1)设页面大小为100个字,试给出访问序列页面走向。(2)假设程序可用主存为200字,采用FIFO,LRU,OPT淘汰算法,求出缺页中断率。简答:(1)001103122443(2)FIFO:50%LRU:58%OPT:41%第六章作业---文件系统1。若两个用户共享一个文件系统,用户甲使用文件A、B、C、D、E,用户乙要使用文件A、D、E、F。已知用户甲的文件A与用户乙的文件A实际不是同一个文件,用户甲、乙的文件D和E是同一个文件。试设计一个文件系统组织方案,使得甲乙能共享此文件系统而又不致造成混乱。答:2。设有一个UNIX/LINUX文件,如果一个盘块大小为1KB,每个盘块号占用4Byte,那么,若进程欲访问偏移量263168Byte处的数据,需要经过几次间接寻址?答:逻辑块号从0开始编号263168/1024=257该数据的逻辑块号为257,偏移为01024/4=256一个盘块可存放256个索引项unix/linu文件系统中,前10块为直接寻址,一次间接寻址256块,25710+256故需要一次间接寻址,就可读出该数据,如果要求读入从文件首到263168Byte处的数据(包括这个数据),读出过程:首先根据直接寻址读出前10块;读出一次间接索引指示的索引块1块;将索引下标从0~247对应的数据块全部读入。即可。共读盘块数10+1+248=259块3。某文件系统采用索引文件结构,设文件索引表的每个表目占用3Byte,存放盘块的块号,盘块的大小为512Byte。此文件系统采用直接、一次间接、二次间接索引所能管理的最大磁盘空间是多少?简答:直接:85KB一次间接:7255KB二次间接:2456500KB4。设某文件为链接文件,由5个逻辑记录组成,每个逻辑记录的大小与磁盘块大小相等,均为512Byte,并依次存放在50、121、75、80、63号磁盘块上。如要访问文件的第1569逻辑字节处的信息,要访问哪一个磁盘块?7答:1569/152商为3,余数为33该字节对应的逻辑块号为3(从0开始编号),位于该块偏移33处。因此访问第80块盘块。如果要读入该字节,则需从链首开始,逐块读入,直到第80块。所以总的读盘块次数为4次。第七章作业---输入/输出管理1.磁盘有200个磁道,编号0~199。现有请求队列:8,18,27,129,110,186,78,147,41,10,64,12。试用下面算法计算处理所有请求所移动的总柱面数。假设磁头的当前位置在磁道100。(1)FCFS(2)SSTF(3)SCAN,磁头当前正在按升序方向移动(4)电梯算法,磁头当前正在按升序方向移动。简答:(1)FCFS:728(2)SSTF:264(3)SCAN:290(4)电梯算法:2642.某磁盘共有200个柱面,每个柱面20个磁道,每个磁道有8个扇区,每个扇区为1024字节,每个扇区为一块。如果驱动程序接到的访问请求是读出编号为606的块(首块编号0),计算此信息块的物理位置。答:磁道从0开始编号,磁头从0开始编号,扇区从0开始编号。每个柱面的块数:20*8=160块606/160商为3,余数为126。则柱面号为3每个柱面中每个磁头对应8块,126/8商15,余数6,则磁头号为15,扇区号为6.因此606块对应物理位置(柱面号,磁头号,扇区号)为(3,15,6).3.某操作系统采用单缓冲技术传送磁盘数据。设从磁盘传送一块数据到缓冲区的时间为T1,将缓冲区的一块数据传送到用户区的时间为T2,CPU处理这一块数据的时间为T3。系统处理大量数据时,一块数据的处理时间是多少?简答:MAX(T1,T3)+T24.简述SPOOLING系统工作原理。