Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Linux系统调用的执行过程是怎么样的?

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

当执行系统调用函数时,系统调用函数会执行int 0x80中断命令,同时把系统调用号放入eax寄存器中,并把要传递给系统的参数放入ebx,ecx,edx中。中断处理程序会执行system_call()函数。

system_call()函数首先保存原段寄存器,在把调用参数压入栈中。然后把ds、es指向内核数据段,cs段会在中断产生时由中断门的段选择符赋值为内核代码段,并把原段选择符保存到栈中。然后调用对应的功能函数。当从功能函数返回时,内核会查看当前任务运行状态,如果不在就绪态就去执行调度程序。如果在就绪态,但其时间片用完,则也去执行调度程序。当任务继续执行时则继续对信号进行处理,然后退回到系统调用函数。()

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux循序渐进 进程管理及作业控制   下一篇:Linux系统下解析Elf文件DT_RPATH后门

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号