当前位置:   article > 正文

操作系统作业_使用tsl指令实现进程互斥的伪代码

使用tsl指令实现进程互斥的伪代码

1、下列关于线程的描述中,错误的是

A.内核级线程的调度由操作系统完成

B.操作系统为每个用户级线程建立一个线程控制块

C.用户级线程间的切换比内核级线程间的切换效率高

D.用户级线程可以在不支持内核级线程的操作系统上实现

答案:B
解析:应用程序没有进行线程管理的代码,只有一个到内核级线程的编程接口,内核为进程及其内部的每个线程维护上下文信息,调度也是在内核中由操作系统完成的,即A选项正确;
在多线程模型中,用户级线程和内核级线程的连接方式分为多对一、一对一和多对多,操作系统为每个用户级线程建立一个线程控制块是属于一对一模型,其他两个模型没有为用户级线程建立一个线程控制块,即B选项错误;
用户级线程的切换可以在用户空间内完成,内核级线程的切换需要操作系统帮助进行调度,需要一定的开销,即用户级线程间的切换比内核级线程间的切换效率高,即C选项正确;
用户级线程的管理工作可以只在用户空间中进行,因此可以在不支持内核级线程的操作系统上实现,即D选项正确。

多线程模型

(1)多对一模型

(2)一对一模型

(3)多对多模型

2、下列关于多任务操作系统的叙述中,正确的是____。

 Ⅰ.具有并发和并行的特点 

 Ⅱ.需要实现对共享资源的保护 

 Ⅲ. 需要运行在多CPU的硬件平台上 

 A. 仅Ⅰ  

 B. 仅Ⅱ  

 C. 仅Ⅰ、Ⅱ  

 D. Ⅰ、Ⅱ、Ⅲ

 答案:C,多CPU并非是多任务操作系统的必备硬件,单CPU也可运行多任务。
并行:指在 同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。
并发:指在 同一时刻只能有一条指令执行,但多个进程指令被 快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行

3、某单CPU系统中有输入和输出设备各1台,现有3个并发执行的作业,每个作业的输入、计算和输出时间均分别为2ms、3ms和4ms,且都按输入、计算和输出的顺序执行,则执行完3个作业需要的时间最少是 ()。

A.15ms

B.22ms

C.17ms

D.27ms

解析:
CPU、输入设备、输出设备都只有一个,各操作步骤不能重叠,
画出运行图后就能清楚地看到不同作业间的时序关系,如下图所示。

4、下列选项中,会导致用户进程从用户态切换到内核态的操作是()。

I.整数除以零 II. sin()函数调用 III. read 系统调用

  • 仅 I、 II

  • 仅 I、 III

  • 仅 II、 III

  • I、 II 和 II

用户态切换到内核态的三种方式:
系统调用:比如读取命令行输入。本质上是通过中断实现的。系统调用指代的是系统函数调用。这是发生在用户态主动请求切换到内核态的过程中的。
用户程序发生异常:比如发生缺页异常。会触发当前运行的进程切换到处理此内核异常的内核相关程序中,即切换到内核态。
外围设备的中断:外围设备完成用户请求的操作之后,会先CPU发出中断信号,这时CPU会转去处理对应的中断处理程序
sin() 函数不是系统函数。

5、

1、计算要占CPU
2、I/O不占CPU
3、先出发的先执行
4、计算使用CPU可以与I/O一起进行,但是不能与I/O并行

6、下列关于父进程与子进程的叙述正确的是(ABC)

A、父进程与子进程有不同的进程控制块

B、父进程与子进程不能同时使用同一临界资源

C、父进程与子进程可以并发执行

D、父进程与子进程共享虚拟地址空间

解析:父进程和子进程可以 并发执行;
父进程和子进程可以共享一部分资源,但不能共享虚拟地址空间,在创建子进程时会为子进程分配资源比如虚拟地址空间,即D选项错误;
进程控制块PCB是进程存在的唯一标志,每个进程都有自己的PCB,即父进程和子进程有不同的进程控制块;
临界资源一次只能为一个进程所使用,父进程和子进程不能同时使用同一临界资源

7、下列选项中,会导致进程从执行态变为就绪态的事件是( )。

A.执行P(wait)操作

B.申请内存失败

C.启动IO设备

D.被高优先级进程抢占

8、下列关于进程和线程的叙述中,正确的是( )。

A.不管系统是否支持线程,进程都是资源分配的基本单位

B.线程是资源分配的基本单位,进程是调度的基本单位

