操作系统原理课件d04.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统原理课件d04

* 必须为实现系统调用功能的子程序编造入口地址表 每个入口地址与相应的系统调用执行程序名对应 陷入处理程序把陷入指令包含功能号与入口地址表有关项对应, 驱动有关子程序执行 在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行 保护现场: 进入系统调用处理前,陷入处理机构还需保存处理机现场 在系统调用处理结束之后,要恢复处理机现场,现场被保护在特定的内存区或寄存器中 系统调用的处理过程(续1) system call 入口地址表 (1)保护处理现场 (2)取系统调用功能号并寻找子程序入口 (3)返回 A0 A1 Ai An A0 A1 Ai An Sub0 Sub1 Subi Subn 用户程序 陷入处理机构 系统子程序 系统调用的处理过程 系统调用处理过程 read (fd, buffer, nbytes) 3、参数传递过程问题 怎样实现用户程序和系统程序间的参数传递? 常用的3种实现方法: 由陷入指令自带参数:陷入指令的长度有限的,且还要携带系统调用功能号,只能自带有限的参数 通过有关通用寄存器来传递参数:这些寄存器应是系统程序和用户程序都能访问,由于寄存器长度较短,从法传递较多的参数 大多在内存中开辟专用堆栈区来传递参数 4、系统调用的分类 系统功能可分为两部分 系统自身所需要的 作为服务提供给用户的 OS的系统调用: 进程控制类系统调用 文件操作类系统调用 进程通信类系统调用 设备管理类系统调用 信息维护类系统调用 进程管理 文件管理 目录管理 其他 系统调用方式(INT)与程序中一般的调用方式的相同点: 改变指令流程 重复执行和公用 改变指令流程后需要返回原处 5、系统调用与一般过程调用比较 系统调用方式(INT)与程序中一般的调用方式的不同点: 运行在不同的系统状态 一般过程调用,其调用程序和被调用程序都运行在相同状态:核心态或用户态 系统调用:调用程序在用户态,被调用程序在系统态 状态的转换 一般的过程调用不涉及系统状态的转换,可直接由调用过程转向被调用过程 运行系统调用时,调用和被调用过程在不同系统状态,不允许由调用过程直接转向被调用过程 通过软中断机制先由用户态转换为核心态 在OS核心分析后,转向相应的系统调用处理子程序 系统调用与一般过程调用比较(续1) 返回问题 一般过程调用在被调用过程执行完后,回调用过程 抢占式调度的系统中,被调用过程执行完后,系统将对所有要求运行的进程进行优先级分析。如果调用进程仍有最高优先级,则返回到调用进程执行 否则,引起重新调度,让优先级最高的进程优先执行。此时,系统把调用进程放入就绪队列 嵌套或递归调用 对系统调用,一般不允许在同一个进程中发生嵌套或递归(不同进程可以重入同一个系统调用) 系统调用与一般过程调用比较(续2) CALL指令的内部实现过程 返回地址压栈(即该CALL指令所在的地址) 将该CALL指令中所含的地址(即被调用代码所在地址)送入PC RET指令的内部实现过程 从栈顶弹出返回地址送入程序计数器PC 进入方式不同 利用int或trap指令进行系统调用;利用call 或 jmp 指令进入普通的过程调用 系统调用与一般过程调用比较(续3) 系统调用是动态调用,而CALL调用方式是静态调用 a. 同一程序中不包含被调用代码 系统调用是动态调用,程序中不包含被调用代码,好处: (1)用户程序长度缩短 (2)当OS升级时,调用方不必改变 系统调用与一般过程调用比较(续4) b. 系统调用方式的调用地址和返回地址都是不固定的 系统调用指令中不包含调用地址, 只包含功能号 是按功能号(在可执行目标程序中)调用的 在操作系统内部 由系统调用处理程序通过系统调用分支表 (OS的一个数据结构) 将功能号转换为相应的指令地址 系统调用与一般过程调用比较(续5) . . . 功能号 地址 显 示 打 印 读文件 . . . . . . . . . OS的系统调用分支表 OS代码 显示 打印 读文件 OS 用户程序 INT . . . . . . . . . . . . . . . . . . 系统调用与一般过程调用比较(续6) 系统调用返回指令中不包括返回地址,通过栈保存和弹出返回地址 系统调用返回地址不固定,因为用户程序在不同的地方调用OS CALL调用方式是静态调用,被调用代码与调用代码在同一程序之内。CALL调用方式,其调用地址

文档评论(0)

1haodian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档