操作系统的逻辑结构

一、概述

为提高计算机系统资源的使用效率和方便用户在计算机系统中必须配备操作系统.
操作系统是一个大型的软件,规模庞大、结构复杂。操作系统必须是一个清晰、正确的逻辑结构。
结构设计是软件界权威Dijkstra , E. W . (荷兰人)提出的一种程序设计的方法。

操作系统的逻辑结构
下图既可看成是一个多层虚拟机结构,也可是通常操作系统的逻辑结构。
操作系统的逻辑结构_第1张图片

二、基本硬件结构

2.1 处理机状态及特权指令
(一)处理机的状态
在计算机系统中有两类程序运行:用户程序、系统程序,用户程序、系统程序执行时有不同的权限。
根据对系统资源和机器指令的使用权限,把处理机执行时的工作状态分为核态和用户态,有的操作系统还将系统程序执行时的机器的状态又分为核态和管态。
其权限次序是:核态、管态、用户态。

(一)处理机的状态
核态(Kernel Mode):
CPU执行操作系统程序时所处的状态。
在此状态下允许CPU使用全部资源和全部指令,其中包括一组特权指令(如涉及外设的I/O、改变处理机状态、修改存储保护的指令),实现对系统资源的分配与管理,为用户提供使用外部设备的服务。
管态比核态的权限低,在此状态下允许使用一些用户态下不能使用的资源,但不能使用修改CPU状态的指令。无核态时,管态执行核态的全部功能。

用户态(User Mode):
用户程序执行时CPU所处的状态。在此状态下禁止使用特权指令,不能直接使用系统资源与改变CPU状态,并且只能访问用户程序所在的存储空间。

(一)处理机的状态
当CPU执行用户程序时,CPU机处于用户态,在执行的过程中出现了中断(或自陷)时,系统转去处理与中断有关的事件,这时cpu由用户态转换成核态(或管态),处理完中断后,返回断点继续执行用户程序,这时cpu由核态转换成用户态。
下图是UNIX系统环境下处理机状态转换图,在UNIX系统中,把核态称为核心态
操作系统的逻辑结构_第2张图片
(二)特权指令集
在核态下操作系统可以使用所有指令,包括一组特权指令。
允许和禁止中断;
在进程之间切换处理机;
存取用于内存保护的寄存器;
执行输入和输出操作;
停止一个中央处理机的工作。

在下列情况下,由用户态转向核态:
用户程序要求操作系统的服务,系统调用;
发生一次中断;
在用户程序中产生了一个错误的状态;
在用户程序中企图执行一条特权指令;
从核态转回用户态用一条指令实现,这条指令也是特权指令。一般情况下是中断返回指令。

2.2存储器
主存储器(主存、内存):
中央处理机能直接访问的存储器称为主存储器,用来存放正在或将要执行的系统和用户程序和数据以及程序执行时要求的临时存储空间。
辅存储器(辅存、外存):
中央处理机不能直接访问的存储器,如磁盘、磁带、光盘等,用来存放大量的数据信息。
(一)主存储器的类型
随机访问存储器 RAM(random access memory)
只读存储器ROM(Read-only memory)
在微机中有这两种类型的存储,一种是ROM称为BIOS,用来存放基本的I/O程序。
另一种是RAM,通常所说的64MB、128MB

(二)存储器组织
对操作系统的程序而言,它以一般分为常驻部分和非常驻部分。
操作系统不能将其全部程序模块存放在主存内,而是将其中一部分常驻主存,其他的程序作为文件存放在辅存上,当需要时才调入主存。
若用户程序大于这一空间时,就需要系统来采用相应的处理方法。

(三)存储保护
当几个进程共享主存时必须保持它们各自的完整性,不允许其中任一个进程去改变已经分配给其他进程的主存区域中的内容。
在上、下界防护中的上、下界寄存器和存储键防护中的存储键一般包含在主存寻址硬件之中。

2.3实时时钟
时钟是操作系统运行时必不可少的硬设施,它以固定的时间间隔产生中断信号,这对于实施进程调度、计算系统资源的消耗、实时控制等功能是必不可少的。
在操作系统中需时钟支持的工作有:
分时系统调度;
实时控制;
提供用户和系统所需的绝对时间(日历时钟、墙钟)。

2.4 中断与俘获
(一)中断概念
中断是指某个事件(例如,电源掉电、浮点运算溢出、外部设备传输完成或出错等)发生时,系统中止现运行程序的执行,引出处理事件程序对相应事件进行处理,处理完毕后返回断点继续执行。

中断源:引起中断的事件称中断源,如打印完成中断,其中断源是打印机。

断点:发生中断时正在运行的程序被暂时停止,程序的暂停点称为断点。例如,某程序正在执行0200地址的指令被中断,那么,0200地址就是断点, 在中断返回时就执行0200的下一条指令。

中断响应:是处理机发现有中断请求时,中止现运行程序的执行并自动引出中断处理程序的过程。

