操作系统学习笔记(2) 操作系统的运行环境

任何程序在计算机上运行都需要一定的运行环境,操作系统当然也不例外。操作系统的运行环境主要包括计算机系统的硬件环境和由其它系统软件形成的软件环境。

在学习操作系统的过程中,必须要了解操作系统与硬件环境交互作用的具体细节,即中央处理器、存储系统、中断机制、I/O技术和时钟等方面的基本原理。这一章的内容和概念都比较多,但只要了解中央处理器、存储系统、中断机制、I/O技术和时钟这几块的基本原理,并能够进一步分析和理解它们之间的连带关系,相信应该有个较深的把握。

下面将分别叙述:

 

Ø        计算机系统的层次结构

让我们把计算机系统看作一个层次式结构,计算机系统中的所有子系统都可以包括在硬件(子)系统软件(子)系统两个层次中。

 

硬件子系统

硬件子系统

中央处理单元(CPU

主存储器

外存储器

输入输出设备

(键盘/鼠标/显示器/打印机…)

 

Ø        CPU状态(管态和目态)及状态转换

首先对CPU基本工作原理进行了解,然后我们将重点讨论CPU状态(管态和目态)及状态转换

 

1.处理器(CPU)一般由运算器、控制器、一系列的寄存器和高速缓存组成

运算器:实现指令中的算术和逻辑运算,是计算机计算的核心。

控制器:负责控制程序运行的流程,包括取指令,维护CPU状态,CPU与内存的交互等。

寄存器:CPU本身提供一定存储能力,它的速度比主存储器快得多,用于CPU执行指令过程中暂存数据,地址及指令信息。通常有两类寄存器:用户可用寄存器控制寄存器。用户寄存器对所有程序都是可用的,包括数据寄存器(Data Register地址寄存器(Address Register以及条件码寄存器。控制寄存器包括:程序计数器(PC:Program Counter,它记录了将要取出指令的地址;指令寄存器(IR:Instruction Register,包令了最近取出的指令;程序状态字(PSW:Program Status Word,它记录了处理器的运行模式信息。

 

2.指令执行的基本过程

处理器每次从存储器中读取一条指令,并在取指令完成后,根据指令类别自动将程序计数器值变成下一条指令的地址,然后,取到的指令被放入指令寄存器中,处理器于是解释并执行这条指令。一个这样的单条指令处理过程称为一个指令周期,程序的执行就是不断取指令和执行指令的指令周期组成的。

 

3CPU状态

现在多任务的操作系统通常不允许用户使用计算机系统中的全部指令,操作系统可以执行某些特权指令,而用户就只能使用非特权指令,如果用户在执行应用程序过程中要使用非特权指令,则必须将CPU状态进行切换到管态(操作系统管理程序运行的状态:具有较高特权级别),一般情况下用户都处于目态(较低特权级别)。要从目态到管态进行转换唯一的途径就是通过中断后文会讲到),中断响应时交换中断向量,新的中断向量中的CPU程序状态字(PSW)寄存器中的工作状态位标志设为管态,而当系统启动时,CPU的初始状态为管态,装入操作系统,当操作系统退出执行时,让用户程序在目态执行。

 

举一个实例,Intel公司的x86系列处理器(包括8038680486PentiumPentium ProPentiumIIPentiumIII以及现在的PentiumIV处理器),提供4特权级别(Privilege Levels(特权环:R0R1R2R3。较大的数字表示较低的特权。R0运行那些最关键的代码,比如操作系统的内核代码;较外部的特权环运行其它一些相对来讲不是关键的代码。

 

Ø        存储系统

任何程序、数据必须装入主存储器中后,CPU才能对它们进行操作,因此操作系统本身也要存放在主存储器中运行。

1.存储器的基本知识

一般的存储器分为读写型(RAM:Random Access Memory只读型(ROM:Read Only Memory存储器,此外,为简化对存储器的分配和管理,存储器会分成,在为用户程序分配主存空间时,以块为最小单位,这样有时块也被称为物理页(Page,块的大小随机器而异,512B1KB4KB8KB的都有。(B:Byte计算机一个字节,一个字节=8个二进制位(bit:比特))

 

2.存储器的层次结构

容量、速度和成本的匹配是计算机存储系统设计时考虑的主要问题,典型的层次化的存储体系结构图:

 

 

可以看到,顶层的较小、较贵但速度很快的存储设备由底层较大、较便宜的存储设备作后盾,在整体上通过对访问频率的控制来提高系统的性能(大部分情况下,访问频率从高低依次是寄存器,高速缓存,主存储器)。

我们知道,在程序设计技术中很注重程序代码的复用,一旦进入这样的程序段代码,就会重复存取相同的指令集合,在存储器中对数据的存取也同样存在类似的局部性现象,代码和数据的集合在一段时间内会比较稳定的保持在一个存储器的局部区域中。

 

3.存储保护

对用户程序和操作系统所在存储器中的数据信息必须加以保护,否则,将造成十分严重的后果。存储保护主要通过界址寄存器存储健这两种方式对存储块进行保护。

 

Ø        中断系统

中断是指CPU对系统中或系统外发生的异步事件的响应,这个名称来源于:当发生某个异步事件后,中断了处理器对当前程序的执行,而转去处理异步事件(中断处理程序)。举个浅显的例子,我正在看书,此时电话响了(异步事件),于是用书签记住正在看的那一页(中断点),再去接电话(响应异步事件并进行处理),接完电话后再从被打断的那页继续向下看(返回原程序的中断点执行)。

 

1.中断的作用:中断的能够充分发挥处理器的使用效率和实时能力:输入输出设备通过中断方式同CPU通信,报告其完成CPU所要求的数据传输情况和问题,使CPU能立即运行中断处理程序,同时,还免除了CPU不断地查询和等待,为什么呢?要知道,早期的CPU为了关注各种输入/输出设备的I/O状态,需要耗费大量的时间轮询以获得这些信息,现在只需要由I/O通道或直接存储器访问(DMA)技术代替了CPU来完成这些事情后文会更具体讲到)。

 

2.几种典型的中断:I/O中断、时钟中断、硬件故障中断、程序性中断、系统服务请求(属于自愿性中断,通常是由访问管态的专用指令来激发,例如:x86处理器的int指令中断。一般在管态进行,自愿性中断是运行程序有意安排执行的,另外一种就是强迫性中断,它是正在运行的程序不期望发生的,典型的有程序性中断:算术溢出、被零除、目态程序试图执行非法的管态指令,访问地址越界等)

 

3.中断系统:是计算机硬件和软件相互配合,相互渗透而使得计算机系统充分发挥能力的计算模式,中断系统分为硬件中断装置和软件中断装置,硬件中断装置负责捕获中断源发出的中断请求,并以一定方式响应中断源,然后将控制权转移至特定的中断处理程序,中断处理程序针对中断事件执行一系列相应的操作。

中断系统对中断信号的接收、响应和处理过程,简要归纳为:接收和响应中断,保护中断点现场,分析中断向量,调用中断处理程序,中断处理结束恢复现场,原有程序继续执行。

 

4.中断优先级、中断屏蔽和中断嵌套:现在的微处理器都提供多级中断系统,从硬件上看,表现为有多根中断请求线从不同设备连接到中断逻辑线路上。连接在不同中断请求线上的中断信号,表示它们具有不同的中断级别,中断级别代表了该中断信号被优先处理的特权级别,中断级别的划分按其紧急程度和重性性进行划分,例如,掉电中断信号与其它中断信号相比,掉电中断信号具有非常高的优先级别,此外,当有多个中断信号同时到达,有两种办法可以划分优先级:给每个设备安排因定的优先顺序,或采用轮转法:用一个表格,依次轮转响应中断信号。

中断屏蔽用于允许或禁止中断系统对某些类别中断的响应,我们知道在程序状态字(PSW)中设计有中断屏蔽位,设置这个屏蔽位以标识那些被屏蔽的中断类或中断。注意:有些中断信号是不能屏蔽的,如机器故障中断和掉电、内存奇偶校验错等。

有时,我们会遇到在处理一个中断时,将引起多个中断处理问题,比较好的处理办法是中断嵌套技术:考虑到中断优先级的问题,在中断嵌套中允许较高优先级的打断较低优先级的中断。举个例子,在系统中存在总线、硬盘、扫描仪三个设备同时操作时的处理情况。它们的中断优先级分别为953,数字较大的具有较高的优先级。扫描动作处理(扫描仪的I/O中断)从某时间开始,它的处理时间较长,其间发生了一次网络数据传送请求(总线请求中断),此时,需要先对扫描仪动作处理的中断点现场的一些信息进行压栈处理,完成后再处理网络通信的总线服务,在处理网络通信的总线服务时,用户又提交了一个硬盘存储文件的请求,由于硬盘的优先级不如总线的高,被推迟,且硬盘的优先级比扫描仪的高,在完成网络通信的总线服务后,先执行硬盘中断处理,完成后才回到对扫描仪的中断处理程序上。

 

Ø        I/O结构、通道、直接存储器存取(DMA)技术、缓冲技术

在前文叙述中断的作用时涉及到I/O通道(替代CPU的中断轮询,提高CPU利用率),其作用也作了简要说明。在这里,有必要强调的是DMA技术:当CPU需要读写一整块数据的时候,它给DMA控制单元发送一条命令,命令中含有I/O设备的地址、开始读或写的主存地址、数据长度等信息,而具体的数据传送就由DMA控制器管理,CPU又可以去处理其它事了(增强了CPU并行处理能力,同时提高了处理I/O的效能)。缓冲技术是缓解CPU处理数据速度与设备传输数据速度不匹配的一种数据暂存技术。

 

Ø        时钟

计算机系统中的时钟分为硬件时钟和软件时钟,以及绝对时钟和相对时钟。时钟可以防止系统陷入死循环,实现作业按时间片轮转运行,给出正确的时间信号,定时唤醒事件确定时间执行的事件等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值