系统调用

#系统调用分类

以下操作属于共享资源,需要用到系统调用,故系统调用大多就分为下面几类

  • 设备管理
  • 文件管理
  • 进程控制
  • 进程通行
  • 内存管理
  • #系统调用功能

  • 凡是与共享资源有关的操作(即系统调用分类中的各个调用)都必须通过系统调用的方式向操作系统提出服务请求,由操作系统内核代为完成,这样保证系统的稳定性和安全性,防止用户进行非法操作。
  • #系统调用过程

  • 应用程序的对应指令在cpu的执行过程中,当需要调用系统共享资源时,需要向cpu输入参数指令,在cpu的某个寄存器中传输必要参数
  • 一般第一个参数是指明系统调用的类型是哪个,然后还有其他的对应参数
  • 随后应用程序会执行一个陷入指令(trap指令,或者访管指令),该指令并不是特权指令,故是在用户态下完成
  • 应用程序中断,内核程序随之调用cpu中的寄存器的参数,判断并调出对应处理程序,这个过程是在内核态下完成
  • 处理完系统调用后,cpu会变回用户参数,回归应用程序。
  • 传递系统调用参数->执行陷入指令(用户态)->执行响应的内请求处理系统调用(内核态)->返回

    PS: 1.陷入指令是在用户态下执行的,引起内中断,并使CPU进入内核态

    2. 发出系统调用的是用户态,对系统调用作相应处理的是在内核态下进行