[操作系统] - 进程状态&进程描述

2023-05-29,,

2.1 进程(Process)

2.1.1 定义

chatGPT版:一个具有独立功能的程序关于某个数据集合的一次运行活动
人话版:程序在并发环境中的执行过程& 进程是程序的一次执行


2.1.2 特征

动态:创建产生,调度执行,撤销消亡
并发:多个进程存在同一内存中运行
独立:独立运行、获得资源、接受调度的基本单位
异步:不可知速度推进,程序执行失去再现性

:配置同步机制,能保证结果可再现


2.1.3 进程与程序

动态和静态
暂存与长存
一个程序可能有多个进程


2.1.4 进程状态

基本状态

运行(Running)[1]当前进程分配到CPU,其程序正在CPU上执行的状态

就绪(Ready)[2]进程已具备运行条件,但因其它进程正占用CPU,暂时不能运行,等待分配CPU的状态

阻塞(Blocked):因等待某种事件的发生(如系统调用、I/O操作、合作进程信号)而暂时不能运行的状态。即使CPU空闲,也无法使用。

基本状态的转换

:阻塞->运行 漏! 就绪->阻塞 漏!

五种状态的转换

挂起状态(Suspend)

定义

所谓挂起,是使处于基本状态的进程(就绪、运行、阻塞/睡眠)处于静止(非终止)状态,此时系统回收被这些进程占用的内存资源,将其实体复制到外存的进程交换区。挂起不等于撤销,可通过解挂(换入,或称激活,Active)重新分配内存。

挂起原因

终端用户的请求,父进程请求,负荷调节的需要,操作系统的需要

Block Vs Suspend

    对系统资源占用不同:虽然都释放了CPU,但阻塞的进程仍处于内存中,而挂起的进程通过“对换”技术被换出到外存(磁盘)中。
    发生时机不同:阻塞一般在进程等待资源(IO资源、信号量等)时发生;而挂起是由于用户和系统的需要,例如,终端用户需要暂停程序研究其执行情况或对其进行修改、OS为了提高内存利用率需要将暂时不能运行的进程(处于就绪或阻塞队列的进程)调出到磁盘 。
    恢复时机不同:阻塞要在等待的资源得到满足(例如获得了锁)后,才会进入就绪状态,等待被调度而执行;被挂起的进程由将其挂起的对象(如用户、系统)在时机符合时(调试结束、被调度进程选中需要重新执行)将其主动激活。

拓展:进程状态举例

UNIX进程状态转换

Linux进程状态转换


2.1.5 进程描述

进程映像·

程序
数据集
PCB(Process Control Block):描述进程的动态性的数据结构,描述进程当前的状态、本身的特性、对资源的占用及调度信息等,称为进程控制块
:用来保存过程调用和相互传送参数的踪迹

PCB(进程控制块)介绍

PCB是一个数据结构,一般应包括:

进程名。它是唯一的标志,对应进程的一个标志符(name)或数字(ID)。

特征信息。包括是系统进程还是用户进程,进程实体是否常驻内存等信息。

进程状态信息。表明该进程的执行状态status,是运行状态、就绪状态还是阻塞状态。

调度优先权。表示进程获取CPU 的优先级别priority。

通信信息。comm_info,反映该进程与哪些进程有什么样的通信关系,如等待哪个进程的信号等。

现场保护区。当对应进程由于某种原因放弃使用CPU 时,需要把它的一部分与运行环境有关的信息保存起来,以便在重新获得CPU 后恢复正常运行。通常被保护的信息有程序计数器PC、程序状态字PSW、各工作寄存器的内容等。

资源需求、分配和控制方面的信息,own_resource,如进程所需要或占有的I/O 设备、磁盘空间、数据区等。

进程实体信息。Start_addr,指出该进程的程序和数据的存储情况,在内存或外存的地址、大小等。

族系关系。Process_family,反映父子进程的隶属关系。

其他信息。如文件信息、工作单元等。

PCB(进程控制块)作用

    每个进程有唯一的进程控制块
    操作系统根据PCB管理进程
    进程的动态、并发等特征通过PCB表达
    PCB是进程存在的唯一标志。创建即建立PCB,终止即消亡PCB

举例:Linux系统PCB设计


    单CPU的系统,处于运行态的进程只能有1个 ︎

    单CPU的系统,处于就绪态的进程个数由系统决定 ︎

[操作系统] - 进程状态&进程描述的相关教程结束。

《[操作系统] - 进程状态&进程描述.doc》

下载本文的Word格式文档,以方便收藏与打印。