分时操作系统

缺:不能优先处理紧急任务

实时操作系统

硬实时

必须在严格规定事件内完成处理

软实时

能偶尔违反时间规定

操作系统的运行机制

程序如何运行

c语言代码——>(编译器)二进制——>(放入cpu一条一条执行)

  • 小黑框的”指令“:交互式命令接口

本章的指令:二进制机器指令

应用程序:普通程序员写的程序

内核程序:微软,苹果操作系统————>组成了”内核“

内核是操作系统最核心的部分,最接近硬件的部分

CPU的两种状态

  • 内核态(管态):处于此状态说明运行内核程序,可执行特权指令
  • 用户态(目态):只能执行非特权指令

拓展:CPU有寄存器程序状态字寄存器(PWS),1(内核态),0(用户态)

内核态,用户态的切换

内核->用户:执行一条特权指令,修改psw的标志位,让操作系统主动让出cpu使用权

用户->内核:由中断引发,硬件自动完成变态过程,强行夺回cpu使用权

中断和异常

中断的作用

中断是让操作系统内核夺回CPU使用权的唯一途径

中断的类型

  • 内中断(异常):与当前执行指令有关,中断信号来自CPU内部陷入(是应用程序故意的);故障(有由错误条件引起的,可修复);终止
  • 外中断:与当前执行的指令无关,中断信号来源于CPU外部(时钟中断;I/O中断请求)

陷入指令(trap指令,方管指令):意味着应用程序主动的将CPU控制权换给操作系统内核。”系统调用“就是通过陷入指令完成。

注:陷入指令是用户态执行的,执行陷入指令后立即引发一个内中断,使cpu进入核心态

中断机制的基本原理

  • 检测中断信号:

    • 内中断:CPU在执行时会检查是否有异常发生
    • 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
  • 找到相应的中断处理程序:通过”中断向量表“实现

系统调用

概念:操作系统提供给应用程序(程序员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。