【OS】操作系统运行环境

操作系统运行机制

CPU执行两种不同性质的程序:

1. 操作系统内核程序
2. 用户自编程序(应用程序)

其中内核程序用于执行一些特权指令,应用程序则不能执行。

特权指令,指计算机中不允许用户直接使用的指令。

在实现上,为了避免操作系统及其关键数据受到用户程序的破坏,将CPU的状态划分为用户态(目态)核心态(管态、内核态)

特权指令:只能由操作系统内核部分使用,不允许用户直接使用的指令。

内核程序运行在核心态(CPU执行特权指令) 应用程序运行在用户态(CPU执行非特权指令)

内核是计算机配置的底层软件,操作系统中一些与硬件关联的模块和运行频率高的程序构成了操作系统的内核,内核的指令操作工作在核心态,包含四方面内容:

  1. 时钟管理
    时钟是各部件中最关键的设备。
    第一功能是计时,操作系统需要通过时钟管理向用户提供标准的系统时间
    第二功能是中断管理,实现进程的切换(如时间片的轮转)

  2. 中断机制
    提高多道程序运行环境中CPU的利用率,是操作系统各项操作的基础(eg:鼠标键盘的键入,进程管理调度,系统功能调用,设备驱动,文件访问),现代操作系统是靠中断驱动的软件。
    中断机制中,只有一小部分属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序,减少终端处理时间,提高系统并行处理能力

  3. 原语
    原语是一些关闭中断的公用小程序,特点如下:
    ①处于操作系统最底层,是最接近硬件的部分
    ②程序运行具有原子性,操作只能一气呵成(从操作安全性和便于管理方面考虑)
    ③这些程序的运行时间较短,调用频繁

    把具有这些特点的程序称为原语,定义原语的直接方法就是关闭中断,让所有动作不可分割完成后再打开中断。

系统的设备驱动CPU切换进程通信等功能中部分操作都可以定义为原语,使其成为内核的组成部分

  1. 系统控制的数据结构及处理
    系统中用来登记状态信息的数据结构很多,为了实现有效的管理,系统需要一些基本操作,常见操作有:
    ①进程管理
    ②存储器管理
    ③设备管理
    核心态指令实际上包括系统调用类指令和一些针对时钟中断原语的操作指令。

中断和异常

异常会引起中断,中断不一定引起异常
中断(外中断)————异常(内中断)
在这里插入图片描述

上述提到了核心态用户态两种工作状态,操作系统内核工作在核心态用户程序工作在用户态
系统不允许用户程序实现核心态的功能,但是又必须使用这些功能,所以要在核心态建立通道,向系统资源发出申请,由系统资源直接访问核心态,实现从用户态进入核心态。在实际操作系统中,CPU运行上层程序时唯一进入通道的途径就是通过中断和异常,运行用户态的CPU就会立即进入核心态。
中断对于一个运行在计算机上的实用操作系统,是不可缺少的。操作系统的发展大体上就是一个不断提高资源利用率的过程,而资源利用率就需要在程序并未使用某种资源时,把它对那种资源的占有权释放,这一行为就需要中断机制的实现。

  1. 定义
    中断(外中断)指来自CPU执行指令以外事件的发生(如设备发出的I/O结束中断,表示设备I/O处理已经完成,希望处理机能够向设备发下一个I/O请求,同时让完成I/O后的程序继续运行)。时钟中断,表示一个固定的时间片已到,让处理机处理计时启动定时运行的任务等。这一类中断通常是与当前指令执行无关的事件,即它们与当前处理机运行的程序无关。
    异常(内中断、例外、陷入)指源自CPU执行指令内部的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现要立即处理。

  2. 中断处理过程
    在这里插入图片描述

①关中断
CPU响应中断后,首先保护程序的现场,在保护现场的过程中,CPU不应响应更高级中断源的中断请求;否则如果程序现场保存不完整,在中断服务程序结束后,就不能正确的恢复并继续执行现行程序
②保存断点
为保证中断服务程序执行完毕后能正确返回原来程序,必须将原来程序的断点(程序计数器PC)保存起来。
③引出中断服务程序
取出中断服务程序入口地址送入PC
④保存现场和屏蔽字
进入中断服务程序后,首先保存现场,现场信息一般指程序状态字寄存器PSWR某些通用寄存器的内容。
⑤开中断
允许更高级中断请求得到响应。
⑥执行中断服务程序
中断请求的目的
⑦关中断
保证在恢复现场屏蔽字时不被中断。
⑧恢复现场和屏蔽字
现场屏蔽字恢复到原来的状态。
⑨开中断、中断返回
中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到源程序的断点处,以便继续执行源程序

恢复现场:在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成。

中断返回:由中断服务程序的最后一条中断返回指令完成。


系统调用

系统调用是操作系统提供的用户接口之一(程序接口API),是应用程序系统之间的接口操作系统的主要功能是为应用程序的运行创建良好环境。系统调用可视为特殊的公共子程序。系统中的各种公共资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。一个操作系统提供的系统调用命令由几十到上百条,系统调用可分为:

  1. 设备管理
    完成设备请求释放以及设备启动等功能。
  2. 文件管理
    完成文件创建删除等功能。
  3. 进程控制
    完成进程创建撤销阻塞唤醒等功能。
  4. 进程通信
    完成进程之间消息传递信号传递等功能。
  5. 内存管理
    完成内存分配回收获取作业占用内存区大小及始址等功能。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值