本文共 1055 字,大约阅读时间需要 3 分钟。
操作系统放在了disk上,
BIOS:检索I/O,从特定地址执行,-》加载bootloder CS段寄存器, IP:指令寄存器 POSt(加电后):寻找显卡和执行BIOS bootloder:把OS代码和数据从硬盘放到内存interface:系统调用,异常,中断。
系统调用:应用程序向操作系统发出请求,特殊的一条指令 异常:应用程序在执行中非法指令 中断:外设发出请求处理应用程序为什么不能直接访问硬件呢?
OS可信任,提供安全的服务,而应用程序是不安全的 通过操作系统屏蔽底层的复杂性。中断:来源外设,键盘,鼠标,字符的事件,移动的事件
异常:应用程序不想主动产生的请求。去执行一些非法代码,恶意的程序想获取别的程序的地址 系统调用:应用程序主动请求莫方面的请求,打开文件,读写文件,打开网络包。中断:异步
异常:同步 系统调用:异步or 同步中断:对应用程序透明,是操作系统的偷偷处理
异常: 系统调用:等待后持续运行分为硬件的处理过程和软件的处理过程
硬件: 中断异常由什么特定的去服务–中断号 对应的地址去处理对应的中断。 软件 即查中断表后去继续执行中断,将原处理时的执行现场环境保护起来 跳到中断具体情况去处理,处理完之后去继续执行原来的数据,清除中断标记。异常:
异常编号: 保存现场,根据异常编号去进行异常处理。 1,杀死异常程序 2,重新执行异常执行,在之前将异常修补好(因为应用程序也不知道什么时候发生异常)系统调用:
接口:print() 触发系统调用write()
程序访问主要是高层次的API调用,java的API不是系统调用,而是虚拟机转换为win的API来系统调用
触发从 用户态 到 内核态 的转换 包括特权指令,控制权从应用程序到操作系统。堆栈也需要转换。
对应映射表,中断表,异常表,
操作系统有自己的堆栈, 操作系统不信任应用程序,对请求进行检查也需要开销这些开销使操作系统安全可靠的执行。
计算机体系结构,内存分层体系
硬件结构
CPU 内存 外设 内存(存储器)的层次结构: 主存(物理内存):断电后就没了 硬盘:永远保存。进程间的交互:共享内存
程序重定位
分段 分页 虚拟内存 按需分页虚拟内存物理地址空间–硬件
逻辑地址空间–运行的程序看到的地址空间,最终会转换成物理地址。转载地址:http://fbcki.baihongyu.com/