OS中,CPU需要执行两种不同的程序:内核程序和应用程序。
前者是后者的管理者,所以需要执行一些后者所不能执行的”特权指令“:
I/O指令
置中断指令
存取用于内存保护的寄存器
送程序状态字到程序状态字寄存器
具体实现:划分了管态(核心态)和目态(用户态)来实现
操作系统的内核:
OS的最底层
与硬件关联较紧密的模块
时钟管理
中断处理
设备驱动
再上一层
运行频率较高的程序
进程管理
存储器管理
设备管理
内核的基本内容:
1.时钟管理计算机中最重要的设备:时钟
时钟的功能:
计时
提供标准的系统时间
时钟中断
实现进程切换
分时OS:时间片轮转调度
实时OS:按截止时间控制运行
批处理:用时钟管理衡量一个进程执行的程度
2.中断机制现代OS是靠中断驱动的OS
中断是OS各项操作的基础
键盘或鼠标的输入
进程的管理和调用
系统功能的调用
设备驱动
文件访问
中断机制中,只有一小部分属于内核,负责保护和恢复中断现场的信息
3.原语不可再分的操作
特点:
处于OS的最底层,最接近硬件
只能一气呵成
时间短,调用频繁
定义原语最直接的方式是关闭中断
举个栗子
设备驱动
CPU切换
进程通信
4.系统控制的数据结构及处理用来登记状态信息的数据结构:
作业控制块
进程控制块PCB
设备控制块
各类链表
消息队列
缓冲区
空闲区登记表
内存分配表
等等
常见操作:
进程管理:进程状态管理、进程调度和分派、创建和撤销PCB
存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序
设备管理:缓冲区管理、设备分配和回收
核心态指令包括系统调用类指令,对时钟、中断和原语的操作指令
1.3.2 中断和异常的概念系统不允许用户程序实现核心态的功能,而它们又必须实现这些功能。
而从用户态进入核心态的”门“就是中断,是通过硬件实现的。
中断是现代操作系统中非常重要的概念:因为OS的发展方向就是不断提高资源利用率的过程,最直接的手段就是在程序并未使用某种资源时,将它对这种资源的控制权释放,这是通过中断实现的。
中断:
Interruption
来自CPU指令指令以外的事情发生
举个栗子
设备发出的I/O结束中断
时钟中断:时间片已到,让处理机处理计时、启动定时运行的任务
异常:
Exception
又称内中断、例外或陷入(Trap)
源自CPU执行的指令内部的事件
举个栗子
非法操作码
地址越界
算术溢出
虚存系统的内存缺页
专门的陷入指令
事实上,中断分为广义中断和狭义中断:
中断:
外中断(中断)
外设请求
人为干预
内中断(异常)
自愿中断——指令中断
强迫中断
硬件中断
软件中断
1.3.3 系统调用凡是与资源有关的操作,都必须通过系统调用,由OS代为完成
系统调用的分类:
设备管理
文件管理
进程管理
进程控制
内存管理
OS的运行环境可以这样理解:
用户运行上层程序,需要OS支持时,通过硬件实现的中断进入内核态,也可能通过异常进入核心态。
当管理程序运行结束时,用户程序需要继续执行,则通过保存的程序现场退出中断处理或异常处理返回断点处
在操作系统中,我们关心的的是用户态和内核态的软件实现和切换,而非硬件。