操作系统作业_第1页
操作系统作业_第2页
操作系统作业_第3页
操作系统作业_第4页
操作系统作业_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一次作业书上的作业操作系统的两个主要目标長什么答:(1)为计算机用户提供一个环境让用户可以方便地在计算机硬件上执行程序(2)以公平有效的方式分配计算机的资源用于解决特定的问題多道程序设计的主要优点是什么答:通过把各种不同的用户提出的对CPU和I/O设备的请求相互交替执行而更高效地使用CPU。 它通过不断让CPU工作而提高CPU的利用率。监督程序模式和用户模式之间的区别答:通过只能在系统模式(或者称为监督程序模式)下执行特权指令可以保证操作系统时刻控制 整个计算机系统,并保证关键数据的安全。陷入与中断之间的区别答:中断是一个系统中由硬件产生的用于改变执行流程的信号。一个中断控制程序来处理中断,

2、 执行完成后返回被中断的程序指令。陷阱是一个软件产生的中断。例如可以用陷阱提示I/O操作的完成,或者调用操作系统的系 统调用,或者捕荻算术运算错误。下面哪些指令是特权指令a)设置定时器的值;b)读时钟;c)清除内存;d)关闭中断;e)从 用户模式切换到监督程序模式。答:a,c,d,e是特权指令补充作业1. 把下面的应用程序分为交互性和批处理两类:字处理、按月生成银行报表、计算圆周率 到百万分位、飞行模拟器答:交互性:字处理、飞行模拟器批处理:按月生成银行报表、计算圆周率到百万分位2. 写出操作系统的五大功能。答:进程管理、内存管理、文件管理、设备管理、与用户之间的接口。第二次作业书上的作业论述

3、短期、中期、长期调度之间的区别答:短期调度一从就绪队列中选择进程执行并把CPU分配给它。中期调度一主要在分时系统中使用。将内存中的作业换出到外存中等到内存允许的情况 下再换入到内存中执行。长期调度一确定把哪个作业放到内存中执行。它们之间的主要区别是执行的频率不同。短期调度执行频率高而长期调度执行频率低。 两个进程进行上下文切换的操作答:通常,操作系统必须保存当前运行进程的状态并恢复下一个要调度的进程的状态。保存 一个进程的状态通常包括CPU所有寄存器的值和內存的分配情况。用户级线程和内核级线程之间的区别相互对比的优势在哪里答:(1)內核不知道用户级线程的存在,但内核知道内核级线程的存在(2)内

4、核调度内核级线程,而用户级线程则由线程库调度在要体现系统灵活性的时候使用用户级线程好,因为用户级线程可以自己设计自己的调 度。内核级线程则被内核知道,所以可以保证一个线程阻寒时可以调度一个进程的另一个线 程,减少系统开销。补充作业1.假设有一个进程,它的工作流程是先运行150ms,然后进行I/O,最后执行250ms结束。 如果系统中的进程有三个状态,当时间片为200ms时,请写出进程A从被系统接纳到运 行结束所经历的状态转换并说明原因。答:被系统接纳之后:就绪-运行(原因:被调度执行)、运行-阻塞(原因:执行I/O操作)、 阻塞-就绪(原因:I/O操作完成)、就绪-运行(原因:被调度执行)、运

5、行-就绪(原因: 时间片到)、就绪-运行(原因:被调度执行)、结束。2.图中程序的运行结果int voluc=5; int main()pid_t pid=fork(); if Tpid=0)value4-=5; return 0;J elseif (pid0)(wait(NULL);print fvalue); return 0;答:输出 avalue=5o图中程序运行完共有多少进程3.forkO; forkO; fork 0 ; return 0;答:一共有8个进程。第三次作业什么是忙等待答:所谓忙等待是不断测试等待一个条件满足。吸烟者问题:有3个吸烟者和一个供应者。笫一个吸烟者有自己的烟

