进程控制块

合集下载

第二讲 进程管理(1)--进程控制

第二讲 进程管理(1)--进程控制

N=account;
N=N+200; account=N;
建立一个能够描述程序的执行过程并且能用来共享资 源的基本单位。
2.1.5 进程的定义和特征
一、进程(Process) 进程是程序在一个数据集上的运行过程,是系统 进行资源分配和调度的一个独立单位。
其它定义:

进程是程序的一次执行。 进程是一个程序及其数据在处理机上顺序执行时所 发生的活动。 进程是进程实体的运行过程,是系统进行资源分配 和调度的一个独立单位”。
2.2 进程的描述
系统中需要有描述进程存在和能够反映其变化的物理实体,即进程的静态 描述。进程的静态描述由三部分组成:进程控制块PCB,有关程序段和该 程序段对其进行操作的数据结构集。
进程控制块PCB包含了有关进程的描述信息、控制信息以及资源信息,是 进程动态特征的集中反映。 系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌 握进程所处的状态以达到控制进程活动的目的。
21
2.2.1 进程控制块
4)进程控制信息:
程序和数据的地址——指程序和数据所在的内存或外存首地址; 进程同步和通信机制——如信号量、消息队列指针等,它们可能全 部或部分地存放在PCB中; 资源清单——是一张列出了除CPU外的、进程所需的全部资源及已 经分配到该进程的资源的清单; 链接指针——它给出本进程(PCB)所在队列中下一个进程的PCB的 首址。
27
2.3.1 进程的基本状态
进程的挂起/解挂状态
一、设臵原因
1、用户需要 :中间结果与预期不符; 2、操作系统需要:系统某些功能故障; 3、系统负荷过重 4、父进程需要 5、对换的需要
二、设臵挂起状态后进程状态的转换

[操作系统]进程控制块

[操作系统]进程控制块

[操作系统]进程控制块
进程控制块: 是操作系统管理控制进程运⾏所哦那个的信息集合,操作系统⽤PCB来描述进程的基本情况以及运⾏变化的过程,PCB是进程存在的唯⼀标志
进程的创建:为进程创建PCB
进程的终⽌:回收他的PCB
进程的组织管理:通过对PCB的阻值管理实现
包含三⼤类信息
(⼀) 进程标识信息:如本进程的表⽰,本进程的产⽣者标识(⽗进程标识) ⽤户标识
(⼆) 处理器的状态信息保存区保存进程的运⾏现场信息
⽤户可见寄存器:⽤户程序可以使⽤的数据,地址等寄存器
控制和状态寄存器:⽐如程序计数器PC 程序状态字 PSW
栈指针:过程调⽤/系统调⽤/终端处理和返回时需要⽤到
(三)进程控制信息
调度和状态信息:⽤于操作系统调度进程并占⽤处理机使⽤
进程间通信信息:为⽀持进程通信与通信相关的各种标志信号信件等,这些信息存在接收⽅的进程控制块中
存储管理信息:包含有指向本进程映像存储空间的数据结构
进程所⽤资源:说明由进程打开、使⽤的系统资源,如打开的⽂件等。

有关数据结构链接信息:进程可以连接到⼀个进程队列中,或连接到相关的其他的其他的PCB
PCB的组织⽅式
链表:同⼀状态的进程其PCB成⼀张链表多个状态对应多个不同的链表
(各状态有不同的链表⽐如就绪链表阻塞链表)
索引表:同⼀状态归⼊⼀个index表 (由index指向PCB),多个状态对应多个不同的Index表
(各状态的进⾏形成不同的索引表:就绪索引表、阻塞索引表)。

操作系统实验1--进程管理

操作系统实验1--进程管理

设计一个有N个进程的进程调度程序一、实验目的通过一个简单的进程调度模拟程序的实现,加深对各种进程调度算法,进程切换的理解。

二、实验内容1、进程调度算法:采用动态最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)。

2、每个进程有一个进程控制块(PCB)表示。

进程控制块可以包含如下信息:●进程名----进程标示数ID;●优先数----Priority,优先数越大优先权越高;●到达时间----进程的到达时间为进程输入的时间;●进程还需要运行时间----AllTime,进程运行完毕AllTime =0;●已用CPU时间----CPUTime;●进程的阻塞时间StartBlock----表示当进程在运行StartBlock个时间片后,进程将进入阻塞状态;●进程的阻塞时间StartTime----表示当进程阻塞StartTime个时间片后,进程将进入就绪状态;●进程状态----State;●队列指针----Next,用来将PCB排成队列。

3、调度原则●进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。

进程的到达时间为进程输入的时间;●进程的运行时间以时间片为单位进行计算;●进程在就绪队列中带一个时间片,优先数加1;●每个进程的状态可以是就绪R(Ready)、运行R(Run)、阻塞B(Block)、或完成F(Finish)四种状态之一;●就绪进程获得CPU后都只能运行一个时间片,用已占用CPU时间加1来表示;●如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减3,然后把它插入就绪队列等待CPU;●每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查;●重复以上过程,直到所要进程都完成为止。

三、实验要求完成实验内容并写出实验报告,报告应具有以下内容:1、实验目的。

