您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第7章 操作系统接口ppt课件计算机操作系统汤小丹梁红兵版
第7章操作系统接口第7章操作系统接口7.1系统功能调用7.2图形用户接口7.3用户管理习题第7章操作系统接口7.1系统功能调用7.1.1系统调用及实现1.程序的状态在计算机系统中运行的程序,大体上可以分为两类:系统程序和用户程序。这两类程序的作用是不同的,前者是后者的管理者和控制者,系统程序享有普通用户程序不能享有的特权。第7章操作系统接口户程序的运行和系统程序的运行区分开来:把操作系统程序运行的状态称为管态或者系统态;把用户程序运行的状态称为算态或者目态。在UNIX中,系统程序运行的状态叫核心态,用户程序运行的状态叫做用户态。第7章操作系统接口为了区分只能在管态下允许执行,而不能在算态下调用的一类专用指令,引进了特权指令。特权指令是一类只能在管态下执行而不能在算态下执行的特殊的指令。这些指令在不同的机器中有不同的规定,通常与硬件有很大的关系。常见的特权指令有如下几类:第7章操作系统接口(1)传送程序状态字指令。该指令负责从内存单元取出程序状态字,送到程序状态寄存器中,可用来改变程序的运行状态。(2)启动、测试和控制外设的指令。这些指令直接用于操纵外部设备的运行。(3)存取特殊寄存器的指令。特殊寄存器是指系统中的中断寄存器、时钟寄存器、上/下界地址寄存器等,这些寄存器只能在管态下由系统程序存取。第7章操作系统接口7.系统功能调用(1)需要有这样一条指令,它能使处理机从算态进入管态,并向操作系统提出要代为完成的工作。(2)在管态下由操作系统完成用户程序提出的请求。(3)操作系统完成所做工作后,应返回到用户程序,即从管态又回到原来的算态。第7章操作系统接口7.系统调用与普通过程调用的区别系统调用在本质上是一种过程调用,但它是一种特殊的过程调用,与一般用户程序中的过程调用有明显的区别。1)运行在不同的系统状态一般的过程调用,其调用或被调用的过程要么都是子程序,要么都是系统程序,而且都运行在同一系统状态下,即系统态(管态)或用户态(目态)。第7章操作系统接口2)通过软中断进入一般的过程调用可直接由调用过程转向被调用过程。而执行系统调用时,因为调用过程和被调用过程处于不同的系统状态,所以不允许由调用过程直接转向被调用过程,只能通过软中断机制,先进入操作系统核心,经核心处理后,才能转向相应的命令处理程序。第7章操作系统接口3)返回问题一般的过程调用,当被调用过程执行完后,将返回到调用过程继续执行。然而,在采用了抢占剥夺调度方式的系统中,在被调用过程执行完后,要对系统中所有要求运行的进程进行优先权的分析。第7章操作系统接口4.系统调用的功能1)UNIX的系统功能UNIX的系统调用接口见图7.4。UNIX提供的系统功能主要包含有设备管理、文件管理、进程和存储管理等。(1)设备管理:设备的读写和控制。其系统调用见表7.8。(2)文件管理:文件读写和文件控制。其系统调用见表7.9。第7章操作系统接口系统功能调用接口标准应用程序,如Shell、编译器等标准库(open,close,write,fork等)UNIX操作系统(设备管理,文件管理,进程管理,存储管理等)用户模式用户接口库接口用户用户用户硬件(CPU,内存,磁盘,终端等)核心模式图7.4UNIX的系统调用接口第7章操作系统接口表7.8设备管理系统调用ioctl设备配置open设备打开close设备关闭read读设备write写设备第7章操作系统接口表7.9文件管理系统调用open文件打开close文件关闭read读文件write写文件seek读/写指针定位creat文件创建stat读文件状态mount安装文件系统chmod修改文件属性第7章操作系统接口(3)进程控制:创建、终止、暂停等控制。其系统调用见表7.10。(4)进程通信:消息队列、共享存储区、socket等通信渠道的建立、使用和删除。其系统调用见表7.11。(5)存储管理:内存的申请和释放。其系统调用见表7.12。(6)系统管理:设置和读取时间、读取用户和主机标识等。其系统调用见表7.13。(7)文件保护系统调用见表7.14。第7章操作系统接口表7.10进程控制系统调用fork创建进程exit进程自我终止wait阻塞当前进程sleep进程睡眠getpid读父进程标识第7章操作系统接口表7.11进程通信系统调用msgget获取消息队列标识数msgsnd向消息队列发消息msgrcv从消息队列中接收一个消息shmget创建共享内存段shmat共享内存段映射到进程的虚拟地址semget创建一个信号灯组semop对信号灯组的控制第7章操作系统接口表7.12存储管理系统调用brk改变数据段大小mmap建立同文件的映射unmap去掉同文件的映射第7章操作系统接口表7.13系统管理系统调用gtime读取时间stime设置时间getuid读取用户标识第7章操作系统接口表7.14文件保护系统调用access(path,mode)使用真实UID和GID作许可检验getuid()获得真实UIDgeteuid()获得有效UIDgetgid()获得真实GIDgetegid()获得有效GIDchown(path,owner,group)改变用户和组setuid(uid)设定UIDsetgid(gid)设定GIDchmod(path,mod)改变文件保护模式第7章操作系统接口2)Windows系统的应用程序接口Windows系统以应用程序接口(ApplicationProgrammingInterface,API)的形式提供给用户很多系统功能调用的函数,功能十分强大。WindowsAPI是Windows视窗系统提供给用户进行系统编程和外设控制的强大的程序级接口。图7.5给出了应用程序接口的示意图,表7.15列出了WIN32常用的应用程序接口。第7章操作系统接口WIN32应用程序接口WIN32sWindows3.xWindows95/98/MeWindowsNTWindows2000…应用程序应用程序应用程序图7.5WIN32应用程序接口第7章操作系统接口表7.15Win32支持的应用程序接口Win32API函数描述CreateProcess新建进程CreateThread在一个已存在的进程中创建一个线程CreateFiber新建纤程ExitProcess结束当前进程及其所有线程ExitThread结束线程ExitFiber结束纤程SetPriorityClass设定进程的优先级SetThreadPriority设定一个线程的优先权CreateSemaphore新建一信号第7章操作系统接口CreateMutex新建一互斥对象OpenSemaphore打开已存在的信号OpenMutex打开已存在的互斥WaitForSingleObject单个信号、互斥等上的阻塞WaitForMultipleObjects一套给定句柄的对象上的阻塞PulseEvent设定事件信号,然后去掉信号ReleaseMutex释放互斥以允许另一个线程获得它ReleaseSemaphore释放信号量EnterCriticalSection获得临界区的锁LeaveCriticalSection释放临界区的锁第7章操作系统接口7.1.2系统调用的实现过程在不同的操作系统中,系统调用的实现方式可能不同,但大体上都可以把系统调用的执行过程分为以下几步:(1)设置系统调用号和参数。(2)系统调用命令的一般性处理。(3)系统调用命令处理程序的具体处理。第7章操作系统接口1.设置系统调用号和参数一个系统中往往设置了许多条系统调用命令,并赋予每条命令一个惟一的系统调用号。在有的系统中,直接把系统调用号放在系统调用的命令中,如IBM370和早期的UNIX系统,其系统调用命令的低8位用作系统调用号。第7章操作系统接口对于设置系统调用所需要的参数,有两种方式:(1)直接将参数送入相应的寄存器。MS-DOS便是采用这种方式,即用mov指令将各个参数送到相应的寄存器中。这种方式的主要问题是:由于寄存器数量有限,因而限制了设置参数的数目。(2)参数表达方式。将系统调用所需的参数放入一张参数表中,再将指向该参数表的指针放在某个规定的寄存器中。第7章操作系统接口7.系统调用命令的一般性处理在设置了系统调用号和参数后,便可执行一条系统调用命令。在不同的系统中可采用不同的方式来进行一般性处理:在UNIX系统中是执行trap指令;在MS-DOS中是执行INT21H软中断。第7章操作系统接口7.命令处理程序的实现过程对于不同的系统调用命令,其命令处理程序将执行不同的功能。我们以一条在文件操作中常用的create命令为例来说明它。进入create的命令处理程序后,核心将根据用户给定的文件路径名并利用目录检索过程,去查找该指定文件的目录项。第7章操作系统接口4.UNIX系统调用的实现在UNIX中,由自陷指令trap实现系统调用,系统通过这一指令借助于硬件中断机构为用户提供系统核心的接口。UNIX系统调用的数目视版本不同而有差异。UNIX版本7约有50个系统调用;而systemⅤ则大约有64个系统调用,其中32个是常用的。第7章操作系统接口所有系统调用程序的自带参数个数和程序入口地址均按系统调用编号次序存入系统调用入口表中。该表记作sysent,描述如下:structsysent{intcount;/*对应系统调用自带参数的个数*/int(*call)();/*系统调用程序的入口地址*/}sysent[64];第7章操作系统接口UNIX操作系统有两种系统调用方式:直接系统调用和间接系统调用。其中功能号为0的调用是间接系统调用,其余都是直接系统调用。一般情况下,使用直接系统调用除可以使用寄存器r0传递参数外,其他参数都跟在trap指令的后面。而使用间接系统调用时,跟随trap指令的是一个指向程序数据区的一个指针,该程序数据区内有一直接系统调用trap指令,其后跟r0外的参数。UNIX的系统调用方式如图7.6所示。第7章操作系统接口直接系统调用程序trapxx参数1参数2…参数ntrap00指针程序间接系统调用trapxx参数1参数2…参数n数据区图7.6UNIX的系统调用方式第7章操作系统接口系统调用的执行过程如图7.7所示。具体步骤如下:(1)设置系统调用号和参数,然后执行trap指令。(2)入口的一般性处理。(3)查入口地址表,跳转到相应的功能子程序执行。(4)恢复CPU现场,将执行结果装入适当位置,执行中断返回指令。第7章操作系统接口陷入指令A0保护处理机现场取系统用户功能号并寻找子程序入口恢复处理机现场并返回系统调用1A0A1…Ai…An用户程序陷入处理机构入口地址表系统子程序sub0sub1…subi…subnA1AiAn23图7.7系统调用的执行过程第7章操作系统接口7.2图形用户接口7.2.1概述1.窗口系统(windowsystem)窗口系统提供了GUI的一般功能,它的主要特点有:(1)利用图形元素表示功能:将各种图形元素显示在屏幕上,用户可以通过操纵图形元素(如菜单、图标)来执行相应的功能。第7章操作系统接口(2)同屏多窗口与并发进程相对应:屏幕上同时显示多个窗口;一个进程可以对应一个或多个窗口;窗口动态创建、改变、撤消。(3)输入方式:鼠标指针点击(或其他定位设备)和键盘输入,通常是即时交互的方式。(4)一致的图形元素风格可方便用户学习和使用,如按钮、滚动条。第7章操作系统接口7.窗口管理器窗口管理器具体管理的内容大致有以下几个部分:(1)窗口(window):屏幕上的矩形区域,用户可以按需定制窗口。(2)图标(icon):一个小图像,是窗口的小型图形显示。(3)输入焦点:又称为键盘焦点,是指接收键盘输入的窗口(而非鼠标)。(4)窗口堆栈:用来描述窗口的层次关系。堆栈的顺序可以通过设置输入焦点、窗口图标化的方法改变。第7章操作系统接口(5)资源数据库:提供三种基本的资源。成员外观资源,控制窗口菜单、图标和边框的外观。特定外观和活动资源,如窗口的处理策略。用户外观资源,规定单个或一组用户窗口的图标和边
本文标题:第7章 操作系统接口ppt课件计算机操作系统汤小丹梁红兵版
链接地址:https://www.777doc.com/doc-3400709 .html