第二章进程的描述和控制•2.1前趋图和程序执行•2.2进程的描述#includestdio.hmain(){floata,b,c;scanf(“%f,%f”,&a,&b);c=a+b;printf(“%f+%f=%f”,a,b,c);}//输入I//计算C//输出PICP2.1前趋图和程序执行•程序顺序执行–顺序性–封闭性–可再现性前趋图1.直接前趋2.直接后继;3.初始结点;4.终止结点案例:观察者/报告者观察者:报告者:beginbeginrepeatrepeatwaitacargothroughdelayatimeN=N+1;printN;N=0;untiluntilEndend初始N=n时不同执行序列:N=N+1;printN;printN;PrintN;N=0;N=N+1;N=0;N=N+1;N=0;结果各不相同:打印n+1,N=0;打印n,N=1打印n,N=0;程序的并发执行•相比单道程序的顺序执行,程序的并发执行具有几个明显的特征:–间断性(资源共享)–失去封闭性(资源共享)–不可再现性(循环程序访问共享单元)2.2进程的描述•进程的概念–进程是程序的一次执行;–进程是一个程序及其数据在处理机上顺序执行时所发生的活动;–进程是可并发执行的程序在一个数据集合上的运行过程;–进程是具有独立功能的程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位;–进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程、程序的区别和联系•1)动态性。进程的实质是程序的一次执行过程,因此动态性是进程的最基本特征。它还表现为有生命周期的,即由创建而产生,有调度而执行,由撤消而消亡。而程序只是一组有序指令的集合,是静态的。•2)并发性。指多个进程能在一段时间内同时运行,并发性是进程的重要特性。引入进程的目的也正是为了使其程序能和其它进程的程序并发执行。•3)独立性。指进程是一个能独立运行、独立分配资源和独立调度的基本单位,凡未建立进程的程序,都不能作为一个独立的单位参加运行。•4)异步性。指进程按各自独立的、不可预知的速度向前推进,即按异步的方式运行。进程的基本状态及其转换进程在其生命期内被划分为三种基本状态:就绪状态、执行状态、阻塞状态。–就绪状态(Ready)刚被创建;或等待事件发生被唤醒。–执行状态(Running):获得处理机的使用权。–阻塞状态(Blocked):等待某个事件的发生。运行态阻塞态就绪态进程就绪,可以运行状态转换:进程等待外部事件,阻塞OS决定由哪个进程占用CPU,进程调度进程的三种基本状态进程的五状态图活动就绪执行活动阻塞静止阻塞静止就绪wakeup(唤醒)事件发生挂起suspend挂起suspend事件发生wakeup(唤醒)进程的七状态图•在单处理机计算机系统中,如果有n个进程,–运行状态的进程最多几个?最少几个?–等待状态的进程最多几个?最少几个?–就绪状态的进程最多几个?最少几个?进程管理中的数据结构内存设备文件进程内存表设备表文件表进程1进程2进程3...进程n进程实体及其所用资源列表进程1...进程实体及其所用资源列表进程n进程控制块的作用•进程实体:–进程控制块PCB(ProcessControlBlock)–程序段–用户数据•作用:–作为独立运行基本单位的标志–能实现间断性运行方式–提供进程管理所需信息–提供进程调度所需信息–实现和其它进程的同步和通信进程控制块中的信息•1)进程标识信息进程的标识号(processID,PID),唯一、父进程ID、用户ID•2)处理机状态–CPU寄存器、用户可见寄存器、控制和状态寄存器、程序计数器–状态信息:中断允许/禁止标志、执行模式等•3)进程调度信息–进程状态、优先级、事件–数据结构:队列等–进程间通信•4)进程控制信息–程序和数据地址、进程同步和通信机制、内存管理信息、计帐信息、I/O状态信息进程控制块的组织方式•系统感知进程的唯一实体、常驻内存•进程控制块的组织方式有以下三种:–线性方式:线性表–链接方式:队列,按照进程状态分类–索引方式:索引表执行指针就绪队列指针阻塞队列指针空闲队列指针PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB91链接PCB1PCB2PCB3PCB4PCB5PCB6PCB7执行指针就绪表指针阻塞表指针索引思考题•假设在时间5时,系统资源只有处理器和内存被使用.考虑如下事件:–时间5:P1执行对磁盘单元3读操作–时间15:P5的时间片结束–时间18:P7执行对磁盘单元3写操作–时间20:P3执行对磁盘单元2读操作–时间24:P5执行对磁盘单元3写操作–时间28:P5被换出–时间33:P3读磁盘单元2操作完成,产生中断–时间36:P1读磁盘单元3操作完成,产生中断–时间38:P8结束–时间40:P5写磁盘单元3操作完成,产生中断–时间44:P5被调入–时间48:P7写磁盘单元3操作完成,产生中断•请分别写出在时间22,37,47时每个进程的状态,如果一个进程在阻塞态,写出其等待的事件