执行系统调用函数时,系统调用函数会执行int 0x80中断命令,同时将系统调用号放入eax寄存器中,并将要传递给系统的参数放入ebx,ecx,edx中。中断处理程序会执行system_call()函数。
system_call()函数首先保存原段寄存器,在将调用参数压入栈中。然后将ds、es指向内核数据段,cs段会在中断产生时由中断门的段选择符赋值为内核代码段,并将原段选择符保存到栈中。然后调用对应的功能函数。当从功能函数返回时,内核会查看当前任务运行状态,如果不在就绪态就去执行调度程序。如果在就绪态,但其时间片用完,则也去执行调度程序。当任务继续执行时则继续对信号进行处理,然后退回到系统调用函数。
Linux系统调用执行过程解析
转载请注明出处:服务器评测 » Linux系统调用执行过程解析
相关推荐
- *TMS 黑色星期五大促销!Ryzen 9 7950X 和 7950X3D 清仓促销!库存充足!立即订购!
- 【五年商家双十一限时送200】香港9929+CN2 大带宽2核14元/月
- DEDICATED.COM::Xeon E3-1270v5/v6 | 64GB | 2 x 512GB SSD | IPMI | 100TB @ 1GBPS | 49.99 美元/月
- *IOFLOOD.com █ RAM-ageddon:双倍增长 █ 2X RAM 同样低价
- *PLiKhost:廉价且可靠的印度尼西亚 (IIX) 专用服务器 – 雅加达
- destoon7.0标题{分类名称}只调用当前分类seo的方法
- 服务器fsockopen函数和pfsockopen函数开启及作用
- Linux系统通过FTP上传文件到云服务器