操作系统课堂笔记(2)操作系统的硬件环境之中央处理器

专门设计了一系列基本机制:
  - 具有特权级别的处理器状态,能在不同特权级运行的各种特权指令
  - 硬件机制使得OS可以和普通程序隔离, 实现保护和控制
   1.CPU的构成与基本工作方式
  处理器由运算器、控制器、一系列的寄存器以及高速缓存构成
  运算器实现指令中的算术和逻辑运算,是计算机计算的核心
  控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存的交互等等
  处理器中的寄存器
  寄存器提供了一定的存储能力,速度比主存快得多,造价高,容量一般都很小
  两类寄存器:
  用户可见寄存器,高级语言编译器通过算法分配并使用之,以减少程序访问内存次数
  控制和状态寄存器,用于控制处理器的操作
  由OS的特权代码使用, 以控制其他程序的执行
  用户可见寄存器
  机器语言直接引用
  包括数据寄存器、地址寄存器以及条件码寄存器
  数据寄存器(data register)又称通用寄存器
  主要用于各种算术逻辑指令和访存指令
  地址寄存器(address register)用于存储数据及指令的物理地址、线性地址或者有效地址,用于某种特定方式的寻址。如index register、segment pointer、stack pointer
  条件码寄存器保存CPU操作结果的各种标记位, 如算术运算产生的溢出、符号等等
  控制和状态寄存器
  用于控制处理器的操作
  大部分对于用户是不可见的
  一部分可以在某种特权模式(由OS使用)下访问
  常见的控制和状态寄存器:
  程序计数器(PC:Program Counter),记录将要取出的指令的地址
  指令寄存器(IR:Instruction Register),包含最近取出的指令
  程序状态字(PSW:Program Status Word),记录处理器的运行模式信息等等
   2.特权指令和非特权指令
  特权指令:只能由 操作系统使用的指令
  使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令
  特权指令一般引起处理器状态的切换
  处理器通过特殊的机制将处理器状态切换到操作系统运行的特权状态(管态)
  然后将处理权移交给操作系统中的一段特殊代码,这一个过程称为陷入
  CPU如何知道当前运行的是操作系统还是一般应用软件?有赖于处理器状态的标识
3.处理器的状态
  根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态——程序状态字PSW
  多数系统将处理器工作状态划分为管态和目态
  管态:操作系统管理程序运行的状态,较高的特权级别,又称为特权态(特态)、核心态、系统态
  目态:用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态
  具体处理器将CPU状态划分为两种、三种或四种
   4.程序状态字PSW (Program Status Word )
  在PSW中专门设置一位,根据运行程序使用指令的权限而设置CPU状态
  CPU的工作状态码——指明管态还是目态,用来说明当前在CPU上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或拥有其他的特殊权力
  条件码——反映指令执行后的结果特征
  中断屏蔽码——指出是否允许中断
  CPU状态的转换
  目态→管态
  唯一途径  是  中断(广义)
  管态→目态
  设置PSW(修改程序状态字) 可实现
  一条特殊的指令:访管指令
  供用户调用操作系统的功能(服务)
  INT,TRAP,SYSCALL   


