操作系统复习之进程

目录

2.1.1进程的概念

2.1.2 进程的状态及转换

2.1.3 进程控制

2.1.4 进程组织

2.1.5 进程通信


2.1.1进程的概念

在了解进程的概念之前,先说明一下程序的执行,方便理解引入进程的目的。

早期无操作系统及单道批处理系统时,程序只能顺序执行,即按照某种先后次序执行,具有顺序性,封闭性,可再现性。

为提高CPU的工作效率,引入了多道程序设计技术,主存中可以同时存放多个程序,通过共享资源系统并发执行,即在同一时间间隔内可以运行多个程序。宏观上多个程序在同时向前推进,微观上,任意时刻CPU上都有一个程序在运行。程序的并发执行具有间断性,失去封闭性和不可再现性。

所以为了程序能够并发执行,提高资源利用率和吞吐量,并对并发程序加以描述和控制,引入进程的概念。

(1)进程的概念

进程是程序关于某数据集合上的一次运行活动,是程序的实体,是系统进行资源分配和调度的基本单位。

(理解资源分配:资源分配指的是处理机,存储器和其他设备服务于某个进程的“时间”,例如处理机的资源可以理解为处理机的时间片)

(2)进程实体的组成

    进程实体(进程映像,注意:进程映像是静态的,是真实存在的实体,而进程则是动态的,表示进程实体的运行过程)是由程序段(程序代码)数据段(包括全局变量)进程控制块PCB三部分构成。PCB是为了使参加并发执行的程序能独立运行,配置的数据结构,是进程存在的唯一标志。(后面详细介绍)

(3)进程的特征

①动态性。进程是程序的一次执行,具有一定的生命周期,是动态地产生、变化和消亡的。

②并发性。指多个进程实体同时存于内存中,能在一段时间内同时运行。引入进程的目的就是使程序能与其他进程的程序并发执行,以提高资源利用率。

③独立性。指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。未建立PCB的程序,都不能作为一个独立的单位参与运行。

④异步性。由于进程的相互制约,使得进程具有执行的间断性,即进程按各自独立的、不

可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须

配置相应的进程同步机制

⑤结构性。每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是由程序段、

数据段和进程控制块三部分组成的。

【例题】

1.并发进程失去封闭性,是指()D

A.多个相对独立的进程以各自的速度向前推进   B.并发进程的执行结果与速度无关

C.并发进程执行时,在不同时刻发生的错误  D.并发进程共享变量,其执行结果与速度有关

··首先应该了解封闭性的概念,即进程在执行是独占全机资源,其执行结果只取决于进程本身,不受外界影响。并发进程在执行时通过共享资源或合作交互来完成同一项任务系统状态不再受一个进程的控制来执行。所以不同速度下的执行结果不同

2.1.2 进程的状态及转换

(1)进程的状态

①创建态。进程刚被创建时的状态,尚未进入就绪态。

②就绪态。进程获得了除处理机外的所有资源,只需获得处理机就可以运行,如果多个进程处于就绪态,则它们放在就绪队列中。

③运行态。进程获得处理机运行。在单处理机同一时刻只能有一个进程在处理机上运行

④阻塞态。进程正在等待某一资源而暂停运行的状态,如等待某资源或等待输入输出完成,如果有多个阻塞进程,则将他们存入阻塞队列中。

⑤结束态。进程正在从系统中消失,可能正常结束,也可能被动结束。系统需要将该进程置为结束态回收相关资源。

(2)进程的转换

就绪态→运行态:处于就绪态的进程得到处理机的调度,获得处理机资源,便可运行

运行态→就绪态:非抢占式操作系统中是时间片用完了;抢占式操作系统中是有更高优先级的进程进入,就会抢占处理机,导致原进程重新回到就绪态

运行态→阻塞态:运行中的进程,需要其他的资源,就会进入阻塞态

阻塞态→就绪态:之前所需的资源获取到之后,就重新进入就绪态

[注意]:运行态进入阻塞态是主动行为;而阻塞态进入运行态是被动行为,需要其他进程的协助

【例题】

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

A运行进程的时间片用完         B.运行进程出错

C.运行进程要等待某一事件发生  D.有新进程被创建进入就绪态

··操作系统选择新进程可以理解为进程从运行态转换成其他状态了,需要选择新进程。所以可以判断选项中哪个情况不会导致进程从运行态转换成其他状态

··A选项进程的时间片用完,会从运行态→就绪态;B进程运行出错,进程终止退出;C进程等待某件事的发生会从运行态→阻塞态;新进程被创建进入就绪态不会导致正在运行的进程的状态变化

2.1.3 进程控制

(1)进程的创建

在操作系统中,终端用户登录系统作业调度系统提供服务用户程序的应用请求等都会引起进程的创建。操作系统创建新进程的过程如下(通过create原语):

①为新进程分配一个唯一的进程标识号,并申请一个空白的 PCB (PCB是有限的)。若PCB申请失败,则创建失败。

为进程分配资源,为新进程的程序和数据及用户栈分配必要的内存空间(在PCB中体现)。若资源不足(如内存空间),则并不是创建失败,而是处于阻塞态,等待内存资源。

