导图社区 OS的运行机制和体系结构
OS的运行机制和体系结构笔记,包括操作系统内核、操作系统的体系结构、中断和异常、系统调用等等。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
OS的运行机制和体系结构
运行机制
两种命令
特权指令:不允许用户直接使用的命令,比如:I/O指令,置中断指令,存取用于内存保护的寄存器,送程序状态字寄存器,内存清零等的指令
非特权指令:加减乘除等普通运算指令
两种处理器状态
核心态(管态)----特权指令和非特权指令都可执行
用户态(目态)----只能执行非特权指令
两种程序
内核程序(管理程序)----操作系统内核程序是系统管理者,特权指令和非特权指令都可执行,运行在核心态
用户程序(应用程序)----为了保证系统能够安全运行,用户程序只能执行非特权指令,运行在用户态
操作系统内核
内核是计算机配置在底层的软件,是操作系统最基本最核心的部分;实现操作系统内核功能的程序是内核程序
时钟管理----第一功能用于计时;向用户提供标准的系统时间;通过时钟中断管理,可以实现进程的切换, 例如:分时操作系统中采用时间片轮转制度;实时操作系统中按截止时间运行
中断机制----初衷是为了提高多道程序运行环境中汇总CPU的利用率;后成为操作系统各操作的基础; 例如:键盘或鼠标信息的输入;进程的管理和调度;系统调用,设备驱动,文件访问等;
原语
系统中的设备驱动,CPU切换,进程通信等功能的部分操作都可定义为原语
特点
是一种特殊的程序,处于操作系统最底层,是最接近硬件的部分
这种程序的运行具有原子性,其操作一气呵成(主要是系统安全性和便于管理考虑)
程序运行时间都较短,调用频繁
对资源进行管理的功能
进程管理----进程状态管理,进程调度和分派,创建与撤销进程控制块等
存储器管理----存储器的空间分配和回收,内存信息保护程序,代码对换程序等
设备管理----缓冲区管理,设备分配和回收等
操作系统的体系结构
大内核
将内核的主要功能模块作为一个紧密联系的整体运行在核心态
优点:高性能, 缺点:内核代码庞大,结构混乱,难以维护
小内核
将内核中最基本的功能保留在内核,而将哪些不需要运行在核心态执行的功能转移到用户态执行
优点:内核功能少,结构清晰,维护简单, 缺点:需要频繁在用户态和核心态之间切换,性能低
中断和异常
中断机制的诞生:为了实现多道程序并发执行的一种技术,为了提高资源利用率
中断的概念和作用
发生中断,就意味着需要操作系统介入开展管理工作,CPU会立即进入核心态
作用:“中断”是CPU从用户进入核心态的唯一途径
中断的分类(广义的中断)
内中断
自愿中断
指令中断----如:系统调用时使用的访管指令(即陷入指令,trap指令)
强迫中断
硬件故障----如:缺页
软件中断----如:整数除以0
陷阱,陷入(trap)----有意而为之的异常,如:系统调用
故障(fault)----由错误条件引起,可能被故障处理程序修复,如:缺页
终止(abort)----不可恢复的致命错误造成的后果,终止处理程序不再将控制返回给引发终止的应用程序,如:整数除以0
外中断(狭义的中断)
外设要求----如:I/O操作完成发出的中断信号
人工干预----如:用户强行终止一个进程
中断
1.关中断----CPU响应中断后,应该拒绝响应更高级的中断源的中断请求
2.保存断点----为了以后能重新恢复执行这个程序,需要将原来的程序的断点(即程序计数器PC)保存起来
3.中断服务程序寻址----取出中断服务程序的入口地址送到程序计数器PC
4.保持现场和屏蔽字----进入程序中断服务程序后,首先要保护现场,现场信息一般是指程序状态字寄存器PSWR和某些通用寄存器的内容
5.开中断----允许更高级中断请求得到响应,想象一下多道程序设计的并发执行,CPU交替执行内存里面的各个程序
6.执行中断服务程序----这是中断请求的目的,完成某些中断后的操作
7.关中断----保证在恢复现场和屏蔽字不被中断,完成中断后的操作之后,需要恢复现场,不希望被打扰
8.恢复现场和屏蔽字----将现场和屏蔽字恢复到原来的样子
9.开中断->中断返回----中断服务程序的最后一条指令通常是一条返回指令,使其返回到源程序的断点处,以便继续执行原程序
系统调用
系统调用发生在用户态--对系统调用的处理发生在核心态--执行陷入指令会发生内中断,使处理器进入核心态
什么是系统调用?有何作用?
系统调用是操作系统提供应用程序的接口
作用:应用程序可以通过系统调用(程序接口)请求获得操作系统的服务
系统调用会使处理器从用户态切换到核心态
分类
设备处理----完成设备的请求,释放,启动等功能
文件管理----完成文件的读,写,创建,删除等功能
进程控制----完成进程的创建,撤销,阻塞,唤醒等功能
进程通信----完成进程之间的消息传递,信号传递等功能
内存管理----完成内存的分配,回收,获取作业占用内存区大小及始址等功能
系统调用和库函数的区别
系统调用时操作系统向上提供接口
有的库函数是对系统调用的进一步封装
当今编写的应用程序大多是通过高级语言提供的库函数间接的进行系统调用
系统调用背后的过程
1.用户程序执行陷入指令,请求操作系统服务
2.操作系统内核程序对系统调用进行相应处理
3.处理完成后,操作系统内核程序将CPU使用权还给用户