6、草;笫二个吸烟者有 自己的纸;第三个吸烟者有自己的火柴。供应者每次随机放两样东西到桌子上提供给3个 吸烟者之中的一个以完成吸烟。请用信号量为吸烟者和供应者进程编写程序。semaphore a2=0:semaphore agent=1:provider ()while(true)set i to value between 0 and 2;wait(agent);假设有三个进程R、Wl. W2共享缓冲区B。B中只能存放一个数。R每次从输入设备中读一 个整数放入B中。如果这个整数是奇数,由W1取出打印。如果这个整数是偶数,则由W2 取出打印。规定仅当B中没有数据或数据巳经被打印才会启动R去读数。肮

7、、W2对B中的 数据不能重复打印,当B中没有数据时也不能打印。要求用信号量操作写出R、W1、腔三 个进程的程序。(请详细描述所使用变量的含义)semaphore S0=l (表示缓冲区中可以存放的数据数目)semaphore Sl=0 (表示W1可以打印的数据数目)semaphore S2二0 (表示W2可以打印的数据数目)R:While (true)Read integer into itemwait(SO);put item in Bif (item%2= =1) signal (SI):if (item%2= =0) signal(S2):Wl:Wh订e (true)wait(SI);T

8、ake item from B;signal(SO);Print item;W2:While (true)wait(S2);Take item from B;Signal(SO);Print item;2.有一个铁笼子,猎手放入老虎,农民放入猪,动物园等待取走老虎,饭店等待取走猪。 笼子中只能放入一个动物。请使用信号量方法为猎手、农民、动物园、饭店进程编写程序。semaphore no=1tiger二0;pig=0;hunter ()wait (no);put in tiger;signal(tiger);farmer ()wait(no);put in pig;signal(pig);zoo

