操作系统进程与线程知识小结

进程是程序的一次执行过程,具有动态性、并发性、独立性和异步性。进程的状态包括运行态、就绪态、阻塞态和创建/结束态,它们之间通过特定事件进行转换。PCB是进程存在的标志,用于管理和控制进程。进程状态的区分在于资源需求的不同,如处理机和其他资源。
摘要由CSDN通过智能技术生成

2.1进程与线程

2.1.1进程的概念和特征

  1. 进程的引入:在多道程序环境下,多个程序并发执行,从而失去了封闭性,并且具有间断性和不可再现性的特征,因此引入了进程的概念,用以更好的描述和控制程序的并发执行,实现操作系统的最基本的两个特性:并发性和共享性

  1. 进程控制块:既然引入了进程,自然需要对其进行管理,不然其乱成一锅粥,系统岂不是得崩溃!!

所谓进程控制块,即为了使参与并发性执行的每个程序(包含数据)都能独立地运行,必须为其配置一个专门的数据结构-------进程控制块(Process Control Block,PCB)。

但是值得注意的是:PCB是进程存在的唯一标志!!!!!

  1. 进程的组成进程实体(或者叫进程映像)由程序段,相关数据段和PCB三部分构成;

创建进程,实质上就是创建进程实体中的PCB;撤销进程,实质上就是撤销进程实体中的PCB;正如同上文所说的,PCB是进程存在的唯一标志!!!

  1. 进程的定义:说了这么多,那么进程的到底是什么呢?

从不同的角度,进程可以有不同的定义,典型的有以下几种:

  1. 进程是程序的一次执行过程;

  1. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动;

  1. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位;(这里先留下一个坑,当线程引入后,其具体会变化)

注意哦!系统资源:就是指处理机、存储器、和其他设备服务于某个进程的时间;则进程就是“时间片”

分配的独立单位,由此决定了进程必定是一个动态,过程性的概念。

  1. 进程的特征:(理解即可)

a.动态性:进行是程序的一次执行,具有一定的生命周期,是动态的产生,变化和消亡的。动态性也是进程的最基本的特征;

b.并发性:指多个进程实体同存在与内存中,能在一段时间内同时运行(宏观上的同时,微观上的串行)。同时,引入进程的目的就是为了进程之间能够并发执行。

c.独立性:指进程实体是一个能独立运行,独立获得资源和独立接受调度的基本单位。独立二字,又说明了只有建立了PCB的程序,才能作为一个独立的单位参与运行。PCB是进程存在的唯一标志。

d.异步性:由于进程之间相互制约,各个进程独立的,以不同的速度执行。异步性会使得执行结果具有不可再现性,因此操作系统中需要有进程同步机制(后面会说)

程序是静态的指令集合,进程是程序的动态执行过程。静态的程序只占用磁盘空间,不需要其他系统资源,只有执行中的进程才需要分配内存,cpu等系统资源;

2.1.2进程的状态与转换

1.进程的状态:前面说过,进程具有动态性,因此,在进程的生命周期中,其具有不同的状态。

其分别为:

  1. 运行态:进程正在处理机(CPU)上运行;在单处理机中,无论何时,只能有一个进程处于运行态。

  1. 就绪态:进程获得了除处理机以外的所有所需资源,只要再得到处理机,便可立即运行;操作系统中处于就绪态的进程可能有很多,其通常会排成一个就绪队列。

  1. 阻塞态(等待态):进程正在等待某一事件而停止运行,例如等待某资源为可用(不包括处理机,即使处理机空闲其也无法运行)或等待I/O的完成。同样多个阻塞进程可排成一个阻塞队列,且根据阻塞原因的不同,可设置多个阻塞队列。

  1. 创建态:进程正在被创建,尚未转到就绪态。

创建步骤:

  1. 申请一个空白PCB,向其中填写用于控制和管理进程的信息;

  1. 为该进程分配运行时所必须的资源;(注意!!!:若进程所需的资源未得到完全分配,则其创建工作无法完成,此时进程所属的状态属于创建态

  1. 最后把该进程转入就绪态并插入就绪队列中。

  1. 结束态:进程正在从系统中消失,可能是进程进程正常结束或者其他原因退出运行;

结束步骤:

  1. 系统先将进程设置为结束态;

  1. 再处理资源释放和回收等工作

问题:为什么要区分就绪态和阻塞态(区分处理机和其他资源)?

因为在分时系统中的时间片轮转机制中,每个进程分到的时间很短,只有若干毫秒,因此,进程在运行中会频繁地切换到就绪态;而其他资源的使用和分配或其他事件的发生(I/O操作的完成)相对的时间比时间片要长很多,自然切换到阻塞态的频率很低,由此观之,就绪态和阻塞态是进程生命周期中完全不同的两个状态。

  1. 进程的转换:

  • 就绪态->运行态:处于就绪态的进程被调度后,获得处理机资源(被分派到处理机时间片)。其就从就绪态转换为运行态。

  • 运行态->就绪态:时间片用完或者处机被占用(被更高优先级进程剥夺)其就从运行态转换为就绪态。

  • 运行态->阻塞态:进程用系统调用的方式请求某一资源(例如:外设)的使用和分配或等待某一事件的发生(例如:I/O操作的完成)时,其就从运行态转换为阻塞态。

  • 阻塞态->就绪态:进程等待的事件完成时(例如:I/O操作结束或者中断结束时,终端处理程序必须把相应进程的状态转换为就绪态)。

  • 要点:一个进程从运行态到阻塞态是主动的行为,而从阻塞态到就绪态是被动的行为,需要其他相关进程的协助。

未完待续!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值