您的位置:首页 > 其它

第二章、进程的描述与控制(1)

2014-10-08 22:01 176 查看
第二章、进程的描述与控制(1)

传统的操作系统中,为了提高资源利用率和系统吞吐量,通常采用多道程序技术,将多个程序同时装入内存,并使之并发运行,作为资源分配和独立运行的基本单位都是进程。



一 、

1.1 程序顺序执行的特征

1.顺序性:每个操作都在下一个操作开始前完成

2.封闭性:程序在封闭的环境下运行,即程序运行时独占全机资源,资源点额状态(处初始状态外)只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响;

3.可再现性:程序执行时的环境和初始条件相同,当程序重复执行时,结果不变。



1.2程序并发执行的特征

进程之间的共享系统资源,使得这些并发执行的程序之间形成相互制约关系。

1间断性:程序在并发执行时,由于在共享系统资源,以及为完成同一项任务而相互合作,致使并发执行程序之间形成了相互制约的关系。

2.失去封闭性:系统资源被各个进程使用。

3.不可再现性:由于失去封闭性,导致结果不一致。



二、进程的定义和特征

2.1进程的定义

1.进程控制块(Process Control Block ):操作系统为进程分配的专门的数据结构

作用:系统用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控制和管理进程,所以PCB 是系统感知进程存在的唯一标志,进程与PCB是一一对应的。

PCB记录的信息

在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息是多少也不同,通常PCB应该包含下列信息:

1.进程标示符 name: 每个进程都必须有唯一的标示符,可以是字符串,也可以是一个数字。

2.进程的当前状态 status: 说明进程当前所处的状态,为了管理方便,系统设计时会将相同的状态的进程组成一个队列,比如就绪队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列,等待磁盘I/O完成队列等等。

3.进程相应的程序和数据地址,以便把PCB与其程序和数据联系起来,

4.进程资源清单。列出所拥有的处CPU外的资源记录,如拥有的I/O设备,打开的文件列表等。

5.进程优先级-priority:进程的优先级反映进程的紧迫程度,通常由用户指定和系统设置。

6.CPU现场保护区 cpustatus:当进程由于某种原因不同继续占用CPU时(如等待打印机),释放CPU,这时就要将CPU的各种状态信息保护起来,为将来再次得到处理机恢复CPU的各种状态,继续运行。

7.进程同步与通信机制 用于实现进程间的互斥,同步和通信所需的信号量等。

8.进程所在队列PCB的链接字 根据进程所处的现行状态,进程相应的PCB参加到不同的队列中,PCB链接字指出该进程所在队列中下一个进程PCB的首地址。

9.与进程有关的其他信息,如进程记账信息,进程占用CPU的时间等。



进程的概念:由程序段,相关数据段,和PCB三部分构成进程实体(称为进程映像)。

一般称为进程实体为进程。

所谓创建进程就是创建进程实体中的PCB:而撤销进程,实质上是撤销进程的PCB.

从其他角度定义进程:

1.进程是程序的一次执行。

2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

3.进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立的程序。

在狭义的定义中:进程就是程序的执行过程。

2.2进程的特征

1.动态性:进程的实质是进程实体的执行过程



2.并发性:多个进程实体同在内存中运行,并且在同一段时间内运行。

3.独立性:指进程实体是一个能独立运行,独立获取资源,和独立接受调度的基本单位,当然进程实体必须有PCB。

4.异步性:进程实体按照各自的速度,独立的推进。

5.结构特征:进程由程序,数据,进程控制块(PCB)三部分组成。



2.2进程的三种基本状态

进程在并发执行时,共享系统资源,在运行过程中可能处在不同的状态

1.就绪(Ready)状态:处在该状态的进程放在就绪队列中,它们的特点就是已经获得了除CPU以外的系统资源,并且获得CPU后便可执行。

2.执行(Running)状态:指进程获得了CPU,并且在内存中执行,在单处理机中,只有一个进程处在该状态,多处理机中可以有多个进程在执行。

3.阻塞(Blocking)状态: 这是指正在执行的进程由于发生某事件(如I/O请求,申请缓存),锁阻塞,wait(等待资源),sleep,暂时无法继续执行的状态。也就是说进程的执行受到阻塞。然后出现进程的调度,OS把处理机分配给另一个就绪进程,让受阻进程处于暂停状态,这种暂停状态称为阻塞状态,有时也称为等待状态和封锁状态。通常系统将处于阻塞状态的进程排成一个队列,称该队列为阻塞队列。在系统中会有多个阻塞队列,减少系统开销。