9、()wait(tiger);take tiger; signal(no); hotel ()wait(pig);take pig;signal(no);3. 某寺庙,有小、老和尚若干。有一个水缸,由小和尚提水入缸供老和尚饮用。水缸可容 10桶水。水取自一个井中,水井窄,每次只能容一个水桶。水桶总数为3。水缸每次进出 也仅1桶水,不可以同时进行。请设置合适的信号量描述小和尚、老和尚取水、入水的算 法。Semaphore bucket二3, wel1=1, jar=l, empty=10. ful1=0; Void 1itt1emonk()(wh i1e (1)wait(empty); wait(

10、bucket); wait(we11); 取水; signal(well); wait(jar); 放水; signal(jar); signal(bucket); signal(full); Void oldmonkOwhile(l)wait(full); wait(bucket); wait(jar); 取水;signal(jar);signal(bucket);signal(empty);附加题1.独木桥问题:某条河上只有一座独木桥,两边都有人要过河,为保证安全,一个方向有 人过河另一个方向的人就要等待,并且允许一个方向上的人连续过河。请使用信号量实现 正确的管理。semaphore s

11、=l,sl=l,s2=l;int rcl,rc2;one()wait(si);rcl 卄;if(rcl=l) wait(s);signal (si);walk through;wait(si);rcl;if(rcl=0) signal (s):signal (si);another ()Iwait(s2);rc2+;if(rc2=l) wait(s):signal (s2);walk through;wait(s2);rc2;if(rc2=0) signal (s):signal (s2);有人给出这样的独木桥问题的答案,看看有什么问題么(1)定义两个信号量S1和S2, S1: =1, S2:

12、二0。(2)假定开始时让河东的一个人先过桥,则用PV操作管理时的程序应如下: one ()P (S1); 过桥;V (S2);another ()P (S2); 过桥;V (S1);第四次作业之 b.c.db.各个进程的周转时间FCFSRRSJFPiioriiyP】1019伸161L211P31374181447n1914g6c各个进程的等待时间FCFSRR51FPriority厲0996P210100P?115216Pi13118Ps14941d.最小的是SJF有3个进程共享4个资源一次只能保留或者释放一个资源。每个进程最大需要2个单元。 说明不会发生死锁。答:如果所有的资源都被占用并且还有

13、一个或多个进程在无限制的等待更多的资源那么死锁 就会发生。但是,如果所有的4个资源都被占用,那么一定有一个进程已经得到了所有的两 个资源,那么这个进程就可以运行完并释放它占用的两个资源,这样就可以让其他的进程正 确地工作完成。Need矩阵的样子是0 0 0 0(0 7 5 010 0 20 0 2 00 6 4 2 b.因为有一个执行次序是p3、pl、p2、p4、p0可以执行完,所以是安全状态。C如果满足,则系统的avai lable变成1 1 0 0 allocation 变成0 0 1214 2 013 5 40 6 3 20 0 14这时的Need是0 0 0 00 3 3 010 0

14、20 0 2 00 6 4 2这时如果P0先归还它占有的(0 0 1 2),那么available的值是(1 1 1 2),可以找到一个执行次序p0.p2.pl.p3.p4保证所有进程都可以安全执行完,会处于安全状态,因此 这个请求会被满足。第五次作业书上的作业内部碎片与外部碎片之间的区别答:一个作业占据了一个内存区域或者页,但是其中的一部分没有使用,把没有使用的部分 成为内部碎片。内部碎片不会被操作系统或者其他进程使用,除非这个作业执行完并且释放 它所占用的内存区域。外部碎片是在分区之间存在的不能够被使用的小的内存。内存按顺序有100k, 500k, 200k, 300k, 600k,用首次

15、适应、最佳适应和最差适应如何放 置 212k, 417k, 112k, 426k 的进程答:(1) 首次适应算法212K放入500K的分区417K放入600K的分区112K放入288K的分区(产生新的分区288K = 500K - 212K)426K必须等待(2)最佳适应算法212K放入300K的分区417K放入500K的分区112K放入200K的分区426K放入600K的分区(3)最差适应算法212K放入600K的分区417K放入500K的分区112K放入388K的分区426K必须等待在这个例子中,最佳适应算法是最好的。假设一个有8个lk页面的逻辑地址空间,映射到一个32个页框的物理内存,问

16、:逻辑地 址多少位物理地址多少位a. 逻辑地址:13 bitsb. 物理地址:15 bits为什么纯分段比纯分页更容易实现共享可充入模块。答:因为段是基于内存的逻辑划分而不是物理划分,因此任意长度的段都可以通过段表的一 个表项来实现共享。而对于分页系统来说,只能对每个页实现共享,而页面的大小是固定不 变的。有段表段基地址长度021960012300142I90100I313275804195296下面的物理地址長多少a)0t430; b)lt10; c)2f500; d)3,400;e)4,122 答:a. 219 + 430 = 649b. 2300 + 10 = 2310c. 地址错误d.

17、 1327 + 400 = 1727e. 地址错误补充作业1. 在页面大小为4k的系统中,根据图中所示页表,下面的逻辑地址经过重定位之后的物理 地址長什么 a) 20 ;b) 4100; c) 8300第六次作业假设页表在内存保存的分页系统,a.如果一次访问内存用200ns,那么访问一个页内的一 次数据访问用多少时间b.如果加入TLB,有75%的命中率,那么内存有效访问时间是多少a. 400 ns; 200 ns访问页表,200 ns访问内存中的字b. 有效访问时间=(200 ns) +(400 ns) = 250 ns.5.在一个虚拟存储管理系统中采用页式方法对内存空间进行管理,它有24位的

18、虚拟地址 空间,而实际的物理地址空间是16位,页框大小为2k。假设有两个进程A和B。其中A进 程的0、2页巳经调入到内存的2、3号页框;B进程的1、3页巳经调入到内存的7、8号页 框。请问:A进程的虚拟地址12FF可以转换成什么物理地址B进程的虚拟地址17BA可以转 换成什么物理地址如果不能转换,操作系统会执行什么操作答:A进程的12FF转换成物理地址为1AFFB进程的17BA无法转换成物理地址,因为这个页不在内存,需要发生缺页中断,调入这个 页面答:(a) 49172 (b) 57348 (c) 615482. 一台计算机为每个进程提供65536字节的地址空间,页面的大小为4k。一个程序有3

