第二讲:操作系统运行环境与运行机制笔记

在这里插入图片描述
重点:
*理解计算机系统的保护机制:
掌握处理器状态
掌握特权指令与非特权指令

*掌握中断/异常机制 
掌握中断/异常的基本概念 
理解中断/异常机制的工作原理

*掌握系统调用机制 
掌握系统调用设计原理 
掌握系统调用执行过程

*重点概念:
CPU状态 内核态/用户态 特权指令/非特权指令
中断 异常 中断响应 中断向量 中断处理程序 系统调用
陷入指令 系统调用号 系统调用表

回顾–操作系统的主要功能:
操作系统完成程序的执行 启动程序、执行程序以及程序结束的工作
操作系统完成与体系结构相关的工作
操作系统完成应用程序所需的共性任务 提供各种基本服务
操作系统 性能、安全、健壮等问题

os 必须与硬件打交道,必须知道硬件的体系结构。
在应用程序运行的过程中,需要做很多的工作,比如读盘,申请内存存放数据,使用打印机
所以可以说,操作系统是硬件的第一层拓展,硬件是操作系统的运行环境,
主要包括两方面:CPU状态,中断/异常机制

操作系统完成应用程序所需的共性任务,提供服务,它涉及到操作系统运行机制:系统调用

首先介绍CPU状态
CPU构成:处理器由运算器、控制器、一系列的寄存器 以及高速缓存构成

寄存器有两类:
用户可见寄存器:高级语言编译器通过优化算 法分配并使用之,以减少程序访问内存次数
控制和状态寄存器:用于控制处理器的操作,通常由操作系统代码使用

控制和状态寄存器:
*用于控制处理器的操作,
*在某种特权级别下可以访问、修改

常见的控制和状态寄存器 
程序计数器(PC:Program Counter),记录将要取 出的指令的地址 
指令寄存器(IR:Instruction Register),记录最近 取出的指令 
程序状态字(PSW:Program Status Word),记录 处理器的运行状态如条件码、模式、控制位等信息

操作系统对硬件的需求:从操作系统特征考虑,操作系统运行在多进程的环境下,
操作系统为进程提供并发环境,不同进程共享操作系统管理的各种资源。在这样的一种
并发,共享环境下,操作系统就需要硬件来提供一种保护机制
保护用户程序与用户程序互不干扰,
保护用户程序不被操作系统干扰

通常需要硬件提供基本运行机制:
处理器具有特权级别,能在不同的特权级运行的不同指令集合
硬件机制可将OS与用户程序隔离

所以现代处理器通常将CPU状态设计划分为两种、三 种或四种

cpu时而运行操作系统,时而运行用户程序,如何区分?
硬件提供了四种状态
通常是在程序状态字寄存器PSW中专门设置一位,根据运行程序对资源和指令的使用权限而设置
不同的CPU状态 .

操作系统提供了两种cpu状态:
内核态(Kernel Mode):运行操作系统程序
用户态(User Mode):运行用户程序

两类状态可以划分两类指令集合:
特权(privilege)指令:只能由操作系统使用、用 户程序不能使用的指令
非特权指令:用户程序可以使用的指令
操作系统可以使用特权和非特权指令集合,而用户程序只能使用非特权指令集合
下列哪些是特权指令?哪些是非特权指令?
特权指令
启动I/O 内存清零 修改程序状态字 设置时钟 允许/禁止中断 停机
非特权指令
控制转移 算术运算 取数指令 访管指令

CPU 的两种状态如何转换?
用户态 → 内核态: 唯一途径 → 中断/异常/陷入机制 
内核态 → 用户态: 设置程序状态字PSW

第二介绍中断异常机制:
操作系统的中断异常机制非常重要,操作系统是由“中断驱动”或者 “事件驱动”的

中断/异常机制的作用:
及时处理设备发来的中断请求
可使OS捕获用户程序提出的服务请求
防止用户程序执行过程中的破坏性活动 等待

中断/异常的概念:
CPU对系统发生的某个事件作出的一种反应。

解释:当某一事件发生时,事件的发生概念了处理器的控制流,
CPU暂停正在执行的程序,保留现场后自动转去 执行相应事件的处理程序,
处理完成后返回断点, 继续执行被打断的程序
中断/异常特点: •是随机发生的 •是自动处理的 •是可恢复的

为什么引入中断/异常机制?

中断的引入:为了支持CPU和设备之间的并行操作
当CPU启动设备进行输入/输出后,设备便可以独立工作,
CPU转去处理与此次输入/输出不相关的事情;当设备完成 输入/输出后,
通过向CPU发中断报告此次输入/输出的结 果,让CPU决定如何处理以后的事情

异常的引入:表示CPU执行指令时本身出现的问题
如算术溢出、除零、取数时的奇偶错,访存地址时越界或 执行了“陷入指令” 等,
这时硬件改变了CPU当前的执行 流程,转到相应的错误处理程序或异常处理程序或执行系统调用

中断与异常的区分:
中断:外部事件来打扰,正在运行的程序所不期望的
异常:由正在执行的指令引发的一种错误,如代码的算术溢出

事件分为中断与异常:
中断(外中断):IO中断,时钟中断,硬件故障
异常(内中断):系统调用,页错误,保护性异常,程序性异常(如算术溢出)

中断/异常机制的工作原理
*硬件做什么
*软件做什么
中断/异常机制是现代计算机系统的核心机制之一,
通过硬件和软件相互配合而使计算机系统得以充分发挥能力

硬件该做什么事?
捕获中断源发出的中断/异常请求,以一定方式响应,将处理器控制权交给特定的处理程序
我们把这个过程叫做中断/异常响应阶段

软件要做什么事?
识别中断/异常类型并完成相应的处理
我们叫做中断/异常处理程序
总结就是硬件响应,软件处理。

中断响应:指发现中断、接收中断的过程,由中断硬件部件完成
处理器控制部件中设有中断寄存器,响应过程如下:
在这里插入图片描述
中断向量表是由一个个中断向量组成,每个中断向量是一个内存单元,存放中断处理程序入口地址和 程序运行时所需的处理机状态字
在这里插入图片描述
中断异常机制软件做了什么?
设计操作系统时,为每一类中断/异常事件编好相 应的处理程序,并设置好中断向量表
系统运行时若响应中断,中断硬件部件将CPU控制权转给中断处理程序:
保存相关寄存器信息 
分析中断/异常的具体原因 
执行对应的处理功能 
恢复现场,返回被事件打断的程序

系统调用:
系统调用是什么?
用户在编程时可以调用的操作系统功能
系统调用的作用 :
系统调用是操作系统提供给编程人员的唯一接口,使CPU状态从用户态陷入内核态
典型系统调用
每个操作系统都提供几百种系 统调用(进程控制、进程通信、 文件使用、目录操作、设备管 理、信息维护等)

区分系统调用,库函数,API,内核函数

系统调用与C库函 数/API函数的关系
系统调用与内核 函数的关系
看图
应用程序可以直接调用系统调用,通常情况下,应用程序
通过C函数库或者API接口去调用系统调用,内核函数就是系统调用的
处理程序。
系统调用的执行过程

当CPU执行到特殊的陷入指令时:

1)中断/异常机制:硬件保护现场;通过查询中断向量表把控制权转给系统调用总入口程序。

2)系统调用总入口程序:保存现场;将参数保存在内核堆栈中;通过查系统调用表把控制权转给相应的系统调用的处理程序或内核函数

3)执行系统调用程序

4)恢复现场,返回用户程序

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值