进程与线程
进程的概念和特征
进程的概念
动态的,程序的一次执行过程,进程实体的运行过程
为了使参与并发执行的每个程序(含数据)都能独立地运行,必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block, PCB)。
进程的特征
动态性
动态性是进程最基本的特征。
并发性
并发性是进程的重要特征,也是操作系统的重要特征。
独立性
进程是能独立运行、独立获得资源、独立接受调度的基本单位。
异步性
结构性
进程的状态与转换
进程的状态
创建态
又称新建态。
就绪态
运行态
阻塞态
又称等待态。
终止态
又称结束态。
进程状态的转换
$ 创建态 \to 就绪态 $
$ 就绪态 \to 运行态 $
$ 运行态 \to 就绪态 $
- 处于运行态的进程在时间片用完后,不得不让出处理机。
- 在可剥夺的操作系统中,当有更高优先级的进程就绪时,调度程序将正在执行的进程转换为就绪态,让更高优先级的进程执行。
$ 运行态 \to 阻塞态 $
- 等待系统资源分配。
- 等待某事件发生。
一个进程从运行态变成阻塞态是主动行为。
$ 阻塞态 \to 就绪态 $
- 系统资源分配。
- 某事件发生。
从阻塞态变成就绪态是被动行为,需要其他相关进程的协助。
$ 运行态 \to 结束态 $
五种进程状态的转换
进程的挂起态与七状态模型
进程的组成
进程控制块
进程描述信息
- 进程标识符(Process ID, PID)
- 用户标识符(User ID, UID)
进程控制和管理信息
资源分配清单
处理机相关信息
程序段
程序的代码(指令序列)
数据段
运行中产生的各种数据
进程控制
基本概念
原语实现。
用“关中断指令”和“开中断指令”特权指令实现原子性。
进程的创建
创建原语
- 为新进程分配一个唯一的进程标识号,并申请一个空白PCB(PCB是有限的)。若PCB申请失败,则创建失败。
- 为进程分配其运行所需的资源。这些资源或从操作系统获得,或仅从其父进程获得。如果资源不足(如内存),则并不是创建失败,而是处于创建态,等待内存资源。
- 初始化PCB,主要包括初始化标志信息、初始化处理机状态信息和初始化处理机控制信息,以及设置进程的优先级等。
- 若进程就绪队列能够接纳新进程,则将新进程插入就绪队列,等待被调度运行。
引起进程创建的事件
- 用户登录
- 作业调度
- 提供服务
- 应用请求
进程的终止
终止原语
- 根据被终止进程的标识符,检索出该进程的PCB,从中读出该进程的状态。
- 若被终止进程处于运行状态,立即终止该进程的执行,将处理机资源分配给其他进程。
- 若该进程还有子孙进程,则应将其所有子孙进程终止。
- 将该进程所拥有的全部资源,或归还给其父进程,或归还给操作系统。
- 将该PCB从所在队列(链表)中删除。
引起进程终止的事件
- 正常结束,表示进程的任务己完成并准备退出运行。
- 异常结束,表示进程在运行时,发生了某种异常事件,使程序无法继续运行,如存储区越界、保护错、 非法指令、特权指令错、运行超时、算术运算错、I/O故障等。
- 外界干预,指进程应外界的请求而终止运行,如操作员或操作系统干预、父进程请求和父进程终止。
进程的阻塞和唤醒
阻塞原语
找到将要被阻塞进程的标识号对应的PCB。
若该进程为运行态,则保护其现场,将其状态转为阻塞态,停止运行。
把该PCB插入相应事件的等待队列,将处理机资源调度给其他就绪进程。
引起进程阻塞的事件
- 需要等待系统分配某种资源。
- 需要等待相互合作的其他进程完成工作。
唤醒原语
- 在该事件的等待队列中找到相应进程的PCB。
- 将其从等待队列中移出,并置其状态为就绪态。
- 把该PCB插入就绪队列,等待调度程序调度。
引起进程唤醒的事件
- 因何事阻塞,就应由何事唤醒。
进程的切换
切换原语
- 将运行环境信息存入PCB。
- PCB移入相应队列。
- 选择另一个进程执行,并更新其PCB。
- 根据PCB恢复新进程所需的运行环境。
引起进程切换的事件
- 当前进程时间片到。
- 有更高优先级的进程到达。
- 当前进程主动堵塞。
- 当前进程终止。
进程的通信
COPYRIGHT (c) OLENCER. ALL RIGHTS RESERVED.
- Title: 进程与线程
- Author: OLENCER.
- Created at : 2023-07-03 18:30:00
- Updated at : 2023-09-06 12:27:22
- Link: https://olencer.github.io/考研/408/操作系统/进程与线程/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments