体系结构
基本概念
两指令,两处理器转态,两程序
指令:特权与非特权
处理器状态:利用PSW(程序状态字寄存器)决定是用户态还是核心态,用于鉴权,从而确定指令
程序:相应的有两种程序,内核程序和普通的应用程序
操作系统内核
内核是操作系统最核心的部分,是操作系统的心脏
微内核
负责时钟管理,中断处理,原语
什么是原语?
操作系统最接近底层的一系列特殊程序,运行具有原子性(不可中断),运行时间短,调用频繁
比如设备驱动,cpu优化
大内核
进程管理,储存器管理,设备管理等功能+微内核部分
中断和异常
人们引入中断机制,从而实现多道程序并发执行
发生中断就意味着需要操作系统介入,开展管理工作
当中断发生的时候,CPU立刻进入核心态,中断当前进程,并由操作系统对中断进行处理
中断分为内中断和外中断
内中断分为指令中断(trap等)和强迫中断(故障等)
外中断如I/O操作完成,用户强制终止等
每条指令执行完后,cpu会判断是否有外部中断信号,然后决定是否保存当前的CPU环境并转入对应的中断程序
系统调用
“系统调用” 是指操作系统提供给应用程序(程序员 / 编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务
同时这也能保持安全性,让程序员无法直接操作高权限的内核
系统调用与库函数
有些库函数封装了系统调用,以便在不同的系统之间实现兼容
系统调用的简单流程: 传递系统调用参数->执行trap(用户态)->执行系统调用(核心态)->返回用户态