操作系统的系统调用

目录

一、什么是系统调用,系统调用的作用
二、系统调用和库函数的区别
三、系统调用背后的过程

一、什么是系统调用,系统调用的作用

1、 操作系统作为用户和硬件的接口,向上提供一些简单易用的服务,主要包括命令接口和程序接口,其中程序接口由一组系统调用组成
2、用户接口:

  • 命令接口: 联机命令接口(用户说一句系统做一句);脱机命令接口(用户说一堆系统做一堆)
  • 程序接口: 由一组系统调用组成,通过程序间接使用

3、系统调用: 系统调用是操作系统提供给应用程序(程序员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序发出系统调用请求来获得操作系统的服务
4、为什么要使用系统调用功能?

  • 凡是和资源有关的操作,都必须通过系统调用向操作系统提出服务请求,由操作系统代为完成(协调和管理进程请求的服务)
  • 好处:保证了系统的稳定性和安全性,防止用户进行非法操作

5、系统调用的分类(按功能划分)

  • 设备管理:完成设备的请求释放和启动等功能
  • 文件管理:完成文件的创建、删除、读和写等功能
  • 进程控制:完成进程的创建、撤销、阻塞和唤醒等功能
  • 进程通信:完成进程之间的信号传递和消息传递等功能
  • 内存管理:完成内存的分配和回收等功能
  • 注意: 系统调用的相关处理涉及到对系统资源的管理,对进程的控制,需要执行一些特权指令才能完成,因此,系统调用的相关处理需要在核心态下进行

二、系统调用和库函数的区别

  • 普通应用程序:可以直接使用系统调用,也可以使用库函数,涉及到系统调用的库(文件创建),不涉及系统调用的库(取绝对值函数)
  • 编程语言:向上提供库函数,系统调用封装到库函数中
  • 操作系统:向上提供系统调用
  • 裸机

三、系统调用背后的过程

1、系统调用的过程

2、系统调用的总结图

4操作系统的系统调用相关推荐

  1. 操作系统的系统调用是怎么一回事呢?

    为了从操作系统中获得服务,用户程序必须使用系统调用( System Call),系统调用陷入内核并调用操作系统.访管指令把目态切换成管态,并启用操作系统.当有关工作完成之后,在系统调用后面的指令把控制 ...

  2. 操作系统开发系列—13.g.操作系统的系统调用 ●

    在我们的操作系统中,已经存在的3个进程是运行在ring1上的,它们已经不能任意地使用某些指令,不能访问某些权限更高的内存区域,但如果一项任务需要这些使用指令或者内存区域时,只能通过系统调用来实现,它是 ...

  3. 【学习笔记】第一章——操作系统的系统调用(陷入指令、库函数、作用流程)

    文章目录 总览 一. 定义与作用 定义 作用 分类 二. 系统调用和库函数的区别 三. 系统调用背后的过程 导图总结 总览 面试常考题了,可得好好看看 XD 一. 定义与作用 定义 作用 结合下图例子 ...

  4. 程序员的自我修养--链接、装载与库笔记:系统调用与API

    系统调用(System Call)是应用程序(运行库也是应用程序的一部分)与操作系统内核之间的接口,它决定了应用程序是如何与内核打交道的.无论程序是直接进行系统调用,还是通过运行库,最终还是会到达系统 ...

  5. linux 系统调用 hook 总结

    1. 系统调用Hook简介 系统调用属于一种软中断机制(内中断陷阱),它有操作系统提供的功能入口(sys_call)以及CPU提供的硬件支持(int 3 trap)共同完成. 我们必须要明白,Hook ...

  6. linux系统调用和库函数调用的区别

    1.系统调用 系统调用提供的函数如open, close, read, write, ioctl等,需包含头文件unistd.h.以write为例:其函数原型为 size_t write(int fd ...

  7. linux系统调用挂钩方法总结

    相关学习资料 http://xiaonieblog.com/?post=121 http://hbprotoss.github.io/posts/li-yong-ld_preloadjin-xing- ...

  8. Linux 库函数与系统调用的关系与区别

    上周总结了<C 标准库的基础 IO>,其实这些功能函数通过「系统调用」也能实现相应功能.这次文章并不是要详细介绍各系统调用接口的使用方法,而是要深入理解「库函数」与「系统」调用之间的关系和 ...

  9. 系统调用与软件中断SWI的实现

    ++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_raptor/art ...

最新文章

  1. 问题 c: 插入排序_插入排序:它是什么,以及它如何工作
  2. ubuntu bless 16字节每行
  3. 从输入字段读取属性时,HTML编码丢失
  4. python第三方库有哪些常用的、请列举15个-你想要的Python面试都在这里了【315+道题】...
  5. Android 自动换行流式布局的RadioGroup
  6. 谁才是世界上最好的 CI/CD 工具?
  7. OpenOffice的安装与启动2
  8. ARM开发6.3.1 基础实训( 1 ) 单个数码 LED 的显示输出系统设计( 1)--LPC21XX
  9. 马尔科夫模型系列文章(二)——隐马尔科夫模型
  10. Linux抓包(wireshark+tcpdump)
  11. matconvnet
  12. 计算机无法识别 此硬盘,如果计算机无法识别硬盘驱动器,该怎么办?
  13. iPhone免越狱Git服务器搭建教程-iSH
  14. 某些排序问题中元素大小比较的化简以及传递性证明
  15. 爬虫之上传文件,request如何上传文件
  16. 智能微模块一体化机柜
  17. 【第五章 | 存储器管理】《操作系统 慕课版》课后答案 + 复习
  18. 微软 2018 开源大事记
  19. [iOS开发]高德地图SDK
  20. 解决Fabric报“FAILED to execute End-2-End Scenario“问题

热门文章

  1. #pragma once的用法及含义
  2. django2.0 在安装mysqlclient 报错ERROR: Command errored out with exit status 1: python setup.py egg_info
  3. Linux系统上安装Windows虚拟机【VMware】
  4. css实现花哨效果及关键帧小动画
  5. python批量转换数据类型_python中数据类型转换
  6. edge中如何设置ssl.3是什么
  7. X86汇编——标志寄存器
  8. (rt-thread gdb)关于probe_kernel_write(判断地址是否可以写入)
  9. git仓库本地文件与coding远程上传
  10. mysql求班级男女比例_学习篇3:考生来源?男女比例?班级人数?