操作系统-2.1进程与线程
程序执行
进程基本内容
进程的概念
进程是程序的一次执行过程
- 程序是静态的,进程是动态的
进程的组成
PCB:进程控制块。进程存在的唯一标志。进程结束时会回收PCB
- PID:进程ID,唯一的,不重复
程序段
数据段
进程控制
进程的状态与转换

进程的状态转换必须一气呵成(利用“原语”实现)
相关原语
原语用关/开中断来实现,不可中断
阻塞和唤醒成对出现

进程通信
1. 共享存储

- 基于存储区的共享(高级)
- 基于数据结构的共享(低级)
2. 消息传递
进程间数据以格式化的消息为单位。
消息头(进程ID,长度等)+消息体(实际数据)
进程通过”发送/接受消息“两个原语进行数据交换。
直接通信:直接指明要通信的进程ID
间接通信:通过”信箱“
3. 管道通信

相比共享存储,要求数据读写先进先出
管道数据一旦被读出就彻底消失
信号
用于通知进程某个时间已经发生
线程
基本
线程是程序执行流的最小单位,是调度的基本单位(进程是资源分配的基本单位)
作用:每一个进程可以有多个线程,增加并发度
- 切换进程开销大;同进程内切换线程开销小
实现方式
用户级线程(用户态)
简单。操作系统不支持线程,并发态不高。
内核级线程(内核态)
由操作系统完成,并发能力强。开销大
多线程模型
- 一对一(内核级线程)
- 多对一(用户级线程)
- 多对多:n用户映射到m个内核级线程(n≥m)
注意:操作系统只看得见内核级线程,即内核级线程才是处理机分配的单位
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BaBaLiBoo!