2.3三种基本状态的转换图

2.4进程的其他常见状态: 创建状态和终止状态

进程的创建过程:

1.进程申请一个空白PCB,向PCB填写用于控制和管理进程的信息。

2.然后为该进程分配运行所需的资源。

3.把该进程转入就绪状态,并插入就绪队列。

当进程处在1,2的时候,称为进程的状态为创建状态。

引起创建进程的事件

1.用户登陆

2.作业调度(多道批处理)

3.提供服务(用户提出请求)

4.应用请求



作用:引入创建状态为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性,并增加管理的灵活性。

终止状态(也叫死亡):

终止操作:

1.等待操作系统进行善后处理。

2将其PCB清零,并将PCB空间返还系统。

进程终止时,其子进程也将被终止

终止原因:

1.自然结束

2.出现无法克服的错误。

3.被操作系统所终结

4.被其他拥有终止权的进程所终结。



进程的五种基本状态和转换

2.5进程中的挂起操作和进程状态转换

挂起用于系统和用户方便分析进程。

当挂起操作作用于某进程后,该进程将处于静止状态。与挂起操作对应的是激活操作。



进程的挂起情况:

1.当进程正在执行时,挂起操作使该进行暂停执行。

2.当进程处于就绪状态时,该进程不接受系统调度。



2.6引入挂起操作后的三个进程状态的转换

说明: 挂起原语(suspend),激活原语(active)

1.活动就绪 静止就绪 : 使用suspend

2.活动阻塞 静止阻塞 : 使用suspend

3.静止就绪 活动就绪 : 使用active

4.静止阻塞 活动阻塞 : 使用active

活动阻塞:进程处在没有被挂起的阻塞状态。

静止阻塞:进程处在被挂起的阻塞状态

活动就绪:进程处在没有被挂起的就绪状态

静止就绪:进程处在被挂起的就绪状态



2.7引入挂起操作后的5个进程状态的转换



2.7引入创建操作,挂起和终止状态的进程状态图

2.9进程控制

包括

进程的创建,进程的终止,进程的挂起与激活,进程的阻塞与唤醒

进程控制一般是由OS的内核中的原语来实现的。

2.10进程的阻塞与唤醒:

阻塞原语:block ,唤醒原语:wakeup.

2.11引起进程阻塞和唤醒的事件

1.向系统请求共享资源失败,

2.等待某种操作的完成。(资源服务到位)

3.新数据尚未到达。(进程通信)

4.等待新任务的到达。(等待服务)



这里从网上搜集了两个问题加以巩固复习的内容:



1.进程的阻塞和挂起的区别

1.挂起是一种主动行为,恢复也是主动的,阻塞是一种被动的行为,恢复不确定。挂起队列可以看成一个队列,而阻塞队列可以根据阻塞原因的不同分成多个阻塞队列。

2.阻塞就是任务释放CPU(相当于失去执行权),而挂起不会失去执行权。挂起用于程序测试中的条件中断,进行单步调试。否则挂起的线程将一直拥有系统资源,其他线程不能利用。

3.阻塞是由任务实现引起的,而挂起则是由其他原因对任务进行处理产生的。

4.任务调度是由系统实现的。任务调度时直接忽略挂起状态的任务。



2.在windows下某个用户进程陷入死循环,但是系统还可以执行其他任务,为什么?

在某个进程进入死循环后,windows如何调度?

原理说明:

CPU一次只能执行一条指令,但是windows是多进程的系统,也就是单个CPU能够运行多个进程,其中的原理就是使用一个多进程的CPU调度算法,原理介绍:某个时刻执行一个进程的一条指令,下一个时刻执行另一个进程的指令,因为CPU的执行速度很快,我们感觉不到而已。

问题1:

Windows系统中有很多歌进程在执行,其中一个进程虽然进入死循环,但是它每次执行完一条指令后就要将CPU的控制权转交给其他进程,一个死循环并不会影响其他任务的执行,只是影响本进程的执行。

问题2:

当进程进入死循环后,与windows的CPU调度算法有关,当一个进程死循环后,除非用户将该进程杀死,否则这个进程将会一直死循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: