(操作系统)系统调用

  • 系统调用知识一般在操作系统编程或系统编程的课程中讨论;

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 库函数;

  • 系统调用识别阶段;

  • 系统调用执行阶段;
原文地址:https://www.cnblogs.com/mtcnn/p/9422062.html