操作系统 第二章 - 进程管理

 

目录

 

一、前趋图和程序执行

1、前趋图

2、程序顺序执行

3、程序并发执行

二、进程的描述

1、进程的定义与特征

(1)进程的定义

(2)进程的特征

2、进程的状态

(1)进程的三种基本状态

(2)进程五种状态及转换模型

♥ 多个进程竞争内存资源

(3)进程的挂起状态

3、进程管理中的数据结构

(1)进程控制块PCB的地位

(2)PCB的作用

(3)PCB中的信息

(4)PCB的组织方式

三、进程控制

1、进程控制の简介

2、操作系统内核(书P47)

3、进程的创建

(1)进程的层次关系

(2)进程图

(3)引起创建进程的事件

(4)进程的创建

4、进程的终止

5、进程的阻塞与唤醒

6、进程的挂起与激活

7、进程控制原语可能引起的调度

8、进程切换

四、进程同步

1、简介

2、进程同步的基本概念

(1)两种形式的制约关系

(2)临界资源&临界区

☺生产者-消费者

(3)同步机制应遵循的规则

3、进程互斥的软件实现方法

4、进程互斥的硬件实现方法

5、信号量机制---实现进程互斥与同步

(0)信号量机制的简述

(1)整型信号量

(2)记录型信号量

(3)AND型信号量

(4)信号量集

6、信号量的应用 --- 利用信号量实现进程互斥

7、管程机制

♥重点

1、wait(semaphore *s) 和 signal(semaphore *s)

2、信号量的物理意义

五、生产者/消费者问题

六、哲学家就餐问题(初步)

七、读者/写者问题

八、进程间通信

1、进程通信的方式

2、应当指出,信号量机制作为同步工具是卓有成效的,但作为通信工具,则不够理想

3、高级通信の分类

(1)共享存储器系统——共享数据结构,共享存储区通信方式

(2)管道(Pipe)通信

(3)消息传递方式

(4)客户机-服务器系统———网络通信,套接字、 RPC

九、线程

1、线程的引入

2、回顾:进程的两个基本属性

3、程序并发执行时的时空开销

4、线程的理解

6、线程vs进程

7、线程的状态和控制块

8、线程的创建和终止

9、线程间的同步和通信

10、线程的实现方式

(1)内核支持线程(KST)

(2)用户级线程

11、采用线程的优点:


一、前趋图和程序执行

1、前趋图

   有向无循环图,用于描述进程之间执行的前后关系

 

2、程序顺序执行

(1)程序的顺序执行:若干个程序/程序段之间必须严格按照某种先后次序来执行

 

(2)程序顺序执行时的特征

  Δ1、顺序性:处理机的操作严格按照程序所规定的顺序执行

  Δ2、封闭性:程序运行时独占全机资源,程序一旦开始执行,其执行结果不受外界因素影响    

  Δ3、可再现性:只要程序执行时的环境和初始条件相同,都将获得相同的结果

                (不论它是从头到尾不停顿地执行,还是“停停走走”地执行)

 

3、程序并发执行

(1)程序的并发执行:多个程序/程序段可以在同一时间间隔同时执行

 

(2)程序并发执行时的特征

  Δ1、间断性:由于它们共享系统资源,以及为完成同一项任务而相互合作,

               致使在这些并发执行的程序之间, 形成了相互制约的关系

               相互制约将导致并发程序具有“执行——暂停——执行”这种间断性的活动规律

  Δ2、失去封闭性:是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,

                   致使程序的运行已失去了封闭性

  Δ3、不可再现性:程序在并发执行时,由于失去了封闭性, 导致不可再现性

 

二、进程的描述

1、进程的定义与特征

(1)进程的定义

  Δ1、进程是程序的一次执行

  Δ2、进程是一个程序及其数据在处理机上顺序执行时所发生的活动

  Δ3、进程是程序在一个数据集合上运行的过程,它是系统进行资源分配调度的一个独立单位

 

