1.3 操作系统的运行环境
1.3.1 操作系统的运行机制
计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序,另一种是用户自编程序(应用程序)。
内核程序是应用程序的管理者,因此要执行一些特权指令,而应用程序出于安全考虑不能执行这些指令。所谓特权指令是指计算机中不允许用户直接使用的指令,如I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到PSW等的指令。
可以理解为,在CPU内部有一个小开关。当小开关为1时,CPU处于核心态,此时CPU可以执行特权指令;当小开关为0,使CPU处于用户态,此时CPU只能执行非特权指令。用户自编程序运行在用户态,操作系统内核程序运行在核心态。
1.3.2 中断和异常的概念
在操作系统中引入核心态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换。在实际操作系统中,通过中断和异常实现从用户态进入核心态。
中断也称为外中断,指来自CPU执行指令以外的事件的发生。异常也称为内种断,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出等。
1.3.3 系统调用
指用户在程序中调用操作系统所提供的一些子功能。大致分为:设备管理、文件管理、进程控制、进程通信、内存管理。