初始化PCB,主要包括初始化标志信息、初始化处理机状态信息和初始化处理机控制信息,以及设置进程的优先级等。

④若进程就绪队列能够接纳新进程,则将新进程插入就绪队列,等待被调度运行

[父进程与子进程]:允许一个进程创建另一个进程。 此时创建者称为父进程,被创建的进程称为子进程。子进程可以继承父进程所拥有的资源。当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。此外,在撤销父进程时,必须同时撤销其所有的子进程。

(2)进程的终止

引起进程终止的事件包括:正常结束(正常结束表示进程的任务已经完成并根据退出指示准备退出运行;)异常结束(异常结束表示进程运行过程中,有错误和故障事件发生,迫使进程无法进行而终止,常见的错误和故障包括越界错误、保护错误、非法指令和特权指令错误、运行超时、等待超时、算术运算错误和1/0故障)和外界干预(外界干预表示进程为响应外界的请求而终止进程。常见的外界干预包括操作员或操作系统干预、父进程请求、父进程终止等)。操作系统终止进程的过程如下(撒销原语):

①通过被终止进程的标识符检索PCB,并查看当前该进程的状态。

②若被终止进程目前处于运行状态,立即终止该进程的运行。

③若被终止的进程还有子进程,则应将其所有子进程终止。

④将其拥有的全部资源归还给其父进程或操作系统。

⑤最后将被终止的进程所对应的PCB从所在的队列删除。

(3)进程的阻塞和唤醒

正在通行的进程,若在运行中缺少资源或等待的事件没有发生,进程便会进人阻塞状态,常见的引起进程阻塞的事件有请求系统服务、等待启动某种操作的完成、新数据尚未到达或无新工作可做等,进程由运行状态到阻塞状态的过程是一种主动的行为。并且只有运行态的进程才可以转换为阻塞态。阻塞原语(block)的执行过程如下:

①依据进程的标识符找到要被阻塞进程及其对应的PCB.

②若该进程为运行态,则保护其现场,将其状态转为阻塞态,停止运行。

③把该PCB插入相应事件的等待队列中。

当被阻塞进程所等待的事件发生时,由相关进程(如提供数据的进程)调用唤醒原语wakeup将进程进行唤解。唤醒原语的执行过程如下:

①在该事件的等待队列中找到相应进程的PCB。

②将从等待队列中移出,并置其状态为就绪态。

③把该PCB插人就绪队列,等待调度程序调度。

[注意]: block原语和wakeup原语是一对作用相反的原语,使用时必须成对出现。被阻塞进程通过自我调用block原语来实现的阻寒。面wakeup原语则是相关进程调用来实现唤醒。在信号量机制中,一般通过PV原语来实现进程的阻塞和唤醒。

(4)进程切换

进程的创建、撤销以及要求有系统设备完成的1/O操作,用户都是通过系统调用的方式进入内核,再由内核中的相应处理程序予以完成处理。同样,进程切换也是在内核的支持下完成。进程切换是指处理机从一个进程的运行转到另一个进程上运行,在这个过程中,进程的运行环境产生了实质性的变化。进程切换的过程如下:

①保存处理机上下文,包括程序计数器和其他寄存器。

②更新PCB信息。

③把进程的PCB移入相应的队列,如就绪、在某事件阻塞等队列。

④选择另一个进程执行,并更新其PCB。

⑤更新内存管理的数据结构。

⑥恢复处理机上下文。

[注意]:

①进程切换与处理机模式切换不同。处理机模式切换(用户态与核心态)时,处理机逻辑上可能还在同一进程中运行。如果进程因中断或异常进人核心态运行,执行完后又需要回到用户态中刚被中断的程序中运行,则操作系统只需恢复进程进入内核时所保存的CPU现场而无须改变当前进程的环境信息。但在进程切换中,进程改变了,同时当前进程的环境信息也会发生改变。

②“调度” 和“切换”的不同。调度是指决定资源即将分配给哪个进程的行为,是一种决策行为:切换是指实际分配的行为,是执行行为。一般先有资源的调度,后进行进程的切换

【例题】

3. ( )必会引起进程切换。B

A.一个进程创建后,进入就绪态    B.一个进程从运行态变为就绪态

C.一个进程从阻塞态变为就绪态    D.以上答案都不对

·进程切换是指处理机从一个进程的运行转到另一个进程上运行,当一个进程从运行态转换为就绪态,CPU会调度另一个进程,引起进程切换

2.1.4 进程组织

(1)进程控制块

PCB中记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息。主要包括进程标识符,处理机状态,进程调度信息,进程控制信息等。

①进程标识符。用于唯一地标识一个进程分为外标识、内部标识。

②处理机状态。处理机状态信息主要是由处理机的各种寄存器中的内容组成。也就是中断现场的保留区,当进程被切换时,处理机状态信息必须都保存在相应的PCB中,以便该进程在重新执行时能再从断点继续执行。