最新内容请见作者的GitHub页:http://qaseven.github.io/
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 硬件处理机划分为两种状态,即管态和目态,这样做给操作系统设计带来什么好处 ? 答:便于设计安全可靠的操作系统。管态和目态是计算机硬件为保护操作系统免受用户程序的干扰和破坏而引入的两种状态。通常操作系统在管态下运行,可以执行所有机器指令;而用户程序在目态下运行,只能执行非特权指令。如果用户程序企图在目态下执行特权指令,将会引起保护性中断,由操作系统终止该程序的执行,从而保护了操作系统。 2. 何为特权指令?举例说明之。如果允许用户执行特权指令,会带来什么后果? 答:只能在管态下才能执行的指令称为特权指令。如开关中断、置程序状态寄存器等。如果允许用户执行特权指令,它将不仅影响当前运行程序,而且还有可能影响操作系统的正常运行,甚至整个系统。3. 中断向量在机器中的存储位置是由硬件确定的,还是由软件确定的 ? 答:中断向量在机器中的位置是由硬件确定的。例如,在 INTEL 80x86 CPU 中,内存空间0x00000——0x003ff为中断向量空间。4. 中断向量的内容是由操作系统程序确定的还是由用户程序确定的? 答:中断向量的内容是由操作系统程序确定的。向量的内容包括中断处理程序的入口地址和程序状态字(中断处理程序运行环境),中断处理程序是由操作系统装入内存的,操作系统将根据装入的实际地址和该中断处理程序运行环境来填写中断向量。5. 中断向量内的处理状态位应当标明是管态还是目态 ? 为什么? 答:应当标明是管态。 该状态系统初试化程序设置,这样才能保证中断发生后进入操作系统规定的中断处理程序。 6. 中断和程序并发之间的关系是什么? 答:中断是程序并发的必要条件。如果没有中断,操作系统不能获得系统控制权,无法按调度算法对处机进行重新分配,一个程序将一直运行到结束而不会被打断。7. 说明“栈”和“堆”的差别. 答:栈是一块按后进先出(FIFO)规则访问的存储区域,用来实现中断嵌套和子程序调用的参数和返回断点。而堆虽然是一块存储区域,但是对堆的访问是任意的,没有后进先出的要求,堆主要用来为动态变量分配存储空间。 8. 何为系统栈?何为用户栈?系统栈有何用途?用户栈有何用途? 答:系统栈是内存中操作系统空间的一个固定区域;用户栈是内存中用户空间的一个区域。系统栈的作用:(1)保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出;(2)保存操作系统程序间相互调用的参数、返回值、返回点、以及子程序的局部变量。用户栈的作用:用于保存用户进程的子程序间相互调用的参数、返回值、返回点、以及子程序的局部变量。9. 用户堆栈段的长度为何无法确定 ? 答:用户堆栈段的长度主要取决于两个因素:(1)用户进程(线程)中子程序(函数)之间的嵌套调用深度;(2)子程序参数和局部变量的数量及类型;(3)动态变量的使用。这些在进程(线程)运行前无法确定,由此导致用户堆栈段的长度无法预先准确确定。 10堆栈段的动态扩充为何可能导致进程空间的搬迁? 答:堆栈段的扩充需要在原来进程空间大小的基础上增添新的存储区域,而且通常要求与原来存储区域连续。由于原存放位置处可扩展的区域可能已经被其它进程占用,故可能需要将整个进程空间搬迁到另外一个区域,以实现地址空间扩展要求。11. 何谓并行 ? 何谓并发? 在单处理系统中,下述并行和并发现象哪些可能发生,哪些不会发生 ? (1) 进程与进程之间的并行; (2) 进程与进程之间的并发; (3) 处理机与设备之间的并行; (4) 处理机与通道之间的并行; (5) 通道与通道之间的并行; (6) 设备与设备之间的并行; 答:所谓并行是指同一时刻同时进行,进程并行需要多处理器的支持;所谓并发,是指在一段时间内,多个进程都在向前推进,而在同一时刻,可能只有一个进程在执行,多个进程轮流使用处理器。 在单处理器传统中,可能发生的并行和并发现象如下: (2) 进程与进程之间的并发。例如,在Windows操作系统中,mp3播放进程和Word字处理进程可以并发执行,这样用户就可以边听音乐边写文章了。 (3) 处理机与设备之间的并行。例如,当处理机进行科学运算时,打印机可以打印文档。 (4) 处理机与通道之间的并行。通道程序的执行可与处理机的操作并行。 (5) 通道与通道之间的并行。通常一个系统中有多个通道,这些通道可以并行地执行相应的通道程序。 (6) 设备与设备之间的并行。例如打印机打印文档时,磁带机在输入数据。 12. 何谓作业? 它包括哪几个部分? 各部分用途是什么?答:所谓作业是指用户要求计算机系统为其完成的计算任务的集合。一个作业通常包括程序程序处理的数据以及作业说明书。程序用来完成特定的功能,数据是程序处理的对象,作业说明书用来说明作业处理的步骤。13. 从透明性和资源共享两方面,说明网络操作系统与分布式操作系统之间的差别。 答:从透明性上看,分布式操作系统优于网络操作系统。网络用户能够感觉到所访问的资源是在本地还是在远地;而在分布式系统中,用户感觉不到所访问的资源是否在本地,分布式操作系统掩盖了资源在地理位置上的差异。 从资源共享上看 ,分布式操作系统比网络操作系统能共享更多的资源。在网络操作系统中,一个计算任务不能由一台主机任意迁移到另外一台主机上运行;而在分布式操作系统中,所有作业可以由一台主机任意迁移到另外一台主机上处理,即可实现处理资源的共享,从而达到整个系统的负载平衡。 14. 为什么构成分布式系统的主机一般都是相同的或兼容的?答:这样更有利于进程的动态迁移。如果主机不兼容,则在一台主机上能运行的进程,因所用指令系统不同,在另一台主机上可能无法运行,导致进程难于在不同主机间迁移,使得分布式系统难于实现负载平衡。构成分布式系统的主机一般都是相同的或兼容的。15. 为什么嵌入式操作系统通常采用微内核结构?   答:嵌入式操作系统与一般操作系统相比具有比较明显的差别 : (1)嵌入式操作系统规模一般较小,因为一般硬件配置较低,而且对操作系统提供的功能要求也不高。(2)应用领域差别大,对于不同的应用领域其硬件环境和设备配置情况有明显差别。 所以,嵌入式操作系统一般采用微内核 ( micro kernel )结构,包括如下基本功能: (1)处理机调度;(2)基本内存管理;(3)通讯机制;(4)电源管理。在这些基本成分之上可进行扩展,以适应不同应用目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值