操作系统(进程管理)习题与答案1

操作系统(进程管理)习题与答案1

一、单选题1、关于进程控制块的描述,如下存在问题的选项是()。

A.操作系统控制和管理并发执行进程的依据B.进程存在的惟一标志,离散存放于内存空间或对应程序的文件目录项中C.进程实体的一部分,是拥有描述进程情况及控制进程运行所需的全部信息的记录性数据结构D.使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程正确答案:B2、进程标识符和进程控制块的分配可能发生在进程的()阶段。

A.阻塞B.挂起C.创建D.终止正确答案:C3、当一个进程被()时,可能会发生处理器的调度。

①终止;②挂起;③唤醒;④阻塞A.①②④B.①③④C.①②③④D.①④正确答案:C4、对于系统服务进程而言,如果当前没有任务,便会引发自身的()事件。

A.进程阻塞B.进程唤醒C.进程终止D.进程挂起正确答案:A5、引起进程重新调度的原因不包括()。

A.进程放弃处理器B.进程从核心态返回用户态C.进程执行系统调用和陷入内核态D.时钟中断正确答案:C6、关于进程同步机制基本准则:当无进程处于某临界资源所对应的临界区时,可允许一个请求进入(该临界资源所对应的)临界区的进程立即进入自己的临界区,这称之为()。

A.忙则等待B.有限等待C.空闲让进D.让权等待正确答案:C7、关于进程同步机制基本准则:当已有进程进入自己的对应于某临界资源的临界区时,所有企图进入该临界资源所对应临界区的进程必须等待,这称之为()。

A.循环等待B.忙则等待C.有限等待D.让权等待正确答案:B8、关于进程同步机制基本准则:对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区,这称之为()。

A.忙则等待B.循环等待C.有限等待D.让权等待正确答案:C9、进程同步机制应遵循让权等待准则,故而当一个进程不能进入自己的临界区时,其应当释放()。

A.处理器B.I/O设备C.内存空间D.外存空间正确答案:A10、利用硬件指令能有效地实现进程互斥,但它却不能满足()的准则,造成了处理器时间的浪费,而且也很难将它用于解决较复杂的进程同步问题。

进程控制块PCB(ProcessControlBlock)

进程控制块PCB(ProcessControlBlock)

进程控制块PCB(ProcessControlBlock)展开全文进程控制块(PCB,Process Control Block),台湾译作行程控制表,亦有译作任务控制表,是操作系统内核中一种数据结构,主要表示进程状态。

虽各实际情况不尽相同,PCB通常记载进程之相关信息,包括:进程状态:可以是new、ready、running、waiting或halted等。

当新建一个进程时,系统分配资源及PCB给它。

而当其完成了特定的任务后,系统收回这个进程所占的资源和取消该进程的PCB就撤消了该进程。

程序计数器:接着要运行的指令地址。

CPU寄存器:如累加器、索引寄存器(en:Index register)、堆栈指针以及一般用途寄存器、状况代码等,主要用途在于中断时暂时存储数据,以便稍后继续利用;其数量及类因计算机架构有所差异。

CPU 排班法:优先级、排班队列等指针以及其他参数。

存储器管理:如标签页表(en:Page table)等。

会计信息:如CPU与实际时间之使用数量、时限、帐号、工作或进程号码。

输入输出状态:配置进程使用I/O 设备,如磁带机。

总言之,PCB如其名,内容不脱离各进程相关信息。

进程控制块本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。

或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。

PCB通常是系统内存占用区中的一个连续存区,它存放着操作系统用于描述进程情况及控制进程运行所需的全部信息,它使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。

目录1进程控制块的基本内容概述应用2实例Linux task_structtask_struct结构描述1进程控制块的基本内容编辑概述进程控制块(PCB)(系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。

计算机操作系统原理 第二章 进程描述与控制

计算机操作系统原理 第二章 进程描述与控制

13
两个并发程序方案

设有一台标准输入设备(键盘),和一台标准 输出设备(显示器或打印机),输入程序负责 从标准设备中读取一个字符,送缓冲区中。输 出程序从缓冲区中取数据,送标准设备输出。
14
两个并发程序方案
f
标准输入 (键盘)
输入程序 缓冲区 输出程序
g
标准输出 (打印机)
15
两个并发程序方案
6
前趋图
前趋图(Precedence Graph)是一个有向无循环图,记 为DAG(Directed Acyclic Graph),用于描述进程之间执行 的前后关系。 结点:一个程序段或进程,乃至一条语句
有向边:偏序或前趋关系
把没有前趋的结点称为初始结点(Initial Node) 没有后继的结点称为终止结点(Final Node) 每个结点还具有一个重量(Weight),用于表示该结点 所含有的程序量或结点的执行时间。
38
进程状态模型
进程状态转换
原状态 创建 OS根据作业控制请求; 分时系统用户登录; 进程产生子进程而创 建进程 转换后状态 运行 × 就绪 × 阻塞 × 终止 ×
创建
×
×
OS准备运 行新的进 程
×
×
(转下表)
39
进程状态模型
原状态 创建 运行 × 运行 × 转换后状态 就绪 超时;OS服务 请求;OS响应 具有更高优先 级的进程;进 程释放控制 阻塞 OS服务 请求; 资源请 求;事 件请求 终止 进程完 成,进 程夭折
2.5 进程同步 2.6 经典进程的同步问题 2.7 管程机制 2.8 进程通信
3
2.1 进程描述

2.1.1 程序的顺序执行 2.1.2 程序的并发执行 2.1.3 进程的定义

操作系统实验报告实验一进程管理

操作系统实验报告实验一进程管理

实验一进程管理一、目的进程调度是处理机管理的核心内容。

本实验要求编写和调试一个简单的进程调度程序。

通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。

二、实验内容及要求1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。

可根据实验的不同,PCB结构的内容可以作适当的增删)。

