❶ 操作系统的一道算法题,能解释一下吗
这是一个简单的递归算法,注意“有序单链表”的意思,也就是说其中的元素是按照递增或递减的顺序排列且无重复,按照你给的答案来看,A和B应该是递增的。 “pa^.data>=pb^.data”是一个循环条件,作用是避免程序做无意义的动作,举个例子来解释:
假设:A链表的元素是 3 4 5 6
B链表的元素是 1 2 3 4 5 6 7 8 9
初始时,pa指向3,pb指向1,因为3>=1,所以pb会向后移动,依次指向2 3…当pb指向3时,pa.data=pb.data,pa pb同时移动到下一位…进行新的循环比较,直至其中任一单链表中所有元素都比较完。若比较结果有完全吻合的元素序列则返回“true”,否则返回“false”。
假设:A链表的元素是 3 4 5 6
B链表的元素是 5 6 7 8 9 10 11 12
初始时,pa指向3,pb指向5,因为3<5,pb第一个元素已经大于pa第一个元素了,而pb又是递增的,后面的元素也一定都大于3,所以已经可以判定pb不可能包含pa,此时如果再让算法继续去比较就没有意义了,所以在前面加了循环条件,不要小看它,当链表很长时它可以大大提高算法的效率。
PS:如果A和B是递减的,那么循环条件应改为“pa^.data<=pb^.data”。
❷ 操作系统CLOCK置换算法的题目,急求解!!
因为一个目录文件最多可以由4个磁盘块组成,读目录和下级目录的时候,在最好的情况下,总能在第一个磁盘块上就能找到所需的下级目录信息,所以ADKQ四个目录读四次就可以了,此后是读文件,理想情况下所需页面可以通过前10个索引直接找到,此时只需再读一次就能读到所需页了,结果最少共用5次
最坏情况下,每个目录都存放在4个磁盘块的最后一个上,因此每个目录都得读四次,一共4*4=16次,而找到文件后,所需页面又得通过2级索引去找,这样一来2级索引表读一次,1级索引表又读一次,页面本身内容再读一次,又需2+1=3次,所以最坏情况就是16+3=19次
❸ 求这道操作系统调度算法类题目的答案。
首先在一个程序进行IO操作的时候,CPU可以释放出来给另一个程序进行计算
然后系统可以同时进行两个计算,即双核CPU可同时工作用于程序的计算
设每个字母代表一个时间片长度20ms,C表示计算, I表示IO,D表示等待
则各程序的时间片分配如下:
P1:C I I I I CC
P2:CCCCCCC I CC
P3:DCCCCDDC I I I I CC
其中P1和P2的优先级最高,按所给操作用时直接分配即可
P3优先级最低,第一个时间片P1和P2在同时计算,所以P3要等待
随后P1进入IO,其CPU空闲,可以分配给P3进行计算
在计算了4个时间片80ms后,P1结束IO抢占了P3的CPU,所以P3又继续等待2个时间片
后面P1程序结束,不会再抢占CPU,P3按剩余操作用时直接分配即可
所以最短用时为最后P3完成所需的时间,共14个时间片,280ms
❹ 操作系统银行家算法题
解:(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况:
Work Need Allocation Work+Allocation Finish
P0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 true
P3 1 6 5 4 0 6 5 2 0 3 3 2 1 9 8 6 true
P4 1 9 8 6 0 6 5 6 0 0 1 4 1 9 9 10 true
P1 1 9 9 10 1 7 5 0 1 0 0 0 2 9 9 10 true
P2 2 9 9 10 2 3 5 6 1 3 5 4 3 12 14 14 true
从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故该状态是安全的。
(2)P2提出请求Request2(1,2,2,2),按银行家算法进行检查:
·Request2(1,2,2,2) ≤Need(2,3,5,6)
·Request2(1,2,2,2) ≤Available(1,6,2,2)
·试分配并修改相应数据结构,资源分配情况如下:
Allocation Need Available
P0 0 0 3 2 0 0 1 2 0 4 0 0
P1 1 0 0 0 1 7 5 0
P2 2 5 7 6 1 1 3 4
P3 0 3 3 2 0 6 5 2
P4 0 0 1 4 0 6 5 6
·再利用安全性算法检查系统是否安全,可用系统资源Available(0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。
❺ 【讨论】求助:一道操作系统 磁盘算法的题目
谢谢了,我查到答案,就是看不明白。答:(1)由题意可知,读一个逻辑记录需2ms时间,读出记录后还需要4ms时间进行处理,故当磁头处于某记录的始点时,处理它共需6ms时间。而逻辑记录是按逆时针方向安排的,因此系统处理完一个逻辑记录后将磁头转到下一个逻辑记录的始点需要12ms时间。从而可以计算出处理程序处理完这10个逻辑记录所需的时间为:6+9*(12+6)=168ms (2)按最优化分布重新按排这10个逻辑记录,可使处理程序处理完一个记录后,磁头刚好转到下一个记录的始点,此时,安顺时针方向安排的逻辑记录顺序分别为:记录1、记录8、记录5、记录2、记录9、记录6、记录3、记录10、记录7、记录4,而需要的处理时间为6*10=60ms。[]
❻ 简单的操作系统调度算法下面的题给如何解答
如果~~急急急~~的话我建议你在悬赏分:20后面再加个0
❼ 计算机操作系统习题,求解
(1)先来先服务调度算法
由于该算法就是按照磁道请求序列的先后次序依次访问磁道的,因此磁道的访问序列(服务顺序)就是:
55、58、39、18、90、160、150、38、184
当前磁头在100号磁道。故磁头移动道数为:
(100-55)+(58-55)+(58-39)+(39-18)+(90-18)+(160-90)+(160-150)+(150-38)+(184-38)=45+3+19+21+72+70+10+112+146=498
平均寻道时间:498/9=55.3
(2)本题磁头移动方向是磁道增加的方向。因此磁道的访问序列(服务顺序)就是90、58、55、39、38、18、150、160、184。当前磁头在100号磁道 ,故磁头移动道数为:(100-90)+(90-58)+(58-55)+(55-39)+(39-38)+(38-18)+(150-18)+(160-150)+(184-160)=248
平均寻道时间:248/8=27.5
❽ 操作系统 作业调度算法与进程调度算法 题目
进入主存的时间是指进程到达后主存需求得到满足的时间,分析内存占用就好了
进程一执行完了,也就是第8.5秒,2,3,4到达,4的需计算时间最短,被执行,执行完是第8.7秒
进程5在4执行时也到达,执行进程5,执行完是8.8秒,然后就是执行进程3了,再然后是进程2所以2的开始时间是9.1秒
这里一个作业就是一个进程,应该没什么区别
进程2在8.2s被输入,此时有空闲内存85k,进程2需要60k,立即被满足,所以是8.2
所谓的调度是调度的cpu,毕竟cpu才是用来计算的~~
❾ 操作系统页面置换算法题,谁会
第二次机会算法:
与FIFO、OPT、LRU、NRU等同为操作系统中请求分页式管理方式的页面置换算法。
第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面。但是二次机会法还设置了一个访问状态位。所以还要检查页面的的访问位。如果是0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置为1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。
第二次机会算法可视为一个环形队列。用一个指针指示哪一页是下面要淘汰的。当需要一个存储块时,指针就前进,直至找到访问位是0的页。随着指针的前进,把访问位就清为0。在最坏的情况下,所有的访问位都是1,指针要通过整个队列一周,每个页都给第二次机会。这时就退化成FIFO算法了。
❿ 请问这道操作系统题目怎么算出来的,要求步骤
先把柱面号排一下序为:35、(55)、67、100、124、185
那么按最短寻找时间优先调度算法排序为:(55)、67、35、100、124、185
则磁头需要移动过的柱面数是:(67-55)+(67-35)+(185-35)=194
这只是我自己个人的见解,不过我觉得应该是这样解释吧!