进程概念、进程控制
c语言实现进程控制的实验原理
c语言实现进程控制的实验原理进程控制是操作系统中非常重要的一个概念,它涉及到对进程的创建、终止、挂起、恢复等操作。
本文将以C语言为例,介绍进程控制的实验原理。
一、进程控制的基本概念进程是计算机系统中正在运行的程序的实例。
操作系统通过进程控制来管理和控制进程的运行。
进程控制的基本概念包括进程创建、进程终止、进程挂起和进程恢复等。
1. 进程创建进程的创建是指在操作系统中创建一个新的进程。
在C语言中,可以使用fork()函数来创建一个新的进程。
fork()函数会创建一个子进程,子进程是父进程的一个副本,它们共享代码段、数据段和堆栈段。
子进程的代码从fork()函数之后开始执行,而父进程的代码继续执行。
通过判断fork()函数的返回值,可以确定当前是在父进程还是子进程中。
2. 进程终止进程的终止是指进程的执行结束或被强制终止。
在C语言中,可以使用exit()函数来终止当前进程的执行。
exit()函数会将进程的退出状态传递给父进程,并释放进程所占用的系统资源。
3. 进程挂起和恢复进程的挂起是指将一个正在运行的进程暂停执行,而进程的恢复是指将一个挂起的进程重新开始执行。
在C语言中,可以使用sleep()函数来使进程挂起一段时间。
sleep()函数会暂停当前进程的执行,直到指定的时间过去。
而进程的恢复可以通过设置一个定时器来实现,当定时器时间到达时,进程将恢复执行。
二、进程控制的实验原理为了更好地理解进程控制的原理,我们可以通过一个简单的实验来进行演示。
我们创建一个C语言程序,其中包含一个主进程和一个子进程。
主进程负责创建子进程,并通过信号机制来控制子进程的挂起和恢复。
```c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>// 子进程的处理函数void child_process(){printf("Child process starts running.\n");sleep(5);printf("Child process finishes.\n");exit(0);}int main(){pid_t pid;// 创建子进程pid = fork();if (pid < 0){printf("Failed to create child process.\n"); return -1;}else if (pid == 0){// 子进程child_process();}else{// 父进程printf("Parent process starts running.\n");// 等待子进程运行5秒后发送SIGSTOP信号,使其挂起sleep(5);printf("Parent process sends SIGSTOP signal.\n");kill(pid, SIGSTOP);// 等待2秒后发送SIGCONT信号,使子进程恢复执行sleep(2);printf("Parent process sends SIGCONT signal.\n");kill(pid, SIGCONT);// 等待子进程结束wait(NULL);printf("Parent process finishes.\n");}return 0;}```在上面的代码中,我们首先使用fork()函数创建了一个子进程。
第二讲 进程管理(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、对换的需要
二、设臵挂起状态后进程状态的转换
操作系统进程控制实验报告
操作系统进程控制实验报告一、实验目的操作系统进程控制是操作系统中的重要概念和核心功能之一。
本次实验的目的在于深入理解操作系统中进程的概念、状态及其转换,掌握进程创建、终止、阻塞和唤醒等操作的实现原理和方法,通过实际编程和调试,观察进程的行为和特性,从而提高对操作系统原理的理解和应用能力。
二、实验环境本次实验使用的操作系统为 Windows 10,编程语言为 C++,开发工具为 Visual Studio 2019。
三、实验原理(一)进程的概念进程是操作系统中进行资源分配和调度的基本单位,它包含了程序代码、数据、堆栈等资源。
进程具有独立性、动态性和并发性等特点。
(二)进程的状态进程的状态通常包括就绪态、运行态和阻塞态。
就绪态表示进程已具备运行条件,等待被调度;运行态表示进程正在 CPU 上执行;阻塞态表示进程因等待某个事件而暂停执行。
(三)进程控制的基本操作1、进程创建:通过系统调用创建新的进程,为其分配资源并初始化。
2、进程终止:当进程完成任务或出现异常时,结束其执行并回收资源。
3、进程阻塞:进程在等待某个事件时,主动进入阻塞态。
4、进程唤醒:当等待的事件发生时,将阻塞的进程唤醒,使其进入就绪态。
四、实验内容与步骤(一)进程创建1、编写 C++程序,使用系统提供的函数创建新的进程。
2、在新进程中执行特定的任务,例如打印输出信息。
```cppinclude <windowsh>include <iostream>int main(){STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si, sizeof(si));sicb = sizeof(si);ZeroMemory(&pi, sizeof(pi));//创建新进程if (!CreateProcess(NULL, //应用程序名称"C:\\Path\\To\\Your\\ChildProcessexe",//命令行参数NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)){std::cerr <<"CreateProcess failed Error code: "<<GetLastError()<< std::endl;return 1;}//等待子进程结束WaitForSingleObject(pihProcess, INFINITE);//关闭进程和线程句柄CloseHandle(pihProcess);CloseHandle(pihThread);return 0;}```(二)进程终止1、在创建的进程中设置条件,当满足条件时主动终止进程。
第4章 进程控制
通信信息
进程间进行通信时所记录的有关信息
家族联系
指明本进程与家族的联系 占有资源清单
进程的特征
结构特征:进程除了程序段、数据段还 包括PCB 动态性:进程是一个程序的执行,是动 态的,是有生命周期的。 并发性:多个进程实体能同存于内存中, 且在一段时间内同时运行。 独立性:独立运行,独立申请资源,独 立接受调度。 异步性:进程按各自独立的、不可预知 的速度向前前进。 动态性和并发性是进程的最基本特征。
进程等待原语的实现
入口
保护进程的CPU现场到PCB结构中
置该进程为”等待”状态
将该进程PCB结构插入到等待队列中
转进程调度
5. 进程唤醒 进程唤醒原语的形式 当处于等待状态的进程所期待的事件来到时, 由发现者进程使用唤醒原语叫唤醒它。 wakeup(chan) 入口参数chan:进程等待的原因。 进程唤醒原语的功能 当进程等待的事件发生时,唤醒等待该事件的 进程。
响了程序速度。
程序的并发执行使得程序失去了顺序 性,封闭性和可再现性,用“程序” 无法描述这些特征,因此引入了“进 程这个概念”。
4.2 进程的概念 4.2.1进程的定义
1. 进程定义
什么是进程 所谓进程,就是一个程序在给定活动空间和初始环 境下, 在一个处理机上的执行过程。
进程与程序的区别
程序是静态的概念;进程是动态的概念
进程是一个独立运行的活动单位
进程是竞争系统资源的基本单位
一个程序可以对应多个进程;一个进程至少包含一
个程序。
2. 进程的状态
进程的基本状态
运行状态(running)
该进程已获得运行所必需的资源,它的程序正在处理机 上执行。
等待状态(wait)
计算机操作系统原理 第二章 进程描述与控制
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 进程的定义
操作系统进程管理
Process Management
处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的 分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序。
通常把正准备进入内存的程序称为作业,当这个作业进入内 存后我们把它称为进程。处理机管理分为作业管理和进程管 理两个阶段去实现处理机的分配,常常又把直接实行处理机 时间分配的进程调度工作作为处理机管理的主要内容。
3、系统进程在管态下活动,而用户进程则在用户态 (目态)下活动。
另一种分类:计算进程,I/O进程等 注意:在UNIX系统中没有这样对进程进行分类。
动。 (4)在进程调度中,系统进程的优先级高于用
户进程。
2.5 进程的类型与区别
系统进程与用户进程的区别:
1、系统进程被分配一个初始的资源集合,这些资源 可以为它独占,也能以最高优先权的资格使用。用 户进程通过系统服务请求的手段竞争使用系统资源;
2、用户进程不能直接做I/O操作,而系统进程可以 做显示的、直接的I/O操作。
2.3进程的特征
5)结构特征:为能正确的执行并发,为每一个进程配置
了一个数据结构,称为进程控制块(PCB)。则一个进 程实体就由数据段、程序段、PCB三部分构成。
• 进程实体 = 数据段+程序段+PCB
PCB
私有 数据块
程 序 段
进程的结构
• 程序和进程不一定具有一一对应的关系。
2.4 与程序的区别
2、进程是一个独立的运行单位,能与其它进程并行(并 发)活动。而程序则不是。
3、进程是竞争计算机系统有限资源的基本单位,也是进 行处理机调度的基本单位。
4、一个程序可以作为多个进程的运行程序,一个进程也 可以运行多个程序。
简介进程的概念
简介进程的概念我们学习的许多内容,如果分成了很多的小部分来记忆,是比较容易掌握和记住的。
但是,这样不利于孩子养成分析和总结的习惯,也就是说,只知其然而不知其所以然。
进程是一个变量。
在数学领域里,它有以下定义:定义一:进程是指CPU执行程序时的一次运行活动。
通俗地说,进程是CPU进行的一次具体的“工作”。
进程由程序计数器PC和程序状态字CS组成。
程序计数器PC保存着指令执行的顺序号;而程序状态字CS则反映出进程在某段时间内的执行情况。
即进程在时间上的开始和结束。
定义二:进程是程序或者任务处于运行状态的集合。
一个进程是由进程控制块CPURIB和一段描述该进程的数据区构成的。
例如:图形用户界面和中断系统中的进程都是运行中的程序或者任务。
由于多道程序的执行,可能使进程暂停运行,所以CPU通常会设置一些中断处理程序,供进程调用。
中断是指CPU暂停当前正在执行的程序,去处理中断事件,从而避免影响其他程序的运行。
定义三:进程是独立执行顺序程序的基本单位。
在通信的电子计算机中,可以同时存在一个运行的程序和若干个处于等待状态的程序。
在同一时刻,可以有若干个进程并行地运行。
为了表示和区别进程,人们引入了“进程控制块”这一概念。
通过对这一控制块的分析,就可以区别出不同的进程。
【引申】进程又可以理解为用户操作系统在执行过程中所需要经过的步骤。
从文件到磁盘上的分区,再到用户启动计算机并运行Windows,再到用户退出计算机,整个过程都属于进程范畴。
那么什么叫做进程呢?进程是一种特殊的程序,它既包括了一般意义上的程序代码,还包含了相关的数据信息、控制信息等。
因此,一个完整的进程应该满足以下条件: 1)必须是一个可执行的程序(即进程); 2)必须包含一个或几个用于管理和控制进程的程序模块; 3)必须拥有自己的数据空间,且这个数据空间与外界隔离; 4)必须有一个或几个调度和控制程序来管理进程; 5)进程必须被管理员所创建。
【本质】所谓进程,就是指用户操作系统在执行过程中所需要经过的步骤。
操作系统:进程的概念和与程序的区别
操作系统:进程的概念和与程序的区别进程的概念和与程序的区别1、进程的定义进程是允许某个并发执⾏的程序在某个数据集合上的运⾏过程。
进程是由正⽂段、⽤户数据段及进程控制块共同组成的执⾏环境。
正⽂段存放被执⾏的机器指令,⽤户数据段存放进程在执⾏时直接进⾏操作的⽤户数据。
进程控制块存放程序的运⾏环境,操作系统通过这些数据描述和管理进程。
2、进程的特征进程是操作系统管理的实体,对应了程序的执⾏过程,具有以下⼏个特征。
并发性。
多个进程实体能在⼀段时间间隔内同时运⾏。
并发性是进程和现代操作系统的重要特征。
动态性。
进程是进程实体的执⾏过程。
进程的动态性表现在因执⾏程序⽽创建进程、因获得CPU⽽执⾏进程的指令、因运⾏终⽌⽽被撤销的动态变化过程。
此外,进程在创建后还有进程状态的变化。
独⽴性。
在没有引⼊线程概念的操作系统中,进程是独⽴运⾏和资源调度的基本单位。
异步性。
是指进程的执⾏时断时续,进程什么时候执⾏、什么时候暂停都⽆法预知,呈现⼀种随机的特性。
结构特征。
进程实体包括⽤户正⽂段、⽤户数据段和进程控制块。
3、进程与程序的⽐较3.1、进程与程序的区别程序是静态的,进程是动态的,程序是存储在某种介质上的⼆进制代码,进程对应了程序的执⾏过程,系统不需要为⼀个不执⾏的程序创建进程,⼀旦进程被创建,就处于不断变化的动态过程中,对应了⼀个不断变化的上下⽂环境。
程序是永久的,进程是暂时存在的。
程序的永久性是相对于进程⽽⾔的,只要不去删除它,它可以永久的存储在介质当中。
3.2、进程与程序的联系进程是程序的⼀次执⾏,⽽进程总是对应⾄少⼀个特定的程序。
⼀个程序可以对应多个进程,同⼀个程序可以在不同的数据集合上运⾏,因⽽构成若⼲个不同的进程。
⼏个进程能并发地执⾏相同的程序代码,⽽同⼀个进程能顺序地执⾏⼏个程序。
关于进程和程序的区别,《现代操作系统》中⽤了⼀个⽐喻形象说明:⼀位有⼀⼿好厨艺的计算机科学家正在为他的⼥⼉烘制⽣⽇蛋糕。
他有做⽣⽇蛋糕的⾷谱,厨房⾥有所需要的原料,在这个⽐喻中,做蛋糕的⾷谱就是程序(即⽤适当形式描述的算法),计算机科学家就是处理机(CPU),⽽做蛋糕的各种原料就是输⼊数据。
计算机操作系统课件02-1进程的基本概念
(4) 静止阻塞→活动阻塞。处于Blockeds状态的进程,若用激 活原语Active激活后,该进程将转变为Blockeda状态。
4.创建状态和终止状态
1) 创建状态
创建一个进程一般要通过两个步骤:首先,为一个新进程创 建PCB,并填写必要的管理信息;其次,把该进程转入就绪状 态并插入就绪队列之中。
例如,在进行计算时,总须先输入用户的程序和数据,然后 进行计算,最后才能打印计算结果。
用结点(Node,用圆圈表示) 代表各程序段的操作,其中,I代 表输入操作,C代表计算操作,P为打印操作;另外,用箭头 指示操作的先后次序。
I1
C1
P1
I2
C2
P2
S1
S2
S3
(a) 程序的顺序执行
(b) 三条语句的顺序执行
→={(Pi,Pj)|Pi must complete before Pj may start} 如果(Pi,Pj)∈→,可写成Pi→Pj,称Pi是Pj的直接前趋,而称 Pj是Pi的直接后继 在前趋图中,把没有前趋的结点称为初始结点(Initial Node), 把没有后继的结点称为终止结点(Final Node)。
当用挂起原语Suspend将该进程挂起后,该进程便转变为静止 就绪状态,表示为Readys,处于Readys状态的进程不再被调度 执行。
请求
释放
活动 阻塞
I/O
调度
活动 就绪
激活
挂起
执行
激活 挂起
静止 阻塞
释放
挂起
静止 就绪
图 2-6 具有挂起状态的进程状态图
第2章 进程的描述和控制
引 起 阻 塞 和 唤 醒 的 事 件
请求系统服务
启动某种操作
新数据尚未到 无新工作可做
• 进程阻塞过程 –正在执行的进程,发生上述事件时, 自身调用有关阻塞原语,进入等待队 列。进程的主动性行为。 –进程由运行态变为阻塞态 –引起处理机调度。 –例如UNIX:暂停一段时间sleep;暂停 并等待信号pause;等待子进程暂停或 终止wait。
1 2 3
• 顺序执行的特征: – 顺序性:按照程序结构所指定的次序 执行(可能有分支或循环) – 封闭性:独占全部资源,计算机的状 态只由于该程序的控制逻辑所决定, 结果不受外界因素的影响 – 可再现性:初始条件相同则结果相同。
2)程序的并发执行
• 引入并发执行的目的是为了提高资源利用率。 • 并发执行的特征(在不加入任何系统控制情况 下): – 间断性:表现为“走走停停”,一个程序可 能走到中途停下来,失去原有的时序关系; – 失去封闭性:共享资源,受其他程序的控制 逻辑的影响。如:一个程序写到存储器中的 数据可能被另一个程序修改,失去原有的不 变特征。 – 失去可再现性:失去封闭性 ->失去可再现 性;外界环境在程序的两次执行期间发生变 化,失去原有的可重复特征。
执行指针 就绪队列指针
PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCB7 PCB8 PCB9 4 3 0 8
阻塞队列指针 空闲队列指针
7 9 0 0
索引方式
执行指针
PCB1 PCB2
PCB3
就绪表指针
PCB4 PCB5 PCB6
阻塞表指针
PCB7
2.2
进程控制
• 进程管理中最基本功能是进程控制 • 进程控制任务: – 进程的创建、终止、进程状态的转变等 • 进程控制一般由OS内核的原语(primitive)来 实现。 – 原语:由若干条指令构成的“原子操作 (atomic operation)”过程,作为一个整 体而不可分割--要么全都完成,要么全 都不做。 – 许多系统调用是原语。但并不是所有的系 统调用都是原语
操作系统讲稿2012(第三章)
例:程序A的起始地址为51200,共12条指令;程序B 的起始地址为81920,共4条指令,其中第4条指令包 括I/O指令;程序C的起始地址为194560,共12条指 令;分派程序的起始地址为20480,共6条指令;三个 程序以及分派程序均在内存,操作系统每次执行6条 用 户程序指令后就会自动终止当前用户程序,转去执行 分派程序。每条指令需要一个指令周期,则程序的执 行过程如下:
1. 51200 2. 51201 3. 51202 4. 51203 5. 51204 6. 51205 超时
7 20480 8 20481 9 20482 10 20483 11 20484 12 20485 13 81920 14 81921 15 81922 16 81923 I/O请求
17 20480 18 20481 19 20482 20 20483 21 20484 22 20485 23 194560 24 194561 25 194562 26 194563 27 194564 28 194565 超时
3.程序的顺序执行:一个具有独立功能的程序独占处理机 直至最终结束的过程称为程序的顺序执行。
4.程序顺序执行的特征: (1)顺序性:每一个操作都必须在上一个操作完成 之后开始 内:语句之间、指令之间 外:程序之间 (2)封闭性:资源独占,只有运行的程序能够改变资 源状态,每个程序的执行不会受到外部因素的影响。
就绪 阻塞
× ×
被分派程序 选中
×
事件发生
× ×
被父进程终止 被父进程终止
×
说明:一般的操作系统为了管理方便,根据等待的事件设置多个 阻塞队列,将等待不同事件的进程放在不同的等待队列中。
3.4进程控制
进程控制:系统使用一些具有特定功能的程序来创建、撤 消进程以及完成进程各状态间的转换,从而达到多进程、 高效率、并发执行和协调、实现资源共享的目的。 进程控制是通过原语来实现。 原语:用于完成某种特定功能的不可分割的一段程序。 原语的实现是通过关中断来实现的。 实现进程控制的程序段被称作进程控制原语。
操作系统-进程概念
操作系统-进程概念⼀、定义(Process) 进程是具有独⽴功能的程序关于某个数据集合上的⼀次运⾏活动,是系统进⾏资源分配和调度的独⽴单位1、进程是程序的⼀次执⾏过程,是对CPU的抽象,是正在运⾏的程序的抽象2、每个进程具有独⽴的地址空间3、操作系统通过调度将CPU的控制权交给某个进程⼆、进程控制块PCB(Process Control Block) ⼜称进程描述符,进程属性,是操作系统⽤于管理控制进程的⼀个专门的数据结构,记录进程的各种属性PCB是系统感知进程存在的唯⼀标志,进程与PCB是⼀⼀对应的 进程表:所有进程的PCB集合三、PCB包含哪些信息 进程描述信息进程标识符PID,唯⼀,整数,进程名(不唯⼀),⽤户标识符userID,进程组关系(兄弟⽗⼦关系) 进程控制信息当前状态,优先级,代码执⾏⼊⼝,运⾏统计信息,进程间同步和通信,进程队列指针,进程消息队列指针 所拥有的资源和使⽤情况虚拟地址空间的状况,打开⽂件列表 CPU现场信息进程不运⾏时的寄存器值和指向该进程的页表的指针四、进程状态及状态转换 运⾏态(Running)占有CPU,并在CPU上运⾏ 就绪态(Ready)已经具备运⾏条件,但由于没有空闲CPU,⽽暂时不能运⾏ 等待态(Waiting/Blocked)或叫阻塞态,封锁态,睡眠态,因等待某⼀事件⽽暂时不能运⾏ 操作系统通常将进程状态分为多种模型,这⾥给出三状态和五状态五、进程队列1、操作系统为每⼀类进程建⽴⼀个或多个队列2、队列元素为PCB3、伴随进程状态的改变,其PCB从⼀个队列进⼊另⼀个队列上图中,⼀个进程创建后经许可(提交)进⼊就绪队列,经过调度进⼊CPU,如果正常处理完毕会释放,如超时重新进⼊就绪队列如果还有各种等待事件,则进⼊各类等待事件队列,当相应的事件发⽣后再次进⼊就绪队列,等待调度进⼊CPU六、上下⽂切换定义:CPU硬件状态从⼀个进程换到另⼀个进程的过程进程在运⾏时,其硬件状态保存在CPU上的寄存器中(只有⼀套)进程不运⾏时,这些寄存器的值保存在进程控制块PCB中,当操作系统要运⾏⼀个新的进程时,需要将这个进程的PCB中的值送到对应的寄存器中,这也是下⼀篇要讲的线程的概念。
操作系统-进程的概念
操作系统-进程的概念计算机中,CPU是最宝贵的资源,为了提⾼CPU的利⽤率,引⼊了多道程序设计的概念。
当内存中多个程序存在时,如果不对⼈们熟悉的“程序”的概念加以扩充,就⽆法刻画多个程序共同运⾏时系统呈现出的特征。
⼀、进程的引⼊多道程序系统中,程序具有:并⾏、制约以及动态的特征。
程序概念难以便是和反映系统中的情况:1. 程序是⼀个静态的概念程序是完成某个功能的指令集和。
系统实际上是出于不断变化的状态中,程序不能反映这种动态性。
2. 程序概念不能反映系统中的并⾏特性例如:两个C语⾔源程序由⼀个编译程序完成编译,若⽤程序概念理解,内存中只有⼀个编译程序运⾏(两个源程序看作编译程序的输⼊数据),但是这样⽆法说明⽩内存中运⾏着两个任务。
程序的概念不能表⽰这种并⾏情况,反映不了他们活动的规律和状态变化。
就像不能⽤菜谱(程序)代替炒菜(程序执⾏的过程)⼀样(这句话我稍微修改了⼀下,感觉应该是这样表诉才对)⼆、进程的定义进程:⼀个具有⼀定独⽴功能的程序关于某个数据集合的⼀次运⾏活动,是系统进⾏资源分配和调度运⾏的基本单位三、进程与程序的差别1. 进程是⼀个动态的概念进程是程序的⼀次执⾏过程,是动态概念程序是⼀组有序的指令集和,是静态概念2. 不同的进程可以执⾏同⼀个程序区分进程的条件:所执⾏的程序和数据集合。
两个进程即使执⾏在相同的程序上,只要他们运⾏在不同的数据集合上,他们也是两个进程。
例如:多个⽤户同时调⽤同⼀个编译程序编译他们编写的C语⾔源程序,由于编译程序运⾏在不同的数据集合(不同的C语⾔源程序)上,于是产⽣了⼀个个不同的进程3. 每个进程都有⾃⼰的⽣命周期当操作系统要完成某个任务时,它会创建⼀个进程。
当进程完成任务之后,系统就会撤销这个进程,收回它所占⽤的资源。
从创建到撤销的时间段就是进程的⽣命期4. 进程之间存在并发性在⼀个系统中,同时会存在多个进程。
他们轮流占⽤CPU和各种资源5. 进程间会相互制约进程是系统中资源分配和运⾏调度的单位,在对资源的共享和竞争中,必然相互制约,影响各⾃向前推进的速度6. 进程可以创建⼦进程,程序不能创建⼦程序7. 从结构上讲,每个进程都由程序、数据和⼀个进程控制块(Process Control Block, PCB)组成四、进程的重要特征1. 动态特征:进程对应于程序的运⾏,动态产⽣、消亡,在其⽣命周期中进程也是动态的、2. 并发特征:任何进程都可以同其他进程⼀起向前推进3. 独⽴特征:进程是相对完整的调度单位,可以获得CPU,参与并发执⾏4. 交往特征:⼀个进程在执⾏过程中可与其他进程产⽣直接或间接关系5. 异步特征:每个进程都以相对独⽴、不可预知的速度向前推进6. 结构特征:每个进程都有⼀个PCB作为他的数据结构进程最基本的特征是并发和共享特征五、进程的状态与转换1. 进程的三种基本状态a. 运⾏状态:获得CPU的进程处于此状态,对应的程序在CPU上运⾏着b. 阻塞状态:为了等待某个外部事件的发⽣(如等待I/O操作的完成,等待另⼀个进程发来消息),暂时⽆法运⾏。
什么是进程
什么是进程在计算机系统中,进程(process)是指计算机程序在执行时的实体。
它是系统进行资源分配和调度的一个基本单位。
进程是操作系统中的一个概念,用来描述正在运行的一个程序。
每个进程都有自己的地址空间、数据栈和控制栈,并且能够与其他进程进行通信。
进程的概念首次出现在1960年代的多道程序设计环境中。
在这种环境中,计算机系统能够同时运行多个程序,但是由于计算机资源的限制,每个程序都需要独享一部分资源,如 CPU 时间、内存空间等。
为了能够管理这些资源,操作系统引入了进程的概念。
一个进程拥有自己的程序计数器、寄存器和栈,用于保存程序的执行状态和运行过程中产生的临时数据。
每个进程都独立运行,彼此之间互不影响。
操作系统会为每个进程分配一定的资源,如内存空间、文件句柄等。
进程可以通过系统调用来申请和释放资源,以完成各种操作。
进程的状态通常包括就绪、运行、阻塞和终止。
就绪状态表示进程已经准备好了,只等待系统调度它执行。
运行状态表示进程正在CPU 上执行。
阻塞状态表示进程暂时无法执行,通常是因为它正在等待某种资源,如磁盘输入输出或用户输入等。
终止状态表示进程已经完成了执行,即将被系统回收。
进程调度是操作系统中的一个重要功能,其目的是合理地分配和利用系统资源,以提高系统的吞吐率和响应速度。
操作系统通过轮转、优先级调度等算法来决定进程的执行顺序。
进程调度是一个复杂的问题,需要考虑多个因素,如进程的优先级、等待时间、资源需求等。
进程之间的通信是操作系统中的另一个重要概念。
进程可以通过共享内存、消息传递、管道等方式来进行通信。
通信的目的是让不同进程之间能够共享数据和相互协作,从而实现更复杂的功能。
进程还可以创建子进程,子进程是由父进程创建的进程。
子进程可以继承父进程的地址空间和文件描述符,从而能够与父进程共享数据和资源。
子进程可以以任何合法的方式终止,而不会影响到父进程和其他子进程。
进程是操作系统的核心概念之一,它负责管理和调度计算机系统中的各个程序。
进程控制块
执行状态
阻塞状态
就绪 时间片完 I/O 完成 进程调度
注意: 就绪——>阻塞 阻塞——>运行
阻塞
I/O 请求
执行
图2-5 进程的三种基本状态及其转换
练 习
1.在进程状态转换时,下列哪一种状态转换是不可能发生 的?
A)就绪态→运行态
B)运行态→就绪态
C)运行态→等待态(阻塞)D)阻塞态→运行态
P1
P2
P3
P4
图2-3输入、计算和打印这三个程序对一批作业进行处理,它们并发执行时的前趋图
前趋关系: Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1
对于具有下述四条语句的程序段:
S1和S2可以并发执行, 因为它们之间不存在前 趋关系!
S1: a:=x+2
S2: b:=y+4
S1 S3 S2
图 2-4 四条语句的前趋关系
S3: c:=a+b
S4: d:=c+b
结论:不存在前趋关系的结 点间可以并发执行!
S4
2.程序并发执行时的特征
间断性
多个程序并发执行时共享系统中的各种资源,相 互制约将导致并发程序具有“执行—暂停—执行” 这种间断性的活动规律
失去封闭性(咨询顾问面对现场咨询和电话咨询)
进程与程序的区别
进程是动态的,程序是静态的
程序是有序代码的集合;进程是程序的执行。通常进程不可在 计算机之间迁移;而程序通常对应着文件,可以复制。
进程是暂时的,程序的永久的
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1 进程的概念
进程的概念是60年代初首先由麻省理工学院 进程的概念是60年代初首先由麻省理工学院 60 MULTICS系统和IBM公司的CTSS/360系统 系统和IBM公司的CTSS/360 的MULTICS系统和IBM公司的CTSS/360系统 引入的。进程有很多各式各样的定义, 引入的。进程有很多各式各样的定义,如: 进程是一个可以并行执行的计算部分 进程是一个抽象实体,当它执行某个任务时, 进程是一个抽象实体,当它执行某个任务时, 将要分配和释放各种资源 进程是一个独立的可以调度的活动 等等
2.进程控制信息: 2.进程控制信息: 进程控制信息
当前状态(就绪态、执行态、等待态) 当前状态(就绪态、执行态、等待态) 进程优先级(priority) 进程优先级(priority) 进程开始地址 运行统计信息, 运行统计信息,进程占有和利用资源的情况 通信信息
27
ห้องสมุดไป่ตู้
3.资源管理信息: 3.资源管理信息: 资源管理信息 有关存储器的信息 使用输入输出设备的信息 有关文件系统的信息等 4.CPU现场保护信息 现场保护信息: 4.CPU现场保护信息: 存储退出执行时的进程现场数据, 存储退出执行时的进程现场数据,当该进 程重新恢复运行时恢复处理器现场。 程重新恢复运行时恢复处理器现场。 •包括通用寄存器内容、控制寄存器内容、 包括通用寄存器内容、控制寄存器内容、 包括通用寄存器内容 用户堆栈指针、系统堆栈指针等。 用户堆栈指针、系统堆栈指针等。
25
PCB的内容 不同系统不尽相同) PCB的内容 (不同系统不尽相同)
26
PCB的内容 PCB的内容
1.进程描述信息: 1.进程描述信息: 进程描述信息
进程标识符(process ID,唯一, 进程标识符(process ID,唯一,通常是一个整 数)或进程名 用户名或用户标识符(user 用户名或用户标识符(user ID) 家族关系
3
第三章 进程管理
进程(process)的引入 的引入 进程
4
3.1 进程的概念
1 程序的顺序执行 人们在使用计算机完成各自所要求的功能 总是使用“程序” 时,总是使用“程序”这个概念 程序: 程序:是一个在时间上按严格次序前后相 继的操作序列, 继的操作序列,是一个静态的概念 程序的顺序执行: 程序的顺序执行:具有独立功能的程序独 占处理机直至最终结束的过程
5
程序顺序执行的特点: 程序顺序执行的特点: 顺序性: 顺序性:上一条指令的执行结束是下一 条指令执行开始的充分必要条件; 条指令执行开始的充分必要条件;一个 封闭性 程序开始执行必须要等到前一个程序已 可再现性 执行完成 封闭性: 封闭性:程序执行得到的最终结果由给 定的初始条件决定, 定的初始条件决定,不受外界因素影响 可再现性:程序的结果与它的执行速度、 可再现性:程序的结果与它的执行速度、 时间无关,只要给定相同的输入, 时间无关,只要给定相同的输入,一定 会得到相同的结果
第三章 进程管理
OS的任务是使用户充分有效地利用系 OS的任务是使用户充分有效地利用系 统资源,对于处理机而言则是如何把 统资源,对于处理机而言则是如何把 处理机分配给多任务用( 处理机分配给多任务用(处理机调度 算法)。 )。由于多数现代操作系统的设 算法)。由于多数现代操作系统的设 计都是基于进程的概念, 计都是基于进程的概念,处理机的分 配对象也大都是进程, 配对象也大都是进程,所以先介绍进 程管理, 程管理,再介绍处理机调度
6
2 程序的并发执行 为了增强计算机系统的处理能力和提 高资源利用率 所谓程序的并发执行是指: 所谓程序的并发执行是指:一组在逻 辑上互相独立的程序或程序段在执行 过程中, 过程中,其执行时间在客观上互相重 叠,即一个程序或程序段的执行尚未 结束, 结束,另一个程序或程序段的执行已 经开始 会出现什么问题
23
3.2.1进程控制块PCB 3.2.1进程控制块PCB 进程控制块 Process Control Block
PCB包含一个进程的描述信息、控制信 PCB包含一个进程的描述信息、 包含一个进程的描述信息 息以及资源信息, 息以及资源信息,是进程动态特性的集 中反映 进程与PCB是一一对应的。系统利用PCB PCB是一一对应的 进程与PCB是一一对应的。系统利用PCB 来控制和管理进程,所以PCB PCB是系统感 来控制和管理进程,所以PCB是系统感 知进程存在的唯一标志,PCB结构是全 知进程存在的唯一标志,PCB结构是全 部或部分常驻内存 当一个进程完成其功能后, 当一个进程完成其功能后,系统释放 PCB, PCB,进程也随之消亡
12
在一般情况下, 在一般情况下,系统要判断并发执行 的各段程序段是否满足Bernstein Bernstein条 的各段程序段是否满足Bernstein条 件是相当困难的, 件是相当困难的,因此我们需要来解 决程序并发执行所带来的问题
13
思考为什么要引入进程的概念? 思考为什么要引入进程的概念? 为什么要引入进程的概念
9
任何并发执行都是不可再现的吗? 任何并发执行都是不可再现的吗?
程序并发执行的条件
定义: 定义: R(Pi)={a1,a2,…,am} R(Pi)={a1,a2, ,am} 表示程序Pi在执行期间需引用的 表示程序Pi在执行期间需引用的 Pi 变量的集合,称为“读集” 变量的集合,称为“读集” W(Pi)={b1,b2,…,bn} W(Pi)={b1,b2, ,bn} 表示程序Pi在执行期间要改变的 表示程序Pi在执行期间要改变的 Pi 变量的集合,称为“写集” 变量的集合,称为“写集”
8
例:有两个循环程序A和B.A每执行一次时, 有两个循环程序A B.A每执行一次时, 每执行一次时 都要作m 操作。 每执行一次时, 都要作m=m+1操作。B每执行一次时,先执 print(m)操作 然后再将m置成“ 。 操作, 行print(m)操作,然后再将m置成“0”。可能 出现以下三种情况(假定某时刻m的值为m 出现以下三种情况(假定某时刻m的值为m) m=m+1 在print(m)和m=0之前。此时 之前。 和 = 之前 得到的m值分别为 值分别为m+1, m+1 , 0 得到的 值分别为 , m=m+1 在print(m)和m=0之后。此时 之后。 和 = 之后 得到的m值分别为 值分别为m, 得到的 值分别为 , 0 ,1 m=m+1 在print(m)和m=0之间。此时 之间。 和 = 之间 得到的m值分别为 值分别为m, 得到的 值分别为 ,m+1,0 ,
10
有如下两条语句: 有如下两条语句: c=aP1: c=a-b P2: w=c+1 则它们的读集和写集分别是: 则它们的读集和写集分别是: R(P1)={a,b} W(p1)={c} W(p1) {c} W(p2)={w} R(P2)={c} W(p2) {w}
11
若两个程序P1和P2能满足下述条件, 若两个程序P1和P2能满足下述条件,它 P1 能满足下述条件 们便能并发执行,否则不能。 们便能并发执行,否则不能。此条件称 伯恩斯坦条件(Bernstein, 伯恩斯坦条件(Bernstein,1966) R(P1) ∩ W(P2) ∪ R(P2) ∩ W(P1) ∪ }。 P1读集与P2写 读集与P2 W(P1) ∩ W(P2)={ }。即P1读集与P2写 集的交集,P2读集与P1写集的交集 读集与P1写集的交集, 集的交集,P2读集与P1写集的交集,P1 写集和P2写集的交集, P2写集的交集 写集和P2写集的交集,三者同时为空集
16
进程的定义:进程Process 进程的定义:进程Process 进程是一个具有独立功能的程序对某 个数据集合在处理机上的执行过程和 分配资源的基本单位 程序指一组操作序列, 程序指一组操作序列,数据集合则是 接受程序规定操作的一组存储单元的 内容
17
进程的特征
动态性: 动态性:进程是程序的执行具有生命 周期。由系统“创建”而诞生, 周期。由系统“创建”而诞生,因被 调度”而执行, “调度”而执行,因得不到资源而暂 最后因被“撤消” 停,最后因被“撤消”而消亡 并发性:多个进程可同存于内存中, 并发性:多个进程可同存于内存中, 能在一段时间内同时运行
18
进程的特征
独立性: 独立获得资源和调度的基本 独立性 : 单位 异步性: 异步性 : 各进程按各自独立的不可预 知的速度向前推进 结构特征: 数据段、 结构特征:由程序段 、数据段、进程 控制块三部分组成
19
进程和程序的区别: 进程和程序的区别: 的区别 程序是指令的有序集合, 程序是指令的有序集合,其本身没有任 何运行的含义,是一个静态的概念。 何运行的含义,是一个静态的概念。而 进程是程序在处理机上的一次执行过程, 进程是程序在处理机上的一次执行过程, 它是一个动态的概念。 它是一个动态的概念。 程序可以作为一种软件资料长期存在, 程序可以作为一种软件资料长期存在, 而进程是有一定生命期的。 而进程是有一定生命期的。程序是永久 进程是暂时的。 的,进程是暂时的。 进程更能真实地描述并发,而程序不能 进程更能真实地描述并发,
应该有一个描述各程序段执行过程和 共享资源的基本单位, 共享资源的基本单位,以采取某些措 施来制约、控制各并发程序段, 施来制约、控制各并发程序段,程序 并不合适
14
操作系统引入进程的概念 从理论角度看, 从理论角度看 , 是对正在运行的程 序过程的抽象; 序过程的抽象; 从实现角度看, 是一种数据结构, 从实现角度看 , 是一种数据结构 , 目的在于清晰地刻划动态系统的内 在规律, 在规律 , 有效管理和调度进入计算 机系统运行的程序
7
程序并发执行的特点: 程序并发执行的特点: 充分利用了系统资源, 充分利用了系统资源,提高了系统的处 理能力 导致资源共享和竞争, 由于资源有限 ,导致资源共享和竞争, 从而改变程序的执行速度 并发程序执行的结果与其执行的相对速 度有关,是不确定的, 度有关,是不确定的,失去程序的封闭 性 不可再现性 举例(P41) (P41 举例(P41)