系统调用

操作系统提供一种适用于应用程序中的功能调用接口,叫做系统调用(system cal),允许用户在自己的应用程序中调用系统中提供的-些具有预定功能的服务例程。系统调用是应用程序获得操作系统服务的唯一途径。

(1)系统调用分类

  1. 进程和作业管理类
  2. 文件操作类
  3. 设备管理类
  4. 主存管理类
  5. 信息维护类
  6. 通信类

(2)系统调用与API函数的区别

  • 系统调用:程序级接口,通过该接口用户程序可以调用操作系统提供的功能模块(以函数形式提供)。
  • API:系统提供的应用函数库,也称应用程序接口,将一些常用功能函数事先实现,供用户程序直接调用,其中一些API函数的实现过程调用了一个或几个系统调用。
  • 系统调用的服务例程在管态下执行。
  • API函数在目态下执行。

(3)应用程序,库函数,系统调用的调用关系链

操作系统---(7)系统调用

(4)Linux系统程序,系统调用。库函数,应用程序分层关系

操作系统---(7)系统调用

(5)系统调用实现

  • 编写系统调用处理内核函数;
  • 设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理内核函数,有的系统还包含系统调用自带参数的个数;
  • 陷入处理机制开辟现场保护区,以保存发生系统调用时的处理器现场。

(7)系统调用处理过程

操作系统---(7)系统调用

(8)Linux系统调用执行流程

操作系统---(7)系统调用

相关文章: