进程与线程
进程
进程的概念:是动态的,是程序的一次执行过程。
程序:是静态的,就是个存放在磁盘里的可执行文件。
PID(进程ID):当进程被创建时,操作系统会为该进程分配一个唯一的,不重复的“身份证号”。
进程的组成:PCB,数据段,程序段。(PCB是给操作系统用的,数据段,程序段是给进程自己用的)
进程实体(进程映像):(静态的)一个进程实体由PCB,程序段,数据段组成
进程的特征:
进程的状态与转换
进程控制
进程控制的概念:进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程,撤销已有进程,实现进程状态转换等功能。
如何来实现进程控制呢?用原语来实现进程控制。
原语:原语是一种特殊的程序,它的执行具有原子性。也就是说,这段程序的运行必须一气呵成,不可中断。
进程通信(IPC)
进程间通信(IPC):就是指两个进程之间产生数据交互。
进程是分配系统资源的单位,因此个进程拥有的内存地址相互独立。
为了保证安全。一个进程不能直接访问另一个进程的地址空间。
消息传递
管道通信
线程概念多线程模型
在还没有引入线程之前,系统中的各个程序只能串行执行。
线程:可以把线程理解为“轻量级进程”,线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务。
引入线程之后,进程只作为除CPU之外的系统资源的分配单元
线程则作为处理机的分配单元。
线程的实现方式- 多线程模型
线程的实现方式:
用户级线程
1.用户级线程由应用程序通过线程库实现,所有的线程管理工作都由应用程序负责(包括进程切换)
2.在用户级线程中,线程交换可以在用户态下即可完成,无需操作系统干预。
3.在用户看来,是有多个线程,但是在操作系统内核来看,意识不到线程的存在
用户级线程就是从用户视角能看得到的线程。
优缺点:优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高。
缺点:当一个用户级线程被阻塞后整个进程都将会被阻塞,并发度不高,多个线程不可在多核处理机上并行运行。
内核级线程
1.内核级线程的管理工作由操作系统内核完成。
2.线程调度,切换等工作都由内核负责,因此内核级线程的切换必然需要在核心态下才能完成。
3.操作系统会为每个内核级线程建立相应的TCB,就是通过TCB对线程进行管理,“内核级线程”就是“从操作系统内核视角能看得到的线程”。
4.优缺点:当一个线程被阻塞后,别的线程还可以继续执行,并发能力强,多线程可在多核处理机上并行执行
缺点:一个用户进程会占用多个内核级线程,线程切换由操作系统内核完成,需要切换到核心态,因此线程管理的成本高,开销大。