将用户态转换为内核态
- 系统调用:应用程序向OS发出服务请求
- 异常:不良的应用程序的非法指令
- 中断:来源于外部设备,即不同的硬件设备的计时器和网络中断,其对应用程序是透明的
应用调用外设
应用——>OS——>外设
OS也是特殊的软件,可信任软件,可以操作硬件。
操作系统和应用程序
各自有自己的堆栈
有不同的特权级别,操作系统可以控制硬件
操作系统给应用程序提供的调用接口
windows :win32 API
LInux : POSIX API
JAVA :JAVA API通过调用虚拟机,虚拟机调用操作系统的底层接口
IO系统中断执行的三种方法:
轮询所有设备
IO设备发出中断信号,将CPU寄存器的状态保存到操作系统的堆栈
发出中断向量:中断服务程序的入口地址
DMA(管理内存和外设数据传输的专有设备)
在cpu不干预的情况下,控制IO设备与系统主存之间的直接数据传输,只有在数据放到内存中,才会向cpu发送请求。
DMA是双向控制的,内存和IO设备之间。