计算机操作系统复习之进程管理

第二章 进程管理
本章引入进程概念用来描述程序并发执行,进而深入分析进程的控制、同步、通讯、死锁
和调度有效执行。并发性是os的最重要的特征,而进程是os最基本最重要的概念。
  程序独占处理机顺序执行的特征
    1.顺序性 2.封闭性 3.可再现性
  程序并发执行特征
    1.间断性 2.失去封闭性 3.不可再现性
一、为什么要引入进程:
  由于程序在并发执行时,可能会造成结果的不可再现,用程序这个概念已无法描述
程序的并发执行,所以需要引入新的概念--进程来描述程序的并发执行,并对进程进行必要的
管理,以保证进程在并发执行的时结果可再现。
二、进程定义:
  可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单

  特征:
    动态性:进程最基本的特征,他是程序执行的过程,由创建--产生,由调度--执行
            得不到资源--就绪,撤销--死亡。而程序是静态的,是存放在介质上一组有序
            指令的集合,无运动含义。
    并发性:进程的重要特征,多个进程实体同存于内存中,而程序是不能并发执行的
    独立性:进程是一个能独立运行的基本单位,而程序不作为独立单位参加运行。
    异步行:进程按照各自不可预知的速度向前推进。
    结构特征:进程实体由程序段、数据段和进程控制块(PCB)三部组成。
进程的三个进本状态:
  运行态:进程在处理机(cpu)上运行时,则称该进程处于运行状态
  就绪态:一个进程在得到除了处理机外的所有资源,一旦得到处理机即可运行,则称次状态
为就绪态。
  阻塞态:(挂起态、等待态)一个进程正坐等待某一事件发生,如等待i/o完成而暂时停止
运行,称次状态为阻塞态。
三个基本状态转换图
运行态(进程调度)《---》(时间片段用完)就绪态
运行态--》(等待某时间发生)阻塞态
阻塞态--》(等待事件已发生)就绪态
进程状态的细化:
  1.挂起、激活操作的引入
    系统管理员有时需要暂停某个进程,以便排除系统故障或减轻系统负荷,所以引入了
挂起激活操作,由于被挂起前进程的状态有三种,挂起后进程就多了两种状态:静态就绪态
和静态阻塞态,挂起前的进程被称为活动就绪态和活动阻塞态。
    正在运行态的进程被挂起状态将会转变成静止就绪,(直接挂起来了)
注意:若系统中只有一个处理机(cpu),那么任何时刻最多只有一个进程处于运行态
三、进程控制(PCB)Process Control Block
  进程控制块的作用--进程存在的唯一实体,为什么这么说呢?
    PCB块中记录了进程的特征信息,创建进程就会创建对应的PCB,当
进程被撤销时,系统就要回收PCB,操作系统通过PCS来控制和管理进程。所以说PCB是进程
存在的唯一实体。
 
  PCB的信息:1.进程标识符,用于唯一的标识一个进程
             2.进程调度信息,包括进程状态,队列,队列指针,调度参数等
             3.处理机状态信息
             4.进程控制块信息,包括程序和数据地址
             5.家族信息
四、管态和目态
  CPU状态分为管态和目态
    管态:特征态、核心态,操作系统在管态下运行
    目态:用户态,用户程序在此态下运行
解释:运行用户程序一般代码时,它是在用户态下执行的。但当程序要调用系统服务,处理器
通过专门指令切换到核心态,在服务完成后切换回用户态。在核心态执行的是调用操作系统
有关功能模块的代码
  原语(管态下完成):
    原语是什么,它的功能是什么?
      原语是一种特殊的广义指令,它的功能是由系统通过一段不可分割的指令操作来完成。
    在执行过程中不会被打断,就是不会被中断。
    进程控制操作(进程的创建。撤销、阻塞。。)大多为原语操作。说人话就是你只管
启动程度,程序是怎么启动,先启动什么部分就由操作系统完成,你是管不了的。
   
    注意:时钟管理、原语操作、中断、进程存储器设备管理功能都是在管态下完成的。
  进程控制原语
    1.创建原语
    2.撤销原语、终止原语
    3.阻塞原语
    4.唤醒原语
五、线程
  线程的引入:
    作为并发执行的进程具有二个基本属性:既是一个拥有资源的独立单位,又是可独立
调度和分配的基本单位。这二者基本属性使进程成为并发执行的基本单位。引入进程可带来
资源利用率的提高和系统吞吐量的增加,但增加了系统的时间可空间开销。
    为了区分这两个属性,资源拥有单元称为进程,调度的单位称为线程(又称轻进程)。线程只拥有一点
在运行时不可省的资源。
    在一个进程内有多个线程
  引入线程的好处:在一个存在的进程中产生或终止一个线程比产生或终止一个进程花费的
时间要少的多。

六、进程同步
    1.进程间制约关系  2.资源共享关系
    互斥:
      多个进程不能同时使用同一个资源
    死锁;
      多个进程互不相让,都得不到足够的资源
    饥饿:
      一个进程一直得不到资源
    互相合作关系:
      例如程序的输入、计算、打印
    临界资源:
      某段时间内只允许一个进程使用的资源。打印机、磁带机
    临界区:
      访问临界资源的那段代码
  进程的同步机制:
    多个相关的进程在执行次序上的协调称为进程同步(广义的,包括狭义的同步和互斥)
    1.空闲让进  2.忙则等待
    3.有限等待  4.让权等待
  信号量机制:
    信号量的值只能通过两个原子操作:P/V操作来改变,代表申请和释放资源
    公用信号量(mutex互斥信号量):永久性的共享临界资源,可反复使用。P、V操作
    专用信号量(empty、full同步信号量):消耗性的专用资源,只用使用该资源的进程才能对他