C.系统级线程和用户级线程的切换都需要内核的支持

D.同一进程中的各个线程拥有各自不同的地址空间

A/B:在引入线程后,进程是资源分配的基本单位,线程是调度的基本单位。
C:在用户级线程中,有关线程管理的所有工作都由应用程序完成,无须内核的干预。
D:同一进程中的各个线程共享进程的地址空间。

9、在支持多线程的系统中,进程Р创建的若干线程不能共享的是( )。

A.进程Р的代码段

B.进程Р中打开的文件

C.进程P的全局变量

D.进程Р中某线程的栈指针

进程中的线程共享进程中的全部资源,但进程中某线程的栈指针对其它线程是透明的,不能与其它线程共享。
进程是拥有资源的基本单位,线程作为调度分配的基本单位基本不拥有资源,只拥有一些必不可少的资源,如:程序计数器,局部变量,少数状态参数,返回地址以及堆栈等,这些都是线程私有的,不共享。

10、下列与进程调度有关的因素中,在设计多级反馈队列调度算法时需要考虑的是()I II III IV

I 就绪队列的数量 II 就绪队列的优先级

III 各就绪队列的调度算法 IV 进程在就绪队列间的迁移条件

11、系统采用二级反馈队列调度算法进行进程调度。

就绪队列Q1采用时间片轮转调度算法,时间片为10ms;

就绪队列Q2采用短进程优先调度算法;系统优先调度Q1队列中的进程,当Q1为空时系统才会调度Q2中的进程;新创建的进程优先进入Q1;Q1中的进程执行一个时间片后,若未结束,则转入Q2.若当前Q1,Q2为空,系统依次创建进程P1,P2后即开始进程调度,P1,P2需要的CPU时间分别为30ms,20ms,则进程P1,P2在系统中的平均等待时间是

P1进入Q1,10ms过去,P1转入Q2;剩余20ms
P2在10ms后进入Q1执行,10ms后进入Q2;剩余20ms
P1等待10ms,再等待10msP2完成。
P2等待10ms
平均的等待时间 15ms

12、下列关于死锁的叙述中,正确的是

I. 可以通过剥夺进程资源解除死锁

II. 死锁的预防方法能确保系统不发生死锁

III. 银行家算法破坏了死锁必要条件中的“请求和保持”条件

IV. 当系统处于安全状态时,系统中一定无死锁进程

选择一项:

A. 仅I、II、IV

B. 仅I、II、III

C. 仅I、III、IV

D. 仅II、III

13、若系统S1采用死锁避免方法,S2采用死锁检测方法。下列叙述中正确的是:B.

I. S1会限制用户申请资源的顺序,而S2不会

II. S1需要进程运行所需要的资源总量信息,而S2不需要

III. S1不会给可能导致死锁的进程分配资源,而S2会

A.I、II

B.II、III

C. I、III

D. I、II、III

关于死锁的处理主要有三种类型:
1.死锁预防
2.死锁避免算法
3.死锁检测
而针对这三种类型,掌握三种对应的关键类型即可。
死锁预防典型的是顺序资源分配法,限制进程申请资源的顺序!后面的进程只能申请编号更大的资源。
死锁避免算法,典型的是银行家算法,不会限制申请资源的顺序,但是会限制分配资源的顺序,避免进入不安全状态!因此,需要知道全局性的资源需求矩阵以及资源总量。
死锁检测,是最宽松的,啥也不限制,只有当出现死锁且被检测到时才会去处理解除。因此,这种灵活性的算法在Unix上实现了。常用资源分配图结合死锁定理检测。
综上,II、III才是正确的。要明白限制用户申请资源的顺序是很大的限制,限制分配资源的顺序是稍微宽松些的限制,检测是不做限制。

14、某系统有台互斥使用的同类设备,三个并发进程分别需要3、4、5台设备,可确保系统不发生死锁的设备数n最小为10台。

解析:分配2、3、4是死锁临界,再来一台就不死锁。

15、下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( )。

A. 时间片轮转

B. 高响应比优先

C. 先来先服务

D. 非抢占式短任务优先

16、某系统中有 A,B 两类资源各 6 个,t 时刻资源分配及需求情况如下表所示

t 时刻安全检测结果是:

A、存在安全序列 P1,P2,P3

B、存在安全序列 P2,P1,P3

C、存在安全序列 P2,P3,P1

D、不存在安全序列

