- 系统调用知识一般在操作系统编程或系统编程的课程中讨论;
0. 基本介绍
操作系统本质上是一个系统程序,即为别的程序提供服务的程序。操作系统是以系统调用(system call)的方式提供服务的。
- 系统调用就是操作系统提供的应用程序接口(Application Programming Interface,API),
- 用户程序即可通过调用这些 API 获得操作系统的服务;
例如,如果用户程序需要进行读磁盘内容的操作,在 C 程序代码中可使用如下的语句:
result = read(fd, buffer, nbytes);
该 read 函数是 C 语言提供的库函数,而这个库函数本身则是调用的操作系统的 read 系统调用。这里有两个 read:
- 一个是 C 语言提供的 read 库函数;
-
另一个是 read 系统调用,由操作系统提供;
编译器在看到上述语句后,将 read 库函数扩展为 read 系统调用;
1. 分类
- 进程控制类;
- 文件管理类;
- 设备管理类;
- 内存管理类;
- 信息维护类;
- 通信类;
3. 系统调用的三个阶段
-
参数准备阶段;
在参数准备阶段,需要使用系统调用的程序将系统调用所需要的参数,上例中的 fd、buffer、nbytes,压入栈中,然后调用 read 库函数;
系统调用识别阶段;
- 系统调用执行阶段;