第二章 操作系统的逻辑结构
-
Upload
alfonso-gomez -
Category
Documents
-
view
145 -
download
2
description
Transcript of 第二章 操作系统的逻辑结构
第二章 操作系统的逻辑结构
(一) 操作系统逻辑结构(二) 处理机的状态(三) 异常和中断(四) 必要的硬件支撑
(一) 操作系统逻辑结构
(二) 处理机的状态1. 1. 设置处理机状态的目的设置处理机状态的目的
为操作系统建立一个保护环境,采用的方法是区分处理机的工作状态。
系统中有两类程序: 管理程序 用户程序管理系统资源 使用资源、提出申请控制程序运行 被控制
2. 2. 什么是处理机的态什么是处理机的态中央处理机的工作状态,当前它正在执行哪类程序,
决定处理机的态。
3. 3. 处理机态的类别处理机态的类别( 1 )核态( Kernel mode )
操作系统的管理程序执行时机器所处的状态。 使用全部指令(包括一组特权指令) 使用全部系统资源(包括整个存储区域)
( 2 )管态( Supervisor mode )管态比核态的权限低,在此状态下允许使用
一些用户态下不能使用的资源,但不能使用修改CPU 状态的指令。
无核态时 ,管态执行核态的全部功能。
( 3 )用户态( User mode )用户程序执行时机器所处的状态。在此状态下
禁止使用特权指令,不能直接取用资源与改机器状态,并且只允许用户程序访问自己的存储区域。
管态 用户态
操作系统的程序执行 用户程序执行 使用全部指令 禁止使用特权指令
(包括一组特权指令) 使用全部系统资源 只允许用户程序访问
(包括整个存储区域) 自己的存储区域
处理机的状态是变化的,它有时会处于用户态,有时会处于管态。
4. 特权指令集在核态下操作系统可以使用所有指令,包括一组特权指令。
改变机器状态的指令 修改特殊寄存器的指令 涉及外部设备的输入 / 输出指令
允许和禁止中断;在进程之间切换处理机;存取用于内存保护的寄存器;执行输入和输出操作;停止一个中央处理机的工作。
(三) 异常和中断 异常异常———— ExceptionException 中断中断———— Interrupt ReQuest (IRQ)Interrupt ReQuest (IRQ) i386i386 的异常和中断的异常和中断
Exceptions and interrupts are both "protected control Exceptions and interrupts are both "protected control transfers," which cause the processor to switch from user transfers," which cause the processor to switch from user to kernel mode (CPL=0) without giving the user-mode to kernel mode (CPL=0) without giving the user-mode code any opportunity to interfere with the functioning of code any opportunity to interfere with the functioning of the kernel or other environments. In Intel's terminology, the kernel or other environments. In Intel's terminology, an an interruptinterrupt is a protected control transfer that is is a protected control transfer that is caused by an caused by an asynchronousasynchronous event usually external to the event usually external to the processor, such as notification of external device I/O processor, such as notification of external device I/O activity. An activity. An exceptionexception, in contrast, is a protected control , in contrast, is a protected control transfer caused transfer caused synchronouslysynchronously by the currently running by the currently running code, for example due to a divide by zero or an invalid code, for example due to a divide by zero or an invalid memory access.memory access.
异常(异常( ExceptionException )在)在 i386i386 中与中与 traptrap 是一个是一个意思,但中文翻译的时候往往翻译成异常或陷阱,意思,但中文翻译的时候往往翻译成异常或陷阱,其实也是一个意思其实也是一个意思
异常是由于程序的行为(如除异常是由于程序的行为(如除 00 错、缺页等)导错、缺页等)导致的致的同步同步事件,必须由计算机立刻处理。处理完事件,必须由计算机立刻处理。处理完成后,回到程序成后,回到程序发生异常处发生异常处继续执行。继续执行。
中断是指某个事件(例如键盘输入、中断是指某个事件(例如键盘输入、 I/OI/O 传输结传输结束等)发生时,系统中止现行程序的运行、引出束等)发生时,系统中止现行程序的运行、引出处理事件程序对该事件进行处理,处理完毕后返处理事件程序对该事件进行处理,处理完毕后返回回现行程序的下一条指令现行程序的下一条指令,继续执行。,继续执行。
(三) 异常和中断(续)
i386i386 的异常的异常 // 中断表中断表
(三) 异常和中断(续)Vector
0
1
2
3
4
5
6
7
8
9
Description
Divide Error
Debug Exception
NMI Interrupt
Breakpoint
Overflow
Bound Check
Illegal Opcode
Device Not available
Double Fault
Reserved
Type
Fault
Fault/Trap
Interrupt
Trap
Trap
Fault
Fault
Fault
Abort
ErrorCode
No
No
No
No
No
No
No
No
Yes
10
11
12
13
14
15
16
17
18
19
Invalid TSS
Segment Not Present
Stack Exception
General Protection Fault
Page Fault
Reserved
Floating Point Error
Alignment Check
Machine Check
Simd Floating Point Error
Fault
Fault
Fault
Fault
Fault
Fault
Fault
Abort
Fault
Yes
Yes
Yes
Yes
Yes
No
Yes
No
No
(三) 异常和中断(续)一 . 中断处理
中断源:引起中断的事件称中断源,如打印完成中断,其中断源是打印机。
断点:发生中断时正在运行的程序被暂时停止,程序的暂停点称为断点。例如,某程序正在执行 0200 地址的指令被中断,那么, 0200 地址就是断点, 在中断返回时就执行 0200 的下一条指令。
(三) 异常和中断(续)
中断响应:是处理机发现有中断请求时,中止现运行程序的执行并自动引出中断处理程序的过程。
中断由软硬件协同处理 中断装置:指发现中断,响应中断的硬件 中断处理程序:由软件来完成 中断系统 = 中断装置 + 中断处理程序
(三) 异常和中断(续)
二 . 中断类型
按中断功能分类( 1 )输入输出中断:
I/O 传输结束或出错中断。( 2 )外中断:
时钟中断、操作员控制台中断、通信中断等。( 3 )访管中断( Syscall ):
对操作系统提出某种需求时发出的中断称为访管中断。
二 . 中断类型
按中断是否可屏蔽( 1 ) 不可屏蔽中断( NMI )( 2 )可屏蔽中断
三 . 中断进入对中断请求的整
个处理过程称为中断处理,它是由软、硬件结合形成的一套中断机构实施的。
1. 保护现场和恢复现场( 1 )现场
是指在中断的那一时刻能确保程序继续运行的有关信息。
主要包括—— 后继指令所在主存的单元号 程序运行所处的状态( PSW , EFLAGS in i38
6 ) 指令执行情况 以及程序执行的中间结果等
( 2 )保护现场 当中断发生时,必须立即把现场信息保存在主
存中,这一工作称之为保护现场。
( 3 )恢复现场 程序重新运行之前,把保留的该程序现场信息
从主存中送至相应的指令计数器、通用寄存器或一些特殊的寄存器中。完成这些工作称为恢复现场。
2. 程序状态字( PSW )( 1 )什么是程序状态字
程序状态字是反映程序执行时机器所处的现行状态的代码。
主要内容包括—— 程序现在应该执行哪条指令 当前指令执行情况 机器处于何种程序状态 程序在执行时应该屏蔽哪些中断 寻址方法、编址、保护键 响应中断的内容
( 2 )程序状态字的例子 I386
CS 、 EIP EFLAGS (思考: CS 、 EFLAGS 包含哪些字段?
为什么要保存这些字段?) IBM370 机
程序状态字内容 PSW 寄存器 PDP 11 系列机
程序状态字内容 PC 指令计数器 PS 处理器状
态寄存器
3. 什么是中断响应( 1 )什么是中断响应
( 1 )什么是中断响应中断响应是当中央处理机发现已有中
断请求时,中止现行程序执行,并自动引出中断处理程序的过程。 中断响应过程:
保留程序断点及处理机有关信息 自动转入相应的中断处理程序
( 2 )中断响应的实质交换指令地址及处理机的状态信息
4. 中断向量具有向量机制的计算机的中断向量包括:
中断处理程序的入口地址 中断处理程序的程序状态字
四 . 软件的中断处理过程当硬件完成了中断进入后,转到中断处理程
序,进入软件中断处理过程。这个过程主要有如下三项工作:( 1 )保护现场和传递参数;( 2 )执行相应的中断(或自陷)处理程序;( 3 )恢复和退出。
注 : 在中断进入时由硬件保护了被中断程序的 PC 和 PS ,
在中断处理中保护各寄存器的值和其它状态信息。
五 . 向量中断1. 中断向量
中断向量是存储某类型中断的中断服务例行程序的入口地址和处理机状态字的存储单元。
2. 中断向量表 ( IDT )主存中用于存放中断向量服务地址的一组存储单
元组成的表。
存储器 主存储器(主存、内存): 处理机能直接访问的存储器称为主存储器,用来存放正在或将要执行的系统和用户程序和数据以及程序执行时要求的临时存储空间。 只读存储器 ROM(Read-only memory) : ROM 称为 BIOS ,
用来存放基本的 I/O 程序。 随机访问存储器 RAM ( random access memory)
辅存储器(辅存、外存): 处理机不能直接访问的存储器,如磁盘、磁带、光盘等,用
来存放大量的数据信息。
(四) 必要的硬件支持
DMA(Direct Memory Access)
Operation of a DMA transfer
Clocks - Clock Hardware
时钟硬件时钟硬件 (PC(PC 机中机中 ))
实时时钟(实时时钟( Real Time ClockReal Time Clock ,, RTCRTC ))
可编程间隔定时器(可编程间隔定时器( Programmable Programmable
Interval TimerInterval Timer ,, PITPIT )) 时间戳计数器(时间戳计数器( Time Stamp Time Stamp
CounterCounter ,, TSCTSC ))。 。
Clocks - Clock Hardware
A programmable interval clock
Clocks - Clock Hardware (续)
Programmable interval clockProgrammable interval clock 的工作模式的工作模式 One-shot modeOne-shot mode
Square-wave modeSquare-wave mode
时钟滴答时钟滴答 (Clock tick)(Clock tick)
周期性地发生时钟中断(可编程设置间隔)周期性地发生时钟中断(可编程设置间隔)
Clocks - Clock Hardware (续)
实时时钟实时时钟 RTC RTC
在在 PCPC 机断电后仍能保存时间机断电后仍能保存时间
通过主板上的电池供电;通常与通过主板上的电池供电;通常与 CMOS RAMCMOS RAM 集成到一块芯片上,集成到一块芯片上,
也称为 也称为 CMOS TimerCMOS Timer
可在系统初启时读入可在系统初启时读入
并转换为相对于某一基准时间的时钟滴答数并转换为相对于某一基准时间的时钟滴答数
操作系统提供实用程序可以设置系统时钟和操作系统提供实用程序可以设置系统时钟和 RTCRTC 并在二者之间同并在二者之间同
步步
Clocks - Clock Hardware (续)
时间戳记数器时间戳记数器 TSCTSC
PentiumPentium 之后的之后的 CPUCPU 中包含的中包含的 6464位的寄存位的寄存
器器
在每一个振荡信号到达时,该计数器递增在每一个振荡信号到达时,该计数器递增
可为操作系统提供更准确的时间度量可为操作系统提供更准确的时间度量
第二章 小 结1. 处理机的态,(核态)、管态、用户
态,相互的区别。2. 异常和中断。3. 中断响应的定义、实质。4. 中断处理过程。5. 必要的硬件支持。