美文网首页
3、操作系统进程和线程管理(2)

3、操作系统进程和线程管理(2)

作者: 小manong | 来源:发表于2019-04-06 15:48 被阅读0次

七、处理器的调度

1、调度系统概念
  • 在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。
2、调度的层次
  • 调度层次分类
  1. 作业调度。又称高级调度,.其主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个)作业,给它(们)分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使它(们)获得竞争处理机的权利。简言之,就是内存与辅存之间的调度。对于每个作业只调入一次、调出一次。作业调度的执行频率较低,通常为几分钟一次。
  2. 中级调度。又称内存调度。引入中级调度是为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程,调至外存等待,把此时的进程状态称为挂起状态。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程,再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。
  3. 进程调度。又称为低级调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。
  • 三级调度的联系
    作业调度从外存的后备队列中选择一批作业进入内存,为它们建立进程,这些进程被送入就绪队列,进程调度从就绪队列中选出一个进程,并把其状态改为运行状态,把CPU分配给它。中级调度是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来。当内存空间宽松时,通过中级调度选择具备运行条件的进程,将其唤醒。
3、调度的时机、切换与过程
  • 进程调度和切换程序是操作系统内核程序。当请求调度的事件发生后,才可能会运行进程调度程序,当调度了新的就绪进程后,才会去进行进程间的切换。
  • 现代操作系统中,不能进行进程的调度与切换的情况有以下几种情况,遇到下列情况应置系统的请求调度标志,直到上述过程结束后才进行相应的调度与切换。
  1. 在处理中断的过程中:中断处理过程复杂,在实现上很难做到进程切换,而且中断处理是系统工作的一部分,逻辑上不属于某一进程,不应被剥夺处理机资源。
  2. 进程在操作系统内核程序临界区中:进入临界区后,需要独占式地访问共享数据,理论上必须加锁,以防止其他并行程序进入,在解锁前不应切换到其他进程运行,以加快该共享数据的释放。
  3. 其他需要完全屏蔽中断的原子操作过程中:如加锁、解锁、中断现场保护、恢复等原子操作。在原子过程中,连中断都要屏蔽,更不应该进行进程调度与切换。
  • 应该进行进程调度与切换的情况有:
  1. 当发生引起调度条件,且当前进程无法继续运行下去时,可以马上进行调度与切换
  2. 当中断处理结束或自陷处理结束后,返回被中断进程的用户态程序执行现场前,若置上请求调度标志,即可马上进行进程调度与切换。
  • 进程切换往往在调度完成后立刻发生,它要求保存原进程当前切换点的现场信息,恢复被调度进程的现场信息。现场切换时,操作系统内核将原进程的现场信息推入到当前进程的内核堆栈来保存它们,并更新堆栈指针。内核完成从新进程的内核栈中装入新进程的现场信息、更新当前运行进程空间指针、重设PC寄存器等相关工作之后,开始运行新的进程。
4、进程调度方式
  • 所谓进程调度方式是指当某一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即有优先权更髙的进程进入就绪队列,此时应如何分配处理机。
  1. 非剥夺调度方式,又称非抢占方式。是指当一个进程正在处理机上执行时,即使有某个更为重要或紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行,直到该进程完成或发生某种事件而进入阻塞状态时,才把处理机分配给更为重要或紧迫的进程。
  2. 剥夺调度方式,又称抢占方式。是指当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给这个更为重要或紧迫的进程。.
  • 在非剥夺调度方式下,一旦把CPU分配给一个进程,那么该进程就会保持CPU直到终止或转换到等待状态。这种方式的优点是实现简单、系统开销小,适用于大多数的批处理系统,但它不能用于分时系统和大多数的实时系统。釆用剥夺式的调度,对提高系统吞吐率和响应效率都有明显的好处。但“剥夺”不是一种任意性行为,必须遵循一定的原则,主要有:优先权、短进程优先和时间片原则等。
5、调度的基本准则
  • 要想得到一个满足所有用户和系统要求的算法几乎是不可能的。设计调度程序,一方面要满足特定系统用户的要求(如某些实时和交互进程快速响应要求),另一方面要考虑系统整体效率(如减少整个系统进程平均周转时间),同时还要考虑调度算法的开销。
  1. CPU利用率。CPU是计算机系统中最重要和昂贵的资源之一,所以应尽可能使CPU 保持“忙”状态,使这一资源利用率最髙。
  2. 系统吞吐量。表示单位时间内CPU完成作业的数量。长作业需要消耗较长的处理机时间,因此会降低系统的吞吐量。而对于短作业,它们所需要消耗的处理机时间较短,因此能提高系统的吞吐量。调度算法和方式的不同,也会对系统的吞吐量产生较大的影响。
  3. 周转时间。是指从作业提交到作业完成所经历的时间,包括作业等待、在就绪队列中排队、在处迤机上运行以及进行输入/输出操作所花费时间的总和。
  4. 等待时间。是指进程处于等处理机状态时间之和,等待时间越长,用户满意度越低
  5. 响应时间。是指从用户提交请求到系统首次产生响应所用的时间。
