zoukankan      html  css  js  c++  java
  • 【读书笔记+小练习(答案已经更新)】操作系统——进程及其实现

    进程及其实现

    笔记                                                                                                              

    进程的定义:

          具有独立功能的程序在某个数据集合上的一次运行活动

            是操作系统经行资源分配和保护的基本单位

    引进进程的原因:

          1.刻画程序的并发行。

           2.解决资源的共享性。

    进程的属性:

          1.动态性。

             2.共享性。

           3.独立性。

           4.制约性。

           5.并发性。(多个程序的执行在时间上是可以重叠的,在单处理器系统中可以并发执行,但是处理器中只能有一个进程,在多处理器环境中可并发执行)

    进程的分类:

          1.用户进程

             2.系统进程

    进程与程序的区别:

           1.进程更能真实地描述并发,而程序不能

           2.进程是由程序、数据、控制块、核心栈组成

           3.程序是静态的,进程是动态的

           4.进程有生命后期,有诞生有消亡,是短暂;而程序是想对长久存在的

           5.一个程序可以有多个进程

           拿QQ来说,qq就是一个程序,运行之后就创建了进程了

    进程的三种状态:

             1.运行态:进程占用处理器正在运行的状态

            2.就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。(万事俱备,只差CUP)

            3.阻塞态(等待态或者睡眠态):进程不具备运行条件,正在等待某个时间完成的状态

                     

            等待态转换成就绪态,就绪态转换为运行态,当正在运行的进程的时间片用完时,运行态也可以转换为就绪态,就绪态是肯定补能转换成等待态的,因为万事俱备了,只是差cup,怎么可以又倒回去等待呢。等待态也不可以转换成运行态,你都还没分配资源,怎么能直接占用cup呢。

    进程的七种状态:

               

          挂起:将进程从内存移到辅存中,释放内存空间。

    挂起进程的特征:

             1.该进程不能立即被执行

             2.该进程可能会等待事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件

             3.该进程进入挂起状态是由于操作系统、父进程或进程自身阻止它的运行

             4.结束挂起状态的命令只能通过操作系统或父进程发出

    进程映像:

            某时刻进程的内容及其状态集合

    进程要素:

            1.进程控制块PCB(上下文切换时操作系统拍的照片就是保存在PCB中)

              2.进程程序块

              3.进程核心栈

                  4.进程数据块

    进程控制块:

                                  系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的

                                  构成:标志信息、现场信息、控制信息。

                                  组织:系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表。PCB表的大小决定了 系统中最多可同时 存在的进程个数, 称为系统的并发度

                使用权:其使用权和修改权均属于操作系统

    进程队列组织方式:

              1.链接方式

              2.索引方式

        不同状态的进程可以排成不同队列,如运行队列、就绪队列、等待队列。单处理器的话,运行队列只有一个进程。等待队列通常有多个,按照等待状态:等待I/O设备,等待信号量等等

        在PCB池中空闲的PCB会链接成自由队列

        空闲进程队列指针就是指空闲的PCB

    进程上下文切换:

           进程切换必定在内核态发生。

             步骤:

                1.保存被中断进程的处理器现场信息(拍照)

                2.修改被中断进程PCB的有关信息:如进程状态等

                3.把被中断金进程的PCB加入相关队列

                4.选择占用处理器运行的另一个进程

                5.修改被选中进程PCB的有关信息:如改为就绪态

                6.设置被选中进程的地址空间,恢复存储管理信息

                7.根据被选中进程的上下文信息来恢复处理器现场

                                      进程切换一定会引起模式切换

    进程创建:

                1.在进程列表中增加一项,从PCB池中申请一个空闲PCB,为新进程分配唯一进程标识符

             2.为新进程的进程映像分配地址空间,以便容纳进程实体,由进程管理程序确定加载至进程地址空间中的程序

             3.为新进程分配各种资源

             4.初始化PCB,如进程标识符、处理器初始状态、进程优先级

             5.把新进程的状态设置为就绪态,并将其移入就绪队列

             6.通知操作系统某些模块,如记账程序,性能监控程序等

    进程撤销:

           进程完成特定工作或出现严重错误后必须被撤销。

             分类:

                正常撤销和非正常撤销。

             原因:

                1.进程运行结束

                2.进程执行非法指令

                3.进程在用户态执行特权指令

                4.进程运行时间超过所分配的最大时间配额

                5.进程等待时间超过所设定的最长等待时间

                6.越界错误

                7.对共享内存区的非法使用

                8.出现程序性故障

                9.I/O操作故障

                  10.操作员干预等。

              一旦发生以上事件,系统或进程将调用撤销原语来终止自己或者子进程。

              步骤:

                 1.根据撤销进程的标识号从相应队列中查找并移除它

                 2.将此进程所拥有的资源归还给父进程或操作系统

                 3.若此进程拥有子进程,先撤销其所有子进程以防止它们脱离控制

                 4.回收PCB并将其归还至PCB池

                 5.转向进程调度程序工作

    进程阻塞和唤醒:

            进程阻塞是指进程让出处理器转而等待一个事件,如等待资源、等待I/O操作完成、等待事件发生等

              进程通常调用阻塞原语来阻塞自己,所以阻塞是进程的自主行为,是一个同步事件   

              进程阻塞步骤:

                      1.停止进程执行,将现场信息保存到PCB

                      2.修改进程PCB的有关内容,如进程状态由运行态改为等待态等,并把状态已修改的进程移入相应事件的等待队列

                      3.转向进程调度程序,调度其他进程运行

              进程唤醒步骤:

                      1.从相应的等待队列移除进程

                      2.修改PCB的有关内容,如进程状态改为就绪态,并将进程移入就绪队列

                      3.若被唤醒的进程比当前运行的进程的优先级高,则重新设置调度标志

               阻塞原语和唤醒原语的作用刚好相反。

               调用了阻塞原语来阻塞自己,必须由与相关的另一进程调用唤醒原语来唤醒被阻塞进程,否则被阻塞进程会因未被唤醒而处于永远阻塞状态

     

                  挂起原语既可由进程自己也可由其他进程调用,但是激活原语只能由其他进程调用

         

    小练习                                                                                                                                 

    一、填空题

    1.进程的静态描述由三部分组成: ①PCB、②程序部分、③相关的数据结构集  

    2.进程存在的标志是:进程控制块PCB

    3.给出用于进程控制的四种常见的原语:创建原语、撤消原语、阻塞原语、唤醒原语

    4进程被创建后,最初处于   ①   状态,然后经  ②   选中后进入  ③   状态

        ①就绪,②进程调度程序,③运行

    5. ①   是现代操作系统的基本特征之一,为了更好地描述这一特征而引入了 ②   这一概念。

        ①程序的并发执行,②进程

    二、单项选择题

    1.进程调度是从 (     )选择一个进程投入运行。

        (A)就绪队列                      (B)等待队列

        (C)作业后备队列                 (D)提交队列

    2.一个进程被唤醒,意味着  (  )

        (A)该进程重新占有了CPU      (B)进程状态变为就绪

        (C)它的优先权变为最大         (D)其PCB移至就绪队列的队首

    3.进程和程序的本质区别是   (  )

        (A)存储在内存和外存                  (B)顺序和非顺序执行机器指令

        (C)分时使用和独占使用计算机资源 (D)动态和静态特征

    4.某进程所要求的一次打印输出结束,该进程被  ①  C,进程的状态将从  ②F

        (A)阻塞                             (B)执行

        (C)唤醒                             (D)运行状态到阻塞状态

        (E)就绪到运行                     (F)阻塞到就绪

    5.一进程在某一时刻具有(  )

        (A)一种状态                       (B)两种状态

        (C)三种状态                       (D)四种状态

    6.进程从运行状态变为等待的原因可能是(  )

        (A)输入/输出事件发生          (B)时间片到

        (C)输入/输出事件完成          (D)某个进程被唤醒

    【解析】正在运行的进程如果要申请输入或输出,这时进程的状态将从运行变为等待,将CPU让出,等待输入或

    输出完成。

    7.进程创建原语的任务是(  )

        (A)为进程编制程序               (B)为进程建立PCB表

        (C)为进程分配CPU               (D)为进程分配所需的各种资源

    8.进程被创建后即进入 (    )排队

        (A)阻塞队列                       (B)就绪队列

        (C)缓冲队列                       (D)运行队列

    【解析】进程创建后,按就绪队列的排列顺序插入其中,等待进程调度程序的调度。

    9.多道系统环境下,操作系统分配资源是以(     )为基本单位。

        (A)作业                             (B)指令

        (C)程序                             (D)进程

    10.一个进程获得了除CPU以外的所需资源,则该进程可能处于(   )状态

        (A)运行                              (B)就绪  

        (C)等待                              (D)  (B)和(C)

    11.保护现场是指将现场信息保存至(   )

      (A)磁盘                                 (B)各相应的寄存器

      (C)进程的PCB中                      (D)内存系统区

    三、多项选择题:

    1.进程所具有的基本状态包括_________。

    (A)后备状态                (B)运行状态    

    (C)完成状态                (D)就绪状态     

    (E)等待状态

    2.进程所具有的基本特征包括_________。

    (A)动态性                       (B)顺序性   

    (C)并发性                       (D)封闭性       

    (E)异步性

    3.一个进程通常包括_________。

    (A)程序                         (B)作业说明书

    (C)数据                         (D)运行日志     

    (E)进程控制块(PCB)

    4.运行状态的进程由于某种原因可能变为_________。

    (A)就绪状态                     (B)等待状态

    (C)后备状态                     (D)完成状态     

    (E)活跃状态

    5. 进程调度算法中,可以设计成“可抢占式”的算法有_________。

    (A)先来先服务调度算法          (B)优先数调度算法     (C)最高响应比优先             

    (D)时间片轮转调度算法          (E)最短作业优先

    【解析】常用的进程调度算法有先来先服务、优先数、时间片轮转及多级调度等算法。而先来先服务调度算法是“非

    抢占式”的;“优先数调度算法”可以是“非抢占式”的,也可以是“抢占式”的;“时间片轮转调度算法”是一种“抢

    占式”的。算法“最高响应比优先”、“最短作业优先”适用于作业调度,而不适于进程调度。所以选择(B)、(D)。

    6.从中断事件的性质来说,一般中断包括_________。

    (A)硬件故障中断           (B)程序中断

    (C)外部中断               (D)输入输出中断     

    (E)访管中断

    7.在下列叙述中,正确的是_________。

    (A)进程之间的状态变化,一定在PCB中反映出来

    (B)当进程完成I/O后,进程的状态由等待变为运行

    (C)中断屏蔽是不允许发生中断

    (D)O.S的特征之一为并行性,所谓并行性是指多个进程同时处于运行状态

    (E)中断屏蔽是暂时不响应中断

    8.可以做为进程调度算法的有_________。

    (A)先来先服务调度算法           (B)时间片轮转调度算法

    (C)最高优先级调度算法           (D)响应比高者优先调度算法

    (E)均衡调度算法

    11.________可能会引起处理机从一个进程转到另一个进程。

    (A)一个进程从运行状态变为等待状态

    (B)一个进程从运行状态变为就绪状态

    (C)一个就绪状态进程的优先级降低     

    (D)一个进程运行完成而撤离系统

    (E)一个就绪状态进程的优先级升高

    【解析】当一个就绪状态进程的优先级降低时,不会引起处理机从一个进程转到另一个进程。因此,不能选择C,其

    它情况都可能引起处理机在不同进程之间的转换。所以,本题应该选择(A)、(B)、(D)、(E)。

    四、是非判断题

    1.进程之间的状态变化,一定在PCB中反映出来。(正确)

    2.当进程完成I/O后,进程的状态由等待变为运行。(错误)

    3.中断屏蔽是不允许发生中断。 (错误 )

    【解析】中断屏蔽期间允许发生中断,但暂时不响应。

    4.O.S的特征之一为并行性,所谓并行性是指多个进程同时处于运行状态  ( 错误)

    五、简答题

     1.设有三个进程A,B,C,进程A和进程B各需要运行3毫秒的处理器时间,而进程C却要24毫秒的处理器时间,分别考虑当三个进程到达顺序为A,B,C时及C,B,A时,用先来先服务进行调度时各自的平均等待时间。

    【解析】当三个进程到达顺序为A,B,C时,按照先来先服务的顺序,进程A先占用处理器,进程B需等待3毫秒后才能去占用处理器,进程C在等待6毫秒的时间后可以占用处理器。于是,它们的平均等待时间为(0+3+6)/3=3毫秒。如果进程是按 C,B,A的次序排入队列,则进程C先占用处理器运行24毫秒后才能让进程B占用,即进程B需等待24毫秒,而进程A在等了27毫秒后才可占用处理器,现在这三个进程的平均等待时间为(27+24+0)/3=17毫秒。 7可见当运行时间长的进程先就绪的话,先来先服务算法使系统效率受到影响。

    2.引起“进程切换”的时机有哪些?

    【解析】我们把处理机从一个进程转到另一个进程称为“进程切换”。引起“进程切换”的时机有以下几种情况:

    (1)一个进程从运行状态变为等待状态。

    (2)一个进程从运行状态变为就绪状态。

    (3)一个进程从等待状态变为就绪状态。

    (4)一个进程运行完成而撤离系统。

    3.进程控制块(PCB)中应该包括哪些内容,其作用是什么?

    【解析】进程控制块是用以记录进程有关信息的一块主存,其中登记着诸如:进程标识、进程状态、优先级、中断现场保

    护区、所占资源等信息。它是由系统为每个进程分别建立的,并且在进程结束其生命期时由系统将相应的PCB撤消,

    PCB是进程存在的标识。

    4.进程在系统中有哪几种基本状态,状态如何发生变化?

    【解析】通常一个进程至少有三种不同的状态:运行状态、就绪状态、等待状态。

    (1)运行状态(Running):当一个进程正在处理机上运行时,称其处于运行状态。

    (2)就绪状态(Ready):当一个进程具备了运行条件,一旦获得处理机即可运行,称此进程处于就绪状态。

    (3)等待状态(Blocked):当一个进程由于等待某事件的发生(如I/O完成)而不能运行时,称此进程处于等待状态。

    5.进程具有哪些基本特征?

    【解析】

    (1)动态性:进程包含了程序及相应的数据集合,执行过程中其状态处于不断地变化。

    (2)并发性:系统中各进程交替占用CPU,它们是并发执行的。

    3)异步性:各进程都以不可预知的速度向前推进。

      -----------------以上为此次读书笔记,若有错误,欢迎指出--------------

  • 相关阅读:
    使用fiddler进行app弱网测试
    弱网测试
    Java虚拟机的内存模型
    Junit使用
    python安装numpy和scipy的资源
    HTTP资源合集
    http之post方法 提交数据的四种方法
    计算机编码中的换行 CR与LF
    python Mixin 是个啥?
    python mock的简单使用
  • 原文地址:https://www.cnblogs.com/IvesHe/p/4418300.html
Copyright © 2011-2022 走看看