文章目录
第二章 并发与进程
2.1 进程的概念
★ 进程
一个正在执行的程序、正在运行的程序的一个实例、由处理器执行的一个实体
进程 = 进程控制块(PCB) + 程序段 + 数据段 + 栈
- 引入目的:
使多道程序能够正确地并发执行 - 进程的两个基本属性:
– 拥有资源的独立单位:一个进程包括一个保存进程映像的虚地址空间,拥有对资源的控制或所有权。
– 调度/执行的基本单位:一个具有状态和优先级,可被被操作系统调度并分派的实体。
★ 基本特征
- 动态性:(本质特性) 一个正在计算机上执行的程序实例,存在生命周期
- 并发性:(重要特性) 任何进程都可以同其他进程一起向前推进
- 独立性:各进程的地址空间相互独立,除非采用进程间通信手段
- 异步性:按各自独立的、不可预知的速度向前推进
- 结构性
★ 进程的状态转换
- 就绪状态:进程在内存,已分配到除CPU之外的所有必要资源,准备执行
- 执行状态:进程已获得CPU,其程序正在执行。
- 阻塞状态:正在执行的进程由于需要等待某个事件发生而暂时无法继续执行。
- 新建状态:OS已完成为创建一个进程所必要的工作,但进程自身还未进入主存。
- 终止状态:进程完成或发生错误,其表格和其他信息暂时保留。
- 挂起状态:进程交换到外存,不再参与CPU的竞争。<—> 对换技术
- 就绪/挂起:进程在外存,只要调入内存并获得CPU即可执行
- 阻塞/挂起:进程在外存,等待事件
\
进程挂起的原因:进程全部阻塞,处理机空闲;系统负荷过重,内存空间紧张;操作系统的需要,操作系统可能需要挂起后台进程或一些服务进程,或某些可能导致系统故障的进程;终端用户的请求;父进程请求。

2.2 操作系统为控制程序所建立的数据结构
内核的概念:一些与硬件紧密相关、基本的、公共的、运行频率较高的模块,以及关键性数据结构等常驻内存,便于提高操作系统运行效能的这部分软件,称为操作系统的内核。
★ 操作系统内核的功能
- 资源管理功能:进程管理、存储管理、I/O设备管理
- 支撑功能:中断处理、时钟管理、原语操作、统计监测功能
★ 操作系统控制结构
操作系统构造并维护它所管理的每个实体的信息表,一般有4种不同类型的表:内存、I/O、文件和进程。
\

★ 进程控制块
进程控制块的作用: 进程存在的唯一标志;PCB常驻内存。
进程控制块中的信息:
- 进程标示符:唯一地标识一个进程。内部、父、用户标识符
- 处理机状态信息:通用寄存器、指令计数器、程序状态字、用户栈指针
- 进程控制信息:进程状态、进程优先级、进程调度所需的其他信息、事件
- 其他信息:程序和数据的地址、进程同步和通信机制、资源清单、链接指针
进程控制块的组织方式:
- 索引方式、
- 链接方式(单一队列、多级队列)
2.3 操作系统对进程的控制
2.3.1 进程的创建
引起创建进程的事件
- 用户登录、为新的作业创建进程、操作系统因为提供一项服务而创建、由现有的进程派生
创建进程的步骤:
- 给新进程分配一个唯一的进程标识符
- 为进程分配空间、初始化进程控制块
- 建立链接,将之插入就绪或就绪/挂起链表
- 建立或扩充其它数据结构
2.3.2 进程的撤销
引起进程终止的事件
- 正常结束、异常结束(越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O故障)、外界干预(程序员kill进程、父进程终止、父进程请求)
进程终止的步骤
- 根据被终止进程的标识符找到其PCB,读出该进程的状态
- 若该进程为执行状态,则终止其执行,调度下一个就绪进程执行
- 若该进程还有子孙进程,还应将其所有子孙进程予以终止
- 将该进程所拥有的全部资源,或者归还给其父进程,或者归还给系统
- 将被终止进程的PCB从所在队列中移出
2.3.3 进程的阻塞
引起阻塞的事件
- 请求系统服务而得不到满足、启动某操作而需同步、新数据尚未到达、无新工作
进程阻塞的步骤
- 进程通过调用阻塞原语block( )把自己阻塞
- 将PCB中的状态由“执行”改为“阻塞”,并将PCB插入阻塞队列
- 调度程序将处理机分配给另