操作系统之系统调用

1.什么是系统调用

应用程序通过系统调用请求操作系统服务

应用程序不能直接申请系统资源,必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样保证了系统的稳定性和安全性。

系统调用分为 设备管理,文件管理,进程控制,进程通信,内存管理

系统调用的相关处理都是在核心态下的
在这里插入图片描述
在这里插入图片描述

2. 系统调用与库函数的区别

库函数可能是封装好的系统调用,也可能不涉及系统调用。应用程序可能发出系统调用,库函数也可能发出系统调用。
在这里插入图片描述
高级语言编译为汇编语言,汇编语言的指令可能需要发出系统调用请求。

3. 系统调用背后的过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
linux中,系统调用实际上是0x80号中断对应的中断处理程序的子程序

系统调用陷入指令就是 int 0x80;

在执行"int 0x80;"进行中断之前,应用层会做如下准备工作:
1.把系统调用号码赋值给寄存器EAX;
2.把系统调用需要的参数按次序赋值给寄存器EBX,ECX,EDX等等。
这样,等下0x80中断发生的时候,系统调用需要的全部信息就能通过这些寄存器传递给中断处理程序了。

系统调用过程

进入80号中断处理程序后,根据系统调用号码选择相应的中断处理子程序
在这里插入图片描述

4. 总结

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值