《操作系统接口》PPT课件.ppt

上传人:za****8 文档编号:3184519 上传时间:2019-12-08 格式:PPT 页数:41 大小:594.51KB
返回 下载 相关 举报
《操作系统接口》PPT课件.ppt_第1页
第1页 / 共41页
《操作系统接口》PPT课件.ppt_第2页
第2页 / 共41页
《操作系统接口》PPT课件.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
第九章操作系统接口,OS用户与计算机之间的接口。,接口类型,用户接口支持用户与OS的交互:用户向OS请求服务,系统向用户返回服务结果。程序接口即API(ApplicationProgrammingInterface)支持程序员编程时使用,使程序可在执行中访问系统资源和服务。组成:系统调用(systemcall),每个系统调用是一个能完成特定功能的子程序(访问OS底层服务)。,用户接口,用户接口是计算机系统与用户之间进行交互作用和通信的通路。对绝大多数用户而言,一个计算机系统的可接受性在很大程度上取决于用户接口。用户接口可分为两类:联机用户接口脱机用户接口,7.1联机用户接口,联机用户接口也叫联机命令接口、交互式用户接口,用于联机作业控制,由一组可与系统交互的命令组成。两种形式:字符方式终端字符流键盘终端输入命令显示终端反馈结果图形方式图标、菜单、对话框,命令语言,用户组终端键盘键入的命令被称为命令语言,由一组命令动词和参数组成,以命令行的形式输入并提交给系统。每一条命令指示系统完成特定的功能。完整的命令集反映了系统提供给用户可使用的全部功能。命令语言又可分为两种方式:命令行方式批命令方式,命令行方式,用户从终端直接输入命令,系统反馈后才能输入下一条命令的执行时间断的,伴随着用户和系统之间的不断交互一般形式:Commandarg1arg2argn,批命令方式,将多条命令写入批命令文件,一次建立,多次执行。如,MS-DOS中的.BAT文件。用户不必记忆和键入命令,系统可连续执行多条命令,可减少出错和提高效率。,7.1.2联机命令的类型,系统访问类磁盘操作命令文件操作命令目录操作命令其它命令,命令接口的支持程序,为了实现命令方式下的人机交互,系统需配备:键盘终端处理程序命令解释程序,7.1.3键盘终端处理程序,功能:接收用户从终端上打入的字符字符缓冲,用于暂存所接收的字符回送显示屏幕编辑特殊字符处理,7.1.4命令解释程序,位于是OS的最高层,以便与用户交互。功能:先对用户输入的命令进行解释再转入相应命令的处理程序去执行例如:MS-DOS中的COMMAND.COMUNIX中的Shell,7.1.4命令解释程序,作用在屏幕上给出提示符,读入和识别命令,转入相应命令处理程序的入口地址,把控制权交给该处理程序执行,将处理结果回送到屏幕显示。组成工作流程,7.3系统调用,程序接口:OS专为用户程序设置的接口,是用户程序取得OS服务的唯一途径,由各种类型的系统调用组成。系统调用的概念系统调用的类型POSIX标准系统调用的实现,7.3.1系统调用的基本概念,OS核心中的一组实现各种系统功能的子程序(过程),可以提供给应用程序使用。但是,为了避免破坏OS,不允许用户程序直接调用这些子程序(过程),OS提供了一系列系统调用命令,应用程序只能通过系统调用去调用所需系统过程。,系统态和用户态,为了防止系统程序被破坏,为计算机设置了两种状态:系统态(管态、核心态)操作系统用户态(目态)应用程序实际运行中,处理机会在系统态和用户态切换。使用系统调用时,需要进行两种状态的切换。,特权指令和非特权指令,特权指令系统态时运行的指令对内存空间访问不受限制,可访问用户空间,也可访问系统空间如:启动外设、设置系统时钟、关中断只允许操作系统使用,不允许应用程序使用非特权指令用户态时运行的指令只能访问用户空间不能直接访问系统中的硬件和软件,避免应用程序运行异常时破坏系统采用硬件实现权限的限制,系统调用,前述机制带来的矛盾:为了安全性,应用程序不能直接调用操作系统过程不使用操作系统提供的服务,应用程序做不了什么有价值的工作,甚至无法正常工作系统调用的作用:使应用程序可以间接调用OS的相关过程,取得相应的服务。系统调用的本质应用程序向OS请求服务时的过程调用是一种特殊的过程调用,系统调用的特殊性,与一般的过程调用相比,系统调用具有一定的特殊性,系统态,用户态,系统调用举例读写文件,读写,opencreatereadwritecloseexit,用户程序,系统调用,输入文件,输出文件,中断机制,系统调用通过中断机制实现,一个操作系统的所有系统调用都通过同一个中断入口来实现。如:MS-DOS提供了INT21HLinux使用80h,7.3.2系统调用的类型,进程控制创建/终止进程,获得/设置进程属性,等待某事件文件操纵创建/删除文件,打开/关闭文件,读/写文件进程通信打开/接受连接;发送/接收消息,关闭连接设备管理申请/释放设备、设备I/O、重定向、设置设备属性、逻辑上连接/释放设备等信息维护获得系统时间/版本,文件时间/日期,当前用户,空闲内存、磁盘空间大小等,7.3.3POSIX标准,为了实现应用程序与操作系统平台的无关性,国际化标准组织ISO给出了有关系统调用的国际标准POSIX1003.1(PortableOperationSystemIX),也称为“基于UNIX的可移植操作系统接口”。POSIX定义了标准应用程序接口(API),用于保证应用程序在源代码一级兼容多种操作系统。POSIX规定了系统调用的功能,没有明确规定系统调用的实现形式。常见实现形式:汇编语言,可看作扩展机器指令,可在汇编语言编程中直接使用C语言,以库函数提供,可在C语言编程中直接使用,系统调用接口位置,用户程序,编程工具,二进制指令系统,硬件,系统调用接口,编程工具包,操作系统,硬件,硬件控制程序,文件子系统,I/O,设备,字符块设备,设备驱动程序,进程控制,进程间通信,进程调度,内存管理,7.3.4系统调用的实现,用户态到系统的转换,需借助中断和陷入机制。中断和陷入机制包括:中断和陷入硬件机构中断和陷入处理程序过程:系统调用指令中断信号送入中断和陷入硬件机构启动中断和陷入处理程序,中断和陷入硬件机构,中断和陷入的概念中断:CPU对系统发生某事件时的一种响应:CPU暂停正在执行的程序,在保留现场后自动地转去执行该事件的中断处理程序;执行完后,再返回到原程序的断点处继续执行。(见图7-5)进一步细分:外中断:由外部设备事件引起的中断内中断:由CPU内部事件引起的中断,由现行指令引起,也成为“捕获”或“陷入”(trap),中断和陷入硬件机构,中断和陷入向量中断向量:每个设备有一个对应的中断处理程序,其入口地址存放在某个内存单元,也对应着不同处理机状态字PSW,存放在与中断处理程序入口指针相邻的单元。这两个字称为中断向量。陷入向量与中断向量类似,对应系统调用。所有的中断向量和陷入向量构成中断和陷入向量表。,系统调用号和参数的设置,系统调用号一般为每条系统调用赋予一个唯一的系统调用号。系统调用号用来传递给中断和陷入机制。系统调用号及其他参数的传递方法陷入指令自带(使用指令的若干位,很少)寄存器(数量有限)参数表(内存),参数表指针(寄存器),系统调用的处理步骤,处理机状态切换(用户态系统态),保护被中断进程的CPU现场;转入系统调用处理子程序执行;恢复CPU现场,返回被中断进程或新进程执行,7.4实例:UNIX系统调用,1.进程控制创建进程(fork)终止进程(exit)等待子进程结束(wait)执行一个文件(exec)获得进程ID(getp-id,getpgrp,getppid)获得用户ID(getuid,geteuid,getgid)进程暂停(pause),示例:创建子进程,示例.两进程分别输出A,B,#include#includemain()inti;pid_tpid;if(pid=fork()0)return-1;elseif(pid=0)for(i=1;i11;i+)printf(ChildProcessB,PID:%dn,getpid();sleep(i);elsefor(i=1;i11;i+)printf(ParentProcessA,PID:%dn,getpid();sleep(2*i);,比较:Windows中进程创建,intsystem(constchar*command)运行命令行命令(程序)commandint_spawnl(intmode,constchar*cmdname,constchar*arg0,constchar*arg1,.constchar*argn,NULL)以模式mode,创建进程并以新进程执行程序cmdname,传入参数arg0-argn,_spawn调用的模式,_P_OVERLAY子进程执行后,父进程中止_P_WAIT父进程暂停,等待子进程运行完成后继续_P_NOWAIT父进程、子进程并行运行_P_DETACH父子进程并行运行,但子进程不能使用脱离对控制台键盘和显示输出的控制,Autorun.exe实现,#include#includeintmain(intargc,charargv)system(explorer.);/printf(viruscodemayrunhere!n);/system(pause);return0;,Autorun2.exe的实现,#includestdafx.hintAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow)_spawnl(_P_NOWAIT,C:windowsexplorer.exe,C:windowsexplorer.exe,.,NULL);MessageBox(0,VirusCodeMayExecutehere,Virus,MB_ICONWARNING);return0;,7.4实例:UNIX系统调用,2.文件操纵创建文件(create)打开文件(open)关闭文件(close)读和写文件(read和write)连接和去连接(link和unlink)用于共享i.link=0时删除文件,UNIX无文件删除系统调用,7.4实例:UNIX系统调用,3.IPC(Inter-ProcessCommunication):用于实现进程间通信的软件包,包括三部分:消息机制msgget(建立消息队列),msgsend,msgrcv共享存储器机制shmget(建立共享存储区),shmat(连接本进程到共享区),shmdt(拆除链接)信号量机制,7.4实例:UNIX系统调用,4.信息维护设置和获得时间(stime)获得进程和子进程时间(times)设置文件访问和修改时间(utime)获得当前UNIX系统的名称(uname),7.4.2被中断进程的环境保护,trap.S程序UNIX的中断和陷入总控程序,用于中断和陷入的一般性处理。包含了绝大部分中断和陷入向量的入口地址,系统发生中断和陷入情况时,通常先进入trap.S程序。,7.4.2被中断进程的环境保护,CPU环境保护执行系统调用命令前(用户态)参数表地址R0执行系统调用命令后用户态核心态CPU现场保护(初步:PSL、PC、code入用户栈,硬件实现)转入trap.S程序执行,继续保存CPU现场(陷入类型、用户栈指针、被中断进程的CPU环境中的一系列寄存器),7.4.3系统调用陷入后需处理的公共问题,确定系统调用号进入trap.S后,再调用trap.C,trap.C用于处理各种陷入情况,调用形式如下:trap(usp,type,code,PC,PSL)可从code参数确定系统调用号参数传递指系统调用的参数表,首址入R0,由trap.C送入U.U-arg利用系统调用定义表转入相应的处理程序系统调用定义表包含了各种处理子程序的入口地址子程序执行完毕,返回trap.C系统调用返回前的公共处理UNIX使用动态优先级调度,返回trap.C后,要重新计算进程优先级,重新调度,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!