• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

计算机操作系统题库之进程与线程(八)

极客题库 Geekerstar 11个月前 (06-07) 373次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

程序的并发执行将导致运行结果失去封闭性,这对所有的程序都成立吗?

并不是所有程序的并行执行都会导致运行结果失去封闭性。例如,当程序中都使用内部变量,不可能被外部程序访问时,程序的运行不会受到环境的影响。

父进程创建子进程之后,父子进程间的关系是什么?

一个进程创建子进程之后,进程与产生的进程之间的关系是父子关系,分别成为进程和子进程。子进程一经产生就与你进程并发执行,子进程共享父进程和子进程。子进程一经产生就与你进程并发执行,子进程共享父进程的正文段和已经打开的文件。

什么是线程?进程和线程的关系是什么?

线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。

在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。

一个进程可以有多个线程,而且至少有一个可执行线程。

进程和线程的关系是:

(1)线程是进程的一个组成部分。

(2)进程的多个线程都在进程的地址空间活动。

(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。

(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。

(5)线程在执行过程中,需要同步。

简述引进线程的好处。

引进线程的好处为:

(1)以线程作为系统调度的基本单位,减少了系统的时空开销。以进程为系统调度的基本单位的系统中,进程的切换是很频繁的。在切换中由于要保留当时的运行环境,还要设置新选中的进程的运行环境,这既花费了处理机的时间,又增加了主存的空间,从而也限制了系统进程的数量和进程的切换速度。

(2)引进线程提高了系统的并行能力。线程作为进程内的一个可执行实体,减少了并行粒度。线程作为调度的基本单位而不是资源分配的基本单位,调度更为容易,而且采用线程提高系统的并行能力比采用进程更为有效。

(3)同一进程的线程共享进程的用户地址空间,所以同一进程的线程间的通信更容易实现。

当系统内所有的进程都进入睡眠之后,系统还有可能复活吗?

只有两种情况下系统可以复活:

一种情况是有因等待I/O操作完成而进入睡眠的进程,当相应的I/O操作完成后,I/O中断处理程序唤醒等待本次I/O的进程,而该进程在运行过程中又可能通过释放资源、发送消息等事件而唤醒其他进程,这样整个系统就又活跃起来了;

另一种情况是没有等待I/O操作完成的进程,但有定时睡眠的进程,当睡眠时间到期,会由时钟中断将该入睡进程唤醒,从而获得可运行进程,并有可能使系统重新活跃起来。

当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好?

在实际系统中,两种处理办法都是可行的,且各有优缺点。

若撤消,则该进程的任务可能还没有完成,这显然是不利的,特别是当该进程的运行结果对其他进程的运行很重要(如该进程是其他进程的前趋进程,没有它的运行结果其他进程无法运行)时;

若不撤消,则该进程又可能成为不可控的”孤儿”,从而产生不可预测的结果。

比较好的做法是,当一个进程的父进程被撤消时,可以将该进程”过继”给系统内一个级别较高的进程(如Unix中的1#进程),让它有一个”新的父亲”,这样既可以继续完成其任务又不会成为不可控的。

当一个进程的父进程被撤销时,该进程是撤销好还是不撤销好?

最主要的不同是”入睡”是进程的主动行为,而”挂起”可以是系统的强制行为;

此处,只有在CPU上运行的进程才能执行”入睡”操作,而不管进程处于什么状态,系统都可对其执行”挂起”操作。

它们的相同点是:这两个操作都导致一个正在CPU上运行的进程从CPU上退下来。

简述进程为什么不能从就绪状态直接变成阻塞(睡眠)状态?

一个进程要进入阻塞(睡眠)状态,必须通过执行相应的程序才能实现,如Sleep()或Block()。

就绪进程当前不在CPU上运行,不能执行任何程序,当然不能使自己直接进入阻塞状态。

在一个分时操作系统中,进程可能出现下面所示的变化。请将产生每一种变化的具体原因填写在下面横线上。
A:运行 B:就绪 C:数据资源 D:等待I/O传输
(1)A-→B
(2)A-→C
(3)C-→A
(4)A-→D
(5)D-→B

(1)时间片用完 (2)请求资源 (3)I/O请求 (4)分配资源 (5)I/O操作完成

为什么说进程同步问题关系到OS的成败?

这是因为,进程同步问题若处理不当,有可能会产生种种”与时间有关性错误”,特别是当两个或多个进程共享了公共变量而又没有互斥地使用这些变量时,极有可能导致用户程序运行结果的不正确,这量种灾难性的后果。

这种OS显然是不成功的,是用户不敢使用的。

同步机制应遵循的准则是什么?

有以下四条准则:空闲让进、忙则等待、有限等待、让权等待。

进程通信有那三种基本类型?

基于共享存储器的通信、基于消息传递系统的通信和基于管理文件的通信。

对临界区管理的要求是什么?

对临界区管理的要求是:

(1)当有若干个进程要求进入它们的临界区时,应在有限的时间内使一个进程进入临界区,进程之间不应相互等待而使谁都不能进入临界区。

(2)每次只允许一个进程进入临界区内。

(3)进程在临界区内逗留应在有限的时间范围内。

设有n个进程共享一个互斥段,对于如下两种情况使用信号量,信号量的值的变化怎样?

(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程m小于n同时进入互斥段。

1、信号量的初值为1。信号量的变化范围是1,0,-1,…,-(n-1)。
2、信号量的初值为m。信号量的变化范围是m,m-1,…,1,0,…,-(n-m)。

进程之间存在哪几种相互制约关系?各是什么原因引起的?下列活动分别属于哪种制约关系?

(1)若干同学去图书馆借书。
(2)两队举行篮球比赛。
(3)流水线生产的各道工序。
(4)商品生产和消费。


进程间存在着两种相互制约的关系:

直接制约关系(即同步问题)和间接制约关系(即互斥问题)。

同步问题是存在逻辑关系的进程之间相互等待产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用相同的资源所发生的制约关系。

(1)属于互斥关系,因为书的个数是有限的,一本书只能借给一个同学。

(2)属于互斥关系,篮球只有一个,两队都要争夺。

(3)属于同步关系,各道工序的开始都依赖前道工序的完成。

(4)属于同步关系,商品没生产出来,消费无法进行,商品未消费完,生产也无需进行。

高级调度和低级调度的主要任务是什么?为什么引入中级调度?

(1)高级调度又称为作业调度。它是批处理系统中使用的一种调度。其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。

(2)低级调度又称进程调度。它是距离硬件最近的一级调度。其主要任务是按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU。

(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。此时的进程状态为挂起状态。当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。

在作业调度中需作出哪些决定?

(1)作业调度需要按照多道程序度(最大道数)决定一次接纳多少作业进入内存。如果太少将导致系统资源利用率低,且系统吞吐量低;太多将导致内存空间紧张,系统服务质量下降,作业运行周期过长。

(2)作业调度需要决定接纳哪些作业进入内存。常用的算法有:先来先服务、短作业优先、最高优先级调度、响应比高者优先等。

在剥夺调度中,有哪些剥夺原则?

(1)时间片原则。在轮转算法中,CPU轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将CPU剥夺过来,交给下一个进程使用。

(2)优先级原则。为紧迫的作业赋予较高的优先级,这种作业到达系统或由阻塞状态被唤醒后,若其优先级高于当前运行的进程的优先级,可以剥夺当前运行进程的CPU。

(3)短作业(进程)优先原则。若一个作业(进程)到达系统,其运行长度比当前运行的进程长度明显的短,则剥夺当前运行的进程CPU。

引起进程调度的主要因素有:

(1)一个进程运行完毕。

(2)一个正在运行的进程被阻塞。

(3)在抢占式调度中,一个高优先级的进程被创建。

(4)在抢占式调度中,一个高优先级进程由阻塞唤醒。

(5)在轮转式调度中,正垢进程运行完一个时间片。

在选择调度方式和调度算法时,应遵循的原则是什么?

(1)面向用户准则。对于用户的紧迫性作业,系统能够及时地处理,不至于运行延误;批处理系统追求作业的周转时间短;分时系统追求作业的响应时间快;实时系统中作业的截止时间要有保证。

(2)面向系统准则。系统的吞吐量要高,处理机的利用率要高,各类系统资源能够得到平衡利用。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:计算机操作系统题库之进程与线程(八)
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00