- 1、本文档共73页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例: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,…) 等待一个子
文档评论(0)