czxt 3-1 进程概念

进程概念

 OS的基本特性是并发与共享,即在系统中同时存在几个相互独立的程序, 他们交叉地运行,并共享资源。
 
01  resource competition 资源的竞争
02  Cooperate 程序之间的合作和协同
03  Communication 程序之间的通信
要解决这些问题,用程序的概念已经不能描述程序在内存中运 行的状态,必须引入新的概念--进程
 
 
顺序环境计算机系统只有一个程序在运行,该程序独占系统中所有资源,其执行不 受外界影响
 

顺序执行的特征

顺序 性: 按照程序结构 所指定的次序 (可能有分支或循环)
封闭 性: 独占系统的资源
可再 现性: 初始条件相同则结果相同。 如:可通过空指令 控制时间关系。
 

并发环境:

一定时间内,物理机器上有两个或两个 以上的程序同处于开始运行但尚未结束 的状态,并且次序不是事先确定的。
 
 
 

并发执行的特征

间断(异步)性 ->  "走走停停",一个程序可能走到中途停下来,失去 原有的时序关系;
失去封闭性   -> 共享资源,受其他程序的控制逻辑的影响。如:一 个程序写到存储器中的数据可能被另一个程序修改, 失去原有的不变特征。
失去可再现性 -> 失去封闭性 ->失去可再现性;外界环境在程序的 两次执行期间发生变化,失去原有的可重复特征。
 
 
程序并发执行的特点
例如:观察者/报告者,有两个循环程序A和B,它们共享一个变量N。程序A每执行 一次时都要做N:=N+1操作;程序B每执行一次时,都要做print(N)操作,然后再 将N置成“0” ,程序A和B以不同的速度运行。可能出现多报或漏报。(假定某时 刻变量N的值为5)
B->A->B 即N=N+1 在Print和N=0之间 N=5,N=6,N=0
 
 
多道程序设计对OS的要求
 
如何描述 并发程序 的执行: 引入进程, 及其状态
如何实现 并发程序 运行: 进程控制 与调度
如何处理资源 的竞争与程序 间的合作: 并发控制 与通信
如何解 决死锁:  死锁策略
 
 

进程概念

 为了描述程序在并发执行时对系统资源的共享,我们需要一个 描述程序执行时动 态特征的概念,这就是进程
 Process – a program in execution; 进程 - 在执行中的程序;
 一个具有一定独立功能的 程序在一个 数据集合上的一次 动态执行过程。
 A program is a passive entity; a process is a active entity.
 引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增 加了OS 的复杂性;
  

进程与程序

A process includes: 一个进程包括

Program code 程序代码
Current activity 当前活动
Related data相关数据:
stack 栈 Heap 堆
data section数据段
 
Stack 通常是一些temporary data临时数据 如 函数参数,返回地址,局部变量等
Heap 通常是程序运行时申请的动态内存
Data section 通常是Global variable全局变量
 

进程与程序的不同

 
进程是动态的,程序是静态的
程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序 通常对应着文件、静态和可以复制。
 
进程是暂时的,程序是永久的
进程是一个状态变化的过程,程序可长久保存。
 
进程与程序的组成不同
进程的组成包括程序、数据和进程控制块(即进程状态信息)。
 
进程与程序的对应关系
通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
 
 

进程的特征

 结构特征:进程实体=程序段+相关的数据段+PCB。
 动态性:进程的实质是进程实体的一次执行过程,因此动态性是  进程的最基本的特征。
 并发性: 多个进程实体同存在于内存中,且能在一段时间内同时运行。 是最重要的特征。
 独立性:指进程实体是一个能独立运行、独立分配资源和独立接受调 度的基本单位。
 异步性: 进程按各自独立的、不可预知的速度向前推进。
  

进程描述

进程存在意味着:
处于某种状态(运行、就绪、等待)
进程控制块PCB(数据结构)
进程的执行程序(一个可执行文件)
进程位于某个队列(就绪、等待某事件队列)
占用某些系统资(内存,打开某些文件、处理机、外设)

猜你喜欢

转载自www.cnblogs.com/wenyule/p/10420696.html
3-1
今日推荐