作业调度器和cpu调度器有何区别
发布网友
发布时间:2022-04-22 07:44
我来回答
共2个回答
热心网友
时间:2022-04-10 01:58
作业调度器(job
scheler)是一个使公司能够调度并且,在某些情况下,能管理计算机“批”作业(执行单位,例如一个职工工资表程序的运行)的程序。
作业调度器(job
scheler)是一个使公司能够调度并且,在某些情况下,能管理计算机“批”作业(执行单位,例如一个职工工资表程序的运行)的程序。作业调度器可以自动地通过处理准备好的作业控制语言语句或通过和一个人类操作者进行同等作用的交互来初始化和管理作业。现在的作业调度器一般都提供一个图形化的用户接口,以及在分布式计算机网络中对所有的操作提供一个单点控制。
在作业调度器(job
scheler)中可以找到的一些特征包括:
对作业以及完成通告的持续自动的监控
事件驱动的作业的调度
性能监控
报告调度
多处理器调度(Multiple-Processor
Scheling):如果多个CPU,则负载分配(load
sharing)。其中主要讨论处理器功能相同(或同构)的系统,可以将任何处理器用于运行队列内的任何进程。
多处理器调度方法:在一个多处理器中,CPU调度的一种方法是让一个处理器(主服务器)处理所有的调度决定、I/O处理以及其他系统活动,其他的处理器只执行用户代码。这种非对称处理(asymmetric
multiprocessing)方法更为简单,因为只有一个处理器访问系统数据结构,减轻了数据共享的需要。另一种方法是使用对称多处理(symmetric
multiprocessing,SMP)方法,即每个处理器自我调度。所有进程可能处于一个共同的就绪队列中,或每个处理器都有自己的私有就绪队列。无论如何,调度通过每个处理器检查共同就绪队列并选择一个进程来执行。如果多个处理器试图访问和更新一个共同数据结构,那么每个处理器必须仔编程:必须确保两个处理器不能选择同一进程,且进程不会从队列中丢失。
处理器亲和性:进程移到其他处理器上时,被迁移的第一个处理器的缓存中的内容必须为无效,而将要迁移的第二个处理器上的缓存需重新构建。由于使缓存无效或重构的代价高,因而SMP努力的使一个进程在同一个处理器上运行,这被称为处理器亲和性,即一个进程需有一种对其他运行所在的处理器的亲和性。软亲和性(soft
affinity,操作系统具有设法让一个进程保持在同一个处理器上运行的策略,但不能做任何保证)—硬亲和性(hard
affinity,允许进程指定它不允许移至其他处理器)。
负载平衡(load
balancing):设法将工作负载平均地分配到SMP系统中的所有处理器上。通常只是对那些拥有自己私有的可执行的进程的处理器而言是必要的。两种方法:push
migration(一个特定的任务周期性地检查每个处理器上的负载,如果发现不平衡,即通过将进程从超载处理器移到(或推送到)空闲或不太忙的处理器,从而平均地分配负载,当空闲处理器从一个忙的处理器上推送pull一个等待任务时,发生pull
migration)和pull
migration。会抵消处理器亲和性。达到限额。
对称多线程:提供多个逻辑(而非物理的)处理器来运行几个线程,称为对称多线程(SMT),或超线程(hyperthreading)技术。即使系统仅有单处理器,每个逻辑处理器都有它自己的架构状态,包括通用目的和机器状态寄存器。每个逻辑处理器负责自己的中断处理,这意味着中断被送到并被逻辑处理器所处理,每个逻辑处理器共享其物理处理器的资源,如缓存或总线。SMT是硬件而非软件提供的。硬件应该提供每个逻辑处理器的架构状态的表示以及中断处理方法。调度程序首先设法把不同线程分别调度到每个物理处理器上,而不是调度到同一个物理处理器的不同逻辑处理器上。
线程调度:用户线程---内核线程
系统调度的是内核线程,而不是进程。用户线程由线程库管理,内核并不了解它们。用户线程最终必须映射到相应的内核级线程。轻量级线程(LWP)。
竞争范围:用户线程和内核线程的区别之一是它们是如何被调度的。在执行多对一模型和多对多模型系统上,线程库调度用户级线程到一个有效的LWP上运行,这被称为进程竞争范围(process-contention
scope,PCS)方法,因为CPU竞争发生在属于相同进程的线程之间。为了决定调度哪个内核线程到CPU,内核采用系统竞争范围(system-contention
scope,SCS)方法来进行,竞争CPU发生在系统所有线程中,采用一对一的模型的系统,调度仅使用SCS方法。
PCS是根据优先级完成的。
Pthread调度:在线程生成过程中允许指定是PCS或SCS的。
热心网友
时间:2022-04-10 03:16
处理机调度可分为三个级别,分别是高级调度、中级调度和低级调度。
高级调度又称作业调度,作业就是用户程序及其所需的数据和命令的集合,作业管理就是对作业的执行情况进行系统管理的程序的集合。作业调度程序的主要功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法来选取作业。
引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量,使得暂时不运行的进程从内存对换到外存上。
低级调度又称进程调度,其主要功能是根据一定的算法将cpu分派给就绪队列中的一个进程。进程调度是操作系统中最基本的一种调度,其调度策略的优劣直接影响整个系统的性能。