前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6-系统调用

6-系统调用

作者头像
Ywrby
发布2022-10-27 13:07:21
3950
发布2022-10-27 13:07:21
举报
文章被收录于专栏:Ywrby

系统调用

系统调用是操作系统提供给应用程序(开发人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务

程序接口由一组系统调用组成

系统调用的概念和作用

应用程序通过系统调用请求操作系统的服务。系统中各种共享资源都由操作系统统一掌管,因此用户程序想要执行与资源有关的操作(例如存储分配。I/O操作,文件管理等)都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作

如果没有系统调用存在,各个应用程序就可能会产生非法争夺共享资源的情况发生,例如多个应用同时对一个文件进行读写操作这显然是十分危险的

系统调用分类(依照功能分类)

  • 设备管理:完成设备的请求/释放/启动等功能
  • 文件管理:完成文件的读/写/创建/删除等功能
  • 进程控制:完成进程的创建/撤销/阻塞/唤醒等功能
  • 进程通信:完成进程之间的消息传递/信号传递等功能
  • 内存管理:完成内存的分配/回收等功能

由于系统调用涉及到对系统资源的管理,对进程的控制,这些功能需要执行一些特权指令,所以系统调用的相关处理需要在核心态下进行

系统调用与库函数的区别

应用程序本身可以通过汇编语言直接进行系统调用,但是常见情况下更多是使用高级语言间接进行系统调用

高级编程语言向上层(应用程序)提供库函数,这些库函数中的一部分对系统调用进行了封装,隐藏了系统调用的细节,使上层进行系统调用更加方便

系统调用的背后过程

注意:
  • 陷入指令是在用户态执行的,执行陷入指令后立即引发一个内中断,从而使CPU进入核心态
  • 发出系统调用请求是在用户态进行的,但对系统调用的相关处理是在核心态下进行的
  • 陷入指令是唯一一个只能在用户态下执行,而不能在核心态下执行的指令(因为陷入指令是让CPU从用户态进入核心态的指令)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系统调用
    • 系统调用的概念和作用
      • 系统调用分类(依照功能分类)
        • 系统调用与库函数的区别
          • 系统调用的背后过程
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档