版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、7.1 操作系统接口操作系统接口 程序启动方式程序启动方式, ,程序结束时系统所做的工作程序结束时系统所做的工作 用户与操作系统的接口用户与操作系统的接口 系统调用:用户程序提出服务请求的手段,系统调用:用户程序提出服务请求的手段, 基本思想,实现方法基本思想,实现方法 操作系统安装与启动操作系统安装与启动7.1.1 程序的启动和结束程序的启动和结束 1. 程序的启动程序的启动五种启动方式五种启动方式程序开始执行时必须满足两个前提条件:程序开始执行时必须满足两个前提条件: 程序已装入内存程序已装入内存 程序计数器程序计数器PC中已置入该程序在内存的入中已置入该程序在内存的入口地址口地址第一种方
2、式:命令方式第一种方式:命令方式命令提示符下打入程序名和参数,回车命令提示符下打入程序名和参数,回车 如如DOS : c UNIX:$ 命令解释程序命令解释程序 DOS: (在所设路径中在所设路径中) UNIX: SHELL Windows:窗口菜单显示和鼠标操作:窗口菜单显示和鼠标操作命令方式的命令方式的程序启动程序启动开机开机显示命令提示符显示命令提示符输入命令输入命令从外存调入从外存调入外部命令执行外部命令执行执行执行命令解释命令解释程序中的该命令程序中的该命令合法否合法否? ?N N内部命令内部命令? ?Y YN NY Y第二种方式:批处理方式第二种方式:批处理方式.BAT 文件文件
3、(DOS系统系统)例子:例子:启动中文环境需要多条命令:启动中文环境需要多条命令: 装入字库装入字库 启动主程序启动主程序 装入汉字输入法装入汉字输入法 AUTOEXEC.BAT (开机时的自动批处理开机时的自动批处理)批方式下的装批方式下的装 入执行过程入执行过程以命令方式以命令方式输入输入批文件命令批文件命令操作系统调入批文件操作系统调入批文件,读入第一条命令读入第一条命令装入该命令要执行的程序装入该命令要执行的程序执行该程序执行该程序从该批文件中从该批文件中读下一条命令读下一条命令批文件完批文件完否否? ?N NY Y命令提示符命令提示符命令提示符命令提示符第三种方式:第三种方式: EX
4、EC方式方式EXEC方式的过程方式的过程“父父”程序执行程序执行exec调用调用操作系统实现操作系统实现exec的装入的装入(建立进程建立进程)启动(或转调度子程序或返回)启动(或转调度子程序或返回)“子子”程序执行程序执行回到操作系统回到操作系统,进行子程序结果处理工进行子程序结果处理工作作,并将结果信息返回并将结果信息返回“父父”程序程序“父父”程序继续执行程序继续执行在一个程序中运在一个程序中运行另一个程序行另一个程序返回原来的程序返回原来的程序第四种方式:第四种方式:第五种方式:自启程序第五种方式:自启程序由硬件装入程序和启动程序执行由硬件装入程序和启动程序执行 自己装入自己自己装入自
5、己, 并启动自己开始执行的程序并启动自己开始执行的程序 自启程序由两部分组成自启程序由两部分组成 引导程序和程序主体引导程序和程序主体自启程序装入自启程序装入与启动的过程与启动的过程用户程序存放在外存上,其自含的引导程用户程序存放在外存上,其自含的引导程序顺序放在存储介质的开始位置序顺序放在存储介质的开始位置(如如0磁道磁道)将该介质将该介质(如软盘如软盘)放到联机输入装置上放到联机输入装置上以某种硬操作方法以某种硬操作方法(如热启动如热启动)通知计算机需执行自启程序通知计算机需执行自启程序硬件将上述引导程序读入内存硬件将上述引导程序读入内存并将控制权传给它并将控制权传给它引导程序将用户主体程
6、序读入内存引导程序将用户主体程序读入内存并将控制权传给它并将控制权传给它引导程序引导程序2. 程序的结束程序的结束 正常结束:程序按自身的逻辑有效地完成预正常结束:程序按自身的逻辑有效地完成预定功能后结束定功能后结束 (a) 返回父程序并回送结果信息。返回父程序并回送结果信息。 (b) 释放所用资源释放所用资源(空间空间.设备设备),记录使用情况记录使用情况,记帐等记帐等 异常结束:发生了某些错误而导致程序在没异常结束:发生了某些错误而导致程序在没有完成预定功能时提前结束有完成预定功能时提前结束7.1.2 用户与操作系统的接口用户与操作系统的接口 1. 作业级接口作业级接口 作业级接口作业级接
7、口 程序级接口程序级接口操作系统为用户对作业运行全过程控制提供的功能操作系统为用户对作业运行全过程控制提供的功能(1) 联机接口(交互式)联机接口(交互式)(2) 脱机接口脱机接口 脱机作业脱机作业 是指用户不能直接与计算机系统交互,中间通过操作员干预的作业。 通常是在批处理系统中使用,所以也成为批量型作业 联机作业联机作业 是指用户和计算机系统直接交互,用户通过终端或控制台键盘上的操作命令或菜单图表等方式控制器作业的运行,也成交互型作业或终端型作业 脱机用户接口脱机用户接口:由一组作业控制命令,或称由一组作业控制命令,或称作业控制语言组成作业控制语言组成 脱机用户接口脱机用户接口:使用作业控
8、制卡和作业说明使用作业控制卡和作业说明书两种形式书两种形式 作业控制卡作业控制卡:就是使用作业控制语言将用户对作业的控制意图、程序、数据等卡片一起送入系统,由系统解释执行 作业说明书作业说明书:是使用某种作业控制命令将用户对作业控制的意图写成作业说明书,从而实现对作业的控制。作业说明书主要包括作业情况和作业资源要求两方面的内容;前者主要指用户名、作业名、使用语言、作业控制方式、优先级等;后者包括内存核外村的空间要求量、设备的类型、台数、估计的计算时间等。作业说明书中常用命令的主要类型如下:输入/输出命令编译命令操作命令条件命令全称全称: Simultaneous Peripheral Oper
9、ations On-Line含义含义: 联机情况下的同时外围操作联机情况下的同时外围操作(假脱机技术假脱机技术)包括:包括: 输入程序模块输入程序模块 输出程序模块输出程序模块 作业调度程序作业调度程序工作过程工作过程: 利用磁盘作缓冲利用磁盘作缓冲, 将输入、计算、输出分将输入、计算、输出分 别组织成独立的任务流别组织成独立的任务流, 使使I/O和计算真正并行。和计算真正并行。(3) SPOOLing (假脱机假脱机) 用慢速设备将作业预先输入到输入井用慢速设备将作业预先输入到输入井 (后援存储器后援存储器 如如:磁盘、磁鼓磁盘、磁鼓)中中, 称为预输入。称为预输入。 运行时运行时, 按某种
10、调度策略选择几种搭配得当的作业,按某种调度策略选择几种搭配得当的作业,从输入井调入内存从输入井调入内存, 使用数据时使用数据时, 从输入井中取出。从输入井中取出。 作业运行中输出数据不必直接启动外设作业运行中输出数据不必直接启动外设, 只需将这只需将这些数据写入输出井中。些数据写入输出井中。 作业全部运行完毕作业全部运行完毕, 再由外设输出全部数据和信息,再由外设输出全部数据和信息,称为缓输出。称为缓输出。 实现了对作业输入、组织调度和输出的统一管理实现了对作业输入、组织调度和输出的统一管理使外设在使外设在CPU控制下控制下, 与与CPU并行工作并行工作(称为假脱机称为假脱机)。SPOOLin
11、g系统系统输入装置输入装置输入装置输入装置通通道道通通道道输出装置输出装置输出装置输出装置通通 道道输入管输入管 输出管输出管理模块理模块 理模块理模块外外 设设输入输入 输出输出井井 井井 主机系统主机系统典型的作业步典型的作业步编译编译连接装配连接装配运行运行目标目标程序程序 段段目标目标程序程序源程序源程序输入数据输入数据子程序子程序库函数库函数动态库函数动态库函数计算结果计算结果2. 程序级接口程序级接口 系统为用户在程序一级提供有关服务而设置系统为用户在程序一级提供有关服务而设置由一组系统调用命令组成。由一组系统调用命令组成。负责管理和控制运行的程序负责管理和控制运行的程序并在这些程
12、序与系统控制的资源和提供的服并在这些程序与系统控制的资源和提供的服务间实现交互作用务间实现交互作用用汇编语言:在程序中直接用系统调用命令用汇编语言:在程序中直接用系统调用命令用高级语言:可在编程时使用过程调用语句用高级语言:可在编程时使用过程调用语句7.1.3. 交互式系统接口交互式系统接口1. 联机命令接口联机命令接口 在操作系统与计算机用户之间提供易于理在操作系统与计算机用户之间提供易于理解的双向通信机制。解的双向通信机制。 基本任务:基本任务: 解释命令解释命令, 传送命令以便执行传送命令以便执行 接受系统信息接受系统信息, 以响应语言的形式提交给用户以响应语言的形式提交给用户 交互式命
13、令的接口复杂交互式命令的接口复杂 含功能结构含功能结构, 问题的处理问题的处理, 如各种约定如各种约定, 前端前端处理处理, 命令日志命令日志, 注解注解, 宏命令及命令组等。宏命令及命令组等。 交互式控制灵活方便交互式控制灵活方便: 可以随时进行各种处理可以随时进行各种处理, 排除问题排除问题, 方便调方便调试试; 系统利用率低。系统利用率低。 接口包括接口包括: 联机命令联机命令, 终端处理程序终端处理程序, 命令解释程序。命令解释程序。 联机命令联机命令(p221): 系统访问命令、磁盘操作命令、文件管理系统访问命令、磁盘操作命令、文件管理命令、目录操作命令、其它命令。命令、目录操作命令
14、、其它命令。2. 终端处理程序终端处理程序 交互式命令接口用户同操作系统的通信是通交互式命令接口用户同操作系统的通信是通过一个过一个I/O装置来实现的。装置来实现的。 I/O装置一般是显示终端。装置一般是显示终端。 输入通过键盘输入通过键盘, 或通过指示装置或通过指示装置(鼠标鼠标)输入。输入。 某些系统中某些系统中, 提供图形显示功能。提供图形显示功能。 不管哪种不管哪种I/O方式方式, 这个终端装置是由一个终这个终端装置是由一个终端处理程序来管理和控制的。端处理程序来管理和控制的。 终端处理程序提供的输入输出方式对整个用终端处理程序提供的输入输出方式对整个用户命令接口有重大影响。户命令接口
15、有重大影响。 也确定了用户与其应用程序间的通信方式。也确定了用户与其应用程序间的通信方式。(1)字符接收功能)字符接收功能 接收键盘打入的字符接收键盘打入的字符,并将键码转换为并将键码转换为ASCII码码,面向字符方式面向字符方式(将字符传送给程序将字符传送给程序)和面向行方式。和面向行方式。(2)回送显示()回送显示(Echoing) 通常通常, 每从键盘打入一个字符每从键盘打入一个字符, 终端处理序回送终端处理序回送响应的字符到显示屏上。响应的字符到显示屏上。 有时用户要求其显示一个不同的字符或不显示有时用户要求其显示一个不同的字符或不显示(例如例如, 用户键入口令时用户键入口令时)。 对
16、于通过远程通信线路访问的终端对于通过远程通信线路访问的终端, 回送显示委回送显示委托给远程终端来实现。托给远程终端来实现。键盘终端处理程序的功能键盘终端处理程序的功能(3)字符缓冲)字符缓冲 打入的字符在送到程序前打入的字符在送到程序前, 由终端处理程序保存。由终端处理程序保存。提供编辑提供编辑, 甚至取消命令的机会甚至取消命令的机会; 如行缓冲的行编辑。如行缓冲的行编辑。有专用缓冲方式有专用缓冲方式(每个终端专用每个终端专用)和公用缓冲方式。和公用缓冲方式。(4)提前打入()提前打入(Type ahead) 输入字符在程序处理它们之前由输入字符在程序处理它们之前由“提前打入进程提前打入进程”
17、把它们保存在缓冲区中把它们保存在缓冲区中(可以保存多行可以保存多行)。当缓冲区存。当缓冲区存满后满后, 再打入的字符会漏掉或覆盖缓冲区原有内容。再打入的字符会漏掉或覆盖缓冲区原有内容。(5)字符变换)字符变换 有些情况下,需要对打入的字符进行代码变换。有些情况下,需要对打入的字符进行代码变换。 如如: 把小写字母转换成大写字母,或者反之。把小写字母转换成大写字母,或者反之。(5)屏幕编辑)屏幕编辑 对输入字符进行屏幕编辑对输入字符进行屏幕编辑, 插入、删除或改写。插入、删除或改写。(6)特殊字符处理)特殊字符处理(热键热键) 中断字符中断字符:当前执行的程序可接受中断字符立即终当前执行的程序可
18、接受中断字符立即终止运行。如止运行。如: CTRL+C、CTRL+Break。 停止上卷字符停止上卷字符CTRL+S 恢复上卷字符恢复上卷字符CTRL+Q3. 命令解释程序命令解释程序 如:如:DOS 、UNIX shell (P227)(a)由终端命令解释程序直接处理)由终端命令解释程序直接处理 在无创建子进程功能的系统中在无创建子进程功能的系统中, 终端命令由对应的终端命令由对应的命令解释程序处理命令解释程序处理; 仅有一个进程对应一个终端用户。仅有一个进程对应一个终端用户。(b)由子进程代为处理)由子进程代为处理 在具有创建子进程功能的系统中在具有创建子进程功能的系统中, 对于较为单纯的
19、命对于较为单纯的命令令, 如列目录如列目录, 拷贝文件等拷贝文件等, 命令解释程序本身便能完命令解释程序本身便能完成成,此时由命令解释程序直接处理。此时由命令解释程序直接处理。 对较复杂命令对较复杂命令, 如对于如对于 Pascal 源程序进行编译源程序进行编译, 命令命令解释程序本身不能处理解释程序本身不能处理, 此时创建一个子进程此时创建一个子进程, 并由该并由该子进程运行子进程运行 Pascal 编译程序。编译程序。MS-DOS ExecutionUNIX System Structure4. 命令接口的结构命令接口的结构 命令接口由命令处理器来实现命令接口由命令处理器来实现,它的实现方
20、式:它的实现方式:(a)作为)作为OS的一个部分的一个部分 如:如:OS/MVT或或VAX/VMS(b)作为)作为OS的一个独特模块,能方便地修改或替换的一个独特模块,能方便地修改或替换 如:如:RT-11或或CP/M(c)作为一易于被替换的普通程序)作为一易于被替换的普通程序 如:如:UNIX 操作系统操作系统(d)在某些系统中)在某些系统中, 可能用专门设计的命令接口替代可能用专门设计的命令接口替代标准的命令接口标准的命令接口 如:多用户如:多用户UNIX,用户可有不同命令接口,用户可有不同命令接口5. 命令语言命令语言 命令语言规定由命令语言规定由OS执行的一系列操作执行的一系列操作 在
21、一般的命令语言中在一般的命令语言中, 用户通过打入称为命令行的一用户通过打入称为命令行的一行指令行指令(语句语句)来规定每一个动作。来规定每一个动作。 命令行以命令开始命令行以命令开始, 它标识所要执行的操作。它标识所要执行的操作。 命令是用运行一段程序来执行所请求的操作。命令是用运行一段程序来执行所请求的操作。多数命令行中要给出一些参数多数命令行中要给出一些参数, 每一命令语句实际上每一命令语句实际上是带有参数的一个过程调用。是带有参数的一个过程调用。命令语言通常提供下列几组命令命令语言通常提供下列几组命令: (p228)(1)系统访问命令)系统访问命令登录命令,如:登录命令,如:login
22、等等撤离命令,如:撤离命令,如:logout等等(2)文件操作命令)文件操作命令(3)编辑、编译和执行命令)编辑、编译和执行命令(4)询问命令)询问命令(5)操作员专用命令)操作员专用命令典型命令实例:典型命令实例:(1)UNIX系统:系统:whols -l(2)DOS系统系统dir c:(3)VAX/VMSrun mypro 命令的附加功能命令的附加功能 命令的附加功能用以扩大命令的功能性、命令的附加功能用以扩大命令的功能性、选择性、适应性。包括:选择性、适应性。包括:(1)参数表)参数表 用参数表示位置、操作对象等附加信息用参数表示位置、操作对象等附加信息 用用“”或或“/”加关键字表示子
23、功能加关键字表示子功能(2)命令通配符)命令通配符: “*”和和“?”(3)重定向命令)重定向命令(p230): 用用“”将标准将标准输入或输出重新定向到其它文件上。输入或输出重新定向到其它文件上。(4)管道命令)管道命令: 用用“|”来连接两条命令来连接两条命令,第第1条命条命令的输出作为第令的输出作为第2条命令的输入条命令的输入, 管道作缓冲。管道作缓冲。(5)通信命令、后台命令)通信命令、后台命令 针对脱机用户操作和大量顺序操作功能而针对脱机用户操作和大量顺序操作功能而设计。设计。 批处理命令可以是专门的命令,也可是系批处理命令可以是专门的命令,也可是系统的基本命令;还有有关的语法结构,
24、循环、统的基本命令;还有有关的语法结构,循环、分支、转移、判别等,枸成一套特殊的命令语分支、转移、判别等,枸成一套特殊的命令语言。言。6. 批处理命令批处理命令7. 图形用户接口图形用户接口 以以Windows为代表为代表,许多现代许多现代OS都提供了都提供了图形用户接口图形用户接口,使用起来非常方便使用起来非常方便, 不需要用户不需要用户记忆大量的命令名称、功能、格式和参数。记忆大量的命令名称、功能、格式和参数。 图形界面图形界面, 以以窗口窗口(windows)、图标图标(icon)、菜单菜单(menu)、指点装置指点装置(pointing device)为基础为基础的交互式系统的交互式系
25、统, 形成形成WIMP标准标准, 以实际动作代以实际动作代替复杂语法。替复杂语法。 (见见P243249)8. 交互式系统的历史与展望交互式系统的历史与展望 六十年代中期六十年代中期: 问答式对话、文本菜单或命令语言,问答式对话、文本菜单或命令语言,基于命令行界面的交互式系统。基于命令行界面的交互式系统。 八十年代八十年代: 图形界面图形界面, 形成形成WIMP标准标准,以指点装置的以指点装置的实际动作代替复杂语法。实际动作代替复杂语法。 多媒体界面是多媒体界面是WIMP另一种风格另一种风格, 是单通道的。是单通道的。 未来的交互式系统必将是多通道的未来的交互式系统必将是多通道的 通过各种不同
26、的人体通道通过各种不同的人体通道, 如如: 语音、手势、思维语音、手势、思维语言等交互语言等交互, 大大提高交互的自然性和高效性。大大提高交互的自然性和高效性。 遵循以人为中心的自然交互特点遵循以人为中心的自然交互特点, 实现人与系统实现人与系统的无障碍自然交互。的无障碍自然交互。7.1.4 交互式系统实例交互式系统实例分时系统分时系统 分时系统中的用户控制作业的执行大致有分时系统中的用户控制作业的执行大致有四个阶段:四个阶段: 终端的连接终端的连接 用户登录用户登录 控制作业执行控制作业执行 用户退出用户退出1. 终端的连接终端的连接 必须使终端设备与计算机系统线路接通必须使终端设备与计算机
27、系统线路接通 近程终端是直接与计算机系统连接的近程终端是直接与计算机系统连接的, 当终端设备加电当终端设备加电后后, 终端就与计算机系统线路接通。终端就与计算机系统线路接通。 远程终端通过租用专线或交换线接到计算机系统远程终端通过租用专线或交换线接到计算机系统, 在终在终端加电后用户还需通过电话拨号进行呼叫端加电后用户还需通过电话拨号进行呼叫, 直到接通。直到接通。 当终端与计算机系统在线路上接通后当终端与计算机系统在线路上接通后, 计算机系统计算机系统会在终端上显示信息告诉用户。会在终端上显示信息告诉用户。2. 用户登录用户登录 用户必须向系统登录用户必须向系统登录 用户首先输入用户首先输入
28、“登录登录”命令命令(login)命令命令 系统会向询问用户名、作业名、口令和资源需求系统会向询问用户名、作业名、口令和资源需求等等, 经过识别用户、核对口令经过识别用户、核对口令, 系统在终端上显示系统在终端上显示“已已登录登录”和进入系统的时间等信息。和进入系统的时间等信息。 若口令不对或资源暂时不能满足时,则系统在终若口令不对或资源暂时不能满足时,则系统在终端上显示端上显示“登录不成功登录不成功”并给出登录失败的原因。并给出登录失败的原因。 用户的登录过程可看作是对终端作业的作业调度用户的登录过程可看作是对终端作业的作业调度3. 控制作业执行控制作业执行 登录成功的终端用户登录成功的终端
29、用户 可从终端上输入作业的程序和数据可从终端上输入作业的程序和数据 用系统提供的命令语言或会话语句控制作业执行用系统提供的命令语言或会话语句控制作业执行 每输入一命令或一会话语句后每输入一命令或一会话语句后, 由系统解释执由系统解释执行且在终端上显示执行成功或问题行且在终端上显示执行成功或问题, 由用户决定下由用户决定下一步命令或会话一步命令或会话, 直到作业完成直到作业完成4. 用户退出用户退出 用户输入用户输入“退出退出”命令命令 (logout) 请求退出系统请求退出系统, 系统接收命令后就收回该用户所占的资源让其退出系统接收命令后就收回该用户所占的资源让其退出, 同时在终端上显示同时在
30、终端上显示“退出时间退出时间”或或“使用系统时间。使用系统时间。时间片轮转:时间片轮转: 在在OS控制下,采用控制下,采用“时间片轮转时间片轮转”方法使每个方法使每个终端作业都能在一个终端作业都能在一个“时间片时间片”内去占用处理器。内去占用处理器。 当时间片用完后当时间片用完后, 让出处理器给另一终端作业。让出处理器给另一终端作业。 这样这样, 保证从终端用户输入命令到计算机系统给保证从终端用户输入命令到计算机系统给出应答只是几秒钟的时间出应答只是几秒钟的时间, 使端用户感到满意。使端用户感到满意。7.2 系统调用系统调用7.2.1. 系统调用简介系统调用简介 为了保证为了保证OS不被用户程
31、序破坏不被用户程序破坏, 不允许用户程序不允许用户程序直接访问直接访问OS的系统程序和数据的系统程序和数据, 只能用系统调用访问。只能用系统调用访问。1. 系统调用系统调用 用户在用户在程序中程序中调用操作系统提供的子功能调用操作系统提供的子功能 是特殊的过程调用是特殊的过程调用, 由特殊的机器指令实现。几百种由特殊的机器指令实现。几百种 系统调用指令还将系统转入管态系统调用指令还将系统转入管态 系统调用程序是一个低级过程系统调用程序是一个低级过程,只能由汇编语言直只能由汇编语言直接访问接访问(许多高级语言也增加了此项功能许多高级语言也增加了此项功能)。 系统调用是操作系统提供给编程人员的唯一
32、接口系统调用是操作系统提供给编程人员的唯一接口,利用系统调用利用系统调用, 动态请求和释放系统资源动态请求和释放系统资源, 完成与硬件完成与硬件相关的工作以及控制程序的执行等。相关的工作以及控制程序的执行等。Passing of Parameters As A TableA System Call is the main way a user program interacts with the Operating System.Figure 3.1Figure 2.8System Calls 2. 处理器的状态处理器的状态 根据运行程序对资源和机器指令的使用权限将根据运行程序对资源和机器指令
33、的使用权限将处理器设置为不同状态处理器设置为不同状态 多数系统将处理器工作状态划分为管态和目态多数系统将处理器工作状态划分为管态和目态 管态:管态:操作系统管理程序运行的状态,较高操作系统管理程序运行的状态,较高的特权级别的特权级别, 又称为特权态又称为特权态(特态特态)、系统态、系统态 目态:目态:用户程序运行时的状态用户程序运行时的状态, 较低的特权级较低的特权级别别, 又称为普通态又称为普通态(普态普态)、用户态、用户态 管态和目态的差别管态和目态的差别处理器处于管态时:处理器处于管态时: 全部指令(包括特权指令)可以执行全部指令(包括特权指令)可以执行 可使用所有资源可使用所有资源 并
34、具有改变处理器状态的能力并具有改变处理器状态的能力处理器处于目态时:处理器处于目态时: 只有非特权指令能执行只有非特权指令能执行特权级别不同可运行指令集合也不同特权级别不同可运行指令集合也不同 特权级别越高,可以运行指令集合越大特权级别越高,可以运行指令集合越大 高特权级别对应的可运行指令集合包含低高特权级别对应的可运行指令集合包含低特权级的特权级的3.系统调用的实例系统调用的实例汇编程序例子:在屏幕上显示一字符串汇编程序例子:在屏幕上显示一字符串 查系统调用表得知,调用号为查系统调用表得知,调用号为09H,出口参数无,出口参数无, 入口参数入口参数: DS:DX输出字串所在缓冲区首址:输出字
35、串所在缓冲区首址: MOV AH, 09H MOV DX, SEG Mystring MOV DS, DX MOV DX, OFFSET Mystring INT 21H Mystring DB Hello World 高级语言例子:打印高级语言例子:打印5个字符个字符 char buff4=“abcde”; for(i=4;i=0;i-) print(buffi);高级语言例子:高级语言例子: 读硬盘文件读硬盘文件f1的第的第10到到20个字节个字节 seek(fd,10,0); read(fd,buff,11);.A=A+1printf(. . .)B=B+A(1)源程序段源程序段INT.
36、(2) printf目标代码目标代码.INOUT.(3) 操作系统操作系统内部代码内部代码该系统该系统调用的调用的操作系操作系统内部统内部实现实现代码代码用户程序用户程序函数函数操作系统操作系统 凡是与硬件相关、与应用无关的工作,都凡是与硬件相关、与应用无关的工作,都通过操作系统程序来完成通过操作系统程序来完成系统调用与一般过程调用的对比系统调用与一般过程调用的对比不同点:不同点:(1) 一般过程调用一般过程调用,调用程序和被调用程序都调用程序和被调用程序都运行在相同状态运行在相同状态(核心态或用户态核心态或用户态), 而系统调用而系统调用, 调用程调用程序在用户态序在用户态, 被调用程序在核
37、心态。被调用程序在核心态。(2)一般过程调用调用时不涉及系统状态转换一般过程调用调用时不涉及系统状态转换,直接转向直接转向被调用过程被调用过程; 而系统调用调用时涉及系统状态的转换而系统调用调用时涉及系统状态的转换, 不允许由调用过程直接转向被调用过程不允许由调用过程直接转向被调用过程, 要先通过要先通过软中软中断机制断机制由用户态转换为核心态由用户态转换为核心态, 在在OS 核心分析后核心分析后, 再转再转向相应的系统调用处理子程序。向相应的系统调用处理子程序。(3)抢占式调度系统中抢占式调度系统中,系统调用返回时会引起重新调度系统调用返回时会引起重新调度相同点相同点: 改变指令流程改变指令
38、流程,转去执行公用程序段转去执行公用程序段, 可嵌套。可嵌套。7.2.2系统调用的类型系统调用的类型从系统调用的服务目的分为两部分:从系统调用的服务目的分为两部分: (1) 系统自身所需要的。系统自身所需要的。 (2) 作为服务提供给用户的。作为服务提供给用户的。按系统调用的功能分为四类:按系统调用的功能分为四类:1. 进程控制类系统调用进程控制类系统调用:2. 进程通信类系统调用进程通信类系统调用:3. 文件操作类系统调用文件操作类系统调用:4. 信息维护类系统调用信息维护类系统调用:UNIX系统调用的类型系统调用的类型: (P238)1. 进程控制类系统调用进程控制类系统调用:创建进程创建
39、进程: fork( )终止进程终止进程: exit( )等待子进程结束等待子进程结束: wait( )执行一个可执行文件执行一个可执行文件(覆盖调用者覆盖调用者): exec( )获得进程获得进程ID: getp-id( )、getpgrp( )、getppid( )获得用户获得用户ID: getuid( )、getgid( )进程暂停进程暂停: pause( )2. 进程通信类系统调用进程通信类系统调用: 消息机制消息机制:打开连接打开连接/接收连接接收连接,发送发送/接收消息接收消息;建立消息队列建立消息队列msgget( )发送消息发送消息msgsed( )接收消息接收消息msgrcv(
40、 ) 共享存储区机制共享存储区机制:建立存储区建立存储区: shmget( )建立连接建立连接: shmat( )拆除连接拆除连接: shmdt( ) 信号量机制信号量机制: 信号量集表信号量集表, 信号量表信号量表.建立信号量集建立信号量集: semget( )对信号量集操作对信号量集操作: semop( ) 、semctl( )3. 文件操作类系统调用文件操作类系统调用:创建文件创建文件: creat( )打开文件打开文件: open( )关闭文件关闭文件: close( )读读/写文件写文件: read( ) 、write( )移动读移动读/写指针写指针: seek( )共享的连接和去连
41、接共享的连接和去连接(删除删除): link( ) 、unlink( ) 4. 信息维护类系统调用信息维护类系统调用:设置和获得系统时间设置和获得系统时间stime( )获得进程时间获得进程时间: times( )设置文件访问和修改时间设置文件访问和修改时间: utime( )获得当前系统名称获得当前系统名称:uname ( ) 包括名称串包括名称串,标准名标准名,在网络中的名称在网络中的名称7.2.3 系统调用的实现系统调用的实现 用户怎样通过系统调用得到系统服务的呢?用户怎样通过系统调用得到系统服务的呢? 需要有一个类似于硬件中断处理的处理机构。当用需要有一个类似于硬件中断处理的处理机构。
42、当用户使用操作系统调用时产生一条相应的指令户使用操作系统调用时产生一条相应的指令, 处理机在处理机在执行到该指令时发生相应的中断执行到该指令时发生相应的中断, 并发出有关的信号给并发出有关的信号给该处理机构该处理机构,该处理机构在收到了处理机发来的信号后该处理机构在收到了处理机发来的信号后, 启动相关的处理程序去完成该系统调用所要求的功能。启动相关的处理程序去完成该系统调用所要求的功能。1. 中断和陷入硬件机构中断和陷入硬件机构 (1)中断是中断是CPU对系统发生的某对系统发生的某(外部外部)事件的响应事件的响应: CPU暂停正在执行的程序暂停正在执行的程序,保护现场转去执行该事件保护现场转去
43、执行该事件的中断处理程序的中断处理程序,执行完后返回原程序断点继续执行。执行完后返回原程序断点继续执行。 (2) 陷入陷入(内中断内中断,捕获捕获)是由是由CPU内部事件引起的中断内部事件引起的中断 如如: 非法指令、地址越界、溢出、电源故障等。非法指令、地址越界、溢出、电源故障等。 陷入由执行现行指令引起陷入由执行现行指令引起,中断则与现行指令无关。中断则与现行指令无关。 还可以把由于系统调用引起处理机中断的指令称为还可以把由于系统调用引起处理机中断的指令称为陷入或异常指令陷入或异常指令(或称访管指令或称访管指令), 或软中断指令。从中或软中断指令。从中断的观点看断的观点看, 引起中断的事件
44、就是系统调用本身。引起中断的事件就是系统调用本身。被中断程序被中断程序中断处理中断处理程序程序中断点中断点 (3) 每个系统调用都对应一个事先给定的功能号每个系统调用都对应一个事先给定的功能号 在陷入指令中必须包括对应系统调用的功能号在陷入指令中必须包括对应系统调用的功能号,而而且,还带有传给陷入处理机构和内部处理程序的有关且,还带有传给陷入处理机构和内部处理程序的有关参数。参数。 (4)中断和陷入向量中断和陷入向量(P 237 图图7-5) 必须为系统调用功能的各子程序编造陷入必须为系统调用功能的各子程序编造陷入(中断中断)向量表向量表, 每个表目由入口地址和处理机状态字每个表目由入口地址和
45、处理机状态字PSW两两个字组成个字组成; 陷入处理机构把陷入指令包含的功能号与陷入处理机构把陷入指令包含的功能号与入口地址表项相对应入口地址表项相对应, 执行对应的子程序。执行对应的子程序。 (5) 保护和恢复现场:保护和恢复现场: 在进入系统调用之前在进入系统调用之前,在系统栈保护处理机现场。在系统栈保护处理机现场。 在系统调用结束之后要恢复处理机现场。在系统调用结束之后要恢复处理机现场。2.系统调用的参数传递系统调用的参数传递 每一条系统调用都含有若干个参数每一条系统调用都含有若干个参数,执行系统调用执行系统调用时时,将这些参数传递给相应的子程序。将这些参数传递给相应的子程序。怎样实现用户
46、程怎样实现用户程序和系统程序间的参数传递?序和系统程序间的参数传递?有两种传递方式:有两种传递方式: (1) 通过有关通用寄存器来传递参数:通过有关通用寄存器来传递参数: 直接将参数送入相应的寄存器直接将参数送入相应的寄存器(如如DOS 21h号中断号中断), 这些寄存器应是系统和用户程序都能访问的这些寄存器应是系统和用户程序都能访问的,此方法简此方法简单单,但由于寄存器数量较少但由于寄存器数量较少, 无法传递较多的参数。无法传递较多的参数。 (2)参数表方式参数表方式 将系统调用所需的参数放入一张参数表中将系统调用所需的参数放入一张参数表中,在将指向在将指向该参数表的指针放在某个寄存器该参数
47、表的指针放在某个寄存器(如如R0)中中; 此方式又分此方式又分为直接方式和间接方式。为直接方式和间接方式。(P237 图图7-6)变元表变元表:N参数参数1参数参数2参数参数Ntrap xx参数参数1参数参数N变元表变元表:N指针指针 直接方式直接方式间接方式间接方式 UNIX系统中系统中非共享程序用非共享程序用直接方式,直接方式,共享程序用共享程序用间接方式。间接方式。用户态非共享代码用户态非共享代码数据段数据段:trap xx参数参数1参数参数Ntrap xx参数参数1参数参数N用户态共享代码用户态共享代码trap 00syscall-p数组数组U-arg user结构结构数组数组U-ar
48、g user结构结构核心态核心态ppda区区3. 系统调用的处理步骤系统调用的处理步骤 (1) 将处理机状态由用户态转为系统态将处理机状态由用户态转为系统态; 由硬件和内由硬件和内核程序进行一般性处理核程序进行一般性处理, 即保护现场即保护现场: 将处理机状态将处理机状态字字PSW、程序计数器、程序计数器PC、系统调用号、用户栈指针、系统调用号、用户栈指针和通用寄存器内容压入堆栈和通用寄存器内容压入堆栈; 再将用户定义的的参数再将用户定义的的参数传送到指定的地方。传送到指定的地方。 (2) 分析系统调用类型分析系统调用类型, 按系统调用入口表转入相应按系统调用入口表转入相应的系统调用处理子程序
49、的系统调用处理子程序(并传递参数并传递参数); 该表目含该系该表目含该系统调用自带参数的个数统调用自带参数的个数(与参数表指针与参数表指针)和入口地址。和入口地址。 (3) 执行系统调用处理子程序。执行系统调用处理子程序。 (4) 执行完后执行完后, 恢复被中断的或设置新进程的恢复被中断的或设置新进程的CPU现现场场, 然后返回被中断进程或进入新进程。然后返回被中断进程或进入新进程。 系统调用系统调用 入口表入口表 (1) 转核心态转核心态 保护现场保护现场(2) 取系统调取系统调 用功能号用功能号 找到入口找到入口 传递参数传递参数A0A1Ai AnA0 A1AiAnSub0Sub1Subi
50、Subn 用户程序用户程序系统调用系统调用处理过程处理过程(3) 恢复现场恢复现场 返回原处返回原处或或 重新调度重新调度 设新现场设新现场 进新进程进新进程陷入处理机构陷入处理机构 系统子程序系统子程序另一进程另一进程 DOS: INT 21h 软中断软中断, 寄存器传递参数和入口。寄存器传递参数和入口。Linux: 0 x80 (或或128)中断向量用来实现系统调用中断向量用来实现系统调用 现代操作系统一般不直接提供系统调用指令接口现代操作系统一般不直接提供系统调用指令接口, 通常做法通常做法: 提供一套方便实用的应用程序函数库提供一套方便实用的应用程序函数库(API ) 从应用层面重新封
51、装系统调用、屏蔽复杂的系统调用从应用层面重新封装系统调用、屏蔽复杂的系统调用传参问题、提供高级语言接口传参问题、提供高级语言接口, 有助于快速开发有助于快速开发在更高层面提供系统程序设计模板库和类库在更高层面提供系统程序设计模板库和类库, 如如: Windows 2000/XP 提供封装系统调用提供封装系统调用 Win32 API和高层编程设施和高层编程设施MFC以及以及ATL。 Linux 提供封装系统调用提供封装系统调用, 符合符合POSIX标准的标准的 API和和C运行库。运行库。UNIX系统调用的处理步骤系统调用的处理步骤 执行执行CHMK指令指令, CPU状态转为核心态状态转为核心态
52、, 并保护并保护CPU环境由硬件自动将环境由硬件自动将 PSL、PC、code 压入用户核压入用户核心栈心栈, 再按中断和陷入向量表转入中断和陷入总控程再按中断和陷入向量表转入中断和陷入总控程序序trap.S 保护其它环境保护其它环境, 再调用公共处理程序再调用公共处理程序trap.C。 trap.C程序:程序:确定系统调用号确定系统调用号用参数表传递参数用参数表传递参数利用系统调用定义表转入相应的处理程序利用系统调用定义表转入相应的处理程序善后公共处理善后公共处理“广义指令广义指令”和和“虚处理机虚处理机” 系统调用命令扩充了机器指令系统调用命令扩充了机器指令, 增强了系统的功能增强了系统的
53、功能,方便用户使用方便用户使用, 称之为称之为“广义指令广义指令”。从用户角度来看,。从用户角度来看,它扩充了机器指令系统它扩充了机器指令系统, 增强了处理机功能。增强了处理机功能。“广义指令广义指令”和机器指令的不同:和机器指令的不同: 机器指令是由硬件线路直接实现的机器指令是由硬件线路直接实现的 “广义指令广义指令”由软件由软件(OS提供的多个子程序提供的多个子程序)实现实现的的“虚处理机虚处理机”: “广义指令广义指令”相当于相当于, 提供了一台功能更强提供了一台功能更强, 使用使用更方便的处理机更方便的处理机 , 实现了处理机性能上的扩充。为了实现了处理机性能上的扩充。为了区别于真实的
54、物理处理机区别于真实的物理处理机, 称它为称它为“虚处理机虚处理机”。3. Win32 应用程序接口应用程序接口 在在Windows中中, 定义了种类非常多的数以千计的应用定义了种类非常多的数以千计的应用程序接口程序接口(Win32 API), 提供提供OS服务服务 Windows中分辨不出哪些是系统调用中分辨不出哪些是系统调用(被内核执行被内核执行), 哪些是用户空间的库调用。事实上哪些是用户空间的库调用。事实上, 一个一个 Windows版版本中的系统调用本中的系统调用, 也许在另一个也许在另一个Windows 版本中会在版本中会在用户空间的库调用用户空间的库调用 在某些在某些Window
55、s版本中版本中, 图形子系统在内核中运行图形子系统在内核中运行, 它们也是系统调用它们也是系统调用, 否则是用户空间的库调用否则是用户空间的库调用7.4 操作系统的安装与启动操作系统的安装与启动 操作系统怎样开始运行操作系统怎样开始运行(引导和装入引导和装入) 怎样形成系统操作环境怎样形成系统操作环境(配置和初始化配置和初始化) 怎样从程序的顺序执行转换到支持程序的怎样从程序的顺序执行转换到支持程序的并发执行并发执行1. 操作系统的引导和装入操作系统的引导和装入(1) 独立引导方式独立引导方式操作系统的引导有两种方式:操作系统的引导有两种方式: 独立引导(独立引导(bootup) 辅助下装(辅
56、助下装(download)大多数系统采用大多数系统采用OS核心文件存储在系统本身的存储设备中核心文件存储在系统本身的存储设备中由系统自己将由系统自己将OS核心程序读入内存并运行核心程序读入内存并运行最后建立一个操作环境最后建立一个操作环境独立引导方式步骤独立引导方式步骤:(1)系统加电)系统加电, 执行执行BIOS中的系统初启程序。中的系统初启程序。(2)对系统硬件和配置进行自检)对系统硬件和配置进行自检, 保证无硬件错误。保证无硬件错误。(3)从硬盘中读入操作系统启动文件,并将控制权)从硬盘中读入操作系统启动文件,并将控制权交给该程序模块。交给该程序模块。(4)执行操作系统启动程序,完成系统
57、环境配置和)执行操作系统启动程序,完成系统环境配置和操作系统初始化工作。操作系统初始化工作。(5)继续读入其余的)继续读入其余的OS文件,逐个执行相应的系统文件,逐个执行相应的系统程序,完成程序,完成OS各种功能模块的装入,完善各种功能模块的装入,完善OS的操作的操作环境,做好程序并发执行的准备。环境,做好程序并发执行的准备。(6)等待用户请求和用户作业的输入,经过操作系)等待用户请求和用户作业的输入,经过操作系统调度后并发执行。统调度后并发执行。 OS主要文件不放在系统本身的存储设备中主要文件不放在系统本身的存储设备中, 而是在系统启动后而是在系统启动后, 执行下装操作。执行下装操作。 从另
58、外的计算机系统中将操作系统常驻部分从另外的计算机系统中将操作系统常驻部分传送到该计算机中传送到该计算机中, 使它形成一个操作环境。使它形成一个操作环境。 优点:可以节省较大的存储空间。优点:可以节省较大的存储空间。 下装的下装的OS并非是全部代码并非是全部代码, 只是常驻部分或只是常驻部分或者专用部分。者专用部分。 当这部分当这部分OS出现问题和故障时出现问题和故障时, 可以再请求可以再请求下装。下装。(2) 辅助下装方式辅助下装方式2. 系统配置与初始化系统配置与初始化 操作系统引导是从程序的顺序执行到并发操作系统引导是从程序的顺序执行到并发执行的过程执行的过程, 操作系统初始化完成后操作系
59、统初始化完成后, 才能建立才能建立这样的环境。这样的环境。步骤:步骤:(1)关掉系统中断)关掉系统中断, 以保证系统顺利引导以保证系统顺利引导(2)对当前的系统运行环境进行检查;对系统)对当前的系统运行环境进行检查;对系统的配置进行认定的配置进行认定, 保存检测的结果作为系统的初保存检测的结果作为系统的初始配置条件。始配置条件。(3)进行操作系统的初始化)进行操作系统的初始化BIOS(基本输入输出系统基本输入输出系统)概览概览1. 打开电源打开电源2. 硬件将控制权交给硬件将控制权交给BIOS3. BIOS运行通电自测试程序,测内存运行通电自测试程序,测内存4. 确认所有外部设备确认所有外部设
60、备: 键盘、硬盘或扩充卡键盘、硬盘或扩充卡5. 确定主引导或初始程序加载确定主引导或初始程序加载(IPL)设备的位置设备的位置6. BIOS建立系统资源表建立系统资源表7. 选择并启用初始输入设备选择并启用初始输入设备 (键盘键盘) 和输出设备和输出设备(显示器显示器); BIOS在成功启动时俘获这些在成功启动时俘获这些设置设置, 并并将他们存储到存储器中将他们存储到存储器中8. 搜索非搜索非PnP设备设备, 如外部设备互连如外部设备互连(PCI)总线总线,并将这些设备的并将这些设备的ROM的数据添加到资源表中的数据添加到资源表中9. BIOS解决设备冲突解决设备冲突,并配置选择的引导设备并配
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林业产权转让合同书(3篇)
- 附条件的不动产赠与合同(3篇)
- 医疗手术合同范本
- 班本生成活动研究内容
- 波形护栏检测合同范本
- 出租车分期还款合同范本
- 租房黑白合同范本
- 外科护理(第3版)课件 第三章 营养支持病人的护理
- 白灰厂建筑工程合同范本
- 承包苗木合同范本
- 天津市和平区2024-2025学年七年级上期中考试数学试题
- 食材配送服务方案投标方案(技术方案)
- 大学生生涯发展展示
- 乳腺结节课件
- 班前安全技术交底记录表
- 2023年大学生《思想道德与法治》考试题库附答案(712题)
- 国家开放大学《监督学》形考任务1-4参考答案
- 南京市商品住宅价格影响因素及对策分析论文设计
- 什么是Framelock(帧锁定)与Genlock(同步锁定)
- 外立面幕墙拆除方案
- 雪地里的小画家评课稿
评论
0/150
提交评论