系统调用

来源:互联网 发布:淘宝怎么买烟2017 编辑:程序博客网 时间:2024/06/07 19:28

系统调用

系统调用的功能

操作系统管理计算机资源,作为用户与计算机硬件之间的接口。操作系统为了保护操作系统不被用户程序破坏,一般不允许用户访问操作系统的程序和数据。所以操作系统不允许用户采用过程调用的方式调用操作系统的程序,而是让应用程序通过系统调用命令去调用需要的系统过程。

系统调用实现

系统调用与一般的过程调用是不同的调用方式。在系统运行过程中,通常运行两类程序:系统程序和应用程序。为了保护操作系统的不被破坏,为计算机系统设置了用户态和系统态两种状态。通常用硬件实现。在系统态可以执行一些特权指令,用户态不能执行特权指令。一般的过程调用时保持在一个状态,要么都是保持在系统态,要么都保持在用户态。而系统调用需要从用户态转换到系统态。
系统状态的转换通过中断和陷入指令实现。当应用程序使用操作系统的系统调用时,产生一条相应的指令,CPU在执行这条指令时发生中断,产生一个中断信号,将当前进程转入阻塞状态,并且将系统调用号放入指定的寄存器中。操作系统根据中断信号查找中断向量表,根据系统调用号执行系统调用程序。系统程序执行完毕,则将处理器释放。操作系统重新调度系统线程或者用户进程。

系统调用类型

进程控制类系统调用

  1. 创建和终止进程的系统调用
  2. 获得和设置进程属性的系统调用
  3. 等待某事件出现的系统调用

文件操纵类系统调用

  1. 创建和删除文件
  2. 打开和关闭文件
  3. 读和写文件

进程通讯类

这些系统资源不能被用户进程管理。
例表:
系统调用列表

0 0
原创粉丝点击