任何程序在计算机上运行都需要一定的运行环境,操作系统当然也不例外。操作系统的运行环境主要包括计算机系统的硬件环境和由其它系统软件形成的软件环境。
在学习操作系统的过程中,必须要了解操作系统与硬件环境交互作用的具体细节,即中央处理器、存储系统、中断机制、I/O技术和时钟等方面的基本原理。这一章的内容和概念都比较多,但只要了解中央处理器、存储系统、中断机制、I/O技术和时钟这几块的基本原理,并能够进一步分析和理解它们之间的连带关系,相信应该有个较深的把握。
下面将分别叙述:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Ø 计算机系统的层次结构
让我们把计算机系统看作一个层次式结构,计算机系统中的所有子系统都可以包括在硬件(子)系统和软件(子)系统两个层次中。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><group id="_x0000_s1055" style="MARGIN-TOP: 27.2pt; Z-INDEX: 3; LEFT: 0px; MARGIN-LEFT: -9pt; WIDTH: 180.1pt; POSITION: absolute; HEIGHT: 210.6pt; TEXT-ALIGN: left" coordsize="3602,4212" coordorigin="1620,6040"><rect id="_x0000_s1056" style="LEFT: 1623px; WIDTH: 1438px; POSITION: absolute; TOP: 6040px; HEIGHT: 468px; mso-position-horizontal: absolute; mso-position-vertical: absolute"><textbox style="mso-next-textbox: #_x0000_s1056"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
<div>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size="2">硬件子系统</font></span></p>
</div>
</td></tr></tbody></table></textbox></rect><rect id="_x0000_s1057" style="LEFT: 1620px; WIDTH: 1442px; POSITION: absolute; TOP: 6040px; HEIGHT: 468px; mso-position-horizontal: absolute; mso-position-vertical: absolute"><textbox style="mso-next-textbox: #_x0000_s1057"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
<div>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><font size="2">硬件子系统</font></span></p>
</div>
</td></tr></tbody></table></textbox></rect><rect id="_x0000_s1058" style="LEFT: 2522px; WIDTH: 2700px; POSITION: absolute; TOP: 7132px; HEIGHT: 468px; mso-position-horizontal: absolute; mso-position-vertical: absolute"><textbox style="mso-next-textbox: #_x0000_s1058"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
<div>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中央处理单元(</span><span lang="EN-US" style="FONT-SIZE: 9pt">CPU</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">)</span><span lang="EN-US" style="FONT-SIZE: 9pt"><p></p></span></font></p>
</div>
</td></tr></tbody></table></textbox></rect><rect id="_x0000_s1059" style="LEFT: 2522px; WIDTH: 2700px; POSITION: absolute; TOP: 7912px; HEIGHT: 468px; mso-position-horizontal: absolute; mso-position-vertical: absolute"><textbox style="mso-next-textbox: #_x0000_s1059"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
<div>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主存储器</span><span lang="EN-US" style="FONT-SIZE: 9pt"><p></p></span></font></p>
</div>
</td></tr></tbody></table></textbox></rect><rect id="_x0000_s1060" style="LEFT: 2522px; WIDTH: 2700px; POSITION: absolute; TOP: 8536px; HEIGHT: 468px; mso-position-horizontal: absolute; mso-position-vertical: absolute"><textbox style="mso-next-textbox: #_x0000_s1060"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
<div>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">外存储器</span><span lang="EN-US" style="FONT-SIZE: 9pt"><p></p></span></font></p>
</div>
</td></tr></tbody></table></textbox></rect><rect id="_x0000_s1061" style="LEFT: 2522px; WIDTH: 2700px; POSITION: absolute; TOP: 9316px; HEIGHT: 936px; mso-position-horizontal: absolute; mso-position-vertical: absolute"><textbox style="mso-next-textbox: #_x0000_s1061"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
<div>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输入输出设备</span><span lang="EN-US" style="FONT-SIZE: 9pt"><p></p></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span lang="EN-US" style="FONT-SIZE: 9pt">(</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">键盘</span><span lang="EN-US" style="FONT-SIZE: 9pt">/</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鼠标</span><span lang="EN-US" style="FONT-SIZE: 9pt">/</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">显示器</span><span lang="EN-US" style="FONT-SIZE: 9pt">/</span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打印机</span><span lang="EN-US" style="FONT-SIZE: 9pt">…)<p></p></span></font></p>
</div>
</td></tr></tbody></table></textbox></rect><line id="_x0000_s1062" style="POSITION: absolute; mso-position-horizontal: absolute; mso-position-vertical: absolute" coordsize="21600,21600" to="2163,9784" from="2162,6508"><font size="2"></font></line><line id="_x0000_s1063" style="POSITION: absolute; mso-position-horizontal: absolute; mso-position-vertical: absolute" coordsize="21600,21600" to="2522,7445" from="2162,7444"><font size="2"></font></line><line id="_x0000_s1064" style="POSITION: absolute; mso-position-horizontal: absolute; mso-position-vertical: absolute" coordsize="21600,21600" to="2522,8069" from="2162,8068"><font size="2"></font></line><line id="_x0000_s1065" style="POSITION: absolute; mso-position-horizontal: absolute; mso-position-vertical: absolute" coordsize="21600,21600" to="2522,8849" from="2162,8848"><font size="2"></font></line><line id="_x0000_s1066" style="POSITION: absolute; mso-position-horizontal: absolute; mso-position-vertical: absolute" coordsize="21600,21600" to="2522,9785" from="2162,9784"><font size="2"></font></line></group>
Ø CPU状态(管态和目态)及状态转换
首先对CPU基本工作原理进行了解,然后我们将重点讨论CPU状态(管态和目态)及状态转换。
1.处理器(CPU)一般由运算器、控制器、一系列的寄存器和高速缓存组成
运算器:实现指令中的算术和逻辑运算,是计算机计算的核心。
控制器:负责控制程序运行的流程,包括取指令,维护CPU状态,CPU与内存的交互等。
寄存器:为CPU本身提供一定存储能力,它的速度比主存储器快得多,用于CPU执行指令过程中暂存数据,地址及指令信息。通常有两类寄存器:用户可用寄存器和控制寄存器。用户寄存器对所有程序都是可用的,包括数据寄存器(Data Register)、地址寄存器(Address Register)以及条件码寄存器。控制寄存器包括:程序计数器(PC:Program Counter),它记录了将要取出指令的地址;指令寄存器(IR:Instruction Register),包令了最近取出的指令;程序状态字(PSW:Program Status Word),它记录了处理器的运行模式信息。
2.指令执行的基本过程
处理器每次从存储器中读取一条指令,并在取指令完成后,根据指令类别自动将程序计数器值变成下一条指令的地址,然后,取到的指令被放入指令寄存器中,处理器于是解释并执行这条指令。一个这样的单条指令处理过程称为一个指令周期,程序的执行就是不断取指令和执行指令的指令周期组成的。
3.CPU状态
现在多任务的操作系统通常不允许用户使用计算机系统中的全部指令,操作系统可以执行某些特权指令,而用户就只能使用非特权指令,如果用户在执行应用程序过程中要使用非特权指令,则必须将CPU状态进行切换到管态(操作系统管理程序运行的状态:具有较高特权级别),一般情况下用户都处于目态(较低特权级别)。要从目态到管态进行转换唯一的途径就是通过中断(后文会讲到),中断响应时交换中断向量,新的中断向量中的CPU程序状态字(PSW)寄存器中的工作状态位标志设为管态,而当系统启动时,CPU的初始状态为管态,装入操作系统,当操作系统退出执行时,让用户程序在目态执行。
举一个实例,Intel公司的x86系列处理器(包括80386、80486、Pentium、Pentium Pro、PentiumII、PentiumIII以及现在的PentiumIV处理器),提供4个特权级别(Privilege Levels)(特权环:R0、R1、R2和R3)。较大的数字表示较低的特权。R0运行那些最关键的代码,比如操作系统的内核代码;较外部的特权环运行其它一些相对来讲不是关键的代码。
Ø 存储系统
任何程序、数据必须装入主存储器中后,CPU才能对它们进行操作,因此操作系统本身也要存放在主存储器中运行。
1.存储器的基本知识
一般的存储器分为读写型(RAM:Random Access Memory)和只读型(ROM:Read Only Memory)存储器,此外,为简化对存储器的分配和管理,存储器会分成块,在为用户程序分配主存空间时,以块为最小单位,这样有时块也被称为物理页(Page),块的大小随机器而异,512B、1KB、4KB、8KB的都有。(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)中设计有中断屏蔽位,设置这个屏蔽位以标识那些被屏蔽的中断类或中断。注意:有些中断信号是不能屏蔽的,如机器故障中断和掉电、内存奇偶校验错等。
有时,我们会遇到在处理一个中断时,将引起多个中断处理问题,比较好的处理办法是中断嵌套技术:考虑到中断优先级的问题,在中断嵌套中允许较高优先级的打断较低优先级的中断。举个例子,在系统中存在总线、硬盘、扫描仪三个设备同时操作时的处理情况。它们的中断优先级分别为9、5、3,数字较大的具有较高的优先级。扫描动作处理(扫描仪的I/O中断)从某时间开始,它的处理时间较长,其间发生了一次网络数据传送请求(总线请求中断),此时,需要先对扫描仪动作处理的中断点现场的一些信息进行压栈处理,完成后再处理网络通信的总线服务,在处理网络通信的总线服务时,用户又提交了一个硬盘存储文件的请求,由于硬盘的优先级不如总线的高,被推迟,且硬盘的优先级比扫描仪的高,在完成网络通信的总线服务后,先执行硬盘中断处理,完成后才回到对扫描仪的中断处理程序上。
Ø I/O结构、通道、直接存储器存取(DMA)技术、缓冲技术
在前文叙述中断的作用时涉及到I/O通道(替代CPU的中断轮询,提高CPU利用率),其作用也作了简要说明。在这里,有必要强调的是DMA技术:当CPU需要读写一整块数据的时候,它给DMA控制单元发送一条命令,命令中含有I/O设备的地址、开始读或写的主存地址、数据长度等信息,而具体的数据传送就由DMA控制器管理,CPU又可以去处理其它事了(增强了CPU并行处理能力,同时提高了处理I/O的效能)。缓冲技术是缓解CPU处理数据速度与设备传输数据速度不匹配的一种数据暂存技术。
Ø 时钟
计算机系统中的时钟分为硬件时钟和软件时钟,以及绝对时钟和相对时钟。时钟可以防止系统陷入死循环,实现作业按时间片轮转运行,给出正确的时间信号,定时唤醒事件确定时间执行的事件等。
相关推荐
这份"操作系统学习笔记"为初学者提供了深入了解操作系统机制的途径,涵盖了保护模式下的编程、进程管理以及系统初始化等重要概念。 首先,我们来看看"保护模式下编程"。在个人计算机的早期,操作系统主要在实模式下...
操作系统是计算机系统的核心组成部分,负责管理和控制计算机硬件与软件资源,以提供高效、安全和方便的用户环境。...这份复习笔记详细梳理了操作系统的核心概念,对于理解和学习操作系统原理非常有帮助。
学习笔记中可能还会涵盖操作系统的类型,如批处理系统、分时系统、实时系统、网络操作系统以及分布式操作系统,以及现代操作系统的设计趋势,如微内核、宏内核、混合内核等架构。 最后,操作系统实验是加深理解的...
这些内容概括了操作系统的基本概念、功能、结构和运行机制,为学习和理解操作系统奠定了坚实的基础。由于文档内容可能有OCR扫描错误,因此在理解文档时,可能需要根据上下文语境进行适当的修正和补充。
《B站王道操作系统学习笔记》是一份系统阐述操作系统的文档,涵盖了进程管理、内存管理、文件管理等多个关键领域。操作系统作为计算机系统的核心软件,负责管理和控制计算机系统中的各种硬件资源和软件资源,提供给...
2. **优化程序性能**:通过了解操作系统如何管理资源,开发者可以更好地优化程序,减少不必要的资源消耗,提升程序运行效率。 3. **解决实际问题**:如文中提到的父子进程共享文件描述符的问题,了解操作系统相关的...
RT-Thread物联网实时操作系统学习笔记及相关源码.zipRT-Thread物联网实时操作系统学习笔记及相关源码.zipRT-Thread物联网实时操作系统学习笔记及相关源码.zipRT-Thread物联网实时操作系统学习笔记及相关源码.zipRT-...
综上所述,南京航空航天大学的操作系统复习笔记详尽地介绍了操作系统的基本概念和核心特性,对于学习者来说是一份宝贵的参考资料,有助于理解操作系统的工作原理及其在计算机系统中的重要角色。
本学习笔记涵盖了网络操作系统的基本概念、操作系统的定义和特征、操作系统在计算机系统中的地位、多道程序设计、虚拟处理机、处理机的运行现场、系统调用、UNIX 的系统调用、分时系统、实时系统、分布式计算机系统...
操作系统学习笔记(全)期末版 操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。 ...
### 操作系统高分笔记知识点详解 #### 一、操作系统的基本概念 **1.1 冯·诺依曼模型** 冯·诺依曼模型是计算机硬件的基本组成模型,该模型通常被称为冯·诺依曼结构。它由五个主要部分组成:运算器、控制器、...
### 2335自考《网络操作系统》学习笔记精要 #### 第一章 网络操作系统引论 **1. 操作系统的定义及基本特征** - **定义**: 操作系统是控制和管理计算机系统的硬件和软件资源、合理地组织工作流程以及方便用户的...
这份“北大考研操作系统作业笔记”源自北京大学信息科学技术学院本科生的学习资料,旨在帮助考生更好地准备操作系统相关的考试。 一、操作系统基础概念 操作系统(Operating System,简称OS)是管理计算机硬件与...
本学习笔记主要基于《王道2020考研操作系统》教材,通过思维导图的形式,对操作系统的主要概念、原理和技术进行了深入浅出的阐述。以下是四个核心领域的详细解释: 1. 进程管理: 进程是程序在执行过程中的一个...
这份"操作系统原理学习笔记"为想要深入理解和掌握操作系统工作原理的朋友们提供了一个宝贵的资源。笔记内容可能涵盖了以下几个主要部分: 1. **操作系统概述**:操作系统是管理计算机硬件与软件资源的程序,它是...
这篇详细的学习笔记旨在帮助读者深入理解GRUB的工作原理和应用,对于那些在个人电脑或服务器上安装了多个操作系统的用户来说,GRUB是不可或缺的工具。 首先,GRUB的主要功能是提供一个菜单界面,让用户可以在启动时...
2. **进程管理**:进程是操作系统中运行的程序实例,这里会讲解进程的创建、撤销、状态转换(如就绪、运行、等待)以及进程间的通信机制,如管道、消息队列和共享内存。 3. **内存管理**:这部分内容涉及如何分配和...