操作系统与用户接口课件_第1页
操作系统与用户接口课件_第2页
操作系统与用户接口课件_第3页
操作系统与用户接口课件_第4页
操作系统与用户接口课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统结构操作系统结构内容操作系统服务用户与操作系统接口系统调用操作系统结构内容操作系统服务操作系统服务用户接口UserInterface命令行接口Command-LineInterface(CLI),图形用户接口GraphicsUserInterface(GUI)批处理Batch程序执行

-调入一个程序进入内存并运行之的系统能力I/O操作

-由于用户程序不能直接执行I/O操作,操作系统必须提供完成I/O操作的手段文件系统操纵

–程序能够读、写、创建和删除文件操作系统服务用户接口UserInterface操作系统服务通信-运行的进程间在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现出错检测

–通过探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确运算资源分配-把资源分配给多个用户或多个同时运行的作业计帐-跟踪和记录用户对资源的使用,用于帐单和统计保护-确保对资源的所有访问均在控制中操作系统服务通信-运行的进程间在同一计算机或由网络连接操作系统的用户界面(接口)操作系统与用户接口命令接口CommandInterface程序接口ProgramInterface(系统调用)命令接口命令行用户接口,文本界面图形用户接口操作系统的用户界面(接口)操作系统与用户接口操作系统的用户界面(接口)命令行用户界面(CommandlineUserInterfaceCUI)键盘输入DOS、Linux、UNIX图形用户界面(GraphicUserInterfaceGUI)鼠标输入MacOS、OS/2、WINDOWS、Linux等程序接口系统调用(SystemCalls)、API系统调用和API的区别?操作系统的用户界面(接口)命令行用户界面(Commandl系统调用系统调用提供了进程与操作系统之间的接口这些调用通常以汇编语言指令的形式提供有些语言(如C,C++和Perl)已经取代了汇编语言而直接用于系统编程向操作系统传递参数通常用三种方法通过寄存器来传递参数参数数量可能会比寄存器多将参数存放在内存的块或表中,并将块的地址作为参数传递给寄存器指针将参数放在堆栈中,并通过操作系统弹出堆栈不限制所传递参数的数量或长度系统调用系统调用提供了进程与操作系统之间的接口参数作为表传递参数作为表传递ExampleofStandardAPIConsidertheReadFile()functionintheWin32API—afunctionforreadingfromafile

AdescriptionoftheparameterspassedtoReadFile()HANDLEfile—thefiletobereadLPVOIDbuffer—abufferwherethedatawillbereadintoandwrittenfromDWORDbytesToRead—thenumberofbytestobereadintothebufferLPDWORDbytesRead—thenumberofbytesreadduringthelastreadLPOVERLAPPEDovl—indicatesifoverlappedI/OisbeingusedExampleofStandardAPIConside为什么需要系统调用系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数)。用户程序通过系统调用从用户态(usermode)切换到核心态(kernelmode),从而可以访问相应的资源。这样做的好处是:为用户空间提供了一种硬件的抽象接口,使编程更加容易。有利于系统安全。有利于每个进程度运行在虚拟系统中,接口统一有利于移植。为什么需要系统调用系统调用是内核向用户进程提供服务的唯一方法系统调用的类型进程控制:结束,中止,装入,执行,创建、终止进程等文件管理:创建文件,删除文件,打开,关闭文件等设备管理:请求设备,释放设备,读、写、重定位设备等信息维护:读取时间或日期、设置时间或日期等通信:创建、删除通信连接,发送、接收消息,传递状态信息等系统调用的类型进程控制:结束,中止,装入,执行,创建、终止进系统调用、API和C库应用编程接口(API)其实是一组函数定义,这些函数说明了如何获得一个给定的服务;而系统调用是通过软中断向内核发出一个明确的请求,每个系统调用对应一个封装例程(wrapperroutine,唯一目的就是发布系统调用)。一些API应用了封装例程。API还包含各种编程接口,如:C库函数、OpenGL编程接口等系统调用的实现是在内核完成的,而用户态的函数是在函数库中实现的调用printf()c库中的printf()c库中的write()sys_write()系统调用应用程序

C库

