- 1、本文档共79页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.OS接口
命令解释程序 功能 命令解释程序的主要作用是在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,并将处理结果送屏幕上显示 组成 (1) 常驻部分:这部分包括一些中断服务子程序。 (2) 初始化部分:它跟随在常驻内存部分之后,在启动时获得控制权。 (3) 暂存部分:这部分主要是命令解释程序,并包含了所有的内部命令处理程序、批文件处理程序,以及装入和执行外部命令的程序。 CMD工作流程 系统在接通电源或复位后,初始化部分获得控制权,对整个系统完成初始化工作,并自动执行AUTOEXEC.BAT文件,之后便把控制权交给暂存部分。 暂存部分首先读入键盘缓冲区中的命令,判别其文件名、扩展名及驱动器名是否正确。 若发现有错,在给出出错信息后返回;若无错,再识别该命令。简单识别命令的方法是基于一张表格,其中的每一表目都是由命令名及其处理程序的入口地址两项所组成的。 如果暂存部分在该表中能找到键入的命令,且是内部命令,便可以直接从对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。 如果发现键入的命令不属于内部命令而是外部命令, 则暂存部分还须为之建立命令行; 再通过执行系统调用exec来装入该命令的处理程序,并得到其基地址; 然后把控制权交给该程序去执行相应的命令 7.3 系 统 调 用 为了保证OS系统程序不被应用程序有意或无意地破坏 两类指令 特权指令:系统态时只允许OS运行的关系到系统全局的指令。其对内存存储空间的访问范围基本不受限制.如启动各种外部设备、设置系统时钟时间、关中断、清主存、修改存储器管理寄存器、执行停机指令、转换执行状态等。 非特权指令:在用户态时,完成一般性的操作和任务,不能对系统中的硬件和软件直接进行访问,其对内存的访问范围也局限于用户空间的应用程序所运行的指令。可以防止应用程序的运行异常对系统造成的破坏。 两类程序: OS系统程序 应用程序 两种状态: 系统态(管态或核心态):OS在系统态运行 用户态(目态):应用程序只能在用户态运行 系统调用与中断 系统调用:为保护OS程序不被用户程序破坏,一般都不允许用户程序访问OS的程序和数据,也不允许应用程序采用一般的过程调用方式来直接调用这些过程。而在OS的内核中都设置了一组用于实现各种系统功能的子程序(过程),让应用程序通过系统调用去间接调用所需的OS过程,取得相应的服务。 中断机制:系统调用是通过中断机制实现的,并且一个OS的所有系统调用都通过同一个中断入口来实现。对于拥有保护机制的OS来说,中断机制本身也是受保护的,只有授权给应用程序保护等级的中断号,才是可以被应用程序调用的。 MS-DOS提供了INT 21H中断获取OS的服务。 Linux 仅给应用程序授权4 个中断号:3、4、5以及80H,前三个中断号是提供给应用程序调试所使用的,而80h正是系统调用(system call)的中断号。 系统调用与普通过程调用的相同点和不同点 相同点 改变指令流程 重复执行和公用 改变指令流程后需要返回原处 但系统调用在本质上是应用程序请求OS内核完成某功能时的一种过程调用,但它是一种特殊的过程调用,它与一般的过程调用有明显差别 系统调用与普通过程调用的相同点和不同点 1. 执行状态不同: 过程调用:其调用程序和被调用程序都运行在相同的状态(系统态或用户态) 系统调用:调用程序运行在用户态,被调用程序是运行在系统态。调用和返回经历了不同的系统状态。通常核心和应用程序的代码分别运行在CPU的不同的状态下,所用地址空间也不同――核心的代码可以直接访问应用进程的地址空间,反之不然。 状态切换:系统调用、中断、异常 trap陷入 特权指令(访问关键寄存器、停机指令)和I/O敏感指令(中断屏蔽、端口读写) 系统调用与普通过程调用的相同点和不同点 2. 进入方式不同:状态的转换通过软中断机制实现,不允许由调用过程直接转向被调用过程。利用int或trap指令进行系统调用;利用call或jmp指令进入普通的过程调用; CALL指令的内部实现过程: 返回地址压栈(即该CALL指令所在的地址); 将该CALL指令中所含的地址(即被调用代码所在地址)送入PC RET指令的内部实现过程: 从栈顶弹出返回地址送入程序计数器PC 3.返回执行问题:采用抢先式调度的系统,在系统调用返回时,要进行重新调度的检查是否有更高优先级的任务就绪(创建或唤醒)。 系统调用与普通过程调用的相同点和不同点 4. 嵌套或递归调用:系统调用嵌套的深度有一定的限制(一般最大深度为6)。一般的过程对嵌套的深度则没有什么限制。图7-3示出了没有嵌套及有嵌套的两种系统调用情况。 5. 系统调用是动态调用,而CAL
您可能关注的文档
最近下载
- 津津有味·读经典Level3《威尼斯商人》译文和答案.docx
- (正式版)G-B 5135.10-2006 自动喷水灭火系统 第10部分:压力开关.docx VIP
- 2023年胆总管结石的治疗指南.pptx
- GB 50788-2012 城镇给水排水技术规范.docx VIP
- (正式版)G-B 5135.6-2018 自动喷水灭火系统 第6部分:通用阀门.docx VIP
- 上海市六年级(下)数学同步讲义 第9讲 一元一次方程的应用.doc VIP
- (正式版)-B 5135.5-2018 自动喷水灭火系统 第5部分:雨淋报警阀.docx VIP
- 《烟草秸秆生物有机肥生产技术指南》编制说明.pdf VIP
- 安全风险隐患排查表(国家隐患排查导则版)(1).xlsx VIP
- DB34_T 3448-2019装卸软管定期检验规程.docx
文档评论(0)