①一个正在执行的程序
②一个正在计算机上执行的程序实例
③能分配给处理器并由处理器执行的实体
④由一组执行的指令、一个当前状态和一组相关的系统资源表征的活动单元
我们可以把进程视为由一组元素组成的实体,进程的两个基本元素是程序代码和与代码相关联的数据集。
处理器开始执行这个程序代码,并且我们把这个执行实体称为进程。
进程执行的任意过程,都可以由如下元素对应:
标识符:与进程有关的唯一标识符,用于区分其他进程
状态:若进程正在执行,则进程处于运行态
优先级:相对于其他进程的优先顺序
程序计数器:程序中即将进行的下一条指令的地址
内存指针:包括程序代码和进程相关数据的指针,以及与其他进程共享内存块的指针
上下文数据:进程执行时处理器的寄存器中的数据
I/O状态信息:包括显世I/O请求、分配给进程的I/O设备和被进程使用的文件列表等
记账信息:包括处理器时间总和、使用的时钟数总和、时间限制、记帐号等
这些信息存在于一个名为进程控制块的数据结构中
进程包括存放进程映像的虚拟地址空间;进程影响是程序、数据、栈、和数据控制块中定义的属性集。进程总具有对资源的控制权或所有权。而操作系统具有预防进程间发生不必要资源冲突的保护功能。
进程执行采用一个或者多程序的执行路径(轨迹),不同进程的执行过程会交替进行。因此,进程具有执行态(运行、就绪等)和分配给其的优先级,是可以被操作系统调度和分配的实体。
列出为进程执行的指令序列,可描述单个进程的行为,这样的序列称为进程轨迹。给出各个进程轨迹的交替方式,可描述处理器的行为。
上述进程的两个特点是独立的,因此操作系统应该能分别处理它们。很多操作系统,特别是近期开发的操作系统已在这样做。为了区分这两个特点,我们通常将分派的单位称为线程或者轻量级进程,而将拥有资源所有权的单位称之为进程或任务。
多线程是指操作系统在单个进程内支持多个并发执行路径的能力。每个进程中仅仅执行单个进程的传统方法,称为单线程方法。
线程分类分为用户级和内核级分类。