「这是我参与2022首次更文挑战的第38天,活动详情查看:2022首次更文挑战」。
进程与线程
这个进程与线程当是计算机中的比较重要的一个东西,它们操控着计算机的运行,给各个程序合理分配资源,调度空间,没有进程和线程,就没有现如今的计算机。
进程
进程是进程实体的运行过程,是系统资源进行分配和调度的一个独立单位。
PCB(进程控制块)是进程存在的唯一标志。
PID(进程标识符)、UID(用户标识符)
进程管理者所需的数据都在PCB中。
进程三种状态:就绪、阻塞、运行。
资源分配清单:正在使用哪些文件、正在使用哪些内存区域、正在使用哪些I/O设备。
程序段相同的进程,其PCB、数据段各不相同。
程序段、数据段是给进程自己用的,与进程自身的运行逻辑有关。
进程的四大特征:动态性,并发性,异步性,结构性。
- 进程的链接方式是按照进程状态将PCB分为多个队列、操作系统持有指向各个队列的指针。
- 进程的索引方式是根据进程状态的不同,建立几张索引表,操作系统持有指向各个索引表的指针。
进程控制
就是要实现进程状态的转换,用原语实现。原语用关/开中断实现,其是一种特殊的程序,必须一气呵成,不能中断。
进程控制原语需要更新PCB中相关信息,将PCB插入合适的队列,分配/回收资源。
进程通信
共享存储要互斥的访问共享空间
管道通信写满时不能再写,读空时不能再读,一个管道只能实现半双工通信。
消息传递有直接和间接两种通信方式,能传递结构化的消息。
线程
引入线程的原因:增加并发度,减少并发带来的系统开销。
线程的资源分配、调度:传统进程机制中,进程是资源分配调度的基本单位 引入线程后,进程是资源分配的基本单位,线程是CPU调度的基本单位。
线程的并发性:传统进程机制中,只能进程间并发 引入线程后,各线程间也能并发,提高了并发度。
线程的系统开销:传统的进程间并发,需要切换进程的运行环境,系统开销大 线程间并发,如果是同一个进程内的线程切换,则不需要切换 引入线程后,并发带来的系统开销减小。
线程的特点:线程是处理机调度的单位,进程是资源分配的单位,同一进程的各线程共享拥有的资源,线程切换时不会导致进程切换。
| 多线程模型 | 多对一 | 一对一 | 多对多 |
|---|---|---|---|
| 优点 | 进程管理开销小,效率高 | 进程管理开销大 | 集二者之所长 |
| 缺点 | 一个线程被阻塞会导致整个进程被阻塞 | 各个线程可分配到多核处理机并行执行,并发度高 | --------- |