操作系统部分
一、试题
下列关于线程的描述中,错误的是
A.内核级线程的调度由操作系统完成
B. 操作系统为每个用户级线程建立一个线程控制块
C. 用户级线程间的切换比内核级线程间的切换效率高
D. 用户级线程可以在不支持内核级线程的操作系统上实现
下列选项中,可能将进程唤醒的事件是
I. I/O结束 .
II.某进程退出临界区
III.当前进程的时间片用完
A.仅 I
B.仅 III
C.仅 I、II
D. I 、II、 III
下列关于系统调用的叙述中,正确的是
I .在执行系统调用服务程序的过程中,CPU 处于内核态
II. 操作系统通过提供系统调用避免用户程序直接访问外设
III.不同的操作系统为应用程序提供了统一的系统调用接口
IV.系统调用是操作系统内核为应用程序提供服务的接口
A.仅I、IV
B.仅II、 III
C仅I、II、IV
D.仅I、III、IV
下列选项中,可用于文件系统管理空闲磁盘块的数据结构是
I .位图
II. 索引节点
III.空闲磁盘块链
IV.文件分配表(FAT)
A.仅 I 、II
B.仅I、III、IV
C.仅 I 、III
D仅 II、III、IV
系统采用二级反馈队列调度算法进行进程调度。 就绪队列 QI 采用时间片轮转调度算法,时间片为 10 ms;就绪队列 Q2 采用短进程优先调度算法;系统优先调度 QI 队列中的进程,当 Ql 为空时系统才会调度 Q2 中的进程;新创建的进程首先进入 Q l; Ql 中的进程执行一个时间片后,若未结束,则转入 Q2。 若:当前。l 、Q2 为空,系统依次创建进程 Pl 、P2 后’即开始进程调度 Pl 、四百要的 CPU 时间分别为 30 ms 和 20ms ,则进程 Pl、P2 在系统中的平均等待时间为
A. 25 ms
B. 20 ms
C. 15 ms
D. 10 ms
在分段存储管理系统中,用共享段在描述所有被共享的段。 若进程 Pl 和 P2 共享段 S,下列叙述中,错误的是
A.在物理内存中仅保在一份段S的内容
B. 段 S 在 Pl 和 P2 中应该具有相同的段号
C. Pl 和 P2 共享段 S 在共享段表中的段表项
D. Pl 和 P2 都不再使用段 S 时才 回收段 S 所占的内存空间
某系统采用LRU页置换算法和局部置换策略,若系统为迸程P 预分配了 4 个页框,进程 P 访问页号的序列为 0,1,2,7,0,5,3,5,0, 2,7,6,则进程访问上述页的过程中,产生页置换的总次数是
A. 3
B. 4
C. 5
D.6
下列关于死锁的叙述中,正确的是
I . 可以通过剥夺进程资源解除死锁
II .死锁的预防方法能确保系统不发生死锁
III.银行家算法可以判断系统是否处于死锁状态
IV.当系统出现死锁时,必然有两个或两个以上的迸程处于阻塞态
A.仅 II 、III
B.仅 I、II、IV
C. 仅 I 、II、III
D. 仅 I、III、IV
某计算机主存按字节编址,采用二级分页存储管理,地址结构如下
页目录号(10位) 页号(10位) 页内偏移(12位)
虚拟地址 2050 1225H对应的页目录号、页号分别是
A. 081 H、101H
B. 081 H、401H
C. 201 H、l 01 H
D. 201 H、40111
在下列动态分区分配算法中,最容易产生内存碎片的是
A. 首次适应算法
B. 最坏适应算法
C.最佳适应算法
D.循环首次适应算法
( 原试卷43题)有n(n >=3)位哲学家用坐在一张圆桌边,每位哲学家交替地就餐和思考。在圆桌中心有 m(m;>=1)个碗,每两位哲学家之间有1根筷子。 每位哲学家必须取到一个碗和两侧的筷子之后,才能就餐,进餐完毕,将碗和筷子放回原位,并继续思考。 为使尽可能多的哲学家同时就餐,且防止出现死锁现象,请使用信号量的 P、V操作(wait()、 signal()操作)描述上述过程中的互斥与向步,并说明所用信号量及初值的含义。
( 原试卷44题)某计算机系统中的磁盘有300个柱而,每个柱面有10个磁道,每个磁道有200个扇区,扇区大小为512 B。文件系统的每个簇包含2个扇区。请回答下列问题:
( 1 )磁盘的容量是多少?
( 2)假设磁头在85号柱面上,此时有4个磁盘访问请求,簇号分别为:100 260 、60 005、101 660 和l 10 560。 若采用最短寻道时间优先(SSTF)调度算法,则系统访问簇的先后次序是什么?
(3) 第 100 530 簇在磁盘上的物理地址是什么?将簇号转换成磁盘物理地址的过程是由I/0系统的什么程序完成的?
二、答案
1.B 2.C 3.C 4.B 5.C
6.B 7.C 8.B 9.A 10.C
//信号量
semaphore bowl; //用于协调哲学家对碗的使用
semaphore chopsticks[ n ]; //用于协调听学家对筷子的使用
for( int i= 0; i <n; i++)
chopsticks [ i ] . value = 1; //设置两个哲学家之间筷子的数量
bowl. value = min ( n-1 , m ) ; //bowl. value<=n-1,确保不死锁
CoBegin
while ( True ) { //哲学家i 的程序
思考;
P( bowl ) ; //取碗
P ( chopsticks [ i ] ) ; //取左边筷子
P( chopsticks[ ( i + I ) MOD n] ) ; //取右边筷子
就餐;
V ( chopsticks[ i ] ) ;
V( chopsticks[ ( i + I ) MOD n] ) ;
V ( bowl ) ;
CoEnd
(1)磁盘容量=(300xl0x200x512/1024)KB= 3×10^5 KB。
(2)依次访问的簇是100 260、101 660、110 560、60 005。
(3)第100 530 簇在磁盘上的物理地址由其所在的柱面号、磁头号、扇区号构成
其所在的柱面号为L 100530/( 10x200/2)」= 100。
100530 %( 10x200/2)= 530,磁头号为L 530 / 200 / 2)」=5。
扇区号为(530×2) % 200 = 60。
将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成。
这篇博客探讨了操作系统中的线程管理,包括内核级线程与用户级线程的区别,以及它们的调度与切换。同时,介绍了进程的唤醒事件,如I/O结束和进程退出临界区。系统调用的角色、类型和作用也被详细阐述,强调了其在内核态执行和作为服务接口的功能。文件系统管理方面,讨论了空闲磁盘块的数据结构,如位图和空闲块链。此外,还分析了不同调度算法对进程等待时间的影响,以及分段存储管理中共享段的处理。最后,博客提到了哲学家问题的解决方案,利用P、V操作实现资源的互斥访问,以及磁盘I/O管理,包括容量计算、寻道调度和物理地址转换。
4694

被折叠的 条评论
为什么被折叠?



