操作系统--中断与系统调用
1.中断
1-1.中断的概念
指处理器停止当前运行的程序,转而处理新的程序。新程序处理结束后,回来继续处理原来被停止的程序。
1-2.中断的作用
提高计算机的运行效率因为协调了外部设备速度慢和CPU处理速度快的矛盾维持系统可靠正常工作
如果遇到异常情况,CPU可以通过发起中断来维持系统稳定满足实时处理要求
可以保证一些处理优先级高的程序优先执行提供故障现场处理手段
CPU一旦发现故障或者错误,可以立即中断程序
1-3.中断的分类
intel系列CPU把中断进一步分为异常和中断两类。
中断 可屏蔽中断:IO设备发出的,CPU可以选择是否响应的中断非可屏蔽中断:IO设备发出的,CPU必须响应的中断异常 处理器探测异常:处理器执行指令过程中发现翻唱条件所产生的异常变成异常:编程者产生的异常
1-4.中断向量与中断描述符表
中断向量:系统为每个中断分配了一个唯一标识号,范围是0~255,其作用是作为中断描述符表的索引号,所以中断描述符表只有256个表项中断描述符表:CPU会把内存中1KB的空间拿出来存放中断描述符表,每一个表项占用8B空间。空间内存储出现该中断时,系统必须执行的一些指令2.系统调用
2-1.概述
概念:提供接口给应用程序来使用,是计算机硬件系统和用户程序之间的一个中间层。作用: 方便了程序员,把程序员从计算底层原理中解放出来通过权限控制来提高系统的稳定性只要接口相同,应程序就可以在不同操作系统上实现移植2-2.系统调用号、系统调用服务例程和系统调用入口表
系统调用号:在操作系统中,系统调用使用号码进行存储系统调用入口表:可以使用系统调用号在表里查询到相应的系统调用服务例程系统调用服务例程:在操作系统内核中的真正实现调用硬件资源的函数系统调用过程:
应用程序产生系统调用,并查询内存中的系统调用入口表得到系统调用号并存储在硬件中(linux中为EAX寄存器中)应用程序产生异常编程来发出中断请求,迫使CPU切换状态并调用系统调用程序系统调用程序通过系统调用号来找到相应的系统调用例程,最终实现功能