另一类操作系统函数不是帮助用户而是确保系统本身高效运行,包括资源分配、统计、保护和安全等。
这两类服务的区别在于服务的对象不同,一类是针对用户,另一类是针对系统本身。
2.6 优点:采用同样的系统调用界面,可以使用户的程序代码用相同的方式被写入设备和文件,利于用户程序的开发。还利于设备驱动程序代码,可以支持规范定义的API。
缺点:系统调用为所需要的服务提供最小的系统接口来实现所需要的功能,由于设备和文件读写速度不同,若是同一接口的话可能会处理不过来。
2.9 策略决定做什么,机制决定如何做。他们两个的区分对于灵活性来说很重要。策略可能会随时间或位置而有所改变。在最坏的情况下,每次策略改变都可能需要底层机制的改变。系统更需要通用机制,这样策略的改变只需要重定义一些系统参数,而不需要改变机制,提高了系统灵活性。
3.1、短期调度:从准备执行的进程中选择进程,并为之分配CPU;
中期调度:在分时系统中使用,进程能从内存中移出,之后,进程能被重新调入内存,并从中断处继续执行,采用了交换的方案。
长期调度:从缓冲池中选择进程,并装入内存以准备执行。
它们的主要区别是它们执行的频率。短期调度必须频繁地为CPU选择新进程,而长期调度程序执行地并不频繁,只有当进程离开系统后,才可能需要调度长期调度程序。
3.4、当控制返回到父进程时,value值不变,A行将输出:PARENT:value=5。
4.1、对于顺序结构的程序来说,单线程要比多线程的功能好,比如(1)输入三角形的三边长,求三角形面积;(2)从键盘输入一个大写字母,将它改为小写字母输出。
4.4、在多线程程序中各线程共享堆内存和全局变量,而寄存值和栈内存是每个线程所独有的。
4.7、C行输出:CHILD:value=5;
P行输出:PARENT:value=0
5.4、SJF调度算法和Priority调度算法会导致饥饿。
5.10、FCFS:最先到达的进程最先完成,若某个长进程先到达,则之后的任一短进程都会有较长的等待时间。
RR:将就绪队列作为循环队列,CPU调度程序循环就绪队列,为每个进程分配不超过一个时间片的时间,所以只要短进程可以先完成,它们可以很快的离开系统。
多级反馈队列调度算法:并不会特意的区分短进程并优先选择它,对待短进程上和RR调度算法相似。
6.1、(1)互斥条件通过flag和turn变量的使用实现。如果两个进程将flag设为真,那么只有轮到的那个进程会成功进行。只有当一个进程更新turn值时,等待的那个进程才能进入它的临界区域。
(2)前进也是通过flag和turn实现的。如果一个进程想要进入它们的临界区域,它可以将它的flag设为真,然后进入临界区域。当退出它的临界区域,将turn设置为转向其他进程的值。如果这个进程想要在其他进程之前再次进入临界区域,它会不断重复进入临界区域,在退出时将turn置为转向另一个进程的过程。
(3)有限等待通过turn的使用来实现。假设两个进程想要进入临界区域,它们都将flag的值设为真,而只有轮到的那个线程可以执行,其他的线程处于等待状态。如果有限等待没有实现,那么当第一个进程重复“进入-退出”临界区域这一过程时,其他进程则必须无限等待下去。Dekker算法要求一个进程将turn设置为转向另一个进程的值,从而保证另一个进程接下来进入临界区域。
6.4、 自旋锁不适合在单处理器系统是因为从自旋锁中打破一个进程的条件只有在执行一个不同的进程时才能获得。如果这个进程没有闲置处理器,其他进程不能够得到这个机会去设定第一个进程进展需要的程序条件。在一个多处理器系统中,其他进程在其他处理器上执行,从而可以修改程序状态使得第一个进程从自旋锁中释放。
6.5、 如果一个用户级程序具有停止中断的能力,那么它能够停止计时器中断,防止上下文切换的发生,从而允许它使用处理器而不让其他进程执行。
6.6、 因为停止中断仅仅能够防止其他进程在一个中断不能实现的处理器上执行,而在其他处理器上能执行什么进程是没有的,所以进程停止中断并不能保证互斥进入程
序状态,即中断在多处理器系统中是不够的。
6.16、 当执行管程的signal操作时,如果没有等待线程,那么系统会忽略signal操作,认为signal操作没有发生过。如果随后执行wait操作,那么相关的线程就会被阻塞。然而在信号量中,即使没有等待线程,每个signal操作都会导致相应的信号量值的增加,那么接下来的wait操作就会因为之前的信号量值的增加而马上成功进行.
7.1a、死锁的四个必要条件:互斥;占有并等待;非抢占;循环等待。
互斥的条件是只有一辆车占据道路上的一个空间位置。占有并等待表示一辆车占据道路上的位置并且等待前进。一辆车不能从道路上当前的位置移动开(就是非抢占)。最后就是循环等待,因为每个车正等待着随后的汽车向前发展。循环等待的条件也很容易从图形中观察到。
b、一个简单的方法是,汽车不得进入一个十字路口,这样就不会产生相交。
7.5 a、增加可用资源:这个在任何情况下都是安全的;
b、减少可用资源:这可能会影响到系统,并导致可能性死锁因为系统的安全性假定其拥有一定数量的可用资源;
c、增加一个进程的Max(进程需要更多的资源,超过所允许给予的资源):这可能会影响到系统,并可能导致死锁;
d、减少一个进程的Max(进程不再需要那么多资源):这个在任何情况下都是安全的;
e、增加进程的数量:如果允许分配资源给新进程,那么该系统并没有进入一个不安全的状态;
f、减少进程的数量:这个在任何情况下都是安全的。
7.8、当一个哲学家发出一个需要第一根筷子的请求时,如果没有别的哲学家有两根筷子或者只留有一根筷子时,这个请求就不被允许。
7.11、a、.Need矩阵的内容是P0(0 0 0 0) P1(0 7 5 0) P2(1 0 0 2) P3(0 0 2 0) P4(0 6 4 0)
b、系统处于安全状态,因为Available矩阵等于(1 5 2 0),进程P0和P3都可以运行,当进程P3运行完时,它释放它的资源,而允许其它进程运行。
c、可以被满足,满足以后,Available矩阵等于(1 1 0 0),当以次序P0,P2, P3, P1 ,P4运行时候,可以完成运行。
8.5、连续内存分配会产生外部碎片,因为地址空间是被连续分配的,当旧进程结束,新进程初始化的时候,碎片会扩大。连续内存分配也不允许进程共享代码,因为一个进程的虚拟内存段是不被允许闯入不连续的段的。
纯段式分配也会产生外部碎片,因为在物理内存中,一个进程的段是被连续放置的,以及当死进程的段被新进程的段所替代时,碎片也将会产生。然而,段式分配可以使进程共享代码;比如,两个不同的进程可以共享一个代码段,但是有不同的数据段。
纯页式分配不会产生外部碎片,但会产生内部碎片。进程可以采用页式分配,如果一
页没有被完全利用,它就会产生内部碎片并且会产生一个相当的空间浪费。页式分配也允许进程共享代码。
8.6、逻辑地址在页式分配系统上包括逻辑页号和偏移量。在逻辑页号的基础上产生一个物理页号,物理页号通过页表被找到。因为操作系统控制这张表的内容,所以操作系统只允许进程访问那些分配到该进程的物理页。一个进程想要访问一个它所不拥有的页是不可能的,因为这一页在页表中不存在。为了允许这样的进入,操作系统只需要简单的允许非本进程内存的条目被加到该进程的页表中。当两个或多个进程需要交换数据时,这是十分有用的。在进程内通信时,这是十分高效的。
8.9、a.400ms:200ms进入页表查询页框号,200ms进入内存中找到所需的数据
b.有效进入时间为0.75*200+0.25*400=250ms
8.10、段式存储与页式存储经常结合在一起以提高它们每一个存储方式的性能。当页变的十分大时,分段的页式存储是十分有用的。一大段连续的未用页表可折叠成一个以页表地址0为入口的单一段表。分页的段式存储适用于段非常大需要很长时间来进行分配的时候。通过把段分页,我们降低了由于外部碎片而造成的内存浪费,而且也简化了分配。
9.2 答:对于每一个内存访问操作,页表需要检查相应的页表条目存在与否,程序对该访问页面有读权限还是写权限,这些核对都需要硬件实现。一个TLB可以作为高速缓存提高查询操作的效率。
9.10 答:该系统显然花费了许多时间进行分页,显示过度分配的内存,如果多级程序水平降低,页面错误将变少,CPU利用率也会提高。另一种提高利用率的方式是获得更多
的物理内存或更快的分页磁盘。
ABC都不行,D可以
E.可能提高CPU利用率,因为更多页面能存放在内存中,而不需要从磁盘请求页面。
F.另一个改进,因为磁盘的瓶颈被更快的响应和更大的磁盘吞吐量所删除,CPU将会更快的获得更多的数据
G.CPU将会更快的获得更多的数据,所以更多地被使用。如果分页服从预调(即一些访问顺序)这只是一个方面。
H.如果数据被顺序访问,那么增加页面大小将导致缺页率降低。如果数据访问是随机的,就需要更多的页面操作,因为较少页面可保存在内存上,在每次缺页时,更多的数据被转移,所以这种变化既可以减少CPU利用率也可以增加CPU利用率。
9.15 答:分配的页数少于进程所需的最小页数时发生抖动,并迫使它不断地页错误。系统可通过对比多道程序的水平和CPU利用率的程度,以此来检测抖动。降低多道程序的水平可以消除抖动。
9.16 答:可以,事实上,许多处理器因为这个原因提供两个TLB。举个例子,一个进程访问的代码可长时间地保留同样的工作集合。然而,代码访问的数据可能改变,这样为工作集合的数据访问产生了一个改变。
10.1 答:令旧的文件为F1,新文件为F2。用户希望通过存在的链接进入F1,实际上将进入F2。注意,使用的是文件F1的访问保护,而不是F2的。
这个问题可以通过确保所有被删除文件的链接也被删除来避免。可从几个方面完成:
a.保存一份文件所有链接的列表,删除文件时,删除每一个链接
b.保留链接,当试图访问一个已删除文件时删除他们
c.保存一个文件引用清单(或计数器),只有在文件所有链接或引用被删除后,删除该文件
10.3 答:在许多情况下,单独的程序可能愿意容忍同时访问一个文件,而不需要获得锁,从而确保文件的相互排斥。其他程序结构也可以确保相互排斥,如内存锁,或其他同步的形式。在这种情况下,强制锁将访问文件的灵活性,也可能增加与访问文件相关的开销。
10.11 答:UNIX的一致性语义需要更新文件立即提供给其他进程。支持这种语义的共享文件远程文件系统可能会导致以下的低效率: 一个用户产生的所有更新,必须立即上报文件服务器,而不是批处理(如果更新到一个临时文件将会被忽略), 而且更新必须立刻通过文件服务器跟高速缓存数据的客户进行交流,造成更多的联系。
11.2 答:它的优势是,在访问块是储存在文件中间的时候,在FAT里跟踪指针就可以决定它的位置,而不是顺序的访问所有个别区块中的文件来找到指针指向的目标块。
通常情况下,大多数的FAT可缓存在存储器里,因此,指针可以通过访问内存确定,而不用通过磁盘块。
11.5 答:由于延迟更新数据和元数据是可能出现的最主要的困难。在希望同样的数据
可能被更新时候,更新可能会推迟,或更新的数据可能是临时性的,而且在不久后可能会被删除。但是,如果在还没有提交延迟的更新的时候,系统崩溃,则文件系统的一致都将被破坏。
11.8 答:在用户(或系统)确切地知道将需要什么样的数据情况下。缓存是以算法为基础的,而RAM磁盘是用户导向。
12.1 答:a.对现在磁头所在磁道的新要求,理论几乎可以同时用于实践。
b. 所有那些比预定的年龄更老的要求可能是“被迫”处于队列的顶端,并且每个请求的有关位都可能被设置为表明没有任何新的要求可提前到这些请求的前面。对于SSTF,其余的队列将不得不根据这些“旧”的要求的最后重新组织排序。
c. 为了防止超长的响应时间。
d.1、 调页和置换应优先于用户的要求。
2、对于其他内核启动的I/O,如文件系统元数据的写入,优先于用户I/O也是可取的。
3、如果内核支持实时进程的优先次序,这些进程的I/O请求也应该是优先的。
12.2 答a. FCFS的调度是143 , 86 , 1470 , 913 , 1774 , 948 , 1509 , 1022 , 1750 , 130 。总寻求距离是7081 。
b. SSTF的调度是143 , 130 , 86 , 913 , 948 , 1022, 1470, 1509, 1750, 1774。总寻求距离是1745。
c. SCAN的调度是143 , 913 , 948 , 1022, 1470, 1509, 1750, 1774 , 4999 , 130 , 86 。总寻求距离是9769 。
d. LOOK的调度是143 , 913 , 948 , 1022, 1470, 1509, 1750, 1774, 130 , 86 。总寻求距离是3319 。
e. C-SCAN的调度是143 , 913 , 948 , 1022 , 1470 , 1509 , 1750 , 1774 , 4999 , 86 , 130 。总寻求距离是9813 。
f. C-LOOK的调度是143 , 913 , 948 , 1022 , 1470 , 1509 , 1750 , 1774 , 86 , 130 。总寻求距离是3363 。
13.5 答:当中断发生时,当前正在执行的进程被中断,它的状态被保存在一个适当的进程控制块中。中断服务程序被调度以便处理中断。中断处理完成后,进程的状态被重新存储,进程重新返回执行。因此,服务开销包括保存和重新存储进程状态的花费和刷新指令流水线,当进程重新执行时把指令重新存入流水线的花费。
13.6 答:一般来说,当进程只能等待一个具体的事件时适合用阻塞式I/O,例如应用程序从磁盘、磁带或键盘读取信息时。
当I/O可能不止来自于一个资源,并且I/O的到达顺序是预先决定了的时候适合用非阻塞式I/O,例如网络守护进程不只监听一个网络槽,窗口管理器既接收鼠标的运动信息也接收键盘的输入信息,I/O管理程序,比如一个要求在I/O设备之间复制数据的复制请求。在最后一种情况中,程序应该能通过缓存输入输出和运用非阻塞式I/O的方法使得两个设备都被充分占用以最优化其表现。
由于当I/O发生时需要异步的会合,所以非阻塞式I/O对程序员来说更复杂。同样,忙式等待要比中断驱动I/O效率低,所以总体的系统表现将会降低。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务