已解决
操作系统:系统调用
来自网友在路上 147847提问 提问时间:2023-09-22 22:12:22阅读次数: 47
最佳答案 问答题库478位专家为你答疑解惑
1.系统调用的定义
凡是与共享资源有关的操作、会直接影响到其他进程的操作,
就一定需要操作系统介入,就需要通过系统调用来实现。
1.回顾系统调用
- 操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。
- 主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
- “系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,
- 应用程序可以通过系统调用来请求获得操作系统内核的服务
2.系统调用与库函数的区别
1.程序调用计算机的过程:
- 普通应用程序:可直接进行系统调用,也可使用库函数。有的库函数涉及系统调用,有的不涉及
- 编程语言:向上提供库函数。有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便。
- 操作系统:向上提供系统调用,使得上层程序能请求内核的服务。
- 裸机
2.库函数的分类
- 不涉及系统调用的库函数:如“取绝对值”的函数
- 涉及系统调用的库函数:如“创建一个新文件”的函数
3.系统调用的必要性
思考:如果两个进程可以随意地、并发地共享打印机资源,会发生什么情况?
解决方法:由操作系统内核对共享资源进行统一的管理,
并向上提供“系统调用”,用户进程想要使用打印机这种共享资源,
只能通过系统调用向操作系统内核发出请求。
内核会对各个请求进行协调处理
4.系统调用的功能实现
1.功能分类
- 设备管理:完成设备的请求/释放/启动等功能
- 文件管理:完成文件的读/写/创建/删除等功能
- 进程控制:完成进程的创建/撤销/阻塞/唤醒等功能
- 进程通信:完成进程之间的消息传递/信号传递等功能
- 内存管理:完成内存的分配/回收等功能
2.系统调用的作用
- 应用程序通过系统调用请求操作系统的服务。
- 而系统中的各种共享资源都由操作系统内核统一掌管,
- 因此凡是与共享资源有关的操作(如存储分配、V/o操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。
- 这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
5.系统调用的过程
1.过程
- 传递系统调用参数→
- 执行陷入指令(用户态)→
- 执行相应的内请求核程序处理系统调用(核心态)→
- 返回应用程序。
该中断由陷入指令引发,因此转入相应的中断处理程序――即系统调用的入门程序。
注意:
1.陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态。
2.发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
3.陷入指令= trap 指令=访管指令
查看全文
99%的人还看了
相似问题
- 基于ASP.NET MVC技术的图书管理系统的设计与实现
- MySQL数据库:开源且强大的关系型数据库管理系统
- 最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能
- 基于springboot实现班级综合测评管理系统项目【项目源码+论文说明】
- 香港科技大学广州|机器人与自主系统学域博士招生宣讲会—同济大学专场!!!(暨全额奖学金政策)
- 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
- 基于Springboot的美容院管理系统(有报告)。Javaee项目,springboot项目。
- MES系统管理范围及标准
- 性能测试:系统架构性能优化思路
- django+drf+vue 简单系统搭建 (3) - 基于类的视图
猜你感兴趣
版权申明
本文"操作系统:系统调用":http://eshow365.cn/6-11683-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: uniapp 封装request请求
- 下一篇: Qt5和Qt6的区别