线程和进程
线程是资源分配的基本单位、线程是调度的基本单位
进程的概念包括两个特点:
- 资源所有权:一个进程包括一个存放进程映像的虚拟地址空间,进程映像是程序、数据、栈和进程控制块中定义的属性的集合。一个进程拥有对资源的控制权和所有权,操作系统保护进程之间的资源不起冲突。
- 调度/执行:一个进程具有一个执行状态和一个分配的优先级,并且是一个可被操作系统调度和分派的实体。
为了区分上面两个特点,分派的单位通常称作线程或轻量级进程,而拥有资源所有权的单位通常称作进程或任务。
多线程
多线程是指操作系统在单个进程内支持多个并发执行路径的能力。
每个线程有:
- 线程执行状态;
- 在未运行时保存的线程上下文;线程可以被看作进程内的一个被独立地操作地程序计数器;
- 一个执行栈;
- 用于每个线程局部变量地静态存储空间;
- 与进程内的其他线程共享的对进程的内存和资源的访问。
进程中的所有线程可以共享该进程的状态和资源。
线程的优点:
- 比创建一个新进程耗时短;
- 终止一个线程比终止一个进程耗时短;
- 线程切换比进程切换耗时短;
- 提高不同程序间的通信的效率。
线程特性
线程状态:
- 派生:当派生一个新进程的时候,也为其派生了一个线程。
- 阻塞
- 接触阻塞
- 结束
线程同步
多个线程同时获取一处资源造成的影响。可以加锁。
用户级和内核级线程
线程可以分为这两种。
纯用户级线程软件中,所有线程管理工作由应用程序完成。
用户级线程的优点:
- 所有线程数据结构都在用户地址空间,不需要转化为内核态特权,节省了两次状态转换的开销。
- 应用程序量身定做调度算法。
- 跨平台性。
纯内核级线程中软件中,所有线程管理的工作都是由内核完成,应用程序没有线程管理的代码。
上面二者可以进行组合。
对称多处理
在**多对称崇礼系统(SMP)**中, 内核可以在任何处理器上执行,并且通常是每个处理器可用的进程或线程池中自己的调度工作。
SMP关键问题:
- 同时的并发进程或线程
- 调度
- 同步
- 存储管理
- 可靠性和容错性
微内核
微内核是一个小型的操作系统核心,它为模块化扩展提供基础。
微内核的基本原理:只有最基本的操作系统功能才放在内核中。
优点:
- 一致接口
- 可扩展性
- 灵活性
- 可移植性
- 可靠性
- 分布式系统支持
- 适用于面向对象操作系统环境