操作系统的主要任务,是为多道程序的运行提供良好的运行环境。操作系统应具有这样几方面的功能:处理机管理,存储器管理,设备管理和文件管理。此外还需提供面向用户的接口以及面向网络的服务。
(一)处理机管理功能
1、处理机管理功能的本质:在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位,因而对处理机的管理 可归结为对进程的管理;处理机管理的主要功能是创建和撤消进程(线程),对诸进程(线程)的运行进行协调,实现进 程(线 程) 之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。
2、进程控制:为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。
3、进程同步
(1)进程同步的作用:进程同步的主要任务是为多个进程(含线程)的运行进行协调。
(2)进程同步的两种协调方式
1)进程互斥方式:诸进程(线程)在对临界资源进行访问时,应采用互斥方式。最简单的用于实现进程互斥的机
制是为每一个临界资源配置一把锁 W,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁关上时,则禁止 进程(线程)访问该临界资源。
2)进程同步方式:在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。实现进 程同步的最常用的机制则是信号量机制。
4、进程通信
进程通信的任务就是用来实现在相互合作的进程之间的信息交换。当相互合作的进程(线程)处于同一计算机系统 时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(Message)挂到目标进程的消息队列 上,以后由目。标进程利用接收命令从其消息队列中取出消息。
5、调度
调度分类:作业调度、进程调度
作业调度:作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先 是分配内存)。在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的 算法将它们插入就绪队列。
进程调度:进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运 行现场,使进程投入执行。
(二)存储器管理功能
1、内存分配
(1)作用:为每道程序分配内存空间;
(2)两种内存分配方式:
动态内存分配:每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内 存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。
静态内存分配:每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请 新的内存空间,也不允许作业在内存中“移动”。
(3)内存分配机制应具有的结构和功能:
内存分配数据结构、内存分配功能、内存回收功能。
2、内存保护
(1)主要作用:确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;绝不允许用户程序访问操作系统的程 序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。
(2)内存保护机制:设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。
3、地址映射
程序的逻辑地址通常从0开始,而物理地址不从0开始,因此需要一个映射转换过程。
4、内存扩充
(1)借助于虚拟存储技术,从逻辑上去扩充内存容量。
(2)为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:
1)请求调入功能:允许在装入一部分用户程序和数据的情况下,便能启动该程序运行。在程序运行过程中,若发 现要继续运行时所需的程序和数据尚未装入内存,可向 OS 发出请求,由 OS 从磁盘中将所需部分调入内存,以便 继续运行。
2)置换功能:若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时 不用的程序和数据调至盘上,以腾出内存空间,然后再将所需调入的部分装入内存。