(2)进程的特征

  𝒜 结构特征

  Δ1、为使程序(含数据)能独立运行,应为之配置一进程控制块,即PCB(Process Control Block);    

  Δ2、而由程序段相关的数据段PCB三部分便构成了进程实体

  Δ3、所谓创建进程,实质上是创建进程实体中的PCB

  Δ4、而撤消进程,实质上是撤消进程的PCB

 

  ℬ 动态性

  Δ1、进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征

  Δ2、动态性表现:“它由创建而产生,由调度而执行,由撤消而消亡

       可见,进程实体有一定的生命期

  Δ3、对比:程序是一组有序指令的集合,其本身并不具有运动的含义,因而是静态的

  Δ4、程序为剧本,而进程是剧本的一次演绎

 

  𝒞 并发性:这是指多个进程实体同存于内存中,且能在一段时间内同时运行

 

  𝒟 独立性:指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位

 

  ℰ 异步性:指进程按各自独立的、不可预知的速度向前推进,或说进程实体按异步方式运行

 

♥在引入了进程实体的概念后,我们可以把传统OS中的进程定义为:

   “进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”

 

 

2、进程的状态

(1)进程的三种基本状态

 

(2)进程五种状态及转换模型

  Δ1、空 → 新状态       :新创建的进程首先处于新状态

  Δ2、新状态 → 就绪状态 :当系统允许增加就绪进程时,操作系统接纳新建状态进程,

                            将它变为就绪状态,插入就绪队列中

  Δ3、就绪状态 → 执行状态:当处理机空闲时,将从就绪队列中选择一个进程执行(进程调度),

                             或将处理机分派给一个进程,该进程状态从就绪转变为执行

  Δ4、执行状态 → 终止状态:执行状态的进程执行完毕,or出现诸如访问地址越界、非法指令等错误,

                             而被异常结束,则进程从执行状态转换为终止状态

  Δ5、执行状态 → 就绪状态:分时系统中,时间片用完,or优先级高的进程到来,将中断该进程的执行

                             进程从执行状态转变为就绪状态,等待下一次调度

  Δ6、执行状态 → 阻塞状态:执行进程需要等待某事件发生

                             通常,会因为进程需要的系统调用不能立即完成,如读文件、共享虚拟内

                             存、等待I/O操作、等待另一进程与之通信等事件而阻塞

  Δ7、阻塞状态 → 就绪状态:当阻塞进程等待的事件发生,就转换为就绪状态

                             进入就绪队列排队,等待被调度执行

 

♥ 多个进程竞争内存资源

  𝒜内存资源紧张

  ℬ无就绪进程,处理机空闲:I/O的速度比处理机的速度慢得多,可能出现全部进程阻塞等待I/O

  𝒞解决方法:交换技术---------换出一部分进程到外存,以腾出内存空间

                               将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,

                               以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,

                               换入内存;进程被交换到外存,状态变为挂起状态

                     虚拟存储技术--每个进程只能装入一部分程序和数据 (存储管理部分)

 

 

(3)进程的挂起状态

   𝒜 定义:挂起的本质是进程不能继续执行,即挂起后的进程处于就绪状态不能参与CPU的竞争(静止就绪)

         所以被挂起的进程处于静止状态;相反,没有被挂起的进程处于活动状态

         处于静止状态的进程通过“激活”变为活动状态

 

  ℬ处理机状态

   处理机状态信息主要是由处理机的各种寄存器中的内容组成:

   Δ1、通用寄存器,又称为用户可视寄存器,暂存信息

   Δ2、指令计数器,其中存放了要访问的下一条指令 的地址

   Δ3、程序状态字PSW,其中含有状态信息,如条件 码、执行方式、中断屏蔽标志等

   Δ4、用户栈指针,用于存放系统调用参数及调用地 址。栈指针指向该栈的栈顶。 

   ♥这些都是中断进程切换需要保护的内容

 

  𝒞 被挂起进程的特征

  Δ1、不能立即执行

  Δ2、可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行

  Δ3、使之挂起的进程为︰自身、其父进程、OS

  Δ4、只有挂起它的进程才能使之由挂起状态转换为其他状态

 

  𝒟 在引入挂起原语Suspend激活原语Active后,在它们的作用下,进程将可能发生以下几种状态的转换:

 

3、进程管理中的数据结构

(1)进程控制块PCB的地位

  𝒜进程存在的唯一标志

  Δ1、进程创建:分配进程控制块

  Δ2、进程调度:保存和读取进程控制块

  Δ3、进程撤销:回收进程控制块

  ℬ  PCB常驻内存

 

