`

【基础】操作系统-处理器管理-进程-01

阅读更多

操作系统-处理器管理-进程

 


1、处理器管理背景:

 

以下两种OS中,程序的并行运行对系统资源的竞争 
1) 单用户多任务的OS 
2) 多用户多任务的OS


2、进程状态:

 

(1)、进程的定义: 

 

一个具有一定独立功能的程序,关于某个数据集合的一次运行活动。它是操作系统动态执行基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的调度、执行、管理单元(最小单位)。 

 

注意,线程是指处理机分配、调度、执行的最小单元,二者在定义上有一定的区别。

解释:进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。


进程的概念主要有两点:
第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。
     ->文本区域:存储处理器执行的代码 
     ->数据区域:存储变量和进程执行期间使用的动态分配的内存 
     ->堆栈区域:存储着活动过程调用的指令和本地变量
第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

 

(2)、进程的组成: 

 

静态观点:程序 + 数据 + 进程控制块(PCB) = 进程

动态观点:计算机状态的一个有序集合

 

注意:进程存在的唯一标志->PCB, 
内容包括:调度信息和执行信息 
      调度信息->供进程调度使用包括进程当前的一些基本属性 
      执行信息->现场,刻画进程的执行情况 
生命周期:进程的产生到完成。

 

(3)、进程的特征: 

 

   ->动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。 
   ->并发性:任何进程都可以同其他进程一起并发执行 
   ->独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; 
   ->异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进 
   ->结构特征:进程由程序、数据和进程控制块三部分组成。

多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。

 

(4)、进程的状态模型:

 

1)、三态模型(假设所有进程都在内存中)
进程一般有三种基本状态:运行、就绪和阻塞。
->运行:当一个进程在处理机上运行时,称该进程处于运行状态。
->就绪:一个进程获得了除处理机外的一切资源,一旦得到处理机即可运行,则称该进程处于就绪状态。
->阻塞:也称等待或睡眠状态,一个进程正在等待某一事件发生而暂时停止运行,这时即使把处理机分配给该进程,它也无法运行,故称该进程处于阻塞状态。

2)、五态模型
引入新建态和终止态。
->新建态:对应于进程刚刚被创建且没有被提交的状态,并等待系统完成创建进程的所有必要信息。因为创建进程分为两个阶段,第一个阶段为一个新进程创建必要的管理信息,第二个阶段让该进程进入就绪状态。由于有了新建态,操作系统可以根据系统的性能和内存容量的限制推迟新建态进程的提交。
->进程的终止:也可分为两个阶段,第一个阶段等待操作系统进行善后处理,第二个阶段释放内存。

3)、具有挂起功能系统的进程状态及其转换(某些挂起、阻塞或定期启动的进程在磁盘镜像中)
->活跃就绪:进程在主存并且可被调度的状态
->静止就绪:进程被对换到辅存时的就绪状态,是不能被直接调度的状态;只有当主存中没有活跃就绪态进程,或者挂起就绪态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪
->活跃阻塞:进程进入主存,一旦等待的事件产生便进入活跃就绪状态
->静止阻塞:进程被对换到辅存时的阻塞状态,一旦等待的事件产生便进入静止就绪状态

 

 

3、进程的控制:

 

      进程控制是指对系统中所有进程从创建到消亡的全过程实施有效的控制。其主要功能包括创建一个新进程,撤销一个已经运行完的进程,改变进程的状态,实现进程间的通信。进程控制是由操作系统内核中的原语实现的。

     ◆原语:是指由若干条机器指令组成的、用于完成特定功能的程序段。特点是在执行时不能被分割,即原子操作要么都做,要么都不做。
     ->内核中包含的原语主要有:进程控制原语、进程通信原语、资源管理原语以及其他原语。
     ->属于进程控制原语有:进程创建原语、进程撤销原语、进程挂起原语、进程激活原语、进程阻塞原语以及进程唤醒原语等。 

 

(1)、同步与互斥 

 

1)、进程间的同步:指进程间完成一项任务时直接发生互相作用的关系。 
2)、进程间的互斥:在多道程序系统中,各进程可以共享各类资源,但有一些资源一次只能供一个进程使用,称为临界资源。进程间的互斥是指系统中各进程互斥使用临界资源(一次只允许一个进程访问资源)。 
3)、临界区管理原则:有空即进,当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。无空则等,当有一个进程在临界区时,其他需要进入临界区的进程必须等待,以保证进程互斥的访问临界资源。有限等待,对要求访问临界资源的进程,应保证进程等待有限时间后进入临界区,以免陷入”饥饿“状态。让权等待,当进程不能进入自己的临界区时,应立即释放处理机,以免陷入”忙等“状态。 

 

(2)、信号量与PV操作 

 

信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信号量的变量对它进行的两个原语操作。信号量为一个整数,我们设这个信号量为:sem。很显然,我们规定在sem大于等于零的时候代表可供并发进程使用的资源实体数,sem小于零的时候,表示正在等待使用临界区的进程的个数。根据这个原则,在给信号量附初值的时候,我们显然就要设初值大于零。 

 

P,V原语中P是荷兰语的Passeren,相当于英文的pass, V是荷兰语的Verhoog,相当于英文中的incremnet。 P操作和V操作是不可中断的程序段,称为原语。

 

◆注意:在P,V愿语执行期间不允许有中断的发生。对于具体的实现,方法非常多,可以用硬件实现,也可以用软件实现。这种信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。

 

首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: 
P(S):
①将信号量S的值减1,即S=S-1;
②如果0<=S,则该进程继续执行;0>S则该进程置为等待状态,排入等待队列。
V(S):
①将信号量S的值加1,即S=S+1;
②如果0<S,则该进程继续执行;0>=S则唤醒队列中第一个等待信号量的进程。 

PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。P操作和V操作是低级通信原语,在执行期间不可分割。其中,P操作表示申请一个资源,V操作表示释放一个资源

P操作可表示如下,其中Semaphore表示所定义的变量是信号量:

1: Produre P(Var S:Semaphore);
2: Begin
3: S:=S-1;
4: If S < 0 then W(S) // 没有资源了,执行P操作的进程插入等待队列
5: End;



       V操作可表示如下:

1: Procedure C(Var S:Semaphore);
2: Begin
3: S:=S+1;
4: If S <= 0 then R(S) // 有空闲资源了,从阻塞队列唤醒一个进程
5: End;

 

 

1)、利用PV操作实现进程的互斥

 

令信号量mutex的初值为1,进入临界区时执行P操作,推出临界区时执行V操作,这样,进入临界区的代码段如下:

 

1: P(mutex)//申请资源
2: 临界区
3: V(mutex)//释放资源

 

一个例子:两个并发执行的程序段完成交通流量的统计,其中P1识别通过的车辆数,P2定时将计数值清0.用PV操作实现的交通流量统计程序如下:

 

1: P1
2: if 有车通过 then
3: begin
4: P(mutex) //锁定COUNT管理权
5: COUNT := COUNT + 1; // 临界区
6: V(mutex); //释放COUNT管理权
7: end
8: GOTO L1;

1: P2
2: begin
3: P(mutex) //锁定COUNT管理权
4: PRINT COUNT; //临界区
5: COUNT := 0;
6: V(mutex); //释放COUNT管理权
7: end
8: GOTO L2;

 

通常情况下,在互斥控制中,设置S信号量的初始值为1,即允许一个进程进入。 

 

 

2)、利用PV操作实现进程的同步

 

进程的同步是由于进程间的合作而引起的相互制约问题。实现进程同步的一种方法是将一个信号量与消息相联系,当信号量的值为0时表示希望的消息未产生,否则表示希望的消息已经到来。 

 

通常情况下,在同步控制中,设置S信号量的初始值为0,即有一个进程先进入就绪态就停止(S=S-1),等待另一个进程运行后(S=S+1),再运行。 

 

3)、生产者-消费者问题 

 

问题关键点: 
     解决生产者进程与消费者进程的同步关系 
     处理缓冲区的互斥关系 

最少需要三个信号量实现 
     empty——表示缓冲区是否为空,初值为n。 
     full——表示缓冲区中是否为满,初值为0。 
     mutex1——保证同时只有一个进程在写缓冲,初值为1。 

 

 

例:生产者进程P1不断的生产产品送入缓冲去,消费者进程P2不断的从缓冲区中取出产品消费。为了实现进程P1与P2之间的同步问题,需要设置一个信号量S1,表示缓存区是否空闲,初值为1,表示可以将产品送入缓冲区;设置另一个信号量S2,表示缓冲区有无产品,初值为0,P1和P2的同步过程如下: 

 

进程P1 L1: 生产一个产品 P(S1) 产品送缓冲区 V(S2) GOTO:L1 

进程P2 L2: 生产一个产品 P(S2) 从缓冲区取一个产品 V(S1) 消费 GOTO:L2。

 

 

(3)、死锁:

 

1)、死锁:多个进程因为竞争资源,或执行时推进的顺序不当,或相互通信而永久阻塞现象。 

 

2)、引起死锁的原因:

产生死锁的四个必要条件(互斥、占有且等待、非剥夺、循环等待)。 

 

3)、解决死锁的方法:

预防死锁、避免死锁、检测并解除死锁。

 

◆预防死锁:
1)、禁止“互斥”条件
2)、禁止“占有且等待”条件:一次性分配策略
3)、禁止“不剥夺”条件:剥夺资源法
4)、禁止“循环等待”条件:资源有序分配策略

 

◆避免死锁
1)、银行家算法

 

◆检测并解除死锁

 

 

 

总结:有时候仅看概念和原理经常不知所云,其实其中的道理很简单,你一定懂的...

实际应用中可能会复杂很多,尤其是同步和互斥操作都有,进程很多,并且有顺序或触发要求,而且牵扯很多临界资源时,表面上的很多显示的关系容易理清,但往往只是浮云,隐式的关系需要仔细考虑才能发现,这时候最好多推导几遍运行情况,多考虑临界的各种可能性,逐步简化问题约束,最后总结出规律!

 

  • 大小: 99.1 KB
分享到:
评论

相关推荐

    操作系统-处理器管理.ppt

    操作系统中的处理器管理是确保计算机系统高效、公平地利用CPU资源的关键环节。这一部分主要涵盖了基本概念、处理器状态、作业和进程的区别、特权指令以及处理器管理的两个层次:作业调度和进程调度。 首先,作业和...

    北邮-大三-操作系统-进程管理实验报告.doc

    操作系统中的进程管理是计算机科学中的核心概念之一,尤其是在操作系统课程中占据着重要地位。本实验旨在帮助学生深入理解进程的...通过实际编程和观察,学生能够更好地掌握操作系统中进程管理的基础理论和应用技巧。

    单处理器系统的时间片轮转进程调度

    在计算机操作系统中,进程调度是核心功能之一,用于管理系统的执行流程。单处理器系统的时间片轮转进程调度算法是一种常见的调度策略,它旨在公平地分配处理器资源,提高系统的响应时间和效率。下面我们将深入探讨这...

    处理器管理 操作系统

    处理器管理是操作系统的核心组成部分,主要关注如何有效地管理和调度系统中的处理器资源,以达到高效、公平地执行各种进程。本文将详细探讨处理器管理的几个关键概念,包括进程的基本概念与控制、线程的基本概念以及...

    北邮-大三-操作系统-进程管理实验报告(1).doc

    本实验报告聚焦于北邮大三操作系统课程的进程管理实验,旨在通过实践深入理解进程的概念、并发执行的本质以及进程间通信的基础原理。 实验的目的包括以下几个方面: 1. **加深对进程概念的理解**:进程是操作系统...

    操作系统实验-单处理器系统的时间片轮转进程调度-python实现

    大学操作系统课程 综合实验 单处理器系统的时间片轮转进程调度 算法,使用python实现。带注释。

    单处理器系统的进程调度+操作系统(c语言版)

    单处理器系统的进程调度是操作系统中的一项重要功能,其目的是为了在单处理器系统中管理和调度多个进程,以提高系统的效率和性能。本文将详细介绍单处理器系统的进程调度算法和实现方法。 进程控制块(PCB)是进程...

    操作系统---进程调度算法 C++

    操作系统中的进程调度是系统管理众多并发执行的进程并分配处理器资源的关键部分,它对系统的响应时间、吞吐量以及公平性都有重要影响。本主题主要关注四种常见的进程调度算法:短作业优先(SJF)、先来先服务(FCFS...

    操作系统实验:单处理器系统的进程调度.rar

    本资源使用Java和JavaFX模拟了单处理器系统进程调度的...该资源的文字版信息请访问博客《操作系统实验:单处理器系统的进程调度(学习笔记)》(https://blog.csdn.net/weixin_40589192/article/details/107168093)。

    行业分类-设备装置-处理器和区分系统管理模式条目的方法.zip

    在IT领域,处理器和系统管理模式是...总的来说,处理器和系统管理模式的理解是IT专业人员深入学习计算机体系结构和操作系统设计的基础,它涉及到计算机硬件与软件的紧密协作,确保了计算机系统的高效运行和安全稳定。

    操作系统进程调度实验报告(含源码)

    - **进程**: 是程序执行过程中的实例,包括程序代码、数据集以及操作系统用于管理和控制进程的内核数据结构。 - **进程控制块(PCB)**: 进程的状态信息、标识符、处理器相关信息、调度参数等的集合。 - **进程调度**:...

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

    其中,进程调度是操作系统处理器管理的核心内容之一。 ### 二、实验内容及要求 #### 1. 设计进程控制块 PCB 的结构 进程控制块是操作系统用来存储与管理进程相关信息的数据结构。本实验中,PCB 结构应包含但不...

    操作系统-----进程学习(到fork)(超级详细).pdf

    总结来说,进程是操作系统中实现程序并发执行和资源管理的基础,通过进程控制块和调度算法,操作系统能够高效地管理多个并发执行的任务,为用户提供并发执行的错觉,并确保系统的稳定和高效运行。

    操作系统---进程状态转换PDF

    进程状态之间的转换是操作系统管理进程的重要机制之一。下面通过具体例子来详细介绍进程状态转换的过程: - **初始状态**:进程A和进程B都处于就绪状态,等待被调度。此时,进程A和进程B的PCB(Process Control ...

    操作系统 ---- 存储管理

    存储管理中另一个重要概念是线程,它是操作系统调度的基本单位,比进程更细粒度,允许在同一进程中并发执行多个线程,从而提高处理器的利用率。不同的操作系统有不同的线程实现机制,有的操作系统提供了轻量级进程...

    操作系统----进程调度

    操作系统是计算机系统的核心组成部分,它负责管理系统的硬件资源和软件资源,协调计算机的运行,提供用户界面,并确保多个任务能够高效、公平地执行。在操作系统中,进程调度是一项至关重要的功能,它决定了如何在多...

    【JAVA版】操作系统课程设计题目四单处理器系统的进程调度源码&详细实验报告

    编写程序完成单处理器系统中的进程调度, 要求实现时间片轮转、 优先数、 最短进程优 先和最短剩余时间优先四种调度算法。 实验具体包括: 首先确定进程控制块的内容, 进程控 制块的组成方式; 然后完成进程创建...

    计算机-操作系统-操作系统基础

    操作系统是计算机科学中的核心组成部分,它是管理硬件资源并提供软件应用程序接口的基础软件。对于初学者来说,理解操作系统的基础知识是至关重要的,这将为后续深入学习计算机科学打下坚实的基础。 首先,我们要...

    实验一---处理器调度(设计一个按时间片轮转法实现处理器调度的程序).doc

    在计算机操作系统中,处理器调度是指操作系统对处理器的分配和管理,以确保多个进程能够公平地分享处理器资源。本实验主要介绍了时间片轮转法实现处理器调度的程序设计,通过设计一个模拟处理器调度的程序,来模拟...

    单处理器系统的进程调度

    一般操作系统中,无论进程控制块中信息量多少,信息都可以大致分为以下四类: ① 标识信息 每个进程都要有一个惟一的标识符,用来标识进程的存在和区别于其他进程。这个标识符是必不可少的,可以用符号或编号实现,...

Global site tag (gtag.js) - Google Analytics