进程的特点
资源所有权:一个进程包括一个存放进程映像的虚拟地址空间
调度/执行:一个进程沿着轨迹执行,可能和其他进程交替
区分多线程环境下的进程
进程
是操作系统中进行除处理器外的资源分配和保护的基本单位,它有一个独立的虚拟地址空间,用来容纳进程映像(如与进程关联的程序与数据),并以进程为单位对各种资源实施保护,如受保护地访问处理器、文件、外部设备及其他进程(进程间通信)。
多线程环境中(只与资源相关)
虚拟地址空间存放进程映像
受保护地对处理器、其他进程、文件和I/O资源的访问
线程
是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。线程是进程的组成部分,每个进程内允许包含多个并发执行的实体(控制流),这就是多线程。
一个进程中,可能有一个或多个线程 ²每个线程的相关元素:
线程执行状态
在未运行时保存的线程上下文
一个执行栈
用于每个线程局部变量的静态存储空间
与进程内的其他线程共享的对进程内存和资源的访问
线程和进程的区别
单线程模型中,进程的表示包括它的进程控制块和用户地址空间,以及在进程执行中管理调用/返回行为的用户栈和内核栈
多线程环境,每个线程都有一个独立的栈,还有独立的控制块用于包含寄存器值、优先级和其他线程相关的状态信息 所有线程共享该进程的状态和资源,驻留在同一块地址空间中,可以访问到相同的数据
线程组成
线程惟一标识符及线程状态信息;
未运行时保存的线程上下文---可把线程看成是进程中一个独立的程序计数器在操作;
内核栈,内核态下工作时,保存参数,函数调用时的返回地址等;
用于存放线程局部变量及用户栈的私有存储区。