中断处理程序:对中断事件进行处理的程序叫中断处理程序。如时钟中断处理、打印机完成中断处理、打印机缺纸中断处理等等。它是操作系统中与硬件最接近的一部分,是操作系统与硬件的接口。
操作系统的逻辑结构_第3张图片
(二)中断类型
1、输入输出中断
它是当外部设备或通道操作正常结束或发生错误时所发生的中断。例如:打印机打印完成、缺纸,读磁盘时相应驱动器中没有磁盘等。
2、外中断
对某个中央处理机而言,它的外部非通道式装置所引起的中断称为外部中断。例如,时钟中断、操作员控制台中断,多处理机系统中CPU到CPU之间的通信中断等。
3、硬件故障中断
当机器发生故障时的中断叫硬件故障中断。例如,电源故障、内存单元奇偶校验错误。
4、程序性中断
在程序执行的过程中,发现了程序性质的错误或出现了某些特定状态而产生的中断。如浮点溢出、用户态下使用了特权指令、内存越界、跟踪等。
5、访管中断
对操作系统提出某种请(需)求时所发生的中断。例如,创建进程,I/O传输、打开文件、关闭文件、文件的读、写等系统调用。
以上五种中断也可归纳成两类,其一是来自处理机外部的事件,称为外部中断,如I/O中断、外中断。另一类是来自处理机的中断,称为内部中断,如硬件故障中断、程序性中断、访管中断。在这类中断有时称俘获(也有称陷入、陷阱、自陷、捕俘等,它的英文名称为 trap,来自早期的UNIX系统)

(三)中断进入
对中断请求的整个处理过程称为中断处理,它是由软、硬件结合形成的一套中断机构实施的。在本教材中叫中断进入。
1、保护中断现场和恢复现场
现场:是被中断断点时刻处理机的各种信息,包括:
程序状态字;
各寄存器的值;
打开文件的状态
这些现场信息的多少根据具体系统的处理方法不同差别很大,例如UNIX系统,在中断返回后有可能进行进程调度,那么,现场信息除包括各寄存器的值,程序状态字,打开文件的状态外,还有保证被中断的进程重新被调度时恢复运行环境指针和栈指针

保护现场:在进入中断时将现场信息保存到指定的位置,一般情况是保留到系统栈中。

恢复现场:在中断处理完成后,返回断点之前将保留在栈中的断点的现场信息恢复,使被中断的程序能继续正确地执行。

2、程序状态字
在计算机系统中有一个寄存器(有的系统有几个寄存器)用来存放程序状态字,称为PS。
其中包括:
指令计数器(PC Program counter,instruction counter)
程序现应执行哪条指令,当前指令执行的情况
机器处于何种状态(核态、用户态)
程序执行时应屏蔽哪些中断(处理机运行级)
寻址方式、编址、保护键

例1:PDP-11系列机的PS:
PC是另一个寄存器
操作系统的逻辑结构_第4张图片
3、中断响应
中断响应:是处理机发现有中断请求时,中止现运行程序的执行,并自动引出中断处理程序的过程。中断响应的实质是交换指令执行地址和处理机的状态,以达到如下目的:
(1)保留程序断点及有关信息;
(2)自动转入相应的中断处理程序执行。

4、中断向量
具有向量机制的计算机的中断向量包括两个字:
中断处理程序的入口地址
中断处理程序的程序状态字

(四)中断处理
中断处理和自陷处理的过程是类似的,当硬件完成了中断进入后,转到中断处理程序,进入软件中断处理过程。这个过程主要有如下三项工作:
(1)保护现场和传递参数;
(2)执行相应的中断(或自陷)处理程序;
(3)恢复和退出。
注:在中断进入时由硬件保护了被中断程序的PC和PS,在中断处理中保护各寄存器的值和其它状态信息。
操作系统的逻辑结构_第5张图片
UNIX系统的中断处理程序
1.中断、自陷处理总控程序
中断处理和自陷处理的过程是类似的。当硬件完成了中断进入过程后,由相应的中断处理程序得到控制权,进入了软件的中断处理过程。
操作系统的逻辑结构_第6张图片
中断处理类别:硬件故障中断的处理、程序性中断事件的处理、外部中断事件的处理、外部设备中断的处理

  1. 时钟中断处理程序
    clock(dev,sp,r1,nps,r0,pc,ps);

    调整日历时钟
    处理与proc和user结构有关的时间项
    p_time 进程图象在内存(交换区)驻留时间
    p_cpu 进程占用CPU程度
    u_utime 进程在用户态累计占用CPU时间
    u_stime 进程在核心态累计占用CPU时间
    p_pri 进程优先数

计算程序统计直方图
其它 唤醒定时睡眠的进程

三、系统核

(一)处理机分派程序
(二)进程通信原语
(三)进程控制原语
(四)初级中断处理

四、核外各层

(一)存储管理层
(二)I/O处理层
(三)文件存取层
(四)调度和资源分配

五、UNIX系统核心结构

1、 进程控制子系统
进程同步、进程间通信、进程调度和存储管理
2.文件子系统
文件存储空间管理、文件操作及存取控制、高速缓冲机制
操作系统的逻辑结构_第7张图片

你可能感兴趣的:(操作系统)