system call——系统调用

article/2025/10/30 5:57:31

1. 系统调用

系统调用是操作系统提供的有效服务界面,一般使用高级语言编写,如c和c++,对于特定的较为底层的任务,则使用汇编语言指令。

 

2. API和系统调用
API,应用程序接口,提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力。
使用API而不直接调用系统调用的原因主要由以下两点:1)由于API隐藏了绝大多数细节,所以程序员无需理解内部工作机制的细节,更加的user-friendly。2)因为API跟内核没有必然的联系,所以具有很好的可移植性。

有三种常用的API:Windows系统的Win32 API,适用于POSIX系统的POSIX API以及JAVA API。

 

3. 系统调用的实现
系统调用接口,由程序设计语言的运行时支持系统提供。系统调用接口截取API的函数调用,然后调用操作系统中的相关系统调用。

一般而言,每个系统调用有一个与其相关的数字,多个数字构成了向量表。系统调用接口维护这个列表索引,并通过其来调用所需要操作系统内核中的的系统调用。

 

4. 系统调用的参数传递

系统调用根据使用的计算机而异,通常需要提供比系统调用识别符更多的信息。传参方法有三种:1)通过寄存器直接传递传参 2)参数存在内存的块和表上,块的地址通过寄存器来传递 3)参数也可以通过程序压入堆栈中,并通过操作系统弹出。

 

5. 系统调用的类型
进程控制(Process control)
终止&运行程序,如end(), abort();

装入&执行进行– load(), execute();

创建&中止进程-create_process(), terminate_process();

获得&设置进程属性– create_process(), terminate_process();
等待时间wait_time();
等待&唤醒事件– wait_event(), signal_event();

分配和释放内存acquire_lock(), release_lock();

除了进程控制,还有文件管理(File manipulation),设备文件(Device manipulation),信息维护(Information maintenance),通信(Communication),保护(Protection)。

其中通信模型有两种:1)消息传递模型,通信进程彼此之间交换消息来交换信息,直接或间接的通过一个共同的邮箱 2)共享内存模型:进程通过shared memory create 和shared memory attach系统调用来获得其他进行所拥有的内存的访问权。

 

参考文献:
[1] Abraham Silberschatz. 操作系统概念. 高等教育出版社, 2007.3.


http://chatgpt.dhexx.cn/article/AoNM1RL1.shtml

相关文章

syscall 系统调用

转自:http://blog.csdn.net/b02042236/article/details/6136598 5.1.5 如何使用系统调用 如图5.2所示,用户应用可以通过两种方式使用系统调用。第一种方式是通过C库函数,包括系统调用在C库中的封装函数和其他普通函数。 图5.2 使用系统调用…

linux下syscall函数

NAME syscall - 间接系统调用 SYNOPSIS #define _GNU_SOURCE #include <unistd.h> #include <sys/syscall.h> /* For SYS_xxx definitions */ int syscall(int number, ...); DESCRIPTION …

#Java干货分享:这五个网站能打通你的任督二脉,让你技术大增

现如今的程序员可是一个需要时刻学习的职业&#xff0c;尤其是目前非常火热的Java&#xff0c;作为应用最为广泛的语言&#xff0c;在这一点上体现得尤其强烈。今天分享一些网站资源给大家学习&#xff0c;希望能够为你提供帮助&#xff01; 1、GitHub 这个网站不用多说&…

redis 技术分享

1、是什么 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 2、应用场景 2.1 特点 Redis 与其他 key - …

IT技术视频分享

Hadoop 初级/中级/高级视频 需要的加入115046170QQ群

在职场,光有技术是不行的,18年老程序员职场宝贵经验分享

程序员是公认的技术型岗位&#xff0c;我们喜欢用实力说话&#xff0c;那么是否技术实力强就能在职场如鱼得水&#xff1f; 以前我觉得只要技术过硬&#xff0c;在哪都是香饽饽&#xff0c;后来发现也不尽然&#xff0c;公司不是研究所&#xff0c;在研究所里你或许可以不管不…

【多年IT经验分享】

1、分享第一条经验&#xff1a;“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要&#xff1a;“重要的道理明白太晚将抱憾终生&#xff01;”所以放在…

【干货分享】程序员常访问的国外技术交流网站汇总

搞技术的&#xff0c;如果想更高提升自身技能水平&#xff0c;英语这关是逃不了的。 ——某位不愿透露姓名的四级loser 技术人员经常会在各种技术交流社区游逛&#xff0c;大家互相学习、交流、分享、帮助。互联网拉近了地球人的距离&#xff0c;让全世界的技术人员可以聚集在一…

如何做技术分享

