操作系统复习(三)——进程基础概念

引入进程的一些前提概念

传统操作系统中,为了提高资源利用率和系统吞吐量,通常采用多道程序技术,将多个程序同时装入内存,使之并发运行,传统意义上的程序不再能独立运行。此时,作为资源分配和独立运行的基本单位都是进程。

两个基础概念:
(1)程序的顺序执行,有三个特征:

  1. 顺序性:指处理机严格按照程序所规定的顺序执行,即每一次操作必定在下一个操作开始前结束。
  2. 封闭性:指程序在封闭的环境下运行,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响。
  3. 可再现性:指只要程序执行时的环境和初始条件相同,当程序重复执行时,不管怎样执行(一次运行,停停走走调试运行)都可得到相同的结果。

(2)程序的并发执行,也是三个特征:

  1. 间断性:程序在并发执行时,由于共享系统资源,以及为完成同一项任务相互合作,致使这些并发执行的程序之间形成了相互制约的关系。
  2. 失去封闭性:当系统中存在多个可以并发执行的程序时,系统中各种资源为他们共享,而这些资源的状态也由这些程序来改变,即其中任一程序执行时,其运行环境必定会受到其他程序的影响。
  3. 不可再现性:由于失去了封闭性,其运行环境会受影响发生改变,也就失去了可再现性。

进程的定义

进程基本概念:进程的产生是因为为了使程序能并发执行,且为了对并发执行的程序加以描述和控制。
进程的结构:程序段、相关的数据段和 PCB (进程控制块Process Control Block)。
进程的定义从不同角度可以有不同的定义,比较典型的有:
(1) 进程是程序的一次执行。
(2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3) 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
在OS的进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

进程跟程序是截然不同的两个概念:
从本身特性分析:进程有PCB结构,程序没有。进程具有动态性。并发性。独立性。异步性
从运行过程分析:进程有创建,执行,消亡,所以进程实体是有生命周期的,而程序只是一组有序指令的集合。

进程的基本状态及转换:
最开始进程有三种基本状态:

  1. 就绪状态:进程所需资源已经全部准备完成,只要获得CPU就能立即执行,但还没有执行。
  2. 执行状态:进程获得CPU,其程序正在执行的状态。(同时刻,单处理系统只有一个进程在执行态;多处理系统则有多个进程处于执行态。)
  3. 阻塞状态:指正在执行的进程由于发生某事件(I/O请求。申请缓冲区失败等)暂时无法继续执行时的状态,即进程的执行收到阻塞。

就绪状态 -> 运行状态:处于就绪状态的进程被调度后,获得处理机资源(分派处理机时间片),进程由就绪状态转换为运行状态。
运行状态 -> 就绪状态:处于运行状态的进程在时间片用完后,不得不让出处理机,进程由运行状态转换为就绪状态。此外,在可剥夺的操作系统中,当有更高优先级的进程就绪时,调度程度将正执行的进程转换为就绪状态,让更高优先级的进程执行。
运行状态 -> 阻塞状态:当进程请求某一资源(如外设)的使用和分配或等待某一事件的发生(如I/O操作的完成)时,它就从运行状态转换为阻塞状态。进程以系统调用的形式请求操作系统提供服务,这是一种特殊的、由运行用户态程序调用操作系统内核过程的形式。
阻塞状态 -> 就绪状态:当进程等待的事件到来时,如I/O操作结束或中断结束时,中断处理程序必须把相应进程的状态由阻塞状态转换为就绪状态。三种基本状态的相互转换

为了满足进程控制快对数据及操作的完整性要求以及增加管理的灵活性,通常在系统中为进程引入了两种常见的状态:创建状态和终止状态。

  1. 创建状态:进程创建的过程中,所需的资源尚不能得到满足,此时创建工作尚未完成,进程无法被调度执行,进程此时就处于创建状态。
  2. 终止状态:进程正常运行结束或者出现导致进程终止的错误,或是被OS所终结,或是被父进程终结,则进入终止状态。进入终止状态的进程将不能再执行,但是在OS中依然保持一个记录,其中保存着状态码和计时统计数据,等待别的进程收集,一旦资源被收集完成,OS会立刻删除该进程。

创建状态—>就绪状态:进程所需的资源得到分配;
执行状态—>终止状态:进程正常运行结束或者出现导致进程终止的错误,或是被OS所终结,或是被父进程(或其他有终止权的进程)终结。
进程五种状态相互转换图
在许多系统中,为了系统和用户观察和分析进程的需要,还引入一个对进程的重要操作——挂起操作。当对某个进程执行此操作时,该进程将会被挂起,此时意味着该进程需要释放内存,调至到硬盘中(外存),此时该进程处于静止状态,无法接受调度或者执行。当该进程被执行激活(Active)操作时,才可将该进程从外存中重新导入到内存中。

进程被挂起的原因

  1. 终端用户的请求:当终端用户在自己的程序运行期间发现有可疑问题时,希望暂停自己的程序的运行,使之停止下来,以便用户研究其执行情况或对程序进行修改;
  2. 父进程的请求:有时父进程希望挂起自己的某个子进程,以便考察和修改子进程,或者协调各子进程间的活动;
  3. 负荷调节的需要:当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行;
  4. 操作系统的需要:操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。

