1. 进程
进程的定义
进程的组成
进程的组织
进程的特征
1.1 总结
1.2进程的状态与转换
1.2.1 进程的状态
1.2.2 进程状态的转换
1.2.3 总结
1.3 进程控制
1.3.1 进程控制相关的原语
1.4 进程通信
1.4.1 共享存储
1.4.2 管道通信
1.4.3 消息传递
1.4.4 总结
1.5 线程概念和多线程模型
1.5.1 线程的属性
1.5.2 线程的实现方式
用户级线程
内核级线程
1.5.3 多线程模型
多对一模型
一对一模型
多对多模型
1.5.4 总结
总结
聊聊你知道的线程和进程?它们的区别又是什么?
最开始先有进程的,进程是运行起来的进程实体,进程是提由程序段(在存储区内的程序本身的代码),数据段(在存储区内程序需要使用到的数据代码)以及进程控制块PCB(唯一确定进程存在的标志,它有信息头标志该进程的一些信息供操作系统识别)组成,为了保证PCB内的数据都被修改或者保存完毕并且放入正确的就绪/阻塞队列中的原子性,引入原语的概念,在原语代码执行的前后有关中断和开中断指令保证原语代码执行的原子性。进程出现的目的就是为了让CPU并发地执行程序,进程的状态有创建、就绪(除了CPU其他资源都准备完毕)、运行(CPU准备完毕和其他设备资源都准备完毕)和阻塞(CPU和其他设备都没有准备完毕)。其中各种进程状态的转换又需要依靠操作系统对PCB内的状态进行修改(例如保存寄存器或者还原寄存器的值),以及将PCB放入不同的队列中(例如就绪队列,等待队列等)。进程的相互转换:就绪态-->运行态(进程被操作系统调度),运行态-->就绪态(正在运行的进程时间片已到或者被其他优先级高的进程抢占操作系统的调度),就绪态-->阻塞态(进程发出中断请求,指明需要哪些设备资源),阻塞态-->就绪态(需要的设备资源准备完毕)。
在进程之后又出现了线程,线程的出现是为了让同一个进程接受CPU的调度后能完成多个并发的任务,同一个进程内的线程进行切换并不需要经过操作系统的接管,提升了计算机的并发能力,减少了操作系统切换进程而频繁在用户态和核心态之间的变化带来的大系统开销。其中操作系统只能识别到内核级线程而识别不到对它透明的用户级线程。其中用户级线程和内核级线程多对多的线程模型既缓解了多对一(低并发度)和一对一(大系统开销)两者的缺点。
对于操作系统来说,进程是系统资源分配的基本单位,而线程是系统CPU调度的基本单位。