施加P/V操作。
    信号量S取值的意义;
      S.value > 0:S表示可供使用的资源数
              = 0:表示资源刚好被占完,而且无其他进程等待
              < 0:表示资源被占用,还有-S个进程因等待资源而阻塞
七、处理机调度模式
  作业的状态:
    1.提交状态(输入作业)  2.后备状态(作业已输入到磁盘输入井)
    3.运行状态  4.完成状态
  处理机的三级调度;
    低级调度----进程调度:进程调度决定就绪队列中哪个进程将获得处理机
    中级调度----对换:提高主存利用率和系统吞吐量
    高级调度----作业调度:决定把外存输入井上处于作业后备队列上的的哪些作业调入
内存。
      总的来说,低级调度是对进程的调度,高级调度是对作业的调度,中级调度是提高主存
利用率,就是挂起和激活操作。
  进程调度方式
    1.非抢占方式:一旦把处理机分配给某进程,就一直让此进程执行直到完成,不允许其他
进程抢占
    2.抢占方式:允许进程根据某个原则去阻止正在执行的进程并抢占资源
      (1)时间片原则
      (2)优先级原则
 
相关概念: 
  (1)周转时间:评价批处理系统的重要性能指标。Ti = 完成时间 - 到达(提交)时间
  (2)平均周转时间
  (3)响应时间:评价分时系统的性能指标,从用户通过键盘提交一个请求开始,知道系统产生
响应为止的时间。
  (4)截止时间:评价实时系统的重要指标,指某任务必须执行(完成)的最迟时间。
  (5)优先权
  (6)系统吞吐量:批处理系统的重要指标,单位时间完成的作业数
  (7)处理机利用率
  作业/进程调度算法
  1.先来先服务First-Come-First-Served(FCFS)
  2.短作业优先Shortest Process Next(SJF)
  3.高响应比优先Highest Response RatioNext(HRRN)
    优先权:(已经等待时间+要求运行时间)/要求运行时间  //等待时间越长,优先级越高
  4.时间片轮转Round-Robin(RR)
    最大相应时间T与进程数n和时间片大小q成正比 T = n x q
  5.优先权调度算法
    静态优先权:优先权在进程创建之初就确定了,且保持不变,根据进程类型、对资源的
需求、付费多少决定
    动态优先权:优先权可以随着进程的推进而改变,最常考虑的因素是:进程的等待时间、
已经使用处理机的时间、资源使用情况
  6.多级队列调度算法
    根据作业性质和类型将就绪队列分为若干个子队列
  7.多级反馈队列调度算法(大多数操作系统采用)
    不必事先知道各种进程所需的执行时间,仍能满足短进程所需的执行时间
    真正有利于短进程优先,真正有利于IO繁忙作业
死锁:
  指计算机系统和进程所处的一种状态。在系统中,两个或多个进程无限期的等待永远不会
发生的事件。
  产生死锁的原因:
    1.竞争资源引起的死锁,资源的独占性。
    2.进程推行顺序不当引起死锁
  产生死锁的必要条件:
    1.互斥:一个资源只能被一个进程所占用
    2.不可抢占:一个资源仅能被占有它的进程所释放
    3.请求和保持:进程已经保持了至少一个资源,又提出一个资源,但次资源被其他进程
占用
    4.环路等待:存在一个进程-资源的环形链
    注意:这四个条件是死锁的必要条件,但满足这四个条件不一定会产生死锁
 
  处理死锁:
    A  死锁的预防(静态)
      破坏产生死锁的必要条件
    B  死锁的避免(动态)
      在进程申请资源时采用某种方法去放置系统进入不安全状态
    C  死锁的检测和解除
      检测死锁,撤销进程
    D  鸵鸟算法
      假装没有看见,因为死锁极少发生,且处理的成本很高,大多操作系统采取的方法
  死锁的避免:
    根据系统的安全状态避免死锁
      系统能按某种顺序来为各个进程分配其所需资源,直至最大需求。
      找出一个安全序列,若不存在一个安全序列,则称系统处于不安全状态。
    银行家算法
 
  死锁的检测:
    死锁的避免算法增加了系统的开销,而死锁的检测采用资源分配图的简化的方法来判断
是否发生了不安全状态,若发现系统处于不安全状态,则执行死锁接触策略,次法开销相对
减少。
    资源分配图的简化:
      在资源分配图中找一个既不阻塞又非孤立的进程结点P,让他获得所需资源而继续运行
至完毕,再释放它拥有的所有资源,使他成为孤立结点。经过简化,若所有的进程结点都是
孤立结点则称资源分配图是可完全简化的。反之是不可完全简化的。
   
  死锁定理:
    系统状态S为死锁状态的充要条件,当且仅当S状态的资源分配图是不可完全简化时,称
为死锁定理。在不可完全简化的资源分配中不能简化为孤立结点的进程是死锁进程。反之
状态S的对应资源分配图是课简化的,则状态S是安全的。
阅读更多
个人分类: 计算机操作系统
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