-
在计算机中程序的一次运行过程是处理器资源分配的基本单位。 为了方便 ,把程序的一次运行过程就叫做进程。进程的定义:可并发执行且具有独立功能的程序在一个数据集合上的运行过程 ,它是操作系统进行资源分配和保护的基本单位。
-
进程具有的特性:
1. 动态性——指进程是程序的一次活动,程序是进程活动的蓝本,而进程活动是程序的一次运行过程。
2. 并发性——指在一个系统内可以同时存在多个进程,它们交替使用处理器资源,并各自按照自己独立的进度推进。
3. 异步性——指进程之间在交替使用计算机资源时没有强制的顺序。
4. 独立性——指进程在系统中是一个可独立运行的并具有独立功能的基本单位,是系统分配资源和进行调度的独立单位。
5. 结构性——指为了记录、描述、跟踪进程运行时的状态变化以便对进程进行控制,系统对每个进程都建有对应的数据结构及数据表项 。
-
在存储器中进程由程序代码、数据集合、进程控制块三部分组成:
① 进程通过执行程序代码来完成用户的任务
② 数据集合是进程在运行时所需要的数据全体
③ 进程控制块是操作系统为记录和描述进程基本信息及状态由操作系统创建并分配给进程的一个数据结构
-
作为一个执行过程进程具有至少三种状态:就绪状态、运行状态和阻塞状态。
1. 就绪状态表明已获得除处理器外的所有必需的资源
2. 进程一旦获得处理器的使用权 ,进程对应的程序代码就会被执行而使进程处于运行状态 。
3. 阻塞状态需要等待一个事件而暂停运行。
4. 就绪状态到运行状态的转化叫做进程的调度,进程调度——系统总是从处于就绪状态的进程里选择一个就绪进程转换为运行状态,这是操作系统的一项重要任务。
5. 运行状态到阻塞状态的转化叫做挂起。
-
进程控制块PCB:是操作系统来感知和控制一个进程的依据;进程控制块相当于进程在操作系统中的身份证或档案 。为了指明进程的私有堆栈和存储数据用的数据块,在进程控制块中应有指向这两部分的指针。同时为了指明该进程的程序代码,在进程控制块中还应有指向代码的指针。
-
随着软件设计技术的发展,以进程作为分配处理器资源的基本单位显得过于庞大和笨重,使得系统在进行进程切换时的时间和空间开销过大。把程序的运行过程再分割为更小的单位—线程,即把一个进程再分割为多个线程 。每个线程均有自己的线程控制块,这些线程控制块归属于进程控制块。线程控制块中也要包含模块代码指针和私有堆栈指针。
-
操作系统在进行资源的分配时,对于存储空间资源,以进程为单位来进行分配;对于处理器资源以线程为单位来进行分配。同一个进程中的所有线程共享进程的资源;线程是基本运行单位,是系统调度的基本单位。