版权归原作者所有,如有侵权,请联系我们

[科普中国]-执行控制功能

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

简介

执行控制功能是指系统或程序为了使某项任务正常运行,实施一些控制策略。在系统很多地方多需要执行控制功能。例如,当CPU为一个I/O设备服务时,它允许操作系统中的设备驱动软件与设备交互作用,并执行控制功能1。执行控制功能一般可以分为执行系统控制功能和执行应用程序控制功能。

执行系统控制功能在操作系统中有很多地方需要执行系统控制功能,以下是一些常见的需要执行系统控制地方:

进程控制在传统的多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。当进程运行结束时,立即撤消该进程,以便能及时回收该进程所占用的各类资源。进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。在现代 OS 中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。

调度在后备队列上等待的每个作业都需经过调度才能执行。在传统的操作系统中,包括作业调度和进程调度两步。

(1) 作业调度。作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先是分配内存)。在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就绪队列。

(2) 进程调度。 进程调度的任务是从进程的就绪队列中, 按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。值得提出的是,在多线程 OS中,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它。

内存保护内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。

为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。如果这种检查完全用软件实现,则每执行一条指令,便须增加若干条指令去进行越界检查,这将显著降低程序的运行速度。因此,越界检查都由硬件实现。当然,对发生越界后的处理,还须与软件配合来完成。

设备分配设备分配的基本任务是根据用户进程的 I/O 请求、 系统的现有资源情况以及按照某种设备的分配策略,为之分配其所需的设备。如果在 I/O 设备和 CPU 之间还存在着设备控制器和 I/O 通道时,还须为分配出去的设备分配相应的控制器和通道。

为了实现设备分配,系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器的标识符和状态。根据这些表格可以了解指定设备当前是否可用,是否忙碌,以供进行设备分配时参考。在进行设备分配时,应针对不同的设备类型而采用不同的设备分配方式。 对于独占设备(临界资源)的分配, 还应考虑到该设备被分配出去后系统是否安全。在设备使用完后,应立即由系统回收。

应用程序控制功能应用程序控制功能主要是控制用户程序的执行。一个用户将他要解决的问题用某一种程序设计语言编写成一个程序后就连同对程序的执行的要求输入到计算机内,操作系统就根据要求控制用户程序的执行直到结束。操作系统控制用户程序的执行主要有以下一些内容:调入相应的编译程序将某种设计语言编写的源程序编译成计算机可执行的目标程序,分配内存资源将程序调入到内存并启动,按用户指定的要求处理执行中出现的各种事件以及操作员联系的请示有关意外事件的处理等2。