第四章考点
4.1进程和线程
- 进程的特性:分配资源,被调度执行
- 进程与线程的联系与区别
进程:分配资源和抢夺CPU的单位,不频繁切换,各子进程空间各自独立
线程:进程内部被调度运行的单位,不拥有系统资源,可频繁切换,共享进程空间
一个进程可产生多个线程
3.多线程
特点: 进程的所有线程共享进程的用户地址空间和资源
所有线程访问同样的代码、数据和文件
优点:创建/终止一个线程比创建/终止 一个进程快
切换开销少,切换速度快
资源共享,通信方便
并发程度高,可利用多处理器结构
4.线程功能特性
基本状态:运行态,就绪态,阻塞态
挂起/终止一个进程会同时挂起/终止所有线程
并发执行可提高系统效率,但需要同步互斥
4.2线程分类
1.两类线程:用户级线程(ULT),内核级线程(KLT)
还有一种及支持ULT也支持KLT称为混合式线程
2.用户级线程:
-
创建,撤销,切换与OS内核无关(OS内核不知道用户级线程的存在)进程自己通过TCB管理自己的线程
-
优点:
-
线程切换不需要切换到系统态
-
进程自己调度线程,更灵活
-
只要有线程库便可运行,不需要修改OS内核代码
-
-
缺点:
-
ULT提出阻塞时,会阻塞所属进程(但该线程不一定阻塞)
-
对OS不可见,由于CPU分配单位是进程,故不可利用多CPU结构
-
3.内核级线程
- 创建,撤销,切换,同步互斥由OS完成,OS通过TCB控制
- 对内核级线程的管理类似进程
- 优点
- 可以利用多核
- 一个KLT阻塞,同进程的另一个KLT可以运行
- 缺点
- 切换需要切换到系统态,开销大