- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例:UNIX/Linux的系统结构 系统调用的实现 系统调用与函数调用的不同 (6)中断向量 … 向量地址 … 排队器输出 显示器服务程序 打印机服务程序 JMP 400 JMP 300 JMP 200 … … … … 主存 12H 13H 14H 200 300 向量地址 入口地址 入口地址 设备 编码器 1 0 0 0 … 0 0 0 1 0 0 1 0 0 1 0 0 … 0 0 0 1 0 0 1 1 由 硬件产生中断向量地址,再由中断向量地址找到中断服务程序的入口地址。 例: 8088的中断向量表 255号向量 … 32号向量 31号向量 5号向量 4号向量(溢出) 3号向量(断点) 2号向量(NMI) 1号向量(单步) 0号向量(除法错) … 003FFH 003FCH 00080H 0007CH 00014H 00012H 0000CH 00008H 00004H 00000H 专用 中断向量 (5个) 系统保留 中断向量 (27个) 用户可用 中断向量 (224个) 8088系统的中断向量表占用了系统主存最低端的1KB的空间,共存储了256个中断向量 (7)中断处理过程 中断源发出一个中断信号 CPU完成当前指令的执行,扫描中断信号 CPU发送中断应答信号 CPU将PSW、IP和CS压入栈中(断点) 保存剩余的处理器 状态信息 恢复中断前的PSW、IP和CS 开中断 处理中断 中断服务程序的入口地址送入IP和CS 硬件操作 中断处理子程序 关闭中断 恢复处理器状态信息 中断隐指令----CPU响应中断之后,经过某些操作转去执行中断服务程序,这些操作是由硬件直接实现,称为中断隐指令。中断隐指令是指不在指令系统中的指令,其功能包括保护程序断点、硬件关中断、向量地址送PC(硬件向量法)或中断识别程序入口地址送PC(软件查询法)。 例:汇编中int指令的执行过程 CPU 执行int n指令,相当于引发一个 n号中断的中断过程,执行过程如下: (1)取中断类型码n; (2)标志寄存器入栈,IF = 0,TF = 0; /* IF=0 CPU关闭中断;TF 单步调试标记,TF=0机器处在连续工作方式*/ (3)CS、IP入栈; (4)(IP) = (n*4),(CS) = (n*4+2)。 IP CS 低 高 5.多级中断(多重中断) 多数微型CPU支持多级中断系统,可以有多根中断请求线(级)从不同设备连接到中断逻辑电路上。 具有相同特性和优先级的设备可连到同一中断级上,由中断排队器(硬件)决定当前响应哪个中断源。 在多级中断系统中,可能同时有多个中断请求,这时CPU接受中断优先级最高的中断,忽略较低优先级的中断。 高优先级的中断可以打断低优先级的中断。 例:假设某系统中有两个设备:打印机和磁盘,它们的中断优先级分别为2和4,若打印机的中断请求先到达,且打印机中断服务程序在运行过程中,来了一个磁盘中断请求。 t=0 t=7 t=15 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 磁盘中断服务程序 打印机中断服务程序 用户程序 t=25 t=40 产生的中断嵌套如下图: 1.3 系统调用 1.为什么要引入系统调用功能? 只有操作系统内核执行特权指令,访问操作系统内核数据。 在多任务系统中,程序的运行空间分为用户空间和内核空间,它们在逻辑上是相互隔离的,用户程序不能访问内核数据,也无法访问内核函数。 系统调用是操作系统服务的编程接口,应用程序通过系统调用可以进入内核态,调用内核函数,访问内核数据。 系统调用依赖于计算机硬件,一般用汇编代码编写,并以库函数形式提供给应用程序(如C语言程序)使用。 所有的库函数都是系统调用吗? 1.3 系统调用 2.什么是系统调用? 系统调用是操作系统内核提供的用于实现各种系统功能的一组子程序(用户程序对操作系统内核模块的调用): 应用程序通过系统调用访问系统硬件和其他操作系统资源,如: 外存文件与目录的读写。 各种I/O设备的使用 在一个应用程序中启动另一个应用程序 查询和统计系统资源使用情 完成对硬件和资源的访问控制。 硬件设备的抽象(提供设备独立性)。 系统调用接口通过库把函数调用映射成进入操作系统核心所需要的原语。 POSIX( Portable Operating System Interface) )中的进程和文件管理的主要系统调用 进程管理 系统调用 说 明 Pid=fork() 创建一个与父进程相同的子进程 Pid=wait(pid,…) 等待一个子
您可能关注的文档
最近下载
- 屋面防水工程试水检查试验记录(蓄水)1.doc VIP
- 《十二公民》剧本.docx VIP
- 2025国务院国资委国企绩效评价中心招聘5人备考试题及答案解析.docx VIP
- 【四海】25下半年立体图推精讲班讲义-龙飞.docx VIP
- DLT5285-2018 输变电工程架空导线(800mm2以下)及地线液压压接工艺规程.pdf VIP
- 2024药疹基层诊疗指南(最全版) .pdf VIP
- (高清版)DT 1044-2014 生产项目土地复垦验收规程.pdf VIP
- 生产项目土地复垦验收规程(td1044-2014).pdf VIP
- 2022年11月杭州市直机关遴选公务员面试真题带题目详解.docx VIP
- 2023年11月杭州市直机关遴选公务员面试真题带详细解析.docx VIP
文档评论(0)