操作系统基础(一) 基础 中断、异常和系统调用
- 操作系统是向上提供应用程序的接口,向下使用计算机硬件所提供的接口
- 操作系统管理硬件:CPU管理、内存管理、终端管理、磁盘管理、文件管理
系统调用 System Call 是应用程序主动向操作系统提出服务请求;
异常 是不良的应用程序出现错误需要操作系统处理;
中断是外设的计时器中断向操作系统提出服务请求。
应用程序不能直接访问外设:只有操作系统能够执行特权指令、访问外设;操作系统提接口方便上层应用程序的开发。
系统调用、异常和中断的区别:
- 请求的来源不同
- 处理时间不同:中断是异步的,即并不知道什么时候会产生;异常是同步的,执行某一条错误的指令后同时出现异常;系统调用可以是同步的(应用程序提出请求之后等待操作系统处理),也可以是异步的(应用程序提出请求之后去做其他事情了)
- 响应结果不同:如果是异常,应用程序将被杀死或执行意想不到的指令;对系统调用,用户进程等待或持续;对中断,一直持续,但对用户程序是透明的。
系统调用
- 用户应用程序的普通函数调用与系统调用不是在一个栈中进行(切换堆栈)
- 用户应用程序进行系统调用需要进行用户态到内核态的转换
- 因此系统调用的开销会比普通函数调用的开销大!但是保证了安全可靠。
- 还有更多其他的开销。