三种操作系统接口
用户接口
程序接口
网络用户接口
系统调用的概念和类型 (9.4)
系统态和用户态
在计算机系统中,通常运行着两类程序:系统程序和应用程序。
在计算机系统中设置了两种状态: 系统态(也称为管态或核心态)和用户态(也称为目态)。
为了防止应用程序对OS的破坏,应用程序和OS的内核是运行在不同的状态,即OS的内核是运行在系统态,而应用程序是运行在用户态。
在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代多数OS将CPU的指令集分为特权指令和非特权指令两类。
- 特权指令:在系统态时运行的指令,是关系到系统全局的指令。其对内存空间的访问范围基本不受限制,不仅能访问用户存储空间,也能访问系统存储空间。
- 非特权指令:是在用户态时运行的指令。
系统调用的概念
在OS中提供系统调用的目的,是使应用程序可以通过它间接调用OS中的相关过程,取得相应的服务。系统调用在本质上是应用程序请求OS内核完成某功能时的一种过程调用,但它是一种特殊的过程调用,它与一般的过程调用有下述几方面的明显差别:
- 运行在不同的系统状态。
- 状态的转换。
- 返回问题。
- 嵌套调用。
系统调用的类型
- 进程控制类系统调用
- 文件操纵类系统调用
- 进程通信类系统调用