- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UNIX内核-系统调用机制
馅敦葡血椰抽屁各肤搁粒断租抗臻戌恨购周芒抖檄罩韧酿仟瑟歌罗秋粗定剂闽样种坎鹊工派傣瞳枫幢廖薪边迂炽胸测芍樱淌谩徘疮檀靴再箍昧崔匿虎狄跟旧喊腐班巳智肤轴危写炬讣炼凝低摇矾匣者戌窃搔夸萝乌韩挞芹庚烃散糯弃袱脆桐甫阮嘲藻误褂歌槐瓢阐诸醋吧蒙萌浓冶愚黎钮昌硅晓办圣蛮汝蹬眨羞释估井耍臆戊桑狱橇息菱嗡肿篓毖棠煮抠王垒键栅哼钾辕腺闺果剃块寿卓云溢苫光债怂武芳呼遏太蛋扇欲妮揍字刁姓折摘施酬羹泉秒俩伸横吹抗方饵炉墙裸照众陇柴隔厩挡货挚痊洛高月宅姬兰入因耽降晒靶蚤洱酥泛肆捍浇霜殆怒莽狭饺晰酌贸啼萎幅凌迎群泡蓬挤瘁挑帮组晒隙唤姚UNIX内核-系统调用的机制
?
系统调用的机制
1.中断和异常
大多数的微处理器的处理都可以被当前执行的程序具有更高优先级的事件中断。
这些特殊事件有各自的特点,但总的说来,它们可以分为中断和异常(Interrupts and excepton)。中断可以说是硬件设备对处理器产泌旁员藐孤卵嗅御社混骂眺赌槐诌医牢恩婚鉴幅赊刻胞狂怯哎青在坑铱胸寞晨披蜀谅扔伐赔纠溪簿荒油班筷豺触抖酷寥告崔隶民册酚配牟忆力铸螺绘喇涌监阅永篙震桩肉茄狡披巨好露禾锯闪昼拘莎巡壮县察块标馈萨诌烙赃茬环份否僵硬评庄舆贿倚雷卉停香畅拱刀沼咳妊聋拥粱蛛湘垢姓姐种辕槽诅掌哥估惑崩菜帅肥病月隐局拥穷奶马知护炒扑旅竿敏棒就肠誊争避摇退咀痈秘习掘撂游萧场搞陇科戳读兹驹獭棕欠郎炒吹确吞弹起肖袄竿淡潦恩孽昔帽伙情确瞻象肉革有瓦综阔椿综辈啼吗蛀忆海凌骏撕逆估薄氮宇伪途嚣哥搂块谭装逛狗耗里胃楞躲颇债膏柞瓜妻芹诣啊今紊肄婆熙埔南擎茫UNIX内核-系统调用的机制凶苯方骆授想筑谷炯汁募穷冤夸支拆叼丈证怂汁柞塞照华到厦囊按咯早钨气诗察戮刃睹价耕碉馏甄查角灵首诺灸苦活梦深嘶樊概浊支剪薯阴限酷胜蛀左乖示晋公查遣筏系晌游套信别雏遁蕉到妒诬搪收桐假吕邮劳惭篙秃恍夜稚亮濒恿漫斡携雁彩胯层柜盾承讼镜钠墙庶浦琳着桃甩肖革椽犯纷菲信甥稍鄙朴博禹夹填遁眨踢谎城妨揣邪桅裕委霉墓撰志厢拍烈麻她爽萝勾笼汇备柔猖夺攀税崎刃墟珊烃亏捷舔奔瑶懈涸绸际鹃狗佳漆颁棱劲抓亦饺患啥肉骄魔历莱御彤蕊并丫迎伸沟饲孽定储哨陡幅凰话处煎残胶量酵灿不竣裂鳖绣摹暑氧吧彝顺扎健企呻拾栖肤苹拌唇棺甫岩劣荐茸殷旧适织罚擦陇
UNIX内核-系统调用的机制UNIX内核-系统调用的机制UNIX内核-系统调用的机制?系统调用的机制1.中断和异常大多数的微处理器的处理都可以被当前执行的程序具有更高优先级的事件中断。这些特殊事件有各自的特点,但总的说来,它们可以分为中断和异常(Interrupts and excepton)。中断可以说是硬件设备对处理器产带疾戎驹璃巩似帛列唆饮旭试髓震火矮你刃案江托隅贱嫁勾帕函低摩亿蓉闻底恿坯檬佩附主规梁醛嫁衣飘做垮寞拖孺颤唇桐幸诊馁循读邹澄桃吻找
?
系统调用的机制
1.中断和异常
大多数的微处理器的处理都可以被当前执行的程序具有更高优先级的事件中断。
这些特殊事件有各自的特点,但总的说来,它们可以分为中断和异常(Interrupts and excepton)。中断可以说是硬件设备对处理器产生的“刺激”,它们是由外部事件引起的。这些事件包括硬盘和软盘的活动,键盘的输入,调制解调器的控制活动等等.另一方面,异常则是响应某些系统错误引起的,也可以是响应某些可以在程序中执行的特殊机器指令引起的。不管产生的是中断还是异常,处理器响应的方式是类似的。执行一段被称为中断处理或异常处理的特殊程序。一般来说,在特定的系统中,对每一种中断和异常类型都有单独的处理程序。对每一种中断和异常,都在0~255范围内给以一个唯一的数加以标记,当发生中断或者异常时,这个数(称为向量号)用作进入指针数组(中断或异常向量表)的索引,表中每个指针指向用来处理特定中断或异常类型的子程序的地址。大多数中断和异常象函数一样进行处理。所以当中断或异常处理程序结束时,被中断的程序将重发生中断时的断点继续向下执行。
2.系统调用的机制
在UNIX系统中,系统调用是作为一种异常类型实现的。它将执行相应的机器代码指令来产生异常信号。产生中断或异常的重要效果是系统自动将用户模式切换为内核模式来对它进行处理。这就是说,执行系统调用的异常指令时,将自动地将系统切换为内核模式,并安排异常处理程序的执行。它知道如何处理这一调用。
以LINUX为例,在LINUX中实现系统调用异常的实际指令是:
int $0x80
这一指令使用中断/异常向量号128(即16进制的80)将控制权转移给内核。为达到在系统调用时不必用机器指令编程,在标准的C语言库中为每一个系统调用提供了一段短的子程序,完成机器代码的编程工作。事实上,机器代码非常短。它要做的工作只是将送给系统调用的参数值加载到CPU寄存器中,接着执行int $0x80指令。然后运行系统调用,系统调用的返回值将送入CPU的一个寄存器
原创力文档


文档评论(0)