一、线程与进程
1、在没有线程概念的系统中,进程是:
- 资源分配的单位;
- 调度/执行的单位;
2、主要的问题:
- 进程切换的开销大——每次切换都要保存和恢复进程映像;
- 进程占用的资源多——多个同类进程需占用多份资源,而一个进程中的多个同类线程则共享一份资源;
3、定义:线程是一个进程内CPU的基本调度单位。
4、多线程环境下的进程和线程:在多线程操作系统中,进程是拥有系统资源的基本单位,包含多个线程,为其提供资源(线程本身无法直接调用系统资源),而进程本身不再作为可执行的实体。当进程执行的时候实际上是其中某个线程在执行。
进程是资源分配和保护的单位:
- 拥有用于保存进程映像的虚地址空间;
- 受保护地访问处理器、其他进程、文件和I/O资源
- 进程的创建/切换需要创建/切换进程映像
线程是分派的执行单位:
- 包含线程的执行状态;(运行、就绪等状态)
- 保存的线程的CPU上下文;(在线程处于非运行态时保存到线程控制块中)
- 一个执行时的栈;
- 独立的用来存储局部变量的静态存储空间;
- 对进程的内存和其他资源的访问;(与同一进程内的其他线程共享这些资源)
5、线程的本质是将原本为实现进程的时间片划分得更细,也为了让进程可以“同时”进行多种不