目录
一、进程(定义、组成、组织方式、特征)
1.进程实体包括程序段、数据段、PCB(进程控制块)。(静态)
2.进程是具有独立功能程序在数据集合上运行的过程,是资源调度分配的独立单位。(动态过程)
3.PCB进程控制块的组成:
描述信息:进程标识符PID,用户标识符UID。
控制与管理信息:当前状态、优先级。
资源分配:程序段、数据段指针;键鼠等外设。
处理器相关信息:寄存器值(执行到的位置)
4.多个进程的组织方式:
链接方式:根据进程状态将PCB分为多个队列,持有队列指针。
索引方式:根据状态不同建立索引表,持有索引表指针。
5.特征:
动态性、并发性、独立性、异步性(进程同步机制)、结构性(每个进程有一个PCB)。
二、进程状态与转换
基本状态:
1.运行态:占有CPU,在CPU上运行。
2.就绪态:具备运行条件,拥有除处理机外的所有状态。
3.阻塞态:因等待而不能运行。
4.创建态:操作系统分类资源,初始化PCB。
5.终止态:从系统中撤销,回收进程资源。
转换:
1.就绪态---运行态:进程被调度
2.运行态---就绪态:时间片到或者处理器被抢占
3.运行态---阻塞态:进程根据“系统调用”申请系统资源,或请求等待。(进程主动)
4.阻塞态---运行态:申请资源被分配,或等待的事件发生。(进程被动)
三、进程控制
实现各种进程状态转换,利用原语实现,不允许中断,具有原子性。
原语在核心态中运行:
1.更新PCB信息,修改状态标志,将运行环境保存在PCB,从PCB中恢复。
2.将PCB插入合适队列。
3.分配/回收资源。
四、进程通信
各进程的内存地址空间相互独立。
1.共享存储:基于数据结构、存储区的共享。对共享空间访问必须互斥。
2.管道通信:只能采用半双工通信(同一时间单向传输),进程以互斥方式写入管道,写满时,Write()阻塞,等待读;读取完成后,Read()阻塞。
未写满管道,不允许读;未读取完成,不允许写入。
3.消息传递:格式化消息(消息头和消息体)。包括直接传递和间接传递(信箱)。
五、线程与多线程模型
1.线程是一个基础的CPU执行单元,也是程序执行的最小单位,调度的基本单位。线程可以进一步并发,提高了系统的并发度。
2.引入线程后,进程只作为系统资源分配单元。
3.线程有一个线程ID、线程控制块(TCB),不同的线程共享进程中分配的资源。
4.实现方式:
用户级线程:由应用程序通过线程库实现(用户可见),线程切换在用户态下执行。
内核级线程(处理器分配单位):线程的管理工作有操作系统内核完成,切换在核心态下完成。
5.多线程模型:
多(用户级)对一(内核级):无需切换到核心态,开销小,但一个线程阻塞,则进程阻塞,并发度低,不可在多核处理器上并行运行。
一对一:并发能力强,可在多核处理器上并行运行,但需要切换到核心态,增加了开销。
多对多:兼顾并发与开销控制。