③进程调度信息。包括a.进程状态,就绪、执行、阻塞等,是进程调度和对换的依据;b.进程优先级,是分配CPU的重要依据;c.时间,比如进程已等待CPU的时间总和、已执行的时间总和等;d.地址,代码运行入口地址,程序的外存地址等

④进程控制信息。a.程序和数据的首地址,调度到该进程的时候,可以找到其程序和数据;b.进程同步和通信机制,如消息队列指针、信号量等,以后的进程同步中会学到c.资源清单,列出了该进程在运行期间所需的全部资源(CPU除外),另外还有一张该进程已分配的资源清单d.链接指针,给出了该进程(PCB)所在队列中下一个进程的PCB首地址,跟链表一样。

(2)程序段

    能被进程调度程序调度到CPU执行的程序代码段。

(3)数据段

    可以是进程对应的程序加工处理的原始数据,也可以是执行时产生的中间或最终结果。

2.1.5 进程通信

进程通信指的是进程之间的信息交换,高级的通信方法主要有:

(1)共享存储

①基于共享数据结构的通信方式。进程之间通过申请建立公用数据结构来实现。

②基于共享存储区的通信方式。通过在存储器中划出一块共享存储区,进程对贡献存储区内的数据进行读写来实现通信。

(2)消息传递

消息传递系统中,进程间的数据交换以格式化的消息为单位,通过系统提供的发送消息原语接收消息原语进行数据交换。这种机制数据传递量大,对用户透明。消息传递系统可以分为:

①直接通信。发送进程将消息发送给接收进程,将他挂在接收进程的缓冲队列上,接收进程从缓存队列中获取信息。

②间接通信(信箱通信)发送进程将消息发送到某个信箱中,接收进程从中取得消息。

(3)管道通信

“管道”指用于连接一个读进程和一个写进程的一个共享文件,也称pipe文件。发送进程以字符流形式将大量数据送入管道,接收进程从管道中接收数据。通信过程中管道机制必须要有互斥,同步和确定对方存在的能力。

[注意]:从管道读取数据是一次性操作,管道只能采用半双工通信,即某一时刻只能单向传输

【真题】:

1. [2010统考真题]下列选项中,导致创建新进程的操作是 AC

A用户登录成功     B设备分配     C启动程序执行

·AC都是典型的引起创建进程的事件;设备分配是通过在系统中设置相应的数据结构实现的,不需要创建进程

2. [2010统考真题]下列选项中,降低进程优先级的合理时机是( ).A

A.进程时间片用完         B.进程刚完成I/O操作,进入就绪队列

C.进程长期处于就绪队列   D.进程从就绪态转为运行态

··进程时间片用完,可以降低其优先级好让其他进程被调度

··进程完成I/O操作后进入就绪队列等待处理机的调度,为尽快处理I/O结果应提高优先级

··进程长期处于就绪队列为避免产出饥饿现象也应适当提高优先级

··进程从就绪转为运行态,应等待时间片用完后降低优先级

3.[2014统考真题]一个进程的读磁盘操作完成后,操作系统针对该进程必做的是( )。A

A.修改进程状态为就绪态      B.降低进程优先级

C.给进程分配用户内存空间     D.增加进程时间片大小

··进程进行读磁盘操作,要等待I/O操作完成,会将自身阻塞,读磁盘操作后进程得到了想要的资源,会从阻塞态转换到就绪态;其他操作都不一定会发生

4.[2014统考真题]下列关于管道(Pipe)通信的叙述中,正确的是( ) C

A.一个管道可实现双向数据传榆      B.管道的容量仅受磁盘容量大小限制

C.进程对管道进行读操作和写操作都可能被阻塞

D.一个管道只能有一个读进程或一个写进程对其操作

···管道同一时刻只能有一个方向进行数据的传输,不能同时进行数据传输

·管道容量大小通常为内存上的一页,大小并不受磁盘容量大小的限制

··当管道满时写操作被阻塞,管道空时读操作会被阻塞

5.[2015统考真题]下列选项中,会导致进程从执行态变为就绪态的事件是( )。D

A.执行P(wait)操作 B.申请内存失败 C.启动I/O设备 D.被高优先级进程抢占

··P操作表示进程请求某一资源,申请内存和启动I/O设备均会因为请求某一资源而进入阻塞态;进程被高优先级进程抢占后进入就绪态等待处理机

6.[2019统考真题]下列选项中,可能会将进程唤醒的事件是( ). AB

A.I/O结束    B.某进程退出临界区     C当前进程的时间片用完

··当阻塞的进程等待的资源可用时,进程将会被唤醒,所以I/O结束,get到资源后改阻塞的进程将会被唤醒

··某进程退出临界区后,其他需要进入临界区的被阻塞的进程将会被唤醒

··时间片用完,就绪队列中优先级高的进程得到处理机资源变为运行态

7.[2020统考真题]下列关于父进程与子进程的叙述中,错误的是( )。B

A.父进程与子进程可以并发执行

B. 父进程与子进程共享虚拟地址空间

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

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

··父进程可以和子进程共享一部分资源,但不能共享虚拟地址空间,创建子进程时会为其分配虚拟地址空间等

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值