第7篇 操作系统接口.ppt

  1. 1、本文档共133页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(b) “格式化”对话框 图 7 -11 对话框   1) 标题栏   如同窗口一样,对话框的标题栏也是位于其顶部,其中,左边部分为对话框名称(如名称为“显示属性”),右边部分是关闭按钮和帮助按钮。   2) 输入框   输入框可分为两类: 一类是文本框,是一个供用户输入文本信息的矩形框,用户可通过键盘向文本框内输入任何符合要求的字符串。见图7-11(a)中的文件名文本框。   另一类是列表框。在列表框中为用户提供参考信息供用户选择,但用户不能对列表框中的内容进行修改。列表框有三种形式:第一种是简单列表框,需要显示的内容全部列于该框中;第二种是滚动式列表框,在框的右边框处有一滚动条(滑块),可用来查看该框中未显示部分的内容;第三种是下拉式列表框,在框中仅有一行文字(一个选项),其右边有一个朝下的三角形符号,对它单击后,可弹出一个下拉式列表供用户选择。图7-11(a)中的是“保存类型”的下拉式列表框。   3) 按钮   在Windows中,提供了多种形式的按钮,如命令按钮、选择按钮、滑动式按钮、数字式增减按钮等。   (1) 命令按钮。可用该按钮来启动一个立即响应的动作,如“确定”按钮、“取消”按钮、“关闭”按钮、“开始”按钮等。命令按钮通常是含有文字的矩形按钮,在对话框的底部或右部。   (2) 选择按钮。它又可分为单选按钮和复选按钮两种。前者是指在同一组的多个单选按钮中,每次必须且只能选择其一。单选按钮为圆形。当某一选项被选中时,该圆形按钮中会增加一个同心圆点,见图7-11(b)中的“格式化类型”下面的三个单选按钮。复选按钮是指用户可根据需要在多个复选按钮中选择其中一个或多个按钮。复选按钮呈方框形,如被选中,相应方框中会出现“√”标记,见图7-11(b)中“其他选项”下面的几个复选按钮。   (3) 滑块式按钮。某些对象的属性是可在一定范围内进行连续调节的,比如鼠标被双击的速度、键盘的重复速率、音响音量的调节等。   (4) 数字式增减按钮。有些属性已被数字化,且可在一定范围内调节。如在“日期/时间”属性中,便有一对用于改变时间的数字式增减按钮。在上述两种按钮上,都有三角形箭头标记,对箭头向上的标记单击时,可使数字增加,单击箭头朝下的标记时,可使数字减小。 * 图7-8 用户核心栈 7.4.3 系统调用陷入后需处理的公共问题   1.确定系统调用号   由上所述得知,在中断和陷入发生后,是先经硬件陷入机构予以处理,再进入trap.S,然后再调用trap.C继续处理。其调用形式为:   trap(usp,type,code,PC,PSL) 其中,参数PSL为陷入时处理机状态字长,PC为程序计数器,code为代码操作数,type为陷入类型号,usp为用户栈指针。对陷入的处理可分为多种情况,如果陷入是由于系统调用所引起的,则对此陷入的第一步处理,便是确定系统调用号。通常,系统调用号是包含在代码操作数中,故可利用code来确定系统调用号i。其方法是令    i=code 0377 若0I64,此i便是系统调用号,可根据系统调用号i和系统调用定义表,转向相应的处理子程序。若i=0,则表示系统调用号并未包含在代码操作数中,此时应采用间接参数方式,利用间接参数指针来找到系统调用号。   2.参数传送   这是对因系统调用引起的陷入的第二步处理。参数传送是指由trap.C程序将系统调用参数表中的内容,从用户区传送到User结构的U.U-arg中,供系统调用处理程序使用。由于用户程序在执行系统调用命令之前,已将参数表的首址放入R0寄存器中,在进入trap.C程序后,该程序便将该首址赋予U.U-arg指针,因此,trap.C在处理参数传送时,可读取该指针的内容,以获得用户所提供的参数表,并将之送至U.U-arg中。应当注意,对于不同的系统调用,所需传送参数的个数并不相同,trap.C程序应根据在系统调用定义表中所规定的参数个数来进行传送,最多允许10个参数。   3.利用系统调用定义表转入相应的处理程序   在UNIX系统中,对于不同(编号)的系统调用,都设置了与之相应的处理子程序。为使不同的系统调用能方便地转入其相应的处理子程序,也将各处理子程序的入口地址放入了系统调用定义表即Sysent[]中。该表实际上是一个结构数组,在每个结构中包含三个元素,其中第一个元素是相应系统调用所需参数的个数;第二个元素是系统调用经寄存器传送的参数个数;第三个元素是相应系统调用处理子程序的入口地址。在系统中设置了该表之后,便可根据系统调用号i从系统调用定义表中找出相应的表目,再按照表目中的入口地址转入相应的处理子程序,由该程序去完成相应系统调用的特定功能。在该子程序执行完后,仍返回到中断和陷入总控程序中的trap.C程序中,去完成返回到

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档