主要参考:
- 《操作系统概论》(机械工业出版社)
进程的概念背景
产生背景:
在多道程序设计系统中,一个程序的执行过程不是连贯、线性的,因此引入“进程”概念动态地来正确反映程序执行时的活动规律和状态变化。
引入作用:
提高资源利用率
将一个问题中可并行执行的任务粒度细化至“进程”概念;
正确描述程序的执行情况
正确反映了同一个程序在不同场景下(不同用户、不同时间、不同对象等)分别执行的动态。
进程的三种基本状态
进程控制块(Process Control Block,PCB)
- 标识信息:进程的唯一标识;
- 说明信息:说明当前进程情况;
- 现场信息:当进程让出处理器时,暂时保存存放在处理器中的相关数据,以便能在继续运行时恢复;
- 管理信息:控制进程执行顺序(进程队列中最后一个进程的队列指针值为“0”)
进程的队列管理模型
而其中对进程的创建、撤销及状态切换,也都需要操作系统生成相应的进程来控制执行,这类进程被称为原语
原语
原语是操作系统中能完成一些特定功能(控制其他进程的生命周期与状态切换),且不可中断的进程。
- 创建原语:创建一个新进程(为一个程序分配一个工作区和建立一个进程控制块),并置该进程为就绪态;
- 撤销原语:在一个进程完成工作后,收回它的工作区和进程控制块;
- 阻塞原语:在进程运行过程中发生等待事件时,将进程从运行态改为等待态;
- 唤醒原语:当进程等待的事件发生后,将进程从等待态改为就绪态
线程的概念背景
在现代操作系统中,把用户的一个计算问题或一个应用问题作为一个进程,把该进程中可并发执行的各部分分别作为一个线程
线程是进程中可独立执行的子任务,有唯一标识符和线程描述表
概念产生背景:
进程的缺点:
- 每个进程都占用一个进程控制块和一个私有的主存空间,开销较大;
- 进程之间的消息传递,要从一个工作区到另一个工作区,需专用的通信机制,速度较慢;
- 进程过多增加了进程调度的次数,复杂性提升
把要解决某个问题的工作作为一个进程,而其中可并发执行的部分细化至线程粒度来控制,操作系统仅为进程来分配所需资源,进程内的各线程共享进程的资源
- 进程 -> 资源分配单位
- 线程 -> 调度、执行单位
多线程技术的优点:
- 节省了分配进程控制块和工作区的开销;
- 线程创建无需另行分配资源,创建速度快;
- 线程间信息传递在同一主存空间,传递速度快;
- 线程独立执行,能充分发挥并行工作能力