内核系统调用、API和C库应用编程接口(API)其实是一组函数定操作系统的设计操作系统设计有着不同于一般应用系统设计的特征:复杂程度高研制周期长正确性难以保证最早Uinx是1400行代码;Windowsxp有4000万行代码;fedroacore有2亿多行代码,Linuxkernel3.10有1700万行代码。解决途径:良好的操作系统结构先进的开发方法和工程化的管理方法(软件工程)高效的开发工具操作系统的设计操作系统设计有着不同于一般应用系统设计的特征:操作系统的设计考虑功能设计:操作系统应具备哪些功能算法设计:选择和设计满足系统功能的算法和策略,并分析和估算其效能结构设计:选择合适的操作系统结构按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简单、可靠、易读、易修改,而且使用方便,适应性强操作系统的设计考虑功能设计:操作系统应具备哪些功能几种常见的操作系统结构简单结构层次化结构单(宏)内核结构微内核模块(Modules)虚拟机几种常见的操作系统结构简单结构简单结构SimpleStructureMS-DOS-利用最小的空间提供最多的功能没有被划分成模块尽管MS-DOS拥有一些结构,但它的接口和功能层次并没有很好的分离开来。简单结构SimpleStructureMS-DOS-MS-DOSStructureMS-DOSStructureTraditionalUNIXSystemStructureTraditionalUNIXSystemStructUNIX系统结构UNIX-最初受到硬件功能的限制,它由两个独立的部分组成内核包括系统调用接口之下和物理硬件之上的所有部分内核通过系统调用提供文件系统、CPU调度、内存管理和其他操作系统功能。系统程序UNIX、Linux从另一个角度看也是单内核结构UNIX系统结构UNIX-最初受到硬件功能的限制,它由两层次结构LayeredApproach操作系统分成若干层,每层建立在较低层之上。最底层(层0)是硬件,最高层(层N)是用户接口分层法的主要优点是模块化。选择了分层,这样每层只能利用较低层的功能(或操作)和服务。分层法与其他方法相比其效率稍差。层次结构LayeredApproach操作系统分成若干层LayeredOperatingSystemLayeredOperatingSystem单/宏内核结构MonolithicKernelsStructureMonolithicKernels:theentirecodeofthekernel—includingallitssubsystemssuchasmemorymanagement,filesystems,ordevicedrivers—ispackedintoasinglefile.Eachfunctionhasaccesstoallotherpartsofthekernel;EarliestandmostcommonOSarchitecture(UNIX,MS-DOS)EverycomponentoftheOSiscontainedintheKernelExamples:OS/360,VMSandLinux单/宏内核结构MonolithicKernelsStr微内核结构MicrokernelSystemStructure

这种方法将所有非基本部分从内核中移走,并将它们当做系统级程序和用户级程序来实现,用这种方法来构建操作系统用户模块之间采用消息传递的方式进行通信微内核结构MicrokernelSystemStrucMicrokernelSystemStructure