转载自&#xff1a;https://www.jianshu.com/p/02e63c85248f 公司最近让我做关于如何做分享的分享&#xff0c;题目定的太大&#xff0c;查了查资料&#xff0c;从演讲技巧到内容准备&#xff0c;泛泛的说意义不大。所以干脆化大为小&#xff0c;限定到技术分享的范围内。不包含…

(2021年)IT技术分享社区个人文章汇总(编程技术篇)

2021年即将成为过去&#xff0c;崭新的2022年即将到来&#xff0c;小编坚持每天给大家分享IT技术相关的文章&#xff0c;希望小编分享的文章能够给大家在日常的工作当中&#xff0c;带来一点帮助。也感谢大家对本公众号的支持&#xff0c;未来我会坚持创作&#xff0c;给大家分…

【技术网站分享】全面整理了一波技术网站,分享给大家!

一、在线教程 首先列出一些在线教程网站&#xff0c;这些在线教程网站通常都比较适合入门&#xff0c;可以作为开发学习路上的第一个阶梯&#xff0c;也可以作为工作中的在线文档。 1、菜鸟教程 地 址&#xff1a;https://www.runoob.com/简 介&#xff1a;在线教程网站&…

十种技术思维:给业务新人的分享

这两周比较惊讶的发现&#xff0c;团队里的小伙伴们都开始主动去用配置化、标准化的思路做事了&#xff0c;很高兴。 比起HOW、我更愿意讲WHAT&#xff0c;今天我主要想讲开发在意识和思路上的一些东西&#xff0c;花10分钟列十条吧。 1、​以终为始&#xff1a;价值是一切的起…

关于技术分享的思考

关于技术分享的思考 最近公司在推行导师制&#xff0c;鼓励有经验的导师带动团队&#xff0c;提升团队的战斗力。作为技术部门&#xff0c;技术分享最适合不过了&#xff0c;可以做到全员导师。 1. 技术分享的目的 做任何事情都是要有目的的。有了明确的目的&#xff0c;在做…

IT云运维技术分享

1 运维体系 1.1 市场对运维的需求 时代发展到今天&#xff0c;社会的生活方式与生产方式的全面的数字化&#xff0c;无论是传统企业还是互联网企业&#xff0c;都在全面上云&#xff0c;这也意味着企业的关键业务乃至“身家性命”都已经全部放在 IT 系统之上&#xff0c;因此…

IT行业里的热门技术 | 热门IT技术项目分享 | 详细介绍一下机器人技术

现在如果问什么行业最火,很多人第一反应肯定就是IT。的确,这些年随着互联网的不断发展,IT热门众所周知。那么就一起来说说,IT行业里,哪些技术更热门。 方向一:你觉得哪些是IT行业里的热门技术 提示:可以简要介绍一下该热门技术、主要的应用、发展、前景等 以下是我认为…

ADB shell出现error:device offline提示

解决办法&#xff1a; 1、adb kill-server2、adb start-server3、adb remount执行这3个命令然后重新键入adb shell应该就可以了 如果还是不行的话&#xff0c;出现error:device offline报错可能是因为ADB版本较低的原因&#xff0c;解决办法就是下载使用最新的ADB工具。 出现上…

Android 手机 黑域

黒域地址下载&#xff1a; http://pan.baidu.com/s/1bDYerc 连接手机&#xff0c;选择USB使用方式为“用作MIDI设备“ 0. (手机) 打开黑域&#xff0c;阅读向导1. (手机) 打开黑域&#xff0c;按屏幕提示&#xff0c;进入“开发者选项”&#xff0c;开启“USB调试”2. (电脑) 下…

黑域助手连接服务器才能用吗,黑域怎么免root使用?root使用教程

黑域怎么免root使用&#xff1f;root使用教程由软吧下载编辑网络收集整理&#xff0c;如果您觉得还不错&#xff0c;请分享推荐给你的朋友&#xff01; 国内的安卓应用设计得很不规范&#xff0c;不少应用你即使没使用&#xff0c;也会后台自启&#xff0c;既占用内存和cpu&…

ADB server didn't ACK

原文地址: http://www.cnblogs.com/longqi293/archive/2012/06/19/Android-Troubleshooting-ACK.html 今天下午&#xff0c;写了不少代码后&#xff0c;点击那个Run按钮后&#xff0c;Eclipse给我报错&#xff1a; [2012-06-19 15:22:19 - adb] ADB server didnt ACK [2012-06-…

黑域助手连接服务器才能用吗,黑域app怎么使用?进入黑域详细教程[图]

类型&#xff1a;手机工具 大小&#xff1a;183KB 评分&#xff1a;9.8 平台&#xff1a; 黑域app许多朋友不知道怎么使用&#xff0c;友情小编为大家整理了这篇文章&#xff0c;希望对大家有所帮助哦~ 黑域app怎么使用&#xff1f;进入黑域详细教程 前提&#xff1a; 1.确保US…