系统调用
操作系统提供一种适用于应用程序中的功能调用接口,叫做系统调用(system cal),允许用户在自己的应用程序中调用系统中提供的-些具有预定功能的服务例程。系统调用是应用程序获得操作系统服务的唯一途径。
(1)系统调用分类
- 进程和作业管理类
- 文件操作类
- 设备管理类
- 主存管理类
- 信息维护类
- 通信类
(2)系统调用与API函数的区别
- 系统调用:程序级接口,通过该接口用户程序可以调用操作系统提供的功能模块(以函数形式提供)。
- API:系统提供的应用函数库,也称应用程序接口,将一些常用功能函数事先实现,供用户程序直接调用,其中一些API函数的实现过程调用了一个或几个系统调用。
- 系统调用的服务例程在管态下执行。
- API函数在目态下执行。
(3)应用程序,库函数,系统调用的调用关系链
(4)Linux系统程序,系统调用。库函数,应用程序分层关系
(5)系统调用实现
- 编写系统调用处理内核函数;
- 设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理内核函数,有的系统还包含系统调用自带参数的个数;
- 陷入处理机制开辟现场保护区,以保存发生系统调用时的处理器现场。