6、操作系统调度算法

(1)先来先服务(FCFS)调度算法
(2)短作业优先(SJF)调度算法
(3)优先级调度算法
(4)高响应比优先调度算法(用于作业调度)
(5)高响应比优先调度算法(用于分时系统)
(6)多级反馈队列调度算法(时间片轮转调度算法和优先级调度算法的综合和发展)

八、进程同步

1、基本概念
  • 临界资源:虽然多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,我们把一次仅允许一个进程使用的资源称为临界资源。
  • 临界区:对临界资源的访问,必须互斥地进行,在每个进程中,访问临界资源的那段代码称为临界区。(进入临界区、临界区、推出区、剩余区)
  • 同步:同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系。(例如,输入进程A通过单缓冲向进程B提供数据。当该缓冲区空时,进程B不能获得所需数据而阻塞,一旦进程A将数据送入缓冲区,进程B被唤醒。反之,当缓冲区满时,进程A被阻塞,仅当进程B取走缓冲数据时,才唤醒进程A。)
  • 互斥:互斥亦称间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待, 当占用临界资源的进程退出临界区后,另一进程才允许去访问此临界资源。(例如,在仅有一台打印机的系统中,有两个进程A和进程B,如果进程A需要打印时, 系统已将打印机分配给进程B,则进程A必须阻塞。一旦进程B将打印机释放,系统便将进程A唤醒,并将其由阻塞状态变为就绪状态。)
2、实现临界区互斥的基本方法

为禁止两个进程同时进入临界区,同步机制应遵循以下准则:空闲让进、忙则等待、有限等待、让权等待。
(1)软件实现方法

  • 在进入区设置和检查一些标志来标明是否有进程在临界区中,如果已有进程在临界区,则在进入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。

算法一:单标志法(违背空闲让进)
算法二:双标志法先检查。(违背忙则等待)
算法三:双标志法后检查(饥饿”现象)
算法四:Peterson’s Algorithm。

(2)硬件实现方法

  • 计算机提供了特殊的硬件指令,允许对一个字中的内容进行检测和修正,或者是对两个字的内容进行交换等。通过硬件支持实现临界段问题的低级方法或称为元方法。
  1. 中断屏蔽方法
  1. 硬件指令方法(CAS)
3、信号量
  • 信号量机构是一种功能较强的机制,可用来解决互斥与同步的问题,它只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作”和“V操作”。
4、管道
  • 管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。
  • 由于管程是一个语言成分,所以管程的互斥访问完全由编译程序在编译时自动添加,无需程序员关注,而且保证正确。

相关文章

  • 19.Java中的线程

    1.进程和线程 2.多线程程序运行模式 3.定义线程的方法 多进程和多线程 多进程:在操作系统中能(同时)运行多个...

  • 19.进程和线程归纳

    1.线程与进程的区别?2.线程和进程的关系、通性3.既然,线程和进程是存在通性的,那么为什么操作系统还要设置线程这...

  • 操作系统知识总结

    操作系统 面向进程和线程学习操作系统。 目录 Chapter 1Chapter 2Chapter 3Chapter...

  • Android中进程和线程

    1,Linux中的进程管理1)进程和线程进程是资源分配的最小单位。线程是操作系统调度执行的最小单位。进程和线程是程...

  • 3、操作系统进程和线程管理(2)

    七、处理器的调度 1、调度系统概念 在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难...

  • Java多线程和线程同步

    1.进程和线程  1.1.进程和线程   1.操作系统中运行多个软件  2.一个运行中的软件可能包含多个进程  3...

  • 1.3 IPC(进程间通信)

    Q:Android中进程和线程的关系?区别? 进程是操作系统分配和管理资源的单位,线程是CPU调度和管理的单位,是...

  • 操作系统基础知识

    进程和线程的区别。(1)进程是操作系统分配和管理资源的单位,线程是CPU调度和管理的单位,是CPU调度的最小单元。...

  • 操作系统教程学习计划(1)

    1 操作系统概论 2 存储管理 3 进程管理 4 进程通信 5 设备管理 6 文件系统 7 windows操作系统...

  • 大三准备BAT的第一周

    操作系统 1.进程和线程作用区别 进程是资源管理基本单位 线程是资源调度基本单位 区别:资源角度,, 2.死锁原因...

网友评论

      本文标题:3、操作系统进程和线程管理(2)

      本文链接:https://www.haomeiwen.com/subject/wkkliqtx.html