上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.6 操作系统的运行环境
1.中断和异常激活操作系统
由上面几节的描述,可以看出,操作系统内核代码运行的条件是通过中断或异常驱动和激活的。中断,又叫做外中断,是一些外部设备向CPU泄放的一个硬件信号,如各种外部设备的I/O完成中断、时钟中断等,它与CPU执行的指令无关,是异步发生的,而且是可以被屏蔽的。当中断产生时,CPU响应中断,转入相应的中断处理程序执行。
异常又叫做陷入,是执行程序自己产生的,是同步发生的,而且是不可屏蔽的。其产生的条件是:① 由于程序错误,如程序的非法操作码、地址越界、除数为0,包括存储器管理中的页面失效等;② 由于程序请求操作系统服务和请求系统资源等使用系统调用。一旦产生,立即转操作系统处理。
操作系统内核代码运行在核心态,主要是在中断或异常发生时嵌入到用户进程中运行的。当中断或异常发生时,保护当前进程的运行现场信息,将CPU的控制权交给操作系统内核。操作系统根据中断和异常产生的原因,进行相应处理。处理完成后,或者恢复被中断进程的现场,或者另选一个进程运行。
2.操作系统作为独立进程
操作系统的功能作为一组系统进程独立运行,称为服务器进程,如文件服务器进程、ftp进程等。用户进程与这些服务进程构成了client/server关系。除了内核极少部分代码在核心态运行外,大部分操作系统功能以独立系统进程运行在用户态。这就是微内核操作系统的特点。如美国的卡内基梅隆大学的MACH操作系统和Windows 2000/XP等操作系统就采用了这种运行模式。