《操作系统原理离线作业.pdf》由会员分享,可在线阅读,更多相关《操作系统原理离线作业.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、浙江大学远程教育学院操作系统原理课程作业操作系统原理课程作业姓名:姓名:年级:年级:学学号:号:学习中心:学习中心:一、单选题1.进程 P0 和 P1 的共享变量定义及其初值为boolean flag2;int turn=0;flag0=FALSE;flag1=FALSE;若进程 P0 和 P1 访问临界资源的类C 代码实现如下:void P0() /P0进程 while(TURE)flag0=TRUE; turn = 1;while (flag1 & turn = 1) ;临界区;flag0 = FALSE;void P1()/P1进程 while(TURE)flag1=TRUE; turn
2、 = 0;while (flag0 & turn = 0) ;临界区;flag1 = FALSE;则并发执行进程 P0 和 P1 时产生的情况是:A不能保证进程互斥进入临界区、会出现“饥饿”现象B不能保证进程互斥进入临界区、不会出现“饥饿”现象C能保证进程互斥进入临界区、会出现“饥饿”现象D能保证进程互斥进入临界区、不会出现“饥饿”现象2.有两个进程 P1 和 P2 描述如下:shared data:int counter = 6;P1 :Computing;counter=counter+1;P2 :Printing;counter=counter-2;两个进程并发执行,运行完成后,coun
3、ter 的值不可能为。A. 4B. 5C. 6D. 73.某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为 210字节,页表项大小为 2 字节,逻辑地址结构为:页目录号页号页内偏移量逻辑地址空间大小为 216页,则表示整个逻辑地址空间的页目录表中包含表项的个数至少是A64B128C256D5124.在动态分区系统中,有如下空闲块:空闲块块大小(KB)块的基址18060275150355250490350此时,某进程 P 请求 50KB 内存,系统从第 1 个空闲块开始查找,结果把第4 个空闲块分配给了 P 进程 ,请问是用哪一种分区分配算法实现这一方案?A. 首次适应B. 最佳适应
4、C. 最差适应D. 下次适应5.在一页式存储管理系统中,页表内容如下所示。页号帧号021128若页大小为 1K,逻辑地址的页号为 2,页内地址为 451,转换成的物理地址为A. 8643B.8192C.2048D.24996.采用段式存储管理的系统中,若地址用32 位表示,其中20 位表示段号,则允许每段的最大长度是A 224B.212C.210D.2327.在一段式存储管理系统中,某段表的内容如下:段号段首址段长0100K35K1560K20K2260K15K3670K32K若逻辑地址为(2, 158),则它对应的物理地址为_。A. 100K+158B. 260K+158C. 560K+15
5、8D. 670K+1588.一个分段存储管理系统中,地址长度为32 位,其中段长占 8 位,则最大段长是A. 28字节B. 216字节C. 224字节D. 232字节9.有一请求分页式存储管理系统, 页面大小为每页 100 字节,有一个 5050 的整型数组按行为主序连续存放,每个整数占两个字节,将数组初始化为0 的程序描述如下:int A5050;for (int i = 0; i 50; i+)for (int j = 0; j 50; j+)Ai,j = 0;若在程执行时内存只有一个存储块用来存放数组信息,试问该程序执行时产生次缺页中断。A1B.50C.100D. 250010.一台计算
6、机有 4 个页框,装入时间、上次引用时间、和每个页的访问位R 和修改位 M,如下所示:页装入时间上次引用时间RM012627900123026010212027211316028011采用 FIFO 算法将淘汰页;A. 0B. 1C. 2D. 311.一台计算机有 4 个页框,装入时间、上次引用时间、和每个页的访问位R 和修改位 M,如下所示:页装入时间上次引用时间RM012627900123026010212027211316028011采用 NRU 算法将淘汰页;A. 0B. 1C. 2D. 312.一台计算机有 4 个页框,装入时间、上次引用时间、和每个页的访问位R 和修改位 M,如下所
7、示:页装入时间上次引用时间RM012627900123026010212027211316028011采用 LRU 算法将淘汰页;A. 0B. 1C. 2D. 313.一台计算机有 4 个页框,装入时间、上次引用时间、和每个页的访问位R 和修改位 M,如下所示:页装入时间上次引用时间RM012627900123026010212027211316028011采用第二次机会算法将淘汰_页;A. 0B. 1C. 2D. 3二、综合题1.4 在所列的两种设置中,哪些功能需要操作系统提供支持? (a)手持设备(b)实时系统。a. 批处理程序b. 虚拟存储器c. 分时1.17 列出下列操作系统的基本特点
8、:a.批处理 b.交互式 c.分时 d.实时 e.网络 f.并行式 g.分布式 h.集群式 i.手持式2.3 讨论向操作系统传递参数的三个主要的方法。2.12 采用微内核方法来设计系统的主要优点是什么?在微内核中如何使客户程序和系统服务相互作用?微内核方法的缺点是什么?3.2 问:描述一下内核在两个进程间进行上下文功换的动作.3.4 如下所示的程序,说明LINE A可能会输出什么?#include #include #include int value=8;int main()pid_t pid;/* fork a child process */pid = fork();if (pid =
9、0) /* child process */value +=15;else /* parent process */* parent will wait for the child to complete */wait(NULL);printf( Parent :value= %dn,value);/*LINE A*/exit(0);4.4 在多线程程序中,以下哪些程序状态组成是被线程共享的?a.寄存值b.堆内存c.全局变量d.栈内存4.7 由图 4.11 给出的程序使用了 Pthread 的应用程序编程接口(API) ,在程序的第 c 行和第p 行分别会输出什么?#include #incl
10、ude int value=0;void*runner(void *param); /* the thread */int main(int argc, char *argv)int pid;pthread_t tid;pthread_attr_t attr;pid = fork();if (pid = 0)/* child process */pthread_attr_init(&attr);pthread_create(&tid, &attr, runner, NULL);pthread_join(tid, NULL);printf(“CHILD: value = %d”, value);
11、 /* LINE C*/else if (pid 0) /* parent process */wait(NULL);printf(“PARENT: value = %d”, value); /* LINE P */void *runner(void *param) value=10;pthread_exit(0);5.4 考虑下列进程集,进程占用的CPU 区间长度以毫秒来计算:进程区间时间优先级P1103P211P323P414P552假设在时刻 0 以进程 P1,P2,P3,P4,P5的顺序到达。a.画出 4 个 Gantt 图分别演示用 FCFS、SJF、非抢占优先级(数字小代表优先级高
12、)和RR(时间片1)算法调度时进程的执行过程。b.每个进程在每种调度算法下的周转时间是多少?c.每个进程在每种调度算法下的等待时间是多少?d.哪一种调度算法的平均等待时间对所有进程而言最小?5.5 下面哪些算法会引起饥饿a.先来先服务b.最短作业优先调度c.轮转法调度d.优先级调度5.7 考虑一个运行 10 个 I/O 约束(型)任务和一个CPU 约束(型)任务的系统。假设,I/O约束任务每进行1 毫秒的CPU 计算发射一次I/O 操作, 但每个 I/O 操作的完成需要 10 毫秒。同时,假设上下文切换要0.1 毫秒,所有的进程都是长进程。对一个RR 调度来说,以下情况时 CPU 的利用率是多
13、少:a.时间片是 1 毫秒b.时间片是 10 毫秒6.01 在生产者和消费者问题中,信号量 mutex,empty,full 的作用是什么?如果对调生产者进程中的两个 wait 操作和两个 signal 操作,则可能发生什么情况?6.02 一组合作进程,执行顺序如下图如下图。请用 wait、signal 操作实现进程间的同步操作。P2P4P6P1P5P3各进程的执行顺序各进程的执行顺序6.03 在生产者和消费者问题中,多个生产者进程( Producer Process)和多个消费者进程(Consumer Process) 共享一个大小为 8 的缓冲区, 他们的信号量和共享变量设置如下:int
14、nextc=0, nextp=0, buf8;semaphore full; empty; mutex;生产者进程和消费者进程问题的算法描述如下:Producer Process:Consumer Process:int itemp;int itemc;while(1)while(1)1itemp = rand(); / Generate a number1wait(full);2wait(empty);2wait(mutex);3wait(mutex);3itemc=bufnextc;4bufnextp=itemp;4nextc=(nextc+1)%8;5nextp=(nextp+1)%8;
15、5signal(mutex);6signal(mutex);6signal(empty);7signal(full);7cout itemc endl;(1)生产者进程和消费者进程的临界区是哪些?(2)信号量full、empty和mutex的初值是多少?(3)如果对调生产者进程中的两个P操作即第2行和第3行,以及对调消费者进程中的两个P操作即第1行和第2行,如下所示。可能发生什么情况?Producer ProcessConsumer Process1 itemp = rand(); / Generate a number1 wait(mutex);2 wait(mutex);2 wait(fu
16、ll);3 wait(empty);3 itemc=bufnextc;(4)上面的生产者和消费者同步算法有一个缺点,在有空缓冲区时,当消费者进程正在临界区时,生产者进程必须等待, 反之亦然。您如何可以解决这个问题, 以提高生产者和消费者进程之间并发?写出新的生产者进程和消费者进程的同步算法。6.04 有 2 个合作的进程 P1、P2 。他们从一台输入设备读入数据, P1 进程读入数据 a,P2 进程读入数据 b。输入设备是一台独享设备 。两个进程做如下计算:P1:P1:x = a + bx = a + bP2:P2:y = a * by = a * b计算完成后结果的x、y由进程P1输出。用信
17、号量实现P1、P2同步算法。P1输出设备Input(a)P2Input(b)7.1 假设有如下图所示的交通死锁情况:(1) 说明产生死锁的 4 个必要条件在此处成立。(2) 给出一个避免死锁的简单规则。输入设备输入设备7.11 设有一系统在某时刻的资源分配情况如下:进程号已分配资源最大请求资源剩余资源A B C DA B C DA B C DP00 0 1 20 0 1 21 5 2 0P11 0 0 01 7 5 0P21 3 5 42 3 5 6P30 6 3 20 6 5 2P40 0 1 40 6 5 6请问:(1)系统中各进程尚需资源数各是多少?(2)当前系统安全吗?(3)如果此时进
18、程 P1 提出资源请求(0,4,2,0) ,系统能分配给它吗?8.3 某系统有五个固定分区,其长度依次为100K, 500K, 200K, 300K, 600K。今有四个进程,对内存的需求分别是 212K, 417K, 112K, 426K。当分别用 First-fit, Best-fit, Worst-fit 算法响应这四个进程的内存申请时, 请分别给出系统的内存分配动态。 哪种算法最有效?8.5 对下列问题,试比较连续内存分配方案、纯段式分配方案、纯页式分配方案中的内存组织方法:a. 外部碎片b. 内部碎片c. 共享跨进程代码的能力8.9 考虑一个分页式存储管理系统,其页表常驻内存。(1)
19、如果内存访问耗时200 ns,那么,访问内存中的数据需要多长时间?(2)如果引入联想寄存器,而且75%的页面可以从关联寄存器中找到,那么,此时的有效访问时间为多少?(假设访问关联寄存器的时间可以忽略)8.12 假设有下列段表:段 基地址 段长度02196001230014290100313275804195296下列逻辑地址对应的物理地址是什么?(1) 0,430(2)1,10(3)2,500(4)3,400(5)4,1129.5 假设一个“按需调页”虚拟存储空间,页表由寄存器保存。在存在空闲页帧的条件下,处理一次缺页的时间是 8 毫秒。如果没有空闲页面,但待换出页面并未更改,处理一次缺页的时
20、间也是 8 毫秒。如果待换出页面已被更改, 则需要 20 毫秒。访问一次内存的时间是 100 纳秒。假设70的待换出页面已被更改,请问缺页率不超过多少,才能保证有效访问时间小于或等于200 纳秒?9.10 对一个请求调页系统测得如下数据:CPU利用率20%用作页面交换的磁盘的利用率97.7%其它I/O设备利用率5%下列措施中,哪些会改善CPU利用率(如果有的话),请说明理由:(1)安装一个更快的CPU(2)安装一个更大容量的磁盘用作页面交换(3)增加并发进程数(4)减少并发进程数(5)安装更多内存(6)安装更快的硬盘,或安装更多的硬盘和控制器(7)增加一个预取页面算法(8)增加页面长度9.14
21、 一页式虚拟存储系统,用于页面交换的磁盘的平均访问、传输时间是20 毫秒。页表保存在主存,访问时间 1 微秒。也就是说,每引用一次指令或数据,需要访问两次内存。为改善性能,我们可以增设一个关联寄存器。如果页表项在关联寄存器里,则只要访问一次内存就够了。 假设 80的访问, 其页表项在关联寄存器中; 剩下的 20里, 10的访问(即总数的 2)会产生缺页。请计算有效访问时间。9.01 在某请求分页管理系统中,一个作业共5 页,作业执行时依次访问如下页面: 1,4,3,1,2,5,1,4,2,1,4,5,若分配给该作业的主存块数为3,分别采用FIFO、LRU,试求出缺页中断的次数及缺页率。(要求画
22、出页面置换情况表)10.1 假设有一个文件系统,它里面的文件被删除后,当连接到该文件的链接依然存在时,文件的磁盘空间会再度被利用。 如果一个新的文件被创建在同一个存储区域或具有同样的绝对路径名,这会产生什么问题?如何才能避免这些问题?10.9 有些系统文件提供文件共享时候只保留文件的一个拷贝,而另外的一个系统则是保留多个拷贝,对共享文件的每一个用户提供一个拷贝,论述这种方法的相对优点。11.6 假设一个在磁盘上的文件系统, 其中逻辑块和物理块大小为512 字节。 假定每个文件的信息已经在内存中,对于三种分配策略中的每一种(连续、链接、索引) ,请回答下面这些问题。(1)说明在这个系统中是如何实
23、现从逻辑地址到物理地址映射的?(对于索引分配,假设文件的长度总是小于 512 块) 。(2)如果当前位于逻辑块10(即最后一次访问的逻辑块是10) ,且希望访问逻辑块4,必须从磁盘上读多少个物理块?11.01 考虑一个含有 100 块的文件。假如文件控制块(和索引块,当用索引分配时)已经在内存中。当使用连续、链接、单级索引分配策略时,各需要多少次磁盘I/O 操作?假设在连续分配时,在开始部分没有扩张的空间, 但在结尾部分有扩张空间, 并且假设被增加块的信息已在内存中:(1)在开始增加一块。(2)在中间增加一块。(3)在末端增加一块。(4)在开始删除一块。(5)在中间删除一块。(6)在末端删除一
24、块。11.02 有一磁盘组共有 10 个盘面,每个盘面上有 100 个磁道,每个磁道有 16 个扇区。假设分配以扇区为单位。(1)若使用位示图管理磁盘空间,问位示图需要占用多少空间?(2)若空白文件目录的每个表目占用5 个字节,问什么时候空白文件目录大于位示图?12.2假设一个磁盘驱动器有 5000 个柱面,从 0 到 4999,驱动器正在为柱面 143 的一个请求提供服务,且前面的一个服务请求是在柱面125。按 FIFO 顺序,即将到来的请求队列是86,1470,913,1774,948,1509,1022,1750,130从现在磁头位置开始, 按照下面的磁盘调度算法, 要满足队列中即将到来
25、的请求要求磁头总的移动距离(按柱面数计)是多少?a. FCFSb. SSTFc. SCANd. LOOKe. C-SCAN12.14 MTBF(平均无故障时间)是硬盘可靠性的一个指标。虽然这个指标被称作“时间”,但实际上 MTBF 通常是以设备的正常工作小时数度量的。(1)如果一个系统包含 1000 个磁盘驱动器, 每个驱动器的 MTBF 是 750000 小时, 下面的描述中哪一个最符合该系统发生一次磁盘故障的时间:每 1000 年,每世纪,每十年,每个月,每个星期,每天,每小时,每分钟,每秒钟?(2)统计表明,一个 20 到 21 岁的美国公民平均死亡率为千分之一,由此推论 20 岁的MT
26、BF 时间(单位由小时转换为年) ,对于一个20 岁的人来说,MTBF 给出期望的寿命是多大?(3)某类磁盘驱动器,生产商保证的 MTBF 为 1 百万小时 你能推算出它们的保质期是多少年吗?12.01 假设计算机系统采用 CSCAN(循环扫描)磁盘调度策略,使用2KB 的内存空间记录16384 个磁盘块的空闲状态。(1) 请说明在上述条件下如何进行磁盘块空闲状态管理。(2) 设某单面磁盘旋转速度为每分钟6000 转。每个磁道有 100 个扇区,相邻磁道间的平均移动时间为 1ms。若在某时刻,磁头位于 100 号磁道处,并沿着磁道号增大的方向移动(如下图所示) ,磁道号请求队列为50、90、3
27、0、120,对请求队列中的每个磁道需读取 1 个随机分布的扇区,则读完这4 个扇区总共需要多少时间?要求给出计算过程。(3) 如果将磁盘替换为随机访问的Flash 半导体存储器 (如 U 盘、 SSD 等) , 是否有比 CSACN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。13.3 考虑单用户 PC 机上的下列 I/O 操作:(1)图形用户界面下使用鼠标(2)在多任务操作系统下的磁带驱动器(假设没有设备预分配)(3)包含用户文件的磁盘驱动器(4)使用存储器映射 I/O,直接和总线相连的图形卡在操作系统中使用缓冲技术,假脱机技术,Cache 技术,或者它们的组合来实现上述操作。实现时使用轮询 I/O 还是中断 I/O?为什么?13.01 驱动程序是什么?为什么要有设备驱动程序?用户进程怎样使用驱动程序?