为了便于处理,程序中的某进程运行时间以时间片为单位计算。

各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。

2、系统资源(r1…r w),共有w类,每类数目为r1…r w。

随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。

3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。

建立进程就绪队列。

4、编制进程调度算法:时间片轮转调度算法本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。

在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。

三、实验环境操作系统环境:Windows系统。

编程语言:C#。

四、实验思路和设计1、程序流程图2、主要程序代码//PCB结构体struct pcb{public int id; //进程IDpublic int ra; //所需资源A的数量public int rb; //所需资源B的数量public int rc; //所需资源C的数量public int ntime; //所需的时间片个数public int rtime; //已经运行的时间片个数public char state; //进程状态,W(等待)、R(运行)、B(阻塞)//public int next;}ArrayList hready = new ArrayList();ArrayList hblock = new ArrayList();Random random = new Random();//ArrayList p = new ArrayList();int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数//r为可随机产生的进程数(r=m-n)//a,b,c分别为A,B,C三类资源的总量//i为进城计数,i=1…n//h为运行的时间片次数,time1Inteval为时间片大小(毫秒)//对进程进行初始化,建立就绪数组、阻塞数组。

《计算机操作系统》第2章 进程管理

《计算机操作系统》第2章  进程管理

2.1.3 进程的状态模型
新建
准许
准许
挂起
静止就绪
事件 发生
静止阻塞
激活 挂起
激活 挂起
活动就绪
事件 发生 活动 阻塞
分派 超时
运行
等待 事件
释放
退出
பைடு நூலகம்
图2-8 有挂起态的七状态模型
在新的状态模型中,比较重要的新转换如下: ►(1)活动阻塞→静止阻塞:当内存紧张而系统中又没有就绪进程时,一个阻塞
态进程就会被挂起。
分派
进入
非运行
运行
退出
暂停 图2-3 两状态模型
2.1.3 进程的状态模型
2. 三状态模型
三状态模型中进程的三种基本状态如下:
►(1)就绪状态(Ready)。一个进程获得了除处理机之外所需的一切资源,一 旦得到处理机即可运行。在系统中,将处于就绪状态的多个进程的PCB组织成一 个队列,或按照某种规则排在不同的队列中,这些队列称为就绪队列。
2.1.3 进程的状态模型
3. 五状态模型
新建态
进入就 绪队列
运行态
被调 度 时间片
用完
就绪态
事件
发生
退出态 等待事件 阻塞态
图2-6 五状态模型图
►为便于进程管理,有必要增加一种有用的状态,我们称为新建态,对应于刚刚创建 的进程,操作系统还没有把它加入到就绪队列中,通常是进程控制块已经创建但还 没有加载到内存中的新进程。
►同样,进程从系统中退出时,也增加一种有用的状态,进程被终止直到释放PCB所 处的状态,我们称为退出态。
2.1.3 进程的状态模型
五状态模型中的状态转换:
►(1)空→新建:创建一个程序的新进程。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

概述
进程控制块(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的时间等。

编辑本段实例
Linux task_struct
在linux 中每一个进程都由task_struct 数据结构来定义.
task_struct就是我们通常所说的PCB。

struct task_struct {
long state; /*任务的运行状态(-1 不可运行,0 可运行(就绪),>0 已停止)*/
long counter;/*运行时间片计数器(递减)*/
long priority;/*优先级*/
long signal;/*信号*/
struct sigaction sigaction[32];/*信号执行属性结构,对应信号将要执行的操作和标志信息*/
long blocked; /* bitmap of masked signals */
/* various fields */
int exit_code;/*任务执行停止的退出码*/
unsigned long start_code,end_code,end_data,brk,start_stack;/*代码段地址代码长度(字节数)
代码长度 + 数据长度(字节数)总长度堆栈段地址*/
long pid,father,pgrp,session,leader;/*进程标识号(进程号) 父进程号父进程组号会话号会话首领*/
unsigned short uid,euid,suid;/*用户标识号(用户id)有效用户id 保存的用户id*/
unsigned short gid,egid,sgid; /*组标识号(组id)有效组id 保存的组id*/
long alarm;/*报警定时值*/
long utime,stime,cutime,cstime,start_time;/*用户态运行时间内核态运行时间子进程用户态运行时间
子进程内核态运行时间进程开始运行时刻*/
unsigned short used_math;/*标志:是否使用协处理器*/
java等四种。

相关文档
最新文档