19、2768 字节的正文,16386字节的数据,15870字节的堆栈,此程序是否能装入此地址空间若页面 大小为512字节呢答:文本占8页,数据占5页,堆栈占4页。因此程序需要17页,而实际上只有65536/4216 页的空间,不足。而如果页面有512字节,正文需要64页,数据需要33页,堆栈需要31页, 一共128页,而实际上有65536/512=128页的空间,所以正好放入。3. 若两个进程共享一个页面,该页面可否对一个进程只读,对另一个进程可读写如何实现 答:可以实现。在页表里面为每一页增加一个保护字段就可以了。第七次作业书上的作业假设一个磁盘驱动器有5000个柱面,从0到4999。驱动器正在

20、为143的一个请求服务, 且前面的一个请求在125按照FIFO的顺序,即将到来的请求是86, 1470, 913, 1774, 948, 1509, 1022, 1750, 130。请按照 FCFS、SSTF、SCAN、LOOK、C-SCAN、C-LOOK 开计算 磁头移动距离。答:a. FCFS : 143, 86, 1470, 913, 1774, 94& 1509, 1022, 1750, 130.总寻道距离7081.b. SSTF : 143, 130, 86, 913, 94& 1022, 1470. 1509. 1750, 1774.总寻道距离1745.c. SCAN : 143,

21、 913, 94& 1022, 1470, 1509, 1750, 1774, 4999. 130, 86.总寻道距离9769.:143, 913, 94& 1022, 1470, 1509, 1750, 1774, 130, 86.总寻道距离3319.e. C-SC/VN : 143, 913, 94& 1022, 1470, 1509, 1750, 1774, 4999, 0. 86, 130.总寻道距离9985f. C-LOOK : 143, 913, 94& 1022, 1470. 1509, 1750, 1774, 86, 130. 总寻道距离3363.补充作业1. 什么是设备无关性

22、答:设备独立性是指应用程序独立于具体使用的物理设备。2. 以下各项工作由I/O软件的哪一层完成a.为一个磁盘读操作计算磁道、扇区、磁头;b. 向设备寄存器写命令;c.检查用户長否允许使用设备;d.将二进制整数转换成ASCII码以 便打印答:a. 设备驱动程序;b. 设备驱动程序;c. 设备独立性软件;d. 用户空间的I/O软件。3. 为什么在要打印的文件通常都假脱机输出到磁盘上答:打印机作为一个独占的设备无法保证多个用户共享,这样用户在打印时经常因为无法申 请到打印机而等待。使用SPOOLing 术将打印机这样的独占设备变成了共享设备,用户需 要打印的内容只要假脱机输出到磁盘上用户就可以认为打

23、印成功,方便了用户的使用。第八次作业书上的作业为什么文件分配的位图必须保存在大容量存储器中,而不是主存中答:因为如果保存在内存中,当系统崩溃时,这些空闲区间的信息将会被丢失,而如果保存 在大容量存储器中就可以解决这个问题。补充作业1.假设要为一个文件换一个名字。一种选择是使用操作系统提供的RENAME方法,另一种方 法是:把文件复制为新文件,然后删除原来的文件以实现重命名。请问,这两种方法在实 现上有什么不同答:RENAME方法是修改目录文件的文件名部分,而删除原来文件再重命名则需要再创立一个 新文件,目录文件中增加一项,分配新空间;删除目录文件中的文件项目,然后回收占用的 空间。2. 请解释使用索引节点有什么好处答:减小目录文件的大小,提高查找文件的效率3在UNIX中open系统调用绝对需要么如果没有会产生什么结果。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论