进程的基本概念进程管理进程调度进程间的同
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多道程序系统:资源共享;程序的并发运行
例:int N=0; /*全局变量*/ cobegin progam A { while(1){ ….. N++; ….. } }
progam B { while(1){ ….. printf(“N=%d\n”,N); N=0; ….. } }
coend
•并发执行的特征
• 顺序执行的特征
– 顺序性 – 封闭性 – 可再现性
程序并行性表示
1.前驱图
是一个有向无环图,图中每个结点表示一个语句、一段程序或一个进程
有向边< Vi , Vj >表示Vj仅在 Vi执行完后才能开始执行
S1
S1
S2
S3
S4
S6
S5
S7
前驱图
S2
S3
有回路的前驱图
2.并行语言
类Pascal的并行语句。
wakeup (唤醒) 事件发生
Blockeda
挂起 suspend
解挂 active
Running
挂起 suspend
解挂 active
Readys
挂起suspend
事件发生 wakeup (唤醒)
Blockeds
图:具有挂起功能的进 程状态Fra Baidu bibliotek化
进程的状态转换:
▪三状态进程模型
Dispatch
New
COBEGIN s1;s2;…;sn
COEND
COBEGIN / COEND相当于一个括号,表示其中的所 有语句s1, s2,… sn可并行执行。
并发执行的条件(Bernstein条件)
1966年,由Bernstein给出并发执行的条件。
❖ 程序 P(i) 针对变量的读集R(i)和写集W(i) ❖ 条件:任意两个程序P(i)和P( j),同时满足:
各状态的形成不同的链表:就绪链表、阻塞链表
Ready
Index Table
PCB Table
Ready
PCB Table
R
Blocked
Blocked Bl
进程控制
▪进程控制的功能 完成进程状态的转换。
▪ 进程的特征
❖ 动态性:产生、执行、暂停、消亡。有一个 生存期
❖ 独立性:是系统进行资源分配和调度的独立 单位,是能独立运行的基本单位
❖ 并发性:程序在建立进程后并发运行
进程=程序+数据+PCB (进程控制块,process control block)
▪ 进程与程序的区别
❖ 进程是动态的,程序是静态的 ❖ 进程是暂时的,程序的永久的 ❖ 进程与程序的组成不同
–间断(异步)性:“运行-暂停-运行”;并 发程序之间依赖相互、相互制约 –不可再现性 –并发程序与它的执行过程并非一一对应
进程(PROCESS)的概念
一个具有一定独立功能的程序在一个数据集合 上的一次动态执行过程。 是系统进行资源分配和调度的一个独立单位
▪ 进程的定义
是并发程序的一次执行过程,它由一个动作序列组 成,每个动作是在某数据集上执行一段程序,整个 活动的结果是提供一种系统或用户功能。
R(i)W( j)=; W(i)R( j)=; W(i)W( j)=;
前两条保证一个程序的两次读之间数据不变化;最后一条保证写的结果不丢掉。
例:s1: read(disk,&a,4); /*从磁盘读a*/ s2: read(tape,&b,4); /*从带读b*/ s3: c=a+b;
R(s1)= W(s1) ={a} s1和s2可并发,s2和s3不可并发
▪ PCB的组织方式
v 顺序表:将所有PCB连续存放在内存。要经常扫 描整个表
v 索引表:同一状态的PCB建立一个index表(由 index指向PCB),多个状态对应多个不同的 index表
各状态形成不同的索引表:就绪索引表、阻塞索引表
v 链表:同一状态的进程的PCB成一链表,多个状 态对应多个不同的链表
作区 ❖ 进程控制块(PCB):包含进程的描述信
息和控制信息,是进程动态特性的反映
程序和数据集合是进程的实体 进程控制块是进程存在的唯一标志
进程控制块是由OS维护的用来记录进程相关 信息的一块内存。
▪ 进程控制块的内容
❖ 进程标识符: 进程标识符(process ID)(内部标识符):唯一,通常 是一个整数; 进程名(外部标识符) :不唯一,由字母数字组成;
❖ 位置信息:指出进程的程序和数据在内存和外存中的物理 位置
❖ 现场信息:寄存器值(通用、程序计数器PC、状态PSW, 地址包括栈指针)
❖ 状态信息:进程现行状态 ❖ 进程优先级:进程使用CPU的优先级别 ❖ 资源清单:已分配到的资源等 ❖ 同步与互斥机构 ❖ 进程通讯机制 ❖ 队列指针 ❖ 家族联系 ❖ 资源占用信息:虚拟地址空间的现状、打开文件列表
2.1 进程的基本概念
程序的顺序执行和并发执行 ▪顺序执行是单道批处理系统的执行方式,也 用于简单的单片机系统; ▪ 现在的操作系统多为并发执行,具有许多 新的特征。引入并发执行的目的是为了提高 资源利用率。
程序的顺序执行 • 例:程序段
read(disk,&a,4); /*从磁盘读a*/ read(tape,&b,4); /*从带读b*/ c=a+b; printf(“c=%f\n”,c);
Admit
Ready
Running Release
Exit
Timeout
Create Event Occurs
Blocked
EveWnatit
进程控制块(PCB, process control block)
▪ 进程的物理结构
❖ 程序:描述进程要完成的功能 ❖ 数据集合:包含程序运行所需的数据和工
Running
等待事件 (系统服务请求,如请求I/O))
Ready
事件发生
Blocked
进程的状态
▪ 细分的进程调度状态
❖ 挂起:强迫进程释放分配到的资源,将进程 调出到外存
❖ 活动:未被挂起的就绪和阻塞状态称为活动 就绪和活动阻塞
❖ 静止:被挂起的就绪和阻塞状态称为静止就 绪和静止阻塞
Readya
▪ 进程与程序的联系
•通过多次执行,一个程序可对应多个进程; 通过调用关系,一个进程可包括多个程序。
2.2 进程管理
进程的状态
▪ 三种基本调度状态
❖ 运行状态:进程分配到必要的资源,在CPU 上执行时的状态
❖ 就绪状态:进程分配到必要的资源,还没获 得在CPU上执行的状态
❖ 阻塞状态(等待状态):进程的执行由于本 身不具备运行条件而受到阻塞,处于暂停状 态