博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作系统1
阅读量:3967 次
发布时间:2019-05-24

本文共 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/

你可能感兴趣的文章
Linux移植随笔:终于解决Tslib的问…
查看>>
移植linux2.6.38内核到TQ2440
查看>>
移植linux2.6.38内核到TQ2440
查看>>
cvQueryFrame获取的图像和cvReleas…
查看>>
cvQueryFrame获取的图像和cvReleas…
查看>>
OpenCV中的内存泄露问题(cvLoadIm…
查看>>
OpenCV中的内存泄露问题(cvLoadIm…
查看>>
计算程序运行时间
查看>>
计算程序运行时间
查看>>
linux 下 opencv2.0 的编译与安装 …
查看>>
linux 下 opencv2.0 的编译与安装 …
查看>>
V4L2 usb 摄像头 测试
查看>>
V4L2 usb 摄像头 测试
查看>>
摄像头究竟如何选购
查看>>
摄像头究竟如何选购
查看>>
Qt/Linux 下的摄像头捕获(Video4L…
查看>>
Qt/Linux 下的摄像头捕获(Video4L…
查看>>
肤色检测
查看>>
肤色检测
查看>>
CvScalar
查看>>