操作系统一般属于多用户多任务操作系统,即允许多个用户通过各自的终端使用同一台机器,当多个用户同时请求使用系统资源时,会出现资源竞争可能导致机器死机。用户请求管理者是指计算机系统中对用户请求进行管理的程序。用户请求管理者对用户请求进行合理分配,保证计算机系统高效地运行。
简介操作系统一般允许多个用户同时请求使用同一台机器,但是机器一次只能运行一个用户请求,为了使机器能正常运行。这是操作系统需要一个用户请求管理程序,即用户请求管理者对用户的请求进行管理,依据用户请求的性质,赋予用户请求不同的等级(优先级)。既使用户请求能得到系统及时响应,也能使系统处理更多的用户请求。
多用户多任务操作系统操作系统是管理硬件资源、控制程序运行、 改善人机界面和为应用软件提供支持的一种系统软件。操作系统通常是最靠近硬件的一层软件,它把硬件裸机改造成为功能更加完善的一台虚机器,使得计算机系统的使用和管理更加方便,计算机资源的利用效率更高,上层的应用程序可以获得远较硬件所能提供的更多的功能上的支持。多用户多任务操作系统的含义是,允许多个用户使用同一台机器通过各自的终端,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。在大、中和小型机中所配置的大多是多用户多任务操作系统,而在 32 位微机上也有不少是配置的多用户多任务操作系统,其中最有代表性的是UNIX OS。
准则面向用户的准则这是为了满足用户的需求所应遵循的一些准则。其中,比较重要的几点如下:
周转时间短。通常把周转时间的长短作为评价批处理系统的性能、选择作业调度方式与算法的重要准则之一。其中周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。它包括四部分时间: 作业在外存后备队列上等待( 作业) 调度的时间, 进程在就绪队列上等待进程调度的时间, 进程在CPU上执行的时间, 以及进程等待I/O操作完成的时间。其中后三项在一个作业的整个处理过程中可能会发生多次。对每个用户来说,都希望自己作业的周转时间最短。但作为计算机系统的管理者,则总是希望能使平均周转时间最短,这不仅会有效地提高系统资源的利用率,而且还可使大多数用户都感到满意。响应时间快。常把响应时间的长短用来评价分时系统的性能,这是选择分时系统中进程调度算法的重要准则之一。其中响应时间,是从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间,或者说,指导屏幕上显示出结果为止的一段时间间隔。它包括三部分时间:从键盘输入的请求信息传送到处理机的时间,处理机对请求信息进行处理的时间,以及将所形成的响应信息回送到终端显示器的时间。
截止时间的保证。这是评价实时系统性能的重要指标,因而是选择实时调度算法的重要准则。所谓截止时间,是指某任务必须开始执行的最迟时间,或必须完成的最迟时间。对于严格的实时系统,其调度方式和调度算法必须保证这一点,否则将可能造成难以预测的后果。
优先权准则。在批处理、分时和实时系统中选择调度算法时,都可以遵循优先权原则,以便让某些紧急的作业能得到及时处理。在要求严格的场合,往往还须选择抢占式调度方式,才能保证紧急作业得到及时处理1。
面向系统的准则这是为了满足系统要求而应遵循的一些准则。其中,较重要的几点如下:系统吞吐量高。这是用于评价批处理系统性能的另一个重要指标,因而是选择批处理作业调度的重要准则。由于吞吐量是指在单位时间内系统所完成的作业数,因而它与批处理作业的平均长度具有密切关系。对于大型作业,一般吞吐量约为每小时一道作业;对于中、小型作业,其吞吐量则可能达到数十道作业之多。作业调度的方式和算法对吞吐量的大小也将产生较大影响。事实上,对于同一批作业,若采用了较好的调度方式和算法,则可显著地提高系统的吞吐量。处理机的利用率好。对于大、中型多用户系统, 由于CPU分昂贵,致使处理机的利用率成为衡量系统性能的十分重要的指标;而调度方式和算法对处理机的利用率起着十分重要的作用。在实际系统中,CPU一般在40% 系统负荷较轻) 到90%在大、中型系统中,在选择调度方式和算法时,应考虑到这一准则。但对于单用户微机或某些实时系统, 此准则就不那么重要了。
各类资源的平衡利用。在大、中型系统中,不仅要使处理机的利用率高,而且还应能有效地利用其他各类资源,如内存、外存和I/O。选择适当的调度方式和算法可以保持系统中各类资源都处于忙碌状态。但对于微型机和某些实时系统而言,该准则并不重要。
组成用户请求管理这由一系列组件组成,当然这些组件是为了系统更好地完成用户的请求,提供处理用户请求的灵活性而定义的。它们之间各司其职完成调度任务。
(1)作业:作业将调度与程序结合起来,完成在某个时间间隔或者某个时间段内的任务,这个任务可以是PL/SQL代码,也可以是可执行文件或者Shell脚本。具体要执行的任务与调度结合,可以在指定的时间开始执行任务以及设置任务执行的频率。
(2)调度:调度是纯粹的时间概念,它告诉任务执行的开始时间,以及任务执行的频率,一个调度可以触发多个具体任务。
(3)程序:程序是具体完成某项任务的单元,包括程序名、类型以及具体动作,程序类型可以是PL/SQL代码块、存储过程或者二进制可执行脚本。
(4)事件:Schedule支持使用事件触发启动具体作业运行,事件使用Schedule的Oracle流高级队列特性。一个事件由某个进程或程序在具体动作发生时发送消息来完成。
(5)链:链将多个程序连接起来,这样一个程序的运行有可能以另一个程序的运行为基础,或者基于一个链来启动作业。
优先级优先级(priority)是一种约定,优先级高的先做,优先级低的后做。优先级是计算机分时操作系统在处理多个作业程序时,决定各个作业程序接受系统资源的优先等级的参数。各个作业在输入计算机之前,都要按一定的要求对它指定优先级。例如要按程序的性质或其长度,或是按作业的来源等,指定其优先级。然后计算机根据各作业程序优先级的高低,来决定处理各程序的先后次序。甚至在处理过程中,还能允许优先级较高的程序中断优先级较低的程序。进程是有优先级的。如果即将被运行的进程的优先级比正在运行的进程的优先级高,则系统可以强行剥夺正在运行的进程的CPU,让优先级高的进程先运行2。
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学