答案:B
解析:
Need = Max - Allocation =((4,4),(3,1),(3,4))-((2,3),(1,0),(2,2))=((2,1),(1,0),(2,2))
又Available = (1,0),即只能满足进程P2,当将资源分配给P2待P2完成并释放资源,此时Available变为(3,1),只能满足进程P1;当将资源分配给P1待P1完成并释放资源,此时Available又变为(5,4),又可以满足进程P3,即存在一个安全序列< P2 ,P1, P3>。

17、假设4个作业到达系统的时刻和运行时间如下表所示。

系统在t=2时开始作业调度。若分别采用先来先服务和短作业优先调度算法,则选中的作业分别是______。

A J2,J3 B J1,J4 C J2,J4 DJ1,J3

解析:如下图所示,系统在t=2时,开始调度。此时系统中有J1,J2,J3三个作业。如果用先来先服务调度,则J1被选中。如果用短作业调度,在J1,J2,J3中选择运行时间最短的任务,即为J3,所以答案为D

18、使用TSL(Test and Set Lock)指令实现进程互斥的伪代码如下所示

  1. do {
  2. ……
  3. while(TSL(&lock));
  4. critical section;
  5. lock=FALSE;
  6. ……
  7. } while(TRUE);

19、下列与该实现机制相关的叙述中,正确的是

A.退出临界区的进程负责唤醒阻塞态进程

B.等待进入临界区的进程不会主动放弃CPU

C.上述伪代码满足“让权等待”的同步准则

D.while(TSL(&lock))语句应在关中断状态下执行

答案:B
解析:当进程退出临界区时置lock为FALSE,会负责唤醒处于就绪态的进程,即A选项错误;
等待进入临界区的进程会一直停留在执行while(TSL(&lock))的循环中,不会主动放弃CPU,即B选项正确;
让权等待,即进程不能进入临界区时,应立即释放处理器,防止进程忙等待,通过B选项的分析可知,上述伪代码并不满足“让权等待”的同步准则,即C选项错误;
while(TSL(&lock))在关中断状态下执行,若TSL(&lock)一直为true,不再开中断,则系统可能会因此终止,即D选项错误。

20、在9个生产者,5个消费者,共享容量为7的缓冲区的生产者-消费者问题中。互斥使用缓冲区的信号量S的初值为( )。

A. 9

B. 5

C. 7

D. 1

答案解析:

关于缓冲区的使用,这是典型的互斥问题,一次只允许一个进程使用,故设置信号量S初值为1。

21、若记录型信号量S的初值为15,当前值为-15,则表示有 15 个等待进程。

解:初始值为m,表示有m个资源,为0则表示没有了资源,如果当前值为-n,那么等待的进程为n

22、设与某资源相关联的信号量初值为3,当前值为1,若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别为(1;0)

23、采用( B )不会产生内部碎片

A、分页式存储管理 B、分段式存储管理

C、固定分区式存储管理 D、段页式存储管理

内部碎片就是为每个进程分布的内存空间之中所没有被使用到的内存碎片。通常出现在分页式存储管理之中。
分页式是什么应该很好理解,就是把内存按照分为一页页大小相同的页面,然后再把这些页面分配给进程。因此,在分配给进程时可能会出现这样的情况:
进程需要3MB,分给他4页,每页1MB,这样4>3,就会造成1MB的内部碎片。
分段式存储管理为什么不会产生内部碎片?
归根结底是由分段本身的定义出发的。如果说分页式是系统对内存的分割,那么分段式就是用户对程序数据的分割。
分页式是没有任何逻辑意义的,而分段式是有其意义在的。
比如说一个程序有主程序段Main类,有通用库,有数据段,这样我们就把这个程序分为三段,分别对应Main,库,数据(说的是最浅显的,详细的可以百度其他),是有逻辑意义的独立单位。都这样分了,怎么还会出现内部碎片?反之,如果是分页式,就可能出现Main类横跨两页,且整个程序装入内存后还有碎片空间的可能了。
分页式存储管理有内部碎片,分段式存储管理有外部碎片,固定分区存储管理方式有内部碎片,段页式存储管理方式有内部碎片 。

24、分页与分段的区别?

页是物理单位,目的是提高内存的使用率,段是逻辑单位目的是方便用户使用。
页的大小是由系统决定,段的大小是由用户决定。
分页作业的地址空间是一维的,分段作业的地址空间是二维的。
页内存利用率高,产生内碎片,段勇有逻辑意义,产生外碎片

25、分页系统中,地址转换工作是由( )完成的。

A. 硬件

B. 装入程序

C. 用户程序

D. 地址转换程序

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/661555
推荐阅读
  

闽ICP备14008679号