(微内核结构)优点微内核易于扩展易于提升OS至一个新的体系结构更可靠(内核模式中运行的代码更少)更安全缺点用户空间与内核空间的通信代价较高WindowsNT...Windows8、MacOS、Mach、L4MicrokernelSystemStructure(WindowsKernelAPUserModeKernelModeHeapServiceNetworkServiceFileServiceDisplayServiceSENDREPLYCLIENTSERVER...MicroKernelHardwareWindowsNT4.0起,采用

microkernel的架构WindowsKernelAPUserModeKern模块Modules许多现代操作系统实现内核模块(kernelmodules)用面向对象的方法内核的组成部分相互分离任务之间的交互通过已知的接口来实现每个模块在内核中是按照需要可装载的总之,模块类似与分层,但模块更具灵活性Linux、Solaris、MacOS模块Modules许多现代操作系统实现内核模块(kerneSolarisModularApproachSolarisModularApproachMacOSXStructureMacOSXStructure

虚拟机virtualmachine虚拟机采用了分层的方法。它将物理硬件和OS内核统一看作为硬件虚拟机提供了与基本硬件相同的接口通过利用CPU调度和虚拟内存技术,操作系统能创建一种幻觉,以至于进程认为有自己的处理器和自己的(虚拟)内存。物理计算机共享资源以创建虚拟机CPU调度能共享出CPU造成一种每个用户都有自己的处理器的感觉假脱机和文件系统能提供虚拟读卡机和虚拟行式打印机一个普通的用户分时终端提供虚拟机操作员终端的功能virtualmachinesoftware:VMWARE、VirtualBox、VirtualPC

虚拟机virtualmachine虚拟机采用了分层的VirtualMachines(a)Non-virtualMachine(b)VirtualMachineVirtualMachines(a)Non-virtua虚拟机的优缺点通过完全保护系统资源,虚拟机提供了一个坚实的安全层虚拟机允许进行系统开发而不必中断正常的系统操作但虚拟机概念很难提供真实的硬件效果虚拟机的优缺点通过完全保护系统资源,虚拟机提供了一个坚实的安习题分析1、相对于单一内核结构,采用微内核结构设计和实现操作系统具有诸多好处,但是,

并不是微内核的优势。 A.使系统更高效B.想添加系统服务时,不必修改内核 C.使系统更安全D.使系统更可靠2、操作系统中提供了一种进程间的通信机制,把一个进程的标准输出与另一个进程的标准输入连接起来,这种机制称为

A.重定向 B.管道 C.socket D.共享内存习题分析1、相对于单一内核结构,采用微内核结构设计和实现操作习题分析3、为了在通用操作系统管理下的计算机上运行一个程序,需要经历几个步骤。但是,

不一定需要。A.向操作系统预定运行时间B.将程序装入内存C.确定起始地址,并从这个地址开始执行 D.用控制台监控程序执行过程

习题分析3、为了在通用操作系统管理下的计算机上运行一个程序,习题分析4、下列选择中,

不是操作系统关心的主要问题。 A.提供保护和安全机制 B.管理目录和文件 C.提供应用程序接口 D.提供JAVA语言编译器习题分析4、下列选择中,不是操作系EndEnd操作系统结构操作系统结构内容操作系统服务用户与操作系统接口系统调用操作系统结构内容操作系统服务操作系统服务用户接口UserInterface命令行接口Command-LineInterface(CLI),图形用户接口GraphicsUserInterface(GUI)批处理Batch程序执行

-调入一个程序进入内存并运行之的系统能力I/O操作

-由于用户程序不能直接执行I/O操作,操作系统必须提供完成I/O操作的手段文件系统操纵

–程序能够读、写、创建和删除文件操作系统服务用户接口UserInterface操作系统服务通信-运行的进程间在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现出错检测

–通过探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确运算资源分配-把资源分配给多个用户或多个同时运行的作业计帐-跟踪和记录用户对资源的使用,用于帐单和统计保护-确保对资源的所有访问均在控制中操作系统服务通信-运行的进程间在同一计算机或由网络连接操作系统的用户界面(接口)操作系统与用户接口命令接口CommandInterface程序接口ProgramInterface(系统调用)命令接口命令行用户接口,文本界面图形用户接口操作系统的用户界面(接口)操作系统与用户接口操作系统的用户界面(接口)命令行用户界面(CommandlineUserInterfaceCUI)键盘输入DOS、Linux、UNIX图形用户界面(GraphicUserInterfaceGUI)鼠标输入MacOS、OS/2、WINDOWS、Linux等程序接口系统调用(SystemCalls)、API系统调用和API的区别?操作系统的用户界面(接口)命令行用户界面(Commandl系统调用系统调用提供了进程与操作系统之间的接口这些调用通常以汇编语言指令的形式提供有些语言(如C,C++和Perl)已经取代了汇编语言而直接用于系统编程向操作系统传递参数通常用三种方法通过寄存器来传递参数参数数量可能会比寄存器多将参数存放在内存的块或表中,并将块的地址作为参数传递给寄存器指针将参数放在堆栈中,并通过操作系统弹出堆栈不限制所传递参数的数量或长度系统调用系统调用提供了进程与操作系统之间的接口参数作为表传递参数作为表传递ExampleofStandardAPIConsidertheReadFile()functionintheWin32API—afunctionforreadingfromafile

AdescriptionoftheparameterspassedtoReadFile()HANDLEfile—thefiletobereadLPVOIDbuffer—abufferwherethedatawillbereadintoandwrittenfromDWORDbytesToRead—thenumberofbytestobereadintothebufferLPDWORDbytesRead—thenumberofbytesreadduringthelastreadLPOVERLAPPEDovl—indicatesifoverlappedI/OisbeingusedExampleofStandardAPIConside为什么需要系统调用系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数)。用户程序通过系统调用从用户态(usermode)切换到核心态(kernelmode),从而可以访问相应的资源。这样做的好处是:为用户空间提供了一种硬件的抽象接口,使编程更加容易。有利于系统安全。有利于每个进程度运行在虚拟系统中,接口统一有利于移植。为什么需要系统调用系统调用是内核向用户进程提供服务的唯一方法系统调用的类型进程控制:结束,中止,装入,执行,创建、终止进程等文件管理:创建文件,删除文件,打开,关闭文件等设备管理:请求设备,释放设备,读、写、重定位设备等信息维护:读取时间或日期、设置时间或日期等通信:创建、删除通信连接,发送、接收消息,传递状态信息等系统调用的类型进程控制:结束,中止,装入,执行,创建、终止进系统调用、API和C库应用编程接口(API)其实是一组函数定义,这些函数说明了如何获得一个给定的服务;而系统调用是通过软中断向内核发出一个明确的请求,每个系统调用对应一个封装例程(wrapperroutine,唯一目的就是发布系统调用)。一些API应用了封装例程。API还包含各种编程接口,如:C库函数、OpenGL编程接口等系统调用的实现是在内核完成的,而用户态的函数是在函数库中实现的调用printf()c库中的printf()c库中的write()sys_write()系统调用应用程序

C库

内核系统调用、API和C库应用编程接口(API)其实是一组函数定操作系统的设计操作系统设计有着不同于一般应用系统设计的特征:复杂程度高研制周期长正确性难以保证最早Uinx是1400行代码;Windowsxp有4000万行代码;fedroacore有2亿多行代码,Linuxkernel3.10有1700万行代码。解决途径:良好的操作系统结构先进的开发方法和工程化的管理方法(软件工程)高效的开发工具操作系统的设计操作系统设计有着不同于一般应用系统设计的特征:操作系统的设计考虑功能设计:操作系统应具备哪些功能算法设计:选择和设计满足系统功能的算法和策略,并分析和估算其效能结构设计:选择合适的操作系统结构按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简单、可靠、易读、易修改,而且使用方便,适应性强操作系统的设计考虑功能设计:操作系统应具备哪些功能几种常见的操作系统结构简单结构层次化结构单(宏)内核结构微内核模块(Modules)虚拟机几种常见的操作系统结构简单结构简单结构SimpleStructureMS-DOS-利用最小的空间提供最多的功能没有被划分成模块尽管MS-DOS拥有一些结构,但它的接口和功能层次并没有很好的分离开来。简单结构SimpleStructureMS-DOS-MS-DOSStructureMS-DOSStructureTraditionalUNIXSystemStructureTraditionalUNIXSystemStructUNIX系统结构UNIX-最初受到硬件功能的限制,它由两个独立的部分组成内核包括系统调用接口之下和物理硬件之上的所有部分内核通过系统调用提供文件系统、CPU调度、内存管理和其他操作系统功能。系统程序UNIX、Linux从另一个角度看也是单内核结构UNIX系统结构UNIX-最初受到硬件功能的限制,它由两层次结构LayeredApproach操作系统分成若干层,每层建立在较低层之上。最底层(层0)是硬件,最高层(层N)是用户接口分层法的主要优点是模块化。选择了分层,这样每层只能利用较低层的功能(或操作)和服务。分层法与其他方法相比其效率稍差。层次结构LayeredApproach操作系统分成若干层LayeredOperatingSystemLayeredOperatingSystem单/宏内核结构MonolithicKernelsStructureMonolithicKernels:theentirecodeofthekernel—includingallitssubsystemssuchasmemorymanagement,filesystems,ordevicedrivers—ispackedintoasinglefile.Eachfunctionhasaccesstoallotherpartsofthekernel;EarliestandmostcommonOSarchitecture(UNIX,MS-DOS)EverycomponentoftheOSiscontainedintheKernelExamples:OS/360,VMSandLinux单/宏内核结构MonolithicKernelsStr微内核结构MicrokernelSystemStructure

这种方法将所有非基本部分从内核中移走,并将它们当做系统级程序和用户级程序来实现,用这种方法来构建操作系统用户模块之间采用消息传递的方式进行通信微内核结构MicrokernelSystemStrucMicrokernelSystemStructure

(微内核结构)优点微内核易于扩展易于提升OS至一个新的体系结构更可靠(内核模式中运行的代码更少)更安全缺点用户空间与内核空间的通信代价较高WindowsNT...Windows8、MacOS、Mach、L4MicrokernelSystemStructure(WindowsKernelAPUserModeKernelModeHeapServiceNetworkServiceFileServiceDisplayServiceSENDREPLYCLIENTSERVER...MicroKernelHardwareWindowsNT4.0起,采用

microkernel的架构WindowsKernelAPUserModeKern模块Modules许多现代操作系统实现内核模块(kernelmodules)用面向对象的方法内核的组成部分相互分离任务之间的交互通过已知的接口来实现每个模块在内核中是按照需要可装载的总之,模块类似与分层,但模块更具灵活性Linux、Solaris、MacOS模块Modules许多现代操作系统实现内核模块(kerneSolarisModularApproachSolarisModularAppr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论