引言:操作系统最核心的概念是进程,是资源分配和独立运行的基本单位,操作系统所有的内容都是围绕着进程展开的。
2.1进程的概念
2.1.1程序的并发执行
在某一时间段同时发生几件事的现象称为并发。一般采用的CPU分时原理。
程序的并发是在多道程序环境下进行的,在单道程序工作环境中程序是顺序执行的。
1.程序的顺序执行及其特性
一个具有独立功能的程序独占CPU运行,直到得到最终结果的过程称为顺序执行。
顺序执行具有以下特征:
顺序性 , 独占资源, 结果无关性。 // 顺序性 封闭性 可再现性
2.程序的并发执行及其特性
间断性。 失去封闭性 。 不可再现性。
说明两个问题: 1.程序和计算机执行程序的活动不再一一对应;
2.并发程序之间的存在相互制约的关系;
制约分为:1.直接制约:在彼此之间有逻辑关系的两个并发执行的程序之间发生的,一般是由于各 程序段要求共享信息引起的。
2.间接制约:由于竞争使用的同一资源引起的
2.1.2进程的定义
程序的以下定义:
进程是可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位。
2.1.3进程的状态及其转换
1.进程的三种基本状态及其转换
运行,阻塞,就绪构成了最简单的进程生命周期模型。
<1>运行状态:进程正在cpu上运行的状态,该进程已经获得必要的资源,包括cpu,该程序正在cpu上运行。
<2>阻塞状态:进程等待某种事件完成(如输入/输出操作)而暂时不能运行,该状态不能进行cpu的竞争。
<3>就绪状态:等待cpu的过程,已具备了运行的条件。但由于未获得cpu,因此仍不能执行。
引起挂起的主要原因:内存资源相对不足。
2.1.4进程控制块
当某个程序不在cpu运行时,必须保存被中断的程序的现场,包括断点的地址,程序状态字,通用寄存器的内容,堆栈内容,程序的当前状态,程序的大小,运行事件等等。为了保存这些信息,有一个专用的数据结构——进程控制块(PCB)。
进程控制块是进程存在的唯一标志。PCB通常所包含的信息:
<1>进程标识信息
<2>位置信息
<3>状态信息
<4>进程的优先级
<5>进程现场保护区
<6>资源清单
<7>队列指针或链接字
<8>其他信息
因为有多个PCB,为了能够进行有效的管理,就要用适合的方法把这些PCB组织起来,目前常用的组织方式有三种。
<1>线性表方式 适用于进程不多的情况
<2>链接表方式 能够有效的利用空间
<3>索引表方式 查找快,但是占用额外的空间
2.1.5进程的特征
1.特征:
<1>进程具有动态性
一个进程可以看作一组动态序列,每个动作则是由执行一段指令来完成。而程序是有序静止的集合。
<2>进程具有并发性
在一段时间内可以运行多个进程。
<3>进程具有结构特性
进程是由程序段和相应的数据段及进程控制段构成。而程序只包括代码及相应的数据
<4>进程具有独立性
进程是操作系统进行调度和分配资源的独立单位。
<5>进程具有异步性
系统中的进程,按照各自的,不可预期的速度向前推进。
2.进程通常分为用户进程和系统进程。
系统进程:是操作系统用来管理系统资源的并行活动的并发软件。
用户进程:用户进程是独立执行的用户程序段,他是操作系统提供服务的对象,,是系统资源的实际使用者。
系统进程之间的关系有操作系统自己来负责。
系统进程直接管理有关的软,硬设备的活动,用户进程只能间接地和系统资源发生关系,当用户进程需要某种资源时,它必须向系统提供请求,由系统调度和分配。
在进程调度中,系统进程的优先级高于用户进程。
2.2进程控制
引言:进程由创建而产生,由调度而执行,有撤销而消亡的生命周期,因此操作系统要有对进程生命周期的各个环节进程控制的功能,这就是进程控制。
进程的控制通常由原语完成。(原语:若干条指令所组成,用来实现某种特定的功能,在执行过程中不能被中断的程序段。)
2.2.1创建进程原语
通过创建原语完成创建一个新进程的功能。由于进程的存在是以其进程控制块为标志的,因此创建一个新进程的主要任务是:
为进程创建一个进程控制块,将进程提供的相关信息加入到pcb中,然后把pcb插入到队列中。
<1>申请PCB空间
<2>为进程分配资源,若不再内存中,应该从外存调到内存。
<3>把有关信息分别填入到PCB中。
<4>把PCB插入到队列中。
能够导致创建进程的事件有:用户登录,作业调度,提供服务和应用请求。
2.2.2撤销进程原语
进程完成使命,系统会及时回收它占有的全部资源以供其他进程使用。
在PCB链中找到对应的PCB,若找不到撤销的进程的名字或者该进程尚未停止,则转入异常终止处理程序。
否则,从PCB链中撤销该进程的及其该进程的子进程。
撤销原语撤销的是标志进程的存在的进程控制块,而不是进程的程序段。
2.2.3阻塞进程原语
一个正在运行的进程,由于为满足其所申请的资源而被迫处于阻塞状态,等待所需的事件发生,进程的这种变化就是通过阻塞进程原语完成的。
首先中断CPU,停止进程运行,将CPU的现行状态存放在PCB的cpu状态保护区中,然后将该进程设置为阻塞状态。并把它插入到等待队列中,然后系统执行调度程序,将cpu分配给另一个就绪的状态。
2.2.4唤醒进程原语
当进程所需要的资源出现时,由释放资源的进程调用唤醒原语,唤醒等待该资源的进程。
唤醒原语的基本功能:把除了CPU之外的一切资源都得到满的进程设置为就绪状态,然后插入到就绪队列中,等待调度运行。