(2)PCB的作用

  Δ1、独立运行基本单位的标志

        当一个程序(含数据)配置了PCB后,就表示它已经是一个能独立运行的基本单位,也就具有获得OS服务的权利,

        如打开文件系统中的文件,请求获得系统中的I/O设备,以及与其它相关进程进行通信等

        因此,当系统创建一个新进程时,就为它建立了一个PCB;进程结束时又回收其PCB,进程于是也随之消亡

        系统是通过PCB感知进程的存在的;事实上,PCB已成为进程存在于系统中的唯一标志

  Δ2、能实现间断性运行方式---保护CPU现场

        在多道程序环境下,程序是采用停停走走间断性的运行方式运行的

        当进程因阻塞而暂停运行时,必须保留自己运行时的CPU现场信息,再次被调度运行时,还需要恢复其CPU现场信息

        在有了PCB后,系统就可将CPU现场信息保存在被中断进程的PCB中,供该进程再次被调度执行时恢复CPU现场时使用

        由此,可再次明确,在多道程序环境下,作为传统意义上的静态程序,因其并不具有保护或保存自己运行现场的手段,

        无法保证其运行结果的可再现性,从而失去运行的意义

  Δ3、提供进程管理所需要的信息---OS通过PCB对进程实施控制和管理

  Δ4、提供进程调度所需要的信息---提供进程状态、优先级等信息

  Δ5、实现与其它进程的同步与通信---消息队列指针, 信号量等

 

 

(3)PCB中的信息

  𝒜 进程标识符

    进程标识符用于唯一的标识一个进程; 一个进程通常有两种标识符:

    Δ1、内部标识符

         为每一个进程赋予一个惟一的数字标识符; 设置内部标识符主要是为了方便系统使用     

    Δ2、外部标识符

         它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用

 

  ℬ 处理机状态

   处理机状态信息主要是由处理机的各种寄存器中的内容组成:

   Δ1、通用寄存器,又称为用户可视寄存器,暂存信息

   Δ2、指令计数器,其中存放了要访问的下一条指令 的地址

   Δ3、程序状态字PSW,其中含有状态信息,如条件 码、执行方式、中断屏蔽标志等

   Δ4、用户栈指针,用于存放系统调用参数及调用地 址。栈指针指向该栈的栈顶。 

   ♥这些都是中断和进程切换时需要保护的内容

 

  𝒞 进程调度信息

   PCB中还存放一些与进程调度和进程对换有关的信息,包括:

   Δ1、进程状态   Δ2、进程优先级    Δ3、进程调度所需的其它信息    Δ4、事件,阻塞原因

 

  𝒟进程控制信息: 程序和数据的地址; 进程同步和通信机制; 资源清单; 链接指针

 

 

(4)PCB的组织方式

  Δ1、线性方式:将系统中的所有PCB组织在一张线性表中,将该表的首地址存放在一个专用区域中

  Δ2、链接方式:把具有同一状态的PCB,用其中的链接字链接成一个队列,排成就绪队列,若干个阻塞队列以及空白队列

  Δ3、索引方式:系统根据所有进程的状态建立几张索引表

 

 

 

三、进程控制

1、进程控制の简介

   进程控制是进程管理中最基本的功能,主要包括创建进程、终止进程、负责进程运行过程中的状态转换

   进程控制是操作系统的内核通过原语(Primitive)来实现的

       原语是由若干条指令组成的,用于完成一定功能的一个过程

       是“原子操作”,即一个操作中的所有动作要么全做,要么全不做,

       换言之,是一个不可分割的基本单位,在执行过程中不允许被中断

       原语常驻内存,且在系统态下运行

     为了使操作系统内核代码和数据不会遭受到用户程序的破坏,通常将处理机的执行状态分为:

(1)系统态/管态/内核态:较高特权,能执行一切指令,访问所有的存储区和寄存器

(2)用户态/目态       :较低特权,只能执行规定的指令,访问规定的存储区和寄存器

 

2、操作系统内核(书P47)

(1)定义

     我们把一些和硬件紧密相关的模块(eg中断处理程序)、各种常用设备的驱动程序运行频率较高

     模块(eg进程调度)安排在仅靠硬件的软件层次中,将它们常驻内存,这部分被称为OS内核

 

(2)两大功能:

  Δ1、支撑功能-------中断处理,时钟管理,原语操作

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值