引入挂起之后,系统中的就绪状态和阻塞状态分别变为两种状态,这四种状态为:活动就绪、静止就绪、活动阻塞、静止阻塞,下面分别对这四种状态进行说明:
活动就绪(Readya):等价于就绪态,此时进程可以接受调度,获得处理机后可直接转为执行态;
静止就绪(Readys):进程被调至外存,无法接受调度;
活动阻塞(Blockeda):等价于阻塞态,当等待的事件发生后可以由活动阻塞变为活动就绪状态;
静止阻塞(Blockeds):进程仍然可以等待事件,当事件发生后,状态由静止阻塞变为静止就绪状态。

引入挂起操作后,OS中的状态变为7种,其中部分进程状态的变化如下:

  1. 活动就绪—>静止就绪:该进程被执行挂起原语Suspend;
  2. 活动阻塞—>静止阻塞:该进程被执行挂起原语Suspend;
  3. 执行—>静止就绪:该进程被执行挂起原语Suspend;
  4. 静止就绪—>活动就绪:该进程被执行挂起原语Active;
  5. 静止阻塞—>活动阻塞:该进程被执行激活原语Active;
  6. 静止阻塞—>静止就绪:进程等待的事件发生;
  7. 活动阻塞—>活动就绪:进程等待的事件发生;
  8. 创建—>活动就绪:在当前OS的性能和内存的容量均允许的情况下,完成进程的创建工作(三步);
  9. 创建—>静止就绪:当前OS的当前资源状况和性能不允许,不分配给新建进程所需的资源(创建工作只完成第一步),此时进程处于静止就绪状态,被调至到外存中,不参与调度,此时创建工作尚未完成。
  10. 执行—>终止:进程已完成任务,或出现无法克服的错误,或被OS或其他进程终结,此时进程的状态转换为终止状态。
    在这里插入图片描述
    **进程管理中的数据结构:**一般有四类,内存表。设备表。文件表和用于进程管理的进程表。(通常进程表又被称为进程控制快PCB)

进程控制快PCB的作用:
PCB是OS为了系统的描述和管理进程的运行,在内核中为每个进程专门定义的一个数据结构。PCB作为进程实体(程序、数据、PCB)的一部分,记录了OS所需的用于描述进程当前情况以及管理进程运行的全部信息,是OS中最重要的记录型数据结构。

PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。

PCB作用:

  1. 作为独立运行的基本单位的标志。 当一个程序(包含数据)配置了PCB后,就表示他成为了一个进程,一个能在多道程序环境下独立运行并合法的一个基本单位,也就具有了取得OS服务的权利。这也是为什么当系统创建一个进程时,需要为之创建一个PCB,并与进程一对一的绑定,系统是根据PCB来感知进程的,PCB被撤销归还给OS时,进程也就随之消亡了;
  2. 能实现间断性运行方式。 这也是进程的一个基本特性—异步性,因为PCB中保存着进程在CPU上执行时的上下文信息,因此在进程再次被调度执行时,可以快速的恢复其CPU的现场信息。
  3. 提供进程管理所需要的信息。 在进程的整个生命周期中,OS都是根据PCB实施对进程的控制和管理。
  4. 提供进程调度所需要的信息。 OS根据PCB中存储的进程的状态信息来将继承插入到对应的队列中,并根据PCB中保存的优先级、等待事件等来进行调度的;
  5. 实现与其他进程的同步和通信。 PCB中具有用与实现进程通信的区域或通信队列指针等。

PCB中存储的信息

  1. 进程标识符:用于唯一地标识进程。一个进程通常包含两种标识符:外部标识符和内部标识符。外部标识符一般由创建者(用户)提供,用来方便记忆;内部标识是为了方便OS对进程的使用,通常是Linux系统中查看到的Pid;
  2. CPU状态:CPU状态信息也称处理机的上下文,主要由CPU的各种寄存器(通用寄存器、指令计数器、程序状态字PSW、用户栈指针)中的内容组成的。进程在执行的过程中,正在处理的许多信息都放在寄存器中,如果需要发生切换,这些信息就需要保存在该进程的PCB中,以便可以再次执行时可以快速的恢复CPU的状态;
  3. 进程调度信息:在OS进行调度(从就绪队列中选取进程分配CPU)时,必须要知道进程的状态和相关的调度信息,主要包括:进程状态、优先级、进程调度所需的其他信息(等待时间、已经执行的时间等)、事件(等待发生的时间,即阻塞的原因);
  4. 进程的控制信息:只用于进程控制所必需的信息,主要包括:程序和数据的地址(所在内存或外存的首地址)、进程同步和通信机制、资源清单(进程运行期间所需的全部资源,CPU除外,还有一张已经分配给该进程的资源清单,主要用于避免死锁)、链接指针(指向本PCB所在队列中的下一个进程的PCB的首地址)。

PCB的组织方式有三种:线性方式和链接方式和,以及索引方式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值