精华内容
下载资源
问答
  • 一个进程释放一种资源将有可能导致
    千次阅读
    2018-08-02 16:11:35

    程序在并发系统内执行的特点:程序执行的间断性,相互通信的可能性,资源分配的动态性
    在下面关于并发性的叙述中正确的是:并发性是指若干事件在同一时间间隔发生
    一般来说,为了实现多道程序设计,计算机最需要更大的内存
    Unix操作系统的进程控制块中常驻内存的是proc结构
    当(时间片到)时,进程从执行状态转变为就绪状态。
    在进程状态转换时,阻塞态→运行态转换是不可能发生的。
    创建进程所必需的步骤:建立一个PCB,为进程分配内存等资源,将PCB链入进程就绪队列
    下列关于进程的叙述中,正确的是:进程通过进程调度程序而获得CPU
    从资源管理的角度看,进程调度属于处理机管理
    下列有可能导致一进程从运行变为就绪的事件是出现了比现运行进程优先权更高的进程
    一个进程释放一种资源将有可能导致一个或几个进程:由阻塞变就绪
    一次I/O操作的结束,有可能导致一个进程由睡眠变就绪
    当一个进程从CPU上退下来时,它的状态应变为活动就绪
    为使进程由活动就绪变为静止就绪,应利用(Suspend)原语?
    不正确的是:一个线程可创建一个或多个进程
    若系统中只有用户级线程,则处理机调度单位是进程
    一个进程是PCB结构与程序和数据的组合
    下列几种关于进程的叙述,()最不符合操作系统地进程的理解?:进程是在多程序并行环境中的完整的程序
    在下面的叙述中正确的是:引入线程可提高程序并发执行的程度,可进一步提高系统效率
    下面关于线程的叙述中,正确的是:不管系统中是否有线程,进程都是拥有资源的独立单位
    在下面的叙述中,正确的是:线程的切换,可能引起进程的切换
    进程的控制信息和描述信息存放在PCB
    进程依靠()从阻塞状态过渡到就绪状态。”合作”进程的唤醒
    在Windows NT中(进程)可以处于就绪状态
    只作用于一个进程一次的原语是创立
    在Unix系统中,处于内存就绪状态的进程最容易被执行。
    从执行状态挂起的进程解除挂起时进入就绪状态
    一个进程执行过程中不可能对应多个PCB
    用P、V操作管理临界区时,信号量的初值一般应定义为1
    有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是1至-(m-1)
    在下面的叙述中正确的是临界资源是互斥共享资源
    对进程间互斥的使用临界资源,进程可以互斥的进入各自的同类资源临界区
    设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示没有一个进程进入临界区
    设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示一个进程进入了临界区,另一个进程等待
    当一进程因在记录型信号量S上执行P(S)操作而被阻塞后,S的值为<0
    当一进程因在记录型信号量S上执行V(S)操作而导致唤醒另一进程后,S的值为≤0
    如果信号量的当前值为-4,则表示系统中在该信号量上有4个进程等待
    若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围是3,2,1,0,-1
    若信号S的初值为2,当前值为-1,则表示有1个等待进程。
    并发进程之间可能需要同步或互斥
    在操作系统中,有一组进程,进程之间具有直接相互制约性。这组并发进程之间必定相关
    为进程分配处理机操作不是P操作可完成的。
    下列进程调度算法中,强占式静态优先权法可能会出现进程长期得不到调度的情况。
    为了照顾紧迫型作业,应采用优先权调度算法
    在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和先来先服务调度算法相同
    作业从后备作业到被调度程序选中的时间称为等待调度时间
    假设就绪队列中有10个进程,以时间片轮转方式进行进程调度,时间片大小为300ms,CPU进行进程切换需要花费10ms,则系统开销所占比率和 进程数目增加到30个、其余条件不变时系统开销所占的比率 相比,其结果是等于
    多道程序设计是指在一台处理机上并发运行多个程序
    进程和程序的一个本质区别是前者为动态的,后者为静态的
    进程在系统中是否存在的惟一标志是进程控制块
    某进程在运行过程中等待的事件已发生,例如,打印开始,此时该进程的状态将从运行变为阻塞
    运行速度快不属于多道程序运行的特征。
    一个正在运行的进程,当所分配的时间片用完后,将其挂在就绪队列
    某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将从运行变为阻塞
    一个进程被唤醒意味着进程状态变为就绪
    在操作系统中,可以并行工作的基本单位是进程
    时间片轮转法进行进程调度是为了多个终端都能得到系统的及时响应
    引入多道程序的目的在于充分利用CPU,减少CPU等待时间
    在一段时间内,只允许一个进程访问的资源称为临界资源
    在下列进程的四个特征中,最基本的特征是动态性
    下面会引起进程创建的事件是:用户登录,作业调度
    下面是关于线程的叙述,其中正确的是线程自己拥有一点资源,但它可以使用所属进程的资源;由于同一进程中的多个线程具有相同的地址空间,所以它们间的同步和通信也易于实现;进程创建与线程创建的时空开销不相同
    在下面的叙述中,正确的是同一进程或不同进程内的线程都可以并发执行
    线程是操作系统的概念,已具有线程管理的操作系统有OS /2,Windows NT,Mach
    下面属于进程基本状态的是:就绪,运行,阻塞,销毁
    关于进程的正确说法是:一个被创建了的进程,在它被消灭之前,处于进程的三种基本状态之一
    进程出现死锁,进程数目太多时,可能挂起某进程。
    多道程序系统进程从执行状态转换到就绪状态的原因是时间片完,有更高优先级的进程抢占cpu
    有关进程的描述中,正确的:进程执行的相对速度不能由进程自己来控制;同步是指并发进程之间存在的一种制约关系
    打印机,共享变量,共享缓冲区是临界资源
    一个进程从执行状态转换到阻塞状态的可能原因是本进程需要等待其他进程的执行结果;执行了P操作
    一个进程从阻塞状态转换到就绪状态的可能原因是该进程执行了V操作
    在单处理机系统中,设系统中有n个进程(n>2),且当前处理机没有执行进程调度程序,下列情况哪些可能发生:一个进程处于运行状态,n-1进程处于等待状态;一个进程处于运行状态,1个进程处于就绪状态,n-2进程处于等待状态一个进程处于运行状态;n-1进程处于就绪状态,没有进程处于等待状态
    有更高优先级的进程到达而从执行状态变为就绪状态可能是强占方式进程调度中引起调度的原因。
    选择排队作业中等待时间最长的作业优先调度,该调度算法是先来先服务调度算法
    有作业控制块JCB连成一串而形成的排队队列称为后备队列
    下列四个选项描述的时间组成了周转时间,其中可能发生多次的是等待I/O操作完成的时间;进程在CPU上执行时间;进程在就绪队列上等待进程调度的时间
    下面列出的是选择调度方式和算法的四个面向用户的准则。其中不完全适用于实时系统的准则是周转时间短(其他三个:优先权准则;响应时间快;截止时间的保证)
    对批处理、分时、实时系统都可以采用的是优先权准则
    在多级队列调度和多级反馈队列的调度的叙述中,正确的是:多级反馈队列的调度中就绪队列的设置不是像多级队列调度一样按作业性质划分,而是按时间片的大小划分
    有了线程之后,程序只能以线程的身份运行。错
    线程的切换会引起进程的切换。错
    多个线程可以对应同一段程序。对
    系统内可以有无父进程的进程。对
    线程所对应的程序肯定比进程所对应的程序短。错
    进程从CPU退下时,将”现场”保存在系统栈内。错
    在多道程序系统,进程需要等待某种事件的发生时,进程一定进入阻塞状态。错
    进程上下文是进程执行全过程的静态描述。对
    并发是并行的不同表述,其原理相同。错
    进程是基于多道程序技术而提出的,其基本的特征是动态性;进程的执行是在多个状态间多次转换的过程,但只有处于就绪和执行状态的进程位于内存。错
    操作系统对进程的管理和控制主要是通过控制原语言实现的。对
    原语的执行是屏蔽中断的。对
    一般情况下,分时系统中处于就绪状态的进程最多。对
    系统中进程的数目越多,CPU的利用率就越高。错
    多道程序的执行失去了封闭性和再现性,因此多道程序系统不需要封闭性和再现性。错
    一个多道程序可能具备封闭性和再现性。对
    单道程序不具备封闭性和再现性。错
    一个临界资源可以对应多个临界区。对
    同步信号量的初值一般为1。错(同步信号量的初值一般设为0;互斥信号量的初值一般设为1;)
    用管程实现进程同步时,管程中的过程是不可中断的。对
    进程A、B共享变量x,需要互斥执行;进程B、C共享变量y,B、C也需要互斥执行,因此进程A、C必须互斥执行。错
    作业调度能使作业获得CPU。错
    在多道程序系统中,系统的现有空闲可用资源能否满足后备作业J的资源要求,是选择作业J进入内存的必要条件。错
    短作业(进程)优先调度算法具有最短的平均周转时间,因此这种算法使最好的算法。错
    在优先权调度算法中如何确定静态优先权?一般说,计算进程的优先权要高于磁盘I/O进程的优先权。错

    更多相关内容
  • 【操作系统】第六话·线程是进程的(宝ᴗ宝)嘛?

    千次阅读 多人点赞 2022-03-12 15:23:07
    从今天开始,我们将要开启一个新的系列【闪耀计划】,没错!这是今年上半年的一整个系列计划!本专题目的是通过百天刷题计划,通过题目和知识点串联的方式,完成对计算机操作系统的复习和巩固;同时还配专门的笔记...

    🌕写在前面


    Hello🤗大家好啊,我是kikokingzz,名字太长不好记,大家可以叫我kiko哦~

    从今天开始,我们将要开启一个新的系列【闪耀计划】,没错!这是今年上半年的一整个系列计划!本专题目的是通过百天刷题计划,通过题目和知识点串联的方式完成对计算机操作系统的复习和巩固;同时还配有专门的笔记总结和文档教程哦!想要搞定,搞透计算机操作系统的同学,本专栏将会通过模块化的分类,刷够1000道题,为大家提供点对点的考点相关知识轰炸!值得注意的是,本专栏将会通过教程+课后习题的方式来进行巩固教学,课后习题的题量也是算入总题数的哦!

    🎉🎉订阅本专栏,将为你带来最一手的备战秘籍!🎉🎉

    🍊博客主页:kikoking的江湖背景🍊


    🌟🌟往期必看🌟🌟

    🔥【闪耀计划】第一话· 操作系统的基本概念

    🔥【闪耀计划】第二话·现代操作系统的前世今生

    🔥【闪耀计划】第三话·操作系统运行环境的层层细节

    🔥【操作系统】第四话·进程和程序究竟有啥区别?

    🔥【操作系统】第五话·进程的切换与控制·到底有啥关系?

    目录

    🌕写在前面

    🍺知识点9:线程与多线程模型

    🥝9.1 线程的概念

    🍓1.什么是线程?

    🍓2.为什么要引入线程?

    🍓3.线程与进程有什么区别?

    🍓4.线程有哪些属性?

    📜习题检测

    🥝9.2 线程切换与控制

    🍓1.线程状态与切换

    🍓2.线程的组织与控制

    🥝9.3 线程的实现方式与对应模型

    🍓1.用户级线程(ULT)

    🍓2.内核级线程(KLT)

    🍓3.组合方式

    🍓4.线程库

    📜习题检测

    🌕写在最后

    热爱所热爱的, 学习伴随终生,kikokingzz与你同在!❥(^_-)

    🍺知识点9:线程与多线程模型

    🥝9.1 线程的概念


    🍓1.什么是线程?

    我们可以把线程理解为“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。

    线程是进程中的一个实体,是被系统独立调度和分派的基本单位,它不拥有系统资源,只拥有一点运行中必可不少的资源,但它可与同属一个进程的其他线程共享进程的全部资源

    一个线程可以创建和撤销另一个线程,同一进程中的多个线程可以并发执行,由于线程之间的相互制约,致使线程中出现间断性。线程也有就绪、阻塞、运行三种基本。


    🍓2.为什么要引入线程?

    引入进程的目的:更好地使多道程序并发执行,提高资源利用率和系统吞吐量。

    引入线程的目的:减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

    引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ 视频、文字聊天、传文件)。


    🍓3.线程与进程有什么区别?

    (1)调度

    进程:传统操作系统中,拥有资源和独立调度的基本单位都是进程,每次调度都要进行上下文切换,开销较大。

    线程:线程是独立调度的基本单位,线程切换的代价远低于进程。在同一进程中,线程的切换不会引起进程切换,但从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。

    (2)并发性

    引入线程的操作系统中,不仅进程之间可以并发执行,而且一个进程中的多个线程之间亦可并发执行,甚至不同进程中的线程也能并发执行,从而使操作系统具有更好的并发性,提高了系统资源的利用率和系统吞吐量。

    (3)拥有资源

    进程:进程是系统中拥有资源的基本单位。

    线程:线程不拥有系统资源,但线程可以访问其隶属进程的系统资源,这主要表现在属于同一进程的所有线程都具有相同的地址空间

    PS:如果线程是拥有资源的单位,那么切换线程就需要较大的时空开销,这样的话,线程这个概念的提出就没有意义了。

    (4)独立性

    进程:每个进程都拥有独立的地址空间和资源,除了共享全局变量,不允许其他进程访问。

    线程:某进程中的线程对其他进程不可见,同一进程中的不同线程共享进程的地址空间和资源。

    (5)系统开销

    进程:在创建或撤销进程时,系统要为之分配或回收PCB及其他资源,操作系统为此所付出的开销,明显大于创建或撤销线程时的开销。

    线程:线程切换时只需保存和设置少量寄存器内容,开销很小;由于同一进程内的多个线程共享进程的地址空间,因此这些线程之间的同步和通信非常容易实现,甚至无须操作系统的干预。

    (6)支持多处理机系统

    单线程进程:不管有多少处理机,进程只能运行在一个处理机。

    多线程进程:可以将进程中的多个线程分配到多个处理机上执行。


    🍓4.线程有哪些属性?

    看似线程有很多属性,其实我们可以把线程理解为“轻量级进程”,那么进程所拥有的属性它基本都有,但是线程与进程的唯一区别就在于,线程是不拥有系统资源的,但它是处理机调度的单位;进程是系统中拥有资源的基本单位。

    📜习题检测


    📜091.题目难度 ⭐️⭐️

    091.【2012统考真题】下列关于进程和线程的叙述中,正确的是( )。
    A.不管系统是否支持线程,进程都是资源分配的基本单位
    B.线程是资源分配的基本单位,进程是调度的基本单位
    C.系统级线程和用户级线程的切换都需要内核的支持
    D.同一进程中的各个线程拥有各自不同的地址空间

    🍊详细题解:

    A/B:在引入线程后,进程是资源分配的基本单位,线程是调度的基本单位。

    C:在用户级线程中,有关线程管理的所有工作都由应用程序完成,无须内核的干预。

    D:同一进程中的各个线程共享进程的地址空间。

    ✅正确答案:A


    📜092.题目难度 ⭐️⭐️

    092.下面的叙述中,正确的是( )。
    A.线程是比进程更小的能独立运行的基本单位,可以脱离进程独立运行
    B.引入线程可提高程序并发执行的程度,可进一步提高系统效率
    C.线程的引入增加了程序执行时的时空开销
    D.一个进程一定包含多个线程

    🍊详细题解:

    A:线程是进程内一个相对独立的执行单元,不能脱离进程单独运行,只能在进程中运行。

    B/C:引入线程是为了减少程序执行时的时空开销。

    D:一个进程可能包含一个或多个线程。

    ✅正确答案:B


    📜093.题目难度 ⭐️⭐️

    093.下面的说法中,正确的是( )。
    A.不论是系统支持的线程还是用户级线程,其切换都需要内核的支持
    B.线程是资源分配的单位,进程是调度和分派的单位
    C.不管系统中是否有线程,进程都是拥有资源的独立单位
    D.在引入线程的系统中,进程仍是资源调度和分派的基本单位
    

    🍊详细题解:

    A:在用户级线程中,有关线程管理的所有工作都由应用程序完成,无须内核的干预。

    B/C/D:线程是调度的基本单位,进程是资源分配的基本单位。

    ✅正确答案:C


    📜094.题目难度 ⭐️⭐️

    094.下面的叙述中,正确的是( )。
    A.同一进程内的线程可并发执行,不同进程的线程只能串行执行
    B.同一进程内的线程只能串行执行,不同进程的线程可并发执行
    C.同一进程或不同进程内的线程都只能串行执行
    D.同一进程或不同进程内的线程都可以并发执行

    🍊详细题解:

    同一进程内的线程间的可以直接切换,并发度较高,不同进程内的线程间,由于需要涉及到进程切换,因此切换的代价会高一些。

    ✅正确答案:D


     📜095.题目难度 ⭐️⭐️

    095.下列关于线程的叙述中,正确的是( )。
    A.线程包含CPU现场,可以独立执行程序
    B.每个线程有自己独立的地址空间
    C.进程只能包含一个线程
    D.线程之间的通信必须使用系统调用函数
    

    🍊详细题解:

    A:线程是处理机调度的基本单位,当然可以独立执行程序。

    B:线程没有自己独立的地址空间,它共享其所属进程的空间。

    C:进程可以创建多个线程。

    D:同一进程内的线程之间的通信可以直接通过它们共享的存储空间,不涉及系统调用。不同进程内的线程之间的通信,必须要使用系统调用函数来实现通信。

    ✅正确答案:A


     📜096.题目难度 ⭐️⭐️⭐️

    096.在以下描述中,( )并不是多线程系统的特长。
    A.利用线程并行地执行矩阵乘法运算
    B.Web服务器利用线程响应HTTP请求
    C.键盘驱动程序为每个正在运行的应用配备一个线程,用以响应该应用的键盘输入
    D.基于GUI的调试程序用不同的线程分别处理用户输入、计算和跟踪等操作
    

    🍊详细题解:

    适合用多线程解决的业务场景有:

    • (1)可以将处理逻辑拆分成多个互不相干的部分
    • (2)计算量较大,需要高并发。

    A:矩阵乘法可以拆分为多个线程分别进行“行*列”的计算。

    B:利用多个线程进行处理HTTP请求,可以节约获得响应的时间。

    C:整个系统只有一个键盘,而且键盘输入是人的操作,速度比较慢,完全可以使用一个线程来处理整个系统的键盘输入。

    D:满足线程解决的任务场景(1)的情况。

    ✅正确答案:C

    ✨✨✨我是分割线✨✨✨

    🥝9.2 线程切换与控制


    🍓1.线程状态与切换

    与进程一样,各线程之间也存在共享资源和相互合作的制约关系,致使线程在运行时也具有间断性。相应地,线程在运行时也具有下面三种基本状态。

    • 执行状态:线程已获得处理机而正在运行。
    • 就绪状态:线程已具备各种执行条件,只需再获得CPU便可立即执行。
    • 阻塞状态:线程在执行中因某事件受阻而处于暂停状态。

    线程这三种基本状态之间的转换和进程基本状态之间的转换是一样的。


    🍓2.线程的组织与控制

    (1)线程控制块TCB

    与进程类似,系统也为每个线程配置一个线程控制块TCB,用于记录控制和管理线程的信息。

    同一进程中的所有线程都完全共享进程的地址空间和全局变量。各个线程都可以访问进程地址空间的每个单元,所以一个线程可以读、写或甚至清除另一个线程的堆栈。

    (2)线程的创建

    线程也是具有生命期的,它由创建而产生,由调度而执行,由终止而消亡。相应地,在操作系统中就有用于创建线程和终止线程的函数(或系统调用)。

    用户程序启动时,通常仅有一个称为“初始化线程”的线程正在执行,其主要功能是用于创建新线程。在创建新线程时,需要利用一个线程创建函数,并提供相应的参数,如指向线程主程序的入口指针、堆栈的大小、线程优先级等。线程创建函数执行完后,将返回一个线程标识符。

    (3)线程的终止

    当一个线程完成自己的任务后,或线程在运行中出现异常而要被强制终止时,由终止线程调用相应的函数执行终止操作。但是有些线程(主要是系统线程)一旦被建立,便一直运行而不会被终止。

    通常,线程被终止后并不立即释放它所占有的资源,只有当进程中的其他线程执行了分离函数后,被终止线程才与资源分离,此时的资源才能被其他线程利用。被终止但尚未释放资源的线程仍可被其他线程调用,以使被终止线程重新恢复运行。


     📜097.题目难度 ⭐️⭐️⭐️

    097.【2011统考真题】在支持多线程的系统中,进程Р创建的若干线程不能共享的是( )。
    A.进程Р的代码段
    B.进程Р中打开的文件
    C.进程P的全局变量
    D.进程Р中某线程的栈指针
    

    🍊详细题解:

    进程中的线程共享进程内的全部资源,但进程中某线程的栈指针对其他线程是透明的,不能与其他线程共享。

    ✅正确答案:A


    📜098.题目难度 ⭐️

    098.下面的叙述中,正确的是( )。
    A.引入线程后,处理器只能在线程间切换
    B.引入线程后,处理器仍在进程间切换
    C.线程的切换,不会引起进程的切换
    D.线程的切换,可能引起进程的切换

    🍊详细题解:

    在同一进程中,线程的切换不会引起进程的切换。当从一个进程中的线程切换到另一个进程中的线程时,才会引起进程的切换。因此线程的切换,可能会引起进程的切换。

    ✅正确答案:D


    📜099.题目难度 ⭐️⭐️

    099.下列说法中,不正确的是( )。
    A.一个进程可以创建一个或多个线程
    B.一个线程可以创建一个或多个线程
    C.一个线程可以创建一个或多个进程
    D.一个进程可以创建一个或多个进程

    🍊详细题解:

    进程可以创建进程或线程,线程也可以创建线程,但线程不能创建进程。

    ✅正确答案:C

     ✨✨✨我是分割线✨✨✨

    🥝9.3 线程的实现方式与对应模型


    线程的实现可以分为两类:用户级线程(ULT)内核级线程(Kernel-Level Thread)

    🍓1.用户级线程(ULT)

    在用户级线程中,有关线程管理的所有工作都由应用程序在用户空间中完成,内核是无法意识到线程的存在的。应用程序可以通过使用线程库,设计为多线程程序。通常应用程序从单线程开始,在该线程开始运行的任何时刻,可以通过调用线程库中的派生例程,创建一个在相同进程中运行的新线程

    对应模型:(多对一模型)

    将多个用户级线程映射到一个内核级线程,线程的调度和管理在用户空间完成。

    Q1:用户级线程的调度单位是什么?对线程的调度公平吗?

    A1:用户级线程的调度单位是以进程为单位进行的,各个进程轮流执行一个时间片。上图中,进程A包含2个用户级线程,进程B包含1个用户级线程,这样进程B中线程的运行时间就是进程A中各线程运行时间的2倍,因此对线程来说实质上是不公平的。

    ✅优点:

    1. 线程切换在用户空间即可完成,不需要切换到内核态,节省了两态切换的开销。
    2. 调度算法可以是进程专用的,不同进程可根据自身需要,对自己的线程选择不同的调度算法。

    ❌缺点:

    1. 当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高。
    2. 多个线程不可在多核处理机上并行运行,这是因为用户级线程的调度单位是进程,一个进程只能被分配一个CPU。
    100.在多对一的线程模型中,当一个多线程进程中的某个线程被阻塞后,( )。
    A.该进程的其他线程仍可继续运行
    B.整个进程都将阻塞
    C.该阻塞线程将被撤销
    D.该阻塞线程将永远不可能再执行

    在多对一模型中,由于只有一个内核级线程,操作系统内核是看不到用户级多线程的,它只能感知到一个调度单位的存在。因此该进程的一个线程被阻塞后,该进程就被阻塞,进程的其他线程当然也都被阻塞;本题正确答案:B


    🍓2.内核级线程(KLT)

    在内核级线程中,线程管理的所有工作是在内核空间中实现的。内核空间也为每个内核级线程设置一个线程控制块,内核根据该控制块感知某线程的存在,并对其加以控制。

    对应模型:(一对一模型)

    将每个用户级线程映射到一个内核级线程。

    ✅优点:

    1. 能发挥多处理机的优势,内核能同时调度同一进程中的多个线程并发执行。
    2. 如果进程中的一个线程被阻塞,内核可以调度该进程中的其他线程占用处理机。
    3. 内核级线程间切换比较快,开销小。

    ❌缺点:

    1. 同一进程中的线程切换,需要从用户态转到内核态进行,系统开销较大;这是因为用户进程的线程在用户态运行,而线程调度和管理是在内核实现的。

    📜101.题目难度 ⭐️⭐️

    101.【2019统考真题】下列关于线程的描述中,错误的是( )。
    A.内核级线程的调度由操作系统完成
    B.操作系统为每个用户级线程建立一个线程控制块
    C.用户级线程间的切换比内核级线程间的切换效率高
    D.用户级线程可以在不支持内核级线程的操作系统上实现
    

    🍊详细题解:

    A:应用程序没有进行内核级线程管理的代码,只有一个到内核级线程的编程接口,内核为进程及其内部的每个线程维护上下文信息,调度因此也是由操作系统内核完成。

    B:在多线程模型中,用户级线程和内核级线程的连接方式分为“多对一”、“一对一”、“多对多”,操作系统为每个用户级线程建立一个线程控制块属于“一对一”模型

    C:用户级线程的切换可以在用户空间完成,内核级线程的切换需要操作系统帮助调度,涉及两态切换。

    D:用户级线程的管理工作可以只在用户空间中进行,因此可以在不支持内核级线程的操作系统上实现。

    ✅正确答案:B


    🍓3.组合方式

    在组合方式中,内核支持多个内核级线程的建立、调度和管理,同时允许用户程序建立、调度和管理用户级线程。一个内核级线程对应多个用户级线程,这是用户级线程通过时分多路复用内核级线程实现的。

    对应模型:(多对多模型)

    将n个用户线程映射到m个内核级线程上,要求(n>=m);如下图所示,将3个用户级线程映射到2个内核级线程上。

    ✅优点:

    1. 同一进程中的多个线程可以同时在多处理机上并行执行,提高了并发度。
    2. 在阻塞一个进程时,不需要将整个进程阻塞。
    3. 克服了一对一模型的一个用户进程占用太多内核级线程而开销太大的缺点。

    🍓4.线程库

    线程库(thread library)是为程序员提供创建和管理线程的API,其主要有两种方式实现:

    (1)用户空间的库

    在用户空间中提供一个没有内核支持的库,这种库的所有代码与数据结构都位于用户空间,调用库中的函数,只导致用户空间中的一个本地函数的调用。

    (2)内核空间的库

    在内核空间提供一个操作系统直接支持的内核级的库,这种库的所有代码与数据结构都位于内核空间,调用库中的一个API函数通常会导致对内核的系统调用。


    102.系统动态DLL库中的系统线程,被不同的进程所调用,它们是( )的线程。
    A.不同
    B.相同
    C.可能不同,也可能相同
    D.不能被调用
    

    DLL是一个包含“可由多个程序同时使用的”代码和数据的库。当多个程序使用同一个函数库时,DLL中的同一个系统线程,可以被不同的进程所调用,进而降低在磁盘和物理内存中加载的代码的重复量;本题答案:B

    📜习题检测


    📜103.题目难度 ⭐️⭐️⭐️

    103.下面关于用户级线程和内核级线程的描述中,错误的是( )。
    A.采用轮转调度算法,进程中设置内核级线程和用户级线程的效果完全不同
    B.跨进程的用户级线程调度也不需要内核参与,控制简单
    C.用户级线程可以在任何操作系统中运行
    D.若系统中只有用户级线程,则处理机的调度对象是进程

    🍊详细题解:

    A:用户级线程的调度单位是进程,而内核级线程的调度单位是线程,对于用户级线程,一个进程只能被分配一个CPU,即同一时刻只能1个线程使用;而对于内核级线程来说,内核能同时调度同一进程中的多个线程并发执行,效果当然不同。

    B:由于此处涉及到了跨进程,因此就会发生进程切换,进程切换是需要内核参与的。例如下图中进程A的线程刚结束完,要调度进程B中的线程,此时就需要操作系统负责进程切换。

    C:用户级线程的管理工作可以只在用户空间中进行,因此可以在任何操作系统上运行。

    D:用户级线程的调度单位就是进程。

    ✅正确答案:B


    📜104.题目难度 ⭐️⭐️⭐️

    104.在内核级线程相对于用户级线程的优点的如下描述中,错误的是( )。
    A.同一进程内的线程切换,系统开销小
    B.当内核线程阻塞时,CPU将会调度同一进程中的其他内核线程执行
    C.内核级线程的程序实体可以在内核态运行
    D.对多处理器系统,核心可以同时调度同一进程的多个线程并行运行
    

    🍊详细题解:

    A:在内核级线程中,同一进程中的线程切换,需要从用户态转到核心态进行,系统开销较大。

    B:如果进程中的一个线程被阻塞,内核可以调度该进程中的其他线程占用处理机。

    C:如上图所示,当然正确。

    D:CPU调度是在内核进行的,在内核级线程中,调度是在线程一级进行的,因此内核可以同时调度同一进程的多个线程在多CPU上并行运行。

    ✅正确答案:A


    📜105.题目难度 ⭐️⭐️⭐️

    105.在用户级线程相对于内核级线程的优点的如下描述中,错误的是( )。
    A.一个线程阻塞不影响另一个线程的运行
    B.线程的调度不需要内核直接参与,控制简单
    C.线程切换代价小
    D.允许每个进程定制自己的调度算法,线程管理比较灵活
    

    🍊详细题解:

    A:进程中的某个用户级线程被阻塞,则整个进程也被阻塞,即进程中的其他用户级线程也被阻塞。

    B/C:用户级线程的调度是在用户空间进行的,节省了模式切换的开销。

    D:不同进程可以根据自身的需要,对自己的线程选择不同的调度算法。

    ✅正确答案:A

    🌕写在最后


    计算机操作系统世界是相当丰富的,内容方向繁多,但只要一步一个脚印,跟随【闪耀计划】吃透、搞懂、拿捏住操作系统内容是完全没有问题的!后期该系列还会有视频教程和经验分享,关于更多这方面的内容,请关注本专栏哦!

    热爱所热爱的, 学习伴随终生,kikokingzz与你同在!❥(^_-)

    展开全文
  • ZUCC操作系统原理习题 进程概念

    千次阅读 热门讨论 2020-03-25 01:25:25
    1.在操作系统中用户进程本身启动的唯一状态转换是()。 编号 选项 ...2.在分时系统中,导致创建进程的典型事件是()。...3.如果两个进程不相同,则两个进程执行的代码也不相同。 编号 选项 A True B ...

    ZUCC INTERSECTION题库提供答案。

    1.在操作系统中用户进程本身启动的唯一状态转换是()。

    编号选项
    A调度
    B阻塞
    C时间片到
    D唤醒

    2.在分时系统中,导致创建进程的典型事件是()。

    编号选项
    A用户查询
    B用户输入
    C用户登录
    D用户注册

    3.如果两个进程不相同,则两个进程执行的代码也不相同。

    编号选项
    ATrue
    BFalse

    4.一个由于等待键盘输入而不能运行的进程处于()。

    编号选项
    A就绪状态
    B运行状态
    C等待状态
    D终止状态

    5.一个进程被唤醒意味着()。

    编号选项
    A该进程的优先数变为最大
    B该进程获得了CPU
    C该进程从阻塞状态变为就绪状态
    D该进程排在了就绪队列的队首

    6.进程并发执行的相对速度不能由进程自己来控制。

    编号选项
    ATrue
    BFalse

    7.进程是程序执行的动态过程,而程序是进程运行的静态文本。

    编号选项
    ATrue
    BFalse

    8.通常用户进程被建立后,()。

    编号选项
    A随着进程运行的正常或不正常结束而撤消
    B随着时间片轮转而撤消与建立
    C随着进程的阻塞或唤醒而撤消与建立
    D便一直存在于系统中,直到被操作人员撤消

    9.进程特性中的(),导致了程序执行的不可再现性。

    编号选项
    A独立性
    B异步性
    C并发性
    D动态性

    10.当一个进程处于这样的状态,即()时,称其为就绪状态。

    编号选项
    A它正等着输入一批数据
    B它正等着协作进程的一个消息
    C它正等着给它分配一个时间片
    D它正等着进入内存。

    11.进程在处理器上执行时()。

    编号选项
    A进程之间是无关的,具有封闭特性
    B进程之间是有交互的,相互依赖、相互制约,具有并发性
    C具有并发性,即同时执行的特性
    D进程之间可能是无关的,但也可能是有交互的

    12.进程的PCB中包含有进程标识信息处理器状态信息和进程控制信息,具体包括有()。

    编号选项
    A程序计数器(PC)
    B进程状态信息
    C进程用户ID(UID)
    D以上所有

    13.下列对进程的描述中,()是错误的。

    编号选项
    A进程是指令的集合
    B进程是动态的概念
    C进程执行需要处理机
    D进程是有生命周期的

    14.进程在并发执行时,若干个进程在执行时间上是重叠的。

    编号选项
    ATrue
    BFalse

    15.原语的执行是屏蔽中断的。

    编号选项
    ATrue
    BFalse

    16.创建原语创建进程PCB后,把创建的进程放入就绪队列或阻塞队列。

    编号选项
    ATrue
    BFalse

    17.进程的三种基本状态之间,下列()转换是不能进行的。

    编号选项
    A就绪状态到执行状态
    B执行状态到阻塞状态
    C阻塞状态到执行状态
    D阻塞状态到就绪状态

    18.处于挂起状态的进程在内存中排队等待激活。

    编号选项
    ATrue
    BFalse

    19.操作系统中同时存在着多个进程,它们()。

    编号选项
    A不能共享系统资源
    B不能调用同一段程序代码
    C可以共享允许共享的系统资源
    D可以共享所有的系统资源

    20.进程上下文是进程执行活动全过程的静态描述。

    编号选项
    ATrue
    BFalse

    21.分时系统中的当前运行进程连续获得了两个时间片,原因是()。

    编号选项
    A就绪队列为空
    B该进程是一个短进程
    C该进程最早进入就绪队列
    D该进程的优先级最高

    22.若当前进程因时间片用完而让出处理机时,该进程应转变为()状态。

    编号选项
    A就绪
    B等待
    C运行
    D完成

    23.下面对进程的描述中,错误的是()。

    编号选项
    A进程是动态的概念
    B进程有生命期
    C进程可以并发执行
    D进程是指令的集合

    24.以下不属于进程基本特性的是()。

    编号选项
    A进程是具有特定功能的一组指令的集合,它指出了处理器执行操作的步骤
    B进程具有动态性,多个不同的进程可以包含相同的程序
    C进程具有三种基本状态:阻塞态、运行态、就绪态
    D进程可以并发执行

    25.进程要求使用某一资源时,如果资源正为另一进程所使用,则该进程必须等待,当另一进程使用完并释放后方可使用,这种情况就是所谓的进程同步现象。

    编号选项
    ATrue
    BFalse

    26.下列哪一个选项,体现了原语的主要特点()。

    编号选项
    A共享性
    B异步性
    C并发性
    D不可分割性

    27.在操作系统中进程是一个具有一定独立功能程序在某个数据集合上的一次()。

    编号选项
    A并发活动
    B运行活动
    C单独操作
    D关联操作

    28.在()情况下,要进行进程调度。

    编号选项
    A某一进程正在执行时,另一进程处于等待状态
    B某一进程正在执行时,另一进程处于就绪状态
    C某一进程正在执行时,缺乏资源而进入等待状态
    D某个进程正访问某一临界资源

    29.当()时,进程从执行状态转变为就绪状态。

    编号选项
    A进程被调度程序选中
    B时间片到
    C等待某一事件
    D等待的事件发生

    30.下列情况,在()发生时,进程从等待状态转换到就绪状态。

    编号选项
    A等待的某事件发生了
    B分配到必要的资源并获得了处理机
    C时间片用完
    D等待某事件

    31.进程由进程控制块和数据集以及对该数据集进行操作的程序组成。

    编号选项
    ATrue
    BFalse

    32.进程和线程之间的关系描述正确的是()。

    编号选项
    A线程是进程中可独立执行的子任务,一个进程可以包含一个或多个线程,一个线程可以属于一个或多个进程
    B线程又称为轻型进程,因为线程都比进程小
    C多线程技术具有明显的优越性,如速度快、通信简便、并行性高等
    D由于线程不作为资源分配单位,线程之间可以无约束地并行执行

    33.建立多进程的主要目的是提高()的利用率。

    编号选项
    A文件
    BCPU
    C内存
    D外设

    34.下面有关系统进程和用户进程说法中正确的是()。

    编号选项
    A系统进程和用户进程是进程的两种不同状态
    B调用操作系统功能的进程称为系统进程
    C完成用户功能的进程称为用户进程
    D进程和程序实质上是一个概念

    35.并发是并行的不同表述,其原理相同。

    编号选项
    ATrue
    BFalse

    36.进程控制块(PCB)中包含多种信息,以下信息中不是进程控制块中内容的是()。

    编号选项
    A位置
    B标识
    C优先级
    D页面大小

    37.一个由于没有获得打印机而不能运行的进程处于

    编号选项
    A等待状态
    B运行状态
    C就绪状态
    D后备状态

    38.进程和程序的一个本质区别是()。

    编号选项
    A前者为动态的,后者为静态的
    B前者在一个文件中,后者在多个文件中
    C前者存储在内存,后者存储在外存
    D前者分时使用CPU,后者独占CPU

    39.操作系统是通过()对进程进行管理的。

    编号选项
    A进程控制块
    B进程调度程序
    C临界区
    D进程启动程序

    40.线程不拥有任何资源,但是可以与同属一个进程的其它线程共享进程所拥有的所有资源。

    编号选项
    ATrue
    BFalse

    41.支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享。但其中(),不是引起操作系统选择新进程的直接原因。

    编号选项
    A运行进程出错
    B运行进程要等待某一事件发生
    C运行进程的时间片用完
    D有新进程进入就绪状态

    42.在单处理机上的进程就绪队列和阻塞队列最多只能有一个。

    编号选项
    ATrue
    BFalse

    43.下列选项中可能引起进程从执行状态转变为等待状态的是()。

    编号选项
    A请求输入或输出事件
    B输入或输出事件完成
    C某个进程被唤醒
    D时间片完

    44.线程有时又被称为轻型进程。

    编号选项
    ATrue
    BFalse

    45.在单处理器的多进程系统中,进程什么时候占用处理器和能占用多长时间,取决于()。

    编号选项
    A进程相应的程序段的长度
    B进程总共需要运行时间多少
    C进程自身和进程调度策略
    D进程完成什么功能

    46.进程所请求的一次打印输出结束后,将使进程状态从()。

    编号选项
    A运行态变为等待态
    B运行态变为就绪态
    C就绪态变为运行态
    D等待态变为就绪态

    47.某一时刻系统中不可能的有这样的情况,即有多个用户进程,却没有一个用户进程处于执行状态也没有一个用户进程处于就绪状态。

    编号选项
    ATrue
    BFalse

    48.进程分配到必要的资源并获得处理机时的状态是()。

    编号选项
    A运行状态
    B就绪状态
    C阻塞状态
    D中断状态

    49.进程由各个部分组成,下列项目中()不属于进程的组成部分。

    编号选项
    A数据段
    B就绪队列
    C程序代码
    D进程控制块

    50.在一单处理机系统中,若有个4用户进程,在用户态的某一时刻,处于阻塞态的用户进程最多有()个。

    编号选项
    A1
    B2
    C3
    D4

    51.任一时刻,若有执行状态的进程,就一定有就绪状态的进程。

    编号选项
    ATrue
    BFalse

    52.某计算机系统只有一个CPU,采用多用户多任务操作系统。假设当前时刻处于用户态(usermode),共装入了个10用户进程,则处于就绪状态的用户进程数最多有()个。

    编号选项
    A9
    B10
    C1
    D0

    53.进程是一个独立的运行单位,也是系统进行资源分配与调度的独立单位。

    编号选项
    ATrue
    BFalse

    54.进程由各个部分组成,下列项目中哪一个不属于进程的组成部分?

    编号选项
    A就绪队列
    B程序模块
    C进程控制块
    D数据集合

    55.一个进程可以包含多个线程,各线程()。

    编号选项
    A共享分配给进程的主存地址空间
    B必须串行工作
    C是资源分配的独立单位
    D共享进程的PCB

    56.以下系统中,()并不是多线程系统的特长。

    编号选项
    A利用线程并行执行矩阵运算
    Bweb服务器利用线程请求http服务
    C键盘驱动程序为每一个正在运行的应用配备一个线程,用来响应相应的键盘输入
    D基于GUI的debugger用不同线程处理用户的输入、计算、跟踪等操作。

    57.程序的并发执行是指同一时刻有两个以上的程序,它们的指令都在同一处理机上执行。

    编号选项
    ATrue
    BFalse

    58.进程和程序的最根本区别在于()。

    编号选项
    A对资源的占有程度
    B进程是动态的,程序是静态的
    C是否能并发执行
    D进程小,程序大

    59.进程调度的关键问题是()。

    编号选项
    AI/O设备的分配
    B时间片的确定
    C调度算法的选择
    D内存的分配

    60.下列几种关于进程的叙述,()最不符合操作系统对进程的理解。

    编号选项
    A进程是在多程序并行环境中的完整的程序
    B进程可以由程序数据和进程控制块描述
    C线程(THREAL)是一种特殊的进程
    D进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位

    61.对进程的管理和控制使用()。

    编号选项
    A信号量
    B原语
    C中断
    D指令

    62.进程是程序加PCB数据结构。

    编号选项
    ATrue
    BFalse

    63.采用时间片轮转法分配CPU时,当处于运行状态的进程用完一个时间片后,它的状态是()。

    编号选项
    A阻塞
    B运行
    C就绪
    D消亡

    64.下面对父进程和子进程的叙述不正确的是()。

    编号选项
    A父进程创建了子进程,因此父进程执行完了,子进程才能运行
    B父进程和子进程之间可以并发
    C父进程可以等待所有子进程结束后再执行
    D撤销父进程之时,应同时撤销其子进程

    65.进程是基于多道程序技术而提出的,其最基本的特征是并发性和动态性;进程的执行也即在多种基本状态间多次转换的过程,但只有处于就绪、阻塞和执行这三种状态的进程位于内存。

    编号选项
    ATrue
    BFalse

    66.一个进程可以包含多个线程,各线程

    编号选项
    A共享分配给进程的主存地址空间
    B必须串行工作
    C是资源分配的独立单位
    D共享进程的PCB

    67.下列选项中,()不是在创建进程中所完成的工作。

    编号选项
    A获取初始状态参数填入PCB
    B把PCB分别插入就绪队列和进程家族中
    C为被创建进程建立一个PCB
    D为进程调度CPU使用权

    68.用户进程中,一定至少有一个进程处于执行状态。

    编号选项
    ATrue
    BFalse

    69.系统有n(n>2)个进程,且当前不再执行进程调度程序,请问下述四种情况中,()是不可能发生的。

    编号选项
    A没有运行进程,有个就绪进程,n-2个进程处于阻塞状态。
    B有一个运行进程,n-1个就绪进程,没有进程处于阻塞状态。
    C有一个运行进程,有一个就绪进程,n-2个进程处于阻塞状态。
    D有一个运行进程,没有就绪进程,n-1个进程处于阻塞状态。

    70.进程具有三种基本状态:阻塞态、运行态、就绪态,进程在执行过程中,其状态总是在不停地发生变化的,下面关于进程状态变化的说法中正确的是()。

    编号选项
    A进程一旦形成,首先进入的是运行状态
    B三种进程状态是进程运行过程中的基本状态,进程可能同时处于某几种状态中
    C在分时系统中,一个正在运行进程的时间片到,该进程将转入就绪状态
    D一个进程必须经过进程的三个基本状态才能结束

    71.下面关于处理器及进程执行的描述中错误的是()。

    编号选项
    A目前计算机系统是冯·诺依曼式结构,具有处理器顺序执行指令的特点
    B进程是并发执行的,因此并不具有顺序性
    C程序在处理器上顺序执行时,具有封闭性特性
    D程序在处理器上顺序执行时,具有可再现性特性

    72.某用户两次运行AUTOCAD软件,都对同一个图形文件进行操作,因为运行的软件和操作的数据相同,所以系统两次运行AUTOCAD软件的是同一个进程。

    编号选项
    ATrue
    BFalse

    73.在单处理机上,进程就绪队列和阻塞队列都只能有一个。

    编号选项
    ATrue
    BFalse

    74.一个进程释放一种资源将有可能导致一个或几个进程()。

    编号选项
    A由阻塞变就绪
    B由运行变就绪
    C由阻塞变运行
    D由就绪变运行

    75.当进程已分配到除()以外所有必要资源的状态,称为就绪状态。

    编号选项
    A处理机
    B控制总线
    C存储器
    DI/O设备

    76.一个被创建的进程包括()。

    编号选项
    APCB
    B程序和数据
    CPCB和数据
    DPCB、程序和数据

    77.如果系统中有n个进程,则就绪队列中进程的个数最多有()个。

    编号选项
    A1
    Bn-1
    Cn
    Dn+l

    @Power By Exercises-Manager

    展开全文
  • 操作系统中的进程调度策略哪几

    万次阅读 多人点赞 2018-09-22 09:00:39
    当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪...
    1. 先来先服务调度算法:先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。
    2. 短作业(进程)优先调度算法:短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
    3. 高优先权优先调度算法:为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。此算法常被用于批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统中。当把该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程,这时,又可进一步把该算法分成如下两种。
    •     3.1) 非抢占式优先权算法:在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。
    •     3.2) 抢占式优先权调度算法:在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i 时,就将其优先权Pi与正在执行的进程j 的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行;但如果是Pi>Pj,则立即停止Pj的执行,做进程切换,使i 进程投入执行。显然,这种抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。
    •     3.3)容易出现先级倒置现象:优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源。高优先任务由于因资源缺乏而处于受阻状态,一直等到低优先级任务释放资源为止。而低优先级获得的CPU时间少,如果此时有优先级处于两者之间的任务,并且不需要那个共享资源,则该中优先级的任务反而超过这两个任务而获得CPU时间。如果高优先级等待资源时不是阻塞等待,而是忙循环,则可能永远无法获得资源,因为此时低优先级进程无法与高优先级进程争夺CPU时间,从而无法执行,进而无法释放资源,造成的后果就是高优先级任务无法获得资源而继续推进。
    •     3.4)优先级反转案例解释:不同优先级线程对共享资源的访问的同步机制。优先级为高和低的线程tall和线程low需要访问共享资源,优先级为中等的线程mid不访问该共享资源。当low正在访问共享资源时,tall等待该共享资源的互斥锁,但是此时low被mid抢先了,导致mid运行tall阻塞。即优先级低的线程mid运行,优先级高的tall被阻塞。
    •     3.5)优先级倒置解决方案:
    •        (3.5.1)设置优先级上限,给临界区一个高优先级,进入临界区的进程都将获得这个高优先级,如果其他试图进入临界区的进程的优先级都低于这个高优先级,那么优先级反转就不会发生。
    •      (3.5.2)优先级继承,当一个高优先级进程等待一个低优先级进程持有的资源时,低优先级进程将暂时获得高优先级进程的优先级别,在释放共享资源后,低优先级进程回到原来的优先级别。嵌入式系统VxWorks就是采用这种策略。
    •        这里还有一个八卦,1997年的美国的火星探测器(使用的就是vxworks)就遇到一个优先级反转问题引起的故障。简单说下,火星探测器有一个信息总线,有一个高优先级的总线任务负责总线数据的存取,访问总线都需要通过一个互斥锁(共享资源出现了);还有一个低优先级的,运行不是很频繁的气象搜集任务,它需要对总线写数据,也就同样需要访问互斥锁;最后还有一个中优先级的通信任务,它的运行时间比较长。平常这个系统运行毫无问题,但是有一天,在气象任务获得互斥锁往总线写数据的时候,一个中断发生导致通信任务被调度就绪,通信任务抢占了低优先级的气象任务,而无巧不成书的是,此时高优先级的总线任务正在等待气象任务写完数据归还互斥锁,但是由于通信任务抢占了CPU并且运行时间比较长,导致气象任务得不到CPU时间也无法释放互斥锁,本来是高优先级的总线任务也无法执行,总线任务无法及时执行的后果被探路者认为是一个严重错误,最后就是整个系统被重启。Vxworks允许优先级继承,然而遗憾的工程师们将这个选项关闭了。
    •      (3.5.3)第三种方法就是临界区禁止中断,通过禁止中断来保护临界区,采用此种策略的系统只有两种优先级:可抢占优先级和中断禁止优先级。前者为一般进程运行时的优先级,后者为运行于临界区的优先级。火星探路者正是由于在临界区中运行的气象任务被中断发生的通信任务所抢占才导致故障,如果有临界区的禁止中断保护,此一问题也不会发生。

     

           4、高响应比优先调度算法:在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足之处是长作业的运行得不到保证。如果我们能为每个作业引入前面所述的动态优先权,并使作业的优先级随着等待时间的增加而以速率a 提高,则长作业在等待一定的时间后,必然有机会分配到处理机。该优先权的变化规律可描述为:

           在利用该算法时,每要进行调度之前,都须先做响应比的计算,这会增加系统开销。

           5、时间片轮转法:在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU 分配给队首进程,并令其执行一个时间片。时间片的大小从几ms 到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。

           6、多级反馈队列调度算法:前面介绍的各种用作进程调度的算法都有一定的局限性。如短进程优先的调度算法,仅照顾了短进程而忽略了长进程,而且如果并未指明进程的长度,则短进程优先和基于进程长度的抢占式调度算法都将无法使用。而多级反馈队列调度算法则不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的进程调度算法。在采用多级反馈队列调度算法的系统中,调度算法的实施过程如下所述。

    • (1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。

    • (2)当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n 队列便采取按时间片轮转的方式运行。

    • (3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。

       

       

      批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?

      批处理系统常用调度算法:
      ①、先来先服务:FCFS
      ②、最短作业优先
      ③、最短剩余时间优先
      ④、响应比最高者优先

      分时系统调度算法:
      ①、轮转调度
      ②、优先级调度
      ③、多级队列调度
      ④、彩票调度

      实时系统调度算法:
      ①、单比率调度
      ②、限期调度
      ③、最少裕度法

    展开全文
  • Linux C/C++编程之(十六)进程进程控制

    千次阅读 多人点赞 2020-07-07 11:47:43
    文章目录、概述 、概述
  • 1.每一个线程一定会有一个名字,如果用户没有指定名字,系统会为线程指定一个名字(Thread-1/2/3…)。 2.当线程的run方法结束的时候该线程完成任务。 3.我们程序员无法控制线程调试的顺序。CPU根据当时的状态自行...
  • 操作系统之进程管理习题

    千次阅读 2021-12-11 22:19:54
    操作系统进程管理习题详解
  • 进程调度的几方式与算法简介

    千次阅读 2021-04-07 18:18:05
    处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法(公平、高效)选择一个进程处理机分配给它运行,以实现进程并发执行。 二、进程调度的方式 当某个进程正在处理机上执行时。若某个更为重要或...
  • 详细讲述三引起C++程序运行过程中发生异常闪退的常见原因。
  • 【操作系统】第五话·进程的切换与进程控制

    千次阅读 多人点赞 2022-04-02 10:01:30
    从今天开始,我们将要开启一个新的系列【闪耀计划】,没错!这是今年上半年的一整个系列计划!本专题目的是通过百天刷题计划,通过题目和知识点串联的方式,完成对计算机操作系统的复习和巩固;同时还配专门的笔记...
  • 一、选择题 1、进程与程序的根本区别是( )。 A.静态和动态特征 B.... (2)一个进程可以执行一个或多个程序,同一个程序也可以被多个进程同时执行。如:一个对C源程序进行编译的进程,先后要执行...
  • Linux 进程必知必会

    千次阅读 2020-07-10 08:58:31
    上一篇文章只是简单的描述了一下 Linux 基本概念,通过几个例子来说明 Linux 基本应用...Linux 一个非常重要的概念就是进程,Linux 进程和我们在 进程和线程 这篇文章 中探讨的进程模型非常相似。每个进程都会运行一
  • 进程和线程

    千次阅读 2021-05-08 15:49:53
    进程是程序执行时的一个实例,即它是程序已经执行到何程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。 线程是进程一个执行流,是CPU调度和分派的基本...
  • 因此准备梳理这块知识点,结合已的认知,基于网上的大量参考资料, 从浏览器多进程到JS单线程,JS引擎的运行机制系统的梳理遍。展现形式:由于是属于系统梳理型,就没有由浅入深了,而是...
  • 操作系统第二章复习题及解答

    千次阅读 2020-05-08 18:08:49
    一、选择题 3. 在进程状态转换时,下列( D )转换是不可能发生的。 A.就绪态→运行态 B.... C....4. 下列各项工作步骤中,( B )不是创建进程所必需的步骤。...7. 下列有可能导致一进程从运行变为就绪的事件是(...
  • 操作系统进程状态和状态转换详解

    万次阅读 多人点赞 2019-11-01 10:28:55
    进程的状态的转换与PCB详解 ​ 返回主目录 ​ 之前的博文对进程和线程的区别进行了详细的介绍,并且...​ 注意:本博文中进程均是在传统操作系统中的进程,既是OS进行资源分配的基本单位,也是OS进行调度的一个...
  • Linux -- 多进程编程之 - 僵尸进程

    千次阅读 多人点赞 2021-11-04 22:23:15
    僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程释放进程占用的资源,此时子进程将成为一个僵尸进程
  • 进程、线程和CPU 之间的关系(

    千次阅读 2020-10-31 15:43:15
    今天开始,这专题主要讲解 java 并发编程系列,从操作系统的进程、CPU、线程等底层开始,到java 并发工具类,线程、线程池,并发容器、CAS、AQS等原理、源码和使用均做深入的解析。今天讲进程、线程和CPU 之间的...
  • 【Linux】Linux进程的创建与管理

    万次阅读 多人点赞 2018-07-27 19:21:29
    在Linux系统中,除了系统启动之后的第一个进程由系统来创建,其余的进程都必须由已存在的进程来创建,新创建的进程叫做子进程,而创建子进程进程叫做父进程。那个在系统启动及完成初始化之后,Linux自动创建的进程...
  • 广州大学2020操作系统实验进程管理与进程通信

    千次阅读 多人点赞 2020-07-24 17:15:57
    实验一 进程管理与进程通信 一、实验目的 1、掌握进程的概念,明确进程的含义。 2、认识并了解进程并发执行的实质,进程的阻塞与唤醒,终止...当此程序运行时,在系统中有一个进程和两个子进程并发执行,观察实验结.
  • 一个线程OOM之后,进程会崩溃么

    千次阅读 2019-07-27 10:51:19
    偶然间看到一个问题,一个线程OOM之后,进程里面的其他线程还能运行吗?看了其他博客里面都说可以运行,但是按照项目上的经验,我们的项目是部署在tomcat中运行,如果发生OOM,这个时候发送请求是不会回应的!所以...
  • Linux操作系统——进程管理

    千次阅读 2021-10-16 17:10:55
    多个程序要运行时,仅当一个程序全部执行结束,另一个程序才能开始。 (2)封闭性:程序在封闭环境中运行,即程序运行时独占所有资源,程序的执行过程不受外界影响,结果只取决于程序自身。 (3)可再现性:程序...
  • 生产环境的一个服务突然无法访问,服务的交互过程如下所示: 所有的请求都是通过网关进入,之后分发到后端服务。 现在的情况是用户服务无法访问商旅服务,网关大量java.net.SocketTimeoutException: Read timed ...
  • 进程的终止方式和进程的状态

    千次阅读 2018-12-18 11:51:27
    8方式使进程终止,其中前5为正常终止,它们是 1:从 main 返回 2:调用 exit 3:调用 _exit 或 _Exit 4:最后一个线程从其启动例程返回 5:最后一个线程调用pthread_exit 异常终止3,它们是 6:...
  • Linux系统-进程概念

    千次阅读 多人点赞 2022-03-03 08:54:33
    Linux进程概念零、前言、冯诺依曼体系结构二、操作系统三、进程1、描述进程-PCB2、查看进程3、获取进程标示符4、创建进程-fork()5、进程状态6、僵尸进程7、孤儿进程8、进程优先级9、环境变量1)测试PATH2)测试HOME3...
  • 重学操作系统原理系列 - 进程管理

    万次阅读 2018-04-09 12:53:13
    了多道程序技术之后就得到了b图,每个程序各自独立的占用一个逻辑程序计数器,达到并发执行效果 从c图中可以看到多个程序是轮流执行的 1.2 并发环境与并发程序 并发环境指一段时间间隔内,单处理器...
  • 进程、线程、协程

    千次阅读 2021-08-28 23:44:33
    进程、线程、协程 一、概念与区分 1、进程 进程是程序一次动态执行的过程,是程序运行的基本...一个进程至少包含一个主线程,也可以更多的子线程。 多个线程共享所属进程资源,同时线程也拥有自己的专属资源
  • 超硬核!操作系统学霸笔记,考试复习面试全靠它

    万次阅读 多人点赞 2021-03-22 18:43:49
    } } wait操作:每次都相当于进程请求一个单位的该类资源 signal操作:每次都相当于释放一个单位资源 当S->value的初值为1的时候,表示只允许一个进程访问临界资源,信号量转化为互斥型信号量 优点:通过维持阻塞...
  • 设计一个模块,功能是列出系统中所有内核线程的程序名、PID号和进程状态。主要步骤: 阅读内核源代码,了解进程描述符task_struct中与本实验有关的成员项,以及访问进程队列的宏for_each_process; 分析内核模块...
  • Linux进程概念(精讲)

    千次阅读 多人点赞 2021-09-09 08:54:04
    文章目录基本概念描述进程-PCB组织进程查看进程通过系统调用获取进程的PID和PPID通过系统调用创建进程- fork初始进程状态运行状态-R浅度睡眠状态-S深度睡眠状态-D暂停状态-T僵尸状态-Z死亡状态-X僵尸进程僵尸进程的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 158,804
精华内容 63,521
热门标签
关键字:

一个进程释放一种资源将有可能导致