操作系统结构及应用.ppt_第1页
操作系统结构及应用.ppt_第2页
操作系统结构及应用.ppt_第3页
操作系统结构及应用.ppt_第4页
操作系统结构及应用.ppt_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

2019/11/5,操作系统结构及应用编程,自动化工程学院 刘珊,2019/11/5,2,主要内容,1、概述 2、内存寻址 3、进程 4、内存管理 5、中断和异常 6、系统调用 7、内核中的同步 8、文件系统 9、设备驱动,2019/11/5,3,第一章 操作系统概述,1.1 什么是操作系统? 定义、功能、特征 发展历程 结构 1.2 什么是Linux操作系统? 1.3 Linux内核,2019/11/5,4,1.1 什么是操作系统? 认识角度,操作系统,2019/11/5,5,1.1 什么是操作系统? 从使用者的角度,打开计算机,首先跳入眼帘的是什么? 要拷贝一个文件,具体的拷贝操作是谁完成的? 你需要知道文件存放在何处吗? 柱面、磁道、扇区描述什么? 数据的搬动过程怎样进行 繁琐留给自己,简单留给用户 操作系统穿上华丽的外衣图形界面 操作系统穿上朴素的外衣字符界面,2019/11/5,6,1.1 什么是操作系统? 从程序开发者的角度,拷贝命令的C语言实现片断 inf=open(“/floppy/TEST”,O_RDONLY,0); outf=open(“/mydir/test”,O_WRONLY,0600); do l=read(inf,buf,4096); write(outf,buf,l); while(l); close(outf); close(inf);,2019/11/5,7,1.1 什么是操作系统? 从程序执行的角度,操作系统是其它所有用户程序运行的基础。,#include main() printf(“ Hello worldn”) ,用户告诉操作系统执行test程序 操作系统通过文件名找到该程序 检查其类型,检查程序首部,找出代码和数据存放的地址 文件系统找到第一个磁盘块 操作系统建立程序的执行环境 操作系统把程序从磁盘装入内存,并跳到程序开始处执行,该程序的执行过程简述如下:,操作系统检查字符串的位置是否正确 操作系统找到字符串被送往的设备 操作系统将字符串送往输出设备窗口系统确定这是一个合法的操作,然后将字符串转换成像素 窗口系统将像素写入存储映像区 视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕) 显示器发射电子束。你在屏幕上看到Hello world。,从中看到什么,2019/11/5,8,1.1 什么是操作系统? 从设计者的角度,操作系统的设计目标是什么? 尽可能地方便用户使用计算机 让各种软件资源和硬件资源高效而协调地运转起来。 计算机的硬件资源和软件资源各指什么? 假设在一台计算机上有三道程序同时运行,并试图在一台打印机上输出运算结果,必须考虑哪些问题 ? 从操作系统设计者的角度考虑,一个操作系统必须包含以下几部分 操作系统接口 CPU管理 内存管理 设备管理 文件管理,2019/11/5,9,1.1 什么是操作系统? 从所处位置,2019/11/5,10,1.1 什么是操作系统? 定义,操作系统是计算机系统中的一个系统软件,是一些程序模块的集合它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效、顺畅地运行。,2019/11/5,11,1.1 什么是操作系统? 功能,1提供用户接口 为方便用户使用计算机系统,操作系统提供两个级别的接口: (1)作业控制级接口(通常又称为命令接口):提供一组命令供用户直接或间接控制自己的作业 作业:用户上机所作的一系列顺序相关的工作。一道作业由若干顺序相关的作业步构成。例如,我们上机编程要经历如下步骤:,2019/11/5,12,1.1 什么是操作系统? 功能,(1)作业控制级接口 以上作业的工作流程要由用户按自己的需求进行控制,因此要提供给用户控制作业工作流程的手段,这是由操作系统提供的,称为作业级接口。作业级接口由一组用户可直接使用控制作业运行的命令和命令解释器构成。该接口又可进一步分为联机用户接口和脱机用户接口。 联机用户接口:由一组键盘字符命令(或鼠标命令)和命令解释器组成,使用户可以联机交互方式使用计算机。用户每次键入一个合法命令(解释器能执行的命令),启动一个作业步;一个作业步运行完毕后,再键入下一个命令名,启动下一个作业步。在一个作业步结束后,若发现错误,可以由用户修正错误,然后重新启动该作业步。用户可根据作业运行情况随时进行作业步的调整。,2019/11/5,13,1.1 什么是操作系统? 功能,(1)作业控制级接口 脱机用户接口:操作命令的形式为作业控制语言,用户以脱机批处理方式使用计算机。用户对作业流程的控制意图是利用作业控制语言书写成一份作业说明书来表达的。上机时,用户将作业控制说明书交给系统,系统逐条解释执行说明书中的命令。在这种方式下,用户一旦提交了作业,作业流程就由操作系统根据作业控制说明书自动控制,用户无法干预该作业的运行。因此,用户必须事先设计好作业流程,还要预测作业运行过程中可能出现的错误,并给出发生错误时的处理方法。,2019/11/5,14,1.1 什么是操作系统? 功能,1提供用户接口 (2)程序控制接口 操作系统提供的程序级接口由一组系统功能调用命令以及完成这些命令的程序模块组成。为方便用户编程,提高编程效率,规范编程,操作系统提供了完成某些通用功能的程序提供用户在开发应用程序时调用。不同的操作系统提供了不同的系统功能调用以及调用方式。如DOS的系统功能调用主要是进行硬件驱动,以软中断INT 21H的方式提供。,2019/11/5,15,1.1 什么是操作系统? 功能,(2)程序控制接口 Windows中的系统功能调用要比DOS丰富,且层次要高,不只局限于硬件驱动,以用户可在编程语言中使用的应用编程接口函数的方式提供,称为APIApplication Programming Interface 。使用Windows的API函数,可以提高编程效率,并规范Windows环境下的编程,如可开发具有统一风格的应用程序窗口界面,这会使得软件用户能很快熟悉该软件的窗口界面而不必重新学习。,2019/11/5,16,1.1 什么是操作系统? 功能,2管理计算机资源 (1)处理机管理处理机调度、进程控制、进程通信和同步 (2)存储器管理内存分配、地址转换、内存保护和扩充 (3)设备管理设备分配、缓冲管理、设备驱动 (4)文件管理目录管理、文件操作和存取权限控制,2019/11/5,17,1.1 什么是操作系统? 处理机管理的功能,处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处理机的分配和运行都是以进程为单位的,所以对处理机的管理可理解为对进程的管理。 进程控制包括进程的创建、进程的撤消、控制进程在不同的状态间转换。进程控制的实现是通过若干条操作系统提供的进程控制原语和系统功能调用来实现的。 对各个进程的运行进行协调有两种方式。 (1)进程互斥方式。 (2)进程同步方式。,2019/11/5,18,1.1 什么是操作系统? 存储机管理的功能,内存分配 主要任务是为每道程序分配内存空间,但要以存储器利用率最高、减少不可用的内存空间为准则,同时允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。 操作系统在实施内存分配时可以采用静态分配方式和动态分配方式。 内存保护 主要任务是确保每道用户程序在自己的内存空间中运行,互不干扰,也就是说绝不允许用户程序访问操作系统以及其他用户中的程序和数据。 地址映射 在多道程序设计环境下,地址空间中的逻辑地址和内存空间中的物理地址是不可能一致的,因此,存储器管理必须提供正确的地址映射功能。 内存扩充 由于物理内存的容量有限,有时难以满足用户的需要,存储器管理的任务之一就是在不增加物理内存的条件下,借助于虚拟内存技术从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多。,2019/11/5,19,1.1 什么是操作系统? 设备管理的功能,操作系统设备管理的主要任务是完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的利用率;方便用户使用I/O设备。设备管理应具有以下功能。 1. 缓冲管理 2. 设备分配 3. 设备处理 4. 共享设备的分配与虚拟设备的分配。,2019/11/5,20,1.1 什么是操作系统? 文件管理的功能,文件管理的主要任务是对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性。 文件系统应具有对文件存储空间的管理、目录管理、文件的读写管理、文件的共享与保护等功能。 1. 文件存储空间的管理 其主要任务是为每个文件分配必要的外存空间,并依据一定的格式建立文件各逻辑块与物理块之间的对应关系,即构建文件的物理结构,为用户顺序或随机存取文件做好准备,从而尽量提高外存的利用率,提高对文件的存取速度。,2019/11/5,21,1.1 什么是操作系统? 文件管理的功能,2、目录管理 目录管理的主要任务是为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现按名存取。另外,目录管理还应以链接方式实现文件的共享。 3. 文件的操作 文件的读写管理、文件的共享与保护等功能。 除了上述功能之外,操作系统还要具备中断处理、错误处理等功能。 操作系统的各功能之间并非是完全独立的,它们之间存在着相互依赖的关系。,2019/11/5,22,1.1 什么是操作系统? 特征,并发性 在多道程序环境下,并发性是指两个或多个事件在同一时间间隔内发生,即宏观上有多道程序同时执行,而微观上,在单处理机系统中每一个时刻仅能执行一道程序。 共享性 共享是指系统中的资源可供多个并发执行的进程使用。 虚拟性 指通过某种技术把一个物理实体变成若干个逻辑上的对应物。 异步性 也称不确定性,是指在多道程序环境下,允许多个进程并发执行,由于资源的限制,进程的执行不是“一气呵成”的,是“走走停停”的。,2019/11/5,23,1.1 什么是操作系统? 发展历程,单道批处理系统 多道批处理系统 分时系统 实时系统 网络操作系统 通用操作系统 分布式操作系统 嵌入式操作系统,2019/11/5,24,1.1 什么是操作系统? 发展历程,单道批处理系统,2019/11/5,25,1.1 什么是操作系统? 单道批处理系统,单道批处理系统的特征 (1)自动性。 (2)顺序性。 (3)单道性。 (4)存储器保护。 单道批处理系统的缺点: 一次仅能运行一个作业,这对于价格昂贵的计算机系统来说,只有一个部件工作,其余部件均处于闲置状态,资源利用率很低。,2019/11/5,26,1.1 什么是操作系统? 发展历程,t,k,多道批处理系统,2019/11/5,27,1.1 什么是操作系统? 多道批处理系统,在批处理系统中引入多道程序设计后,具有以下特征: (1)多道性。 (2)并行性。 (3)串行性。 (4)无序性。 (5)调度性。 (6)系统开销小。 多道批处理系统的缺点是:用户没有交互能力,用户一旦把作提交给系统后就失去了对自己作业的控制,系统将根据作业说明书来控制作业的执行,这对程序的修改和调试是非常不便的。作业的平均周转时间长,由于作业要排队,依次进行处理,因而周转时间较长。特别对于排在队尾作业其运行请求会被长期推迟响应。,2019/11/5,28,1.1 什么是操作系统? 发展历程,分时系统 分时操作系统是在批处理系统的基础上,采用分时技术提出的一种新型的操作系统。 分时系统把处理机的运行时间分成多个很短的时间片,按照时间片轮流把处理机分配给每一个联机用户。 配置了分时操作系统的计算机采用主从式多终端的计算机体系结构,一台主机连接着多个带有显示器、键盘及控制器的本地或远程终端,每个用户可以通过终端以交互方式向系统发出命令,共享系统资源,请求完成某项工作,系统则分析从终端设备发来的命令,完成用户提出的需求,之后,用户又根据系统提供的运行结果,向系统提出下一步请求,就这样重复上述交互会话过程,直到用户完成预计的全部工作为止。,2019/11/5,29,1.1 什么是操作系统? 发展历程,分时系统 其特征为: 1. 交互性 2. 及时性 3. 独占性 4. 同时性(多路性),2019/11/5,30,1.1 什么是操作系统? 发展历程,实时系统 对外来信息进行快速处理,在允许的时间范围之内做出响应。 实时系统按其使用方式不同可以分为两类:实时控制系统和实时信息处理系统。 实时控制系统指微型计算机在实时过程控制和提供环境监督中的应用。过程控制系统是从传感器获得输入的数字或模拟信息进行分析处理后,激发一个活动信号,从而改变可控过程,以达到控制的目的。,2019/11/5,31,1.1 什么是操作系统? 发展历程,实时系统 实时信息处理系统的主要特点是: 1. 实时响应 2. 整体性 3. 高可靠性和安全性,2019/11/5,32,1.1 什么是操作系统? 发展历程,网络操作系统 可以看作是在网络环境下工作的操作系统软件,可简单地定义为管理整个网络资源和方便网络用户的软件集合。网络操作系统是计算机网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。它在计算机操作系统下工作,使计算机操作系统增加了网络操作所需要的能力。 建立在服务器主机操作系统基础上,管理网络通信和资源共享,协调各主机上的任务运行,并向用户提供统一、有效的网络接口。,2019/11/5,33,1.1 什么是操作系统? 发展历程,网络操作系统 网络操作系统具有网络通信、资源管理、网络服务、网络管理和相互操作能力等功能。 网络操作系统运行在称为服务器的计算机上,并由联网的计算机用户(这类用户称为客户)共享,这就是网络操作系统的客户机/服务器(C/S)模式,该模式具有分布处理和集中控制的特征。 网络操作系统的另一种工作模式是具有分布处理特征的对等模式,其中各个客户机可以看作是访问其他站点(服务器)的客户,也可看作是向其他站点(客户)提供服务的服务器。即网络服务和控制功能分布于各个站点上,各个站点(客户)是对等关系。,2019/11/5,34,1.1 什么是操作系统? 发展历程,通用操作系统(Linux,Windows XP) 同时具有多道批处理、分时或实时处理功能,或者其中两种以上功能的系统 分布式操作系统 一方面强调分布式计算和处理,另一方面强调在物理上跨越不同计算机,逻辑上紧密耦合,构成统一完整的系统平台 嵌入式操作系统(智能家电) 随着计算机向微型化和专业化方向发展而出现,2019/11/5,35,1.1 什么是操作系统? 硬件角度下的操作系统发展轨迹,2019/11/5,36,1.1 什么是操作系统? 硬件角度下的操作系统发展分析,在硬件的性价比较低的时候,操作系统设计追求什么? 在硬件性价比越来越高后,操作系统的设计开始追求的目标是什么? 计算机开始普及后,操作系统的设计开始追求? 从第三代到第四代计算机,操作系统的发展逐渐摆脱追随硬件发展的状况 ,形成自己的理论体系 进入第四代系统后,分布式系统和多处理器系统虽然极大的扩充了操作系统理论,但系统结构并没有变化,只是各功能模块得以进一步完善。,2019/11/5,37,1.1 什么是操作系统? 软件角度下的操作系统发展轨迹,2019/11/5,38,1.1 什么是操作系统? 软件角度下的操作系统发展分析,程序设计理论约束着操作系统设计。操作系统的发展滞后于计算机语言的发展,从结构化设计到对象化设计,操作系统总是最后应用新编程理论的软件之一。 至今操作系统对于是否需要彻底对象化(即微内核化),还处于徘徊时期,仍在探索单内核与微内核的最佳结合方式。 人机交互技术主要是为用户考虑,这是对操作系统设计进行的变革。 以Linux为代表的开源软件的出现,打破了带有神秘色彩的传统的封闭式开发模式。,2019/11/5,39,1.1 什么是操作系统? 逻辑结构,操作系统的逻辑结构,2019/11/5,40,1.1 什么是操作系统? 体系结构,操作系统的体系结构 简单结构 单体内核结构 层次结构 全序结构 半序结构 微内核结构 外核结构,2019/11/5,41,1.1 什么是操作系统? 体系结构,简单结构,2019/11/5,42,1.1 什么是操作系统? 体系结构,简单结构 没有清晰的整体结构,系统各个部件混杂在一起,宏观结构模糊。 MS-DOS是一个很好的例子,其设计目标是在比较有限的硬件资源上运行比较有限的应用程序,模块之间的相对独立性几乎被忽略。 其他简单结构操作系统:PalmOS 5以前的PalmOS,很多小型嵌入式操作系统,2019/11/5,43,1.1 什么是操作系统? 体系结构,单体内核结构,API,2019/11/5,44,1.1 什么是操作系统? 体系结构,单体内核结构(模块结构) 通过一种系统调用的API机制对外层用户程序提供服务。 模块之间直接调用函数,除了函数调用的开销外,没有额外开销。 庞大的操作系统有数以千计的函数,复杂的调用关系势必导致操作系统维护的困难 将整个内核按照功能的不同,结构化为若干模块:文件管理模块、设备驱动模块、内存管理模块、CPU调度模块以及网络协议处理等模块。模块之间定义以函数调用形式提供的通信接口。 典型代表:Unix、Linux、Windows NT/XP,2019/11/5,45,1.1 什么是操作系统? 体系结构,层次结构,2019/11/5,46,1.1 什么是操作系统? 体系结构,层次结构 层次结构的操作系统中,系统由若干层构成,每层构建在其下一层之上。 每层的构造采用类似于抽象数据类型的设计方法,包含若干数据和操作。所有层内的数据以及部分层内的操作对其他层不可见。每层均公布一定的操作接口以供其他层调用,这些接口是外层访问该层唯一的途径。 层与层之间的调用关系严格遵守调用规则,每层只能访问其下层所提供的服务。,2019/11/5,47,1.1 什么是操作系统? 体系结构,全序结构,THE,2019/11/5,48,1.1 什么是操作系统? 体系结构,半序结构,SUE,2019/11/5,49,1.1 什么是操作系统? 体系结构,全序结构 理想的层次结构不仅是单向依赖的,而且每层之间也是相互独立的。这种结构称为全序的,THE系统就是一个全序层次结构操作系统。 但全序结构在实际实现时,特别是大型操作系统中,建立全序结构很困难,无法完全消除循环调用。 半序结构 半序结构在各层之间是单向依赖的,但在某些层内允许模块之间有循环关系。如:多伦多大学的SUE系统。,2019/11/5,50,1.1 什么是操作系统? 体系结构,微内核结构,2019/11/5,51,1.1 什么是操作系统? 体系结构,微内核结构 微内核结构又称为客户机/服务器模型。 操作系统整个核心负责处理客户机与服务器之间的通信。操作系统被分为多个部分,每个部分只处理系统的一个方面的工作,如文件服务、进程服务等,每部分都很小,易于管理。 每个服务器都以独立的用户态进程方式运行,不直接访问硬件。所以单个服务器出现故障不会引起其他部分崩溃或错误。 适合于分布式系统。 内核与各个服务器之间通过通信机制进行交互,这使得微内核结构的效率大大折扣。,2019/11/5,52,1.1 什么是操作系统? 体系结构,外核结构,2019/11/5,53,1.1 什么是操作系统? 体系结构,外核结构 外核结构是操作系统为了获得性能和灵活性的一个极端。 系统的内核只负责简单的申请、释放并复用硬件资源,将内存映射、I/O和复杂的线程包等在传统操作系统内核中提供的抽象都转移到用户空间运行。内核负责:跟踪资源的所有权,通过保护所有应用或绑定点来实现访问控制从而确保系统安全性,撤回对资源的访问。 用户程序通过调用库的形式实现对硬件资源的直接访问。 如MIT的Exo kernel。,2019/11/5,54,1.1 什么是操作系统? 体系结构,各体系结构特性比较,2019/11/5,55,第一章 操作系统概述,1.1 什么是操作系统? 1.2 什么是Linux操作系统? 定义、基础、现状 开发模式、特征 系统概貌、框架和组成 1.3 Linux内核,2019/11/5,56,1.2 什么是Linux操作系统? 定义,Linux系统有两种不同的含义。 从技术角度,Linux指的是由Linus Torvalds维护的开放源代码UNIX类操作系统的内核。 然而,目前大多数人用它来表示以Linux内核为基础的整个操作系统。从这种意义讲,Linux指的是开放源代码的,包含内核、系统工具、完整的开发环境和应用的UNIX类操作系统。 Linux现在是个人计算机和工作站上的类UNIX操作系统,可以免费使用,遵循GPL声明,可以自由修改和传播。Linux包含了人们希望操作系统拥有的所有功能特性,这些功能包括真正的多任务、虚拟内存、世界上最快的TCP/IP驱动程序、共享库和多用户支持。,2019/11/5,57,1.2 什么是Linux操作系统? 基础,Linux诞生和发展的五大重要支柱:,GNU/Linux,2019/11/5,58,1.2 什么是Linux操作系统? 基础,Linux的源头要追溯到最早的UNIX,是Unix的一种克隆系统。 Unix于1969年诞生于Bell实验室,是现代操作系统的代表。 经过多年发展,UNIX从实验室走出来并成为了操作系统的主流。直到今天,UNIX系统以其稳定、高效的性能在服务器高端市场中依然占有绝对优势。 Minix也是Unix的一种克隆系统,由荷兰教授Andrew开发完成。,2019/11/5,59,UNIX发展简图,2019/11/5,60,1.2 什么是Linux操作系统? 基础,Linux是由芬兰赫尔辛基大学计算机系大学生Linus Torvalds在自己的PC上,以MINIX为开发平台,为了自己的操作系统课程学习和后来上网使用而陆续编写的。 Linux诞生于1991年10月5日(第一次对外正式公布的时间)。 1993 年,Linus 的第一个“产品”版Linux 1.0问世的时候,是按完全自由发行版权进行发行的。 Linux与GPL的结合,使许多软件开发人员相信这是一个有前途的项目,开始参与内核的开发工作,并将GNU项目的C库、gcc、Emacs、bash等很快移植到Linux内核上来。 在2001年初Linux World大会前夕推出了Linux2.4内核 ,现在已推出了Linux2.6。,2019/11/5,61,1.2 什么是Linux操作系统? 基础,GNU(Gnu is Not Unix)是自由软件基金会(Free Software Foundation, FSF)的一个项目,目的是开发一个自由的Unix版本,HURD。 GNU 项目产品包括 emacs 编辑器、著名的 GNU C 和 Gcc编译器等,这些软件叫做GNU软件。 Richard Stallman在其他人的协作下创作了通用公共许可证(General Public License,GPL)。所有的GNU软件和派生工作均适用于GPL。GPL保证任何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布自由软件的源代码,并且规定在不增加附加费用的条件下得到源代码。 Linux只是自由软件家族中的一员,是其中最具影响的成员之一。,2019/11/5,62,1.2 什么是Linux操作系统? 基础,POSIX表示可移植操作系统接口(Portable Operating System Interface)标准由IEEE制定,由ISO接受为国际标准。 POSIX是Unix标准化过程的产物。POSIX 1003.1标准定义了一个最小的Unix操作系统接口,任何符合这一标准的操作系统都可能运行Unix程序。Linux设计遵循这一标准。 如果没有Internet网络,没有全世界无数计算机骇客的贡献,Linux最多只发展到0.13(0.95)版的水平。,2019/11/5,63,1.2 什么是Linux操作系统? 发展现状,当Linux走向成熟时,一些人开始建立软件包来简化新用户安装和使用Linux的方法。这些软件包称为Linux发布或Linux发行版本。 在早期众多的Linux发行版本中,最有影响的要数Slackware发布。Linux文档项目(LDP)是围绕Slackware发布写成的。 目前,RedHat发行版本的安装更容易,应用软件更多,已成为最流行的Linux发行版本,2000年秋天已经发行了7.0版本。 Linux发行版本有很多,国内自主建立的如BluePoint Linux、Red Flag Linux、 Xterm Linux以及美国的XLinux、TurboLinux等。 每种发行版本都有各自的优点和弱点,但它们都提供相对完整的应用软件及帮助文档,都使用相同的内核和开发工具,大家都使用同一个名称Linux系统。,2019/11/5,64,1.2 什么是Linux操作系统? 组成部分,Linux系统或发布版包括 符合 POSIX 标准的操作系统内核、 Shell 和外围工具。 C 语言编译器和其他开发工具及函数库 X Window 窗口系统 各种应用软件,包括字处理软件、图象处理软件等。,2019/11/5,65,1.2 什么是Linux操作系统? 组成部分,Linux内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。从用户那里接受命令并把命令送给内核去执行。 Linux Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。 Linux文件结构是文件存放在磁盘等存储设备上的组织方法。主要体现在对文件和目录的组织上。Linux目录采用多级树形结构。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。 标准的Linux系统都有一套叫做实用工具的程序,它们是专门的程序。 实用工具可分三类: 编辑器:用于编辑文件;过滤器:用于接收数据并过滤数据;交互程序:允许用户发送信息或接收来自其他用户的信息。,2019/11/5,66,1.2 什么是Linux操作系统? 开发模式,Linux是由世界各地的软件爱好者,以Internet为纽带,通过电子邮件等通信方式同时参与的软件开发项目。 Linux的开发模式(“巴扎”(Bazaar)模式)具有以下特点: 开放与协作;提供源代码,发挥集体智慧 经历各种测试与考验,稳定性好 开发人员凭兴趣开发,热情高,具有创造性,2019/11/5,67,1.2 什么是Linux操作系统? 特征,Linux不仅继承了Unix的基本特征,而且在许多方面超过了Unix。 基本特征: 真正的多用户、多任务操作系统 符合POSIX标准 提供具有内置安全措施的分层的文件系统 提供shell命令解释程序和编程语言 提供强大的管理功能 具有内核的编程接口,2019/11/5,68,1.2 什么是Linux操作系统? 特征,基本特征: 具有图形用户接口 具有大量实用程序和通信、联网工具 具有面向屏幕的编缉软件 独特之处 源代码几乎全部开放 可以运行在多种硬件平台上 可以运行多种应用软件 强大的网络功能 能充分发挥硬件的功能,2019/11/5,69,1.2 什么是Linux操作系统? 系统概貌,Linux内核在核心态下运行,内核程序包含/boot/vmlinux及/lib/modules/下的各种可加载模块。,命令解释器,数据库管理器,数据库应用,编辑器,Linux内核,硬件层,C库/数学库/图形库/窗口库等,系统调用库,X服务器,窗口 管理器,窗口 应用,系统概貌,2019/11/5,70,1.2 什么是Linux操作系统? 系统框架,Linux内核在整个系统中的位置,2019/11/5,71,1.2 什么是Linux操作系统? 系统组成,Linux系统包括三个部分: 用户进程:当一个用户应用程序运行在操作系统之上时,它成为系统中的一个进程。 系统调用接口:应用程序可以通过系统调用来调用系统内核中的特定过程,以实现特定的服务。系统调用是内核代码的一部分。 Linux内核:Linux的灵魂。负责管理磁盘上的文件、内存,启动并运行程序,从网络上接收和发送数据包等。,2019/11/5,72,第一章 操作系统概述,1.1 什么是操作系统? 1.2 什么是Linux操作系统? 1.3 Linux内核 内核概貌、作用、特征 抽象结构、具体结构、源代码结构 进程调度、内存管理、虚拟文件系统、进程间通信、网络接口的简介 版本、源代码工具 分析Linux内核的意义,2019/11/5,73,用户级程序,系统调用接口,虚拟文件 系统管理,内存 管理器,进程 管理器,抽象网络服务,(套接字),文件系统 驱动程序,TCP/IP协议 驱动程序,IDE硬盘 驱动程序,软盘,网卡 驱动程序,IDE硬盘,软盘,以太网卡,一般程序,内核,内核,硬件,内核概貌,2019/11/5,74,1.3 Linux内核 作用,从程序员的角度来讲,操作系统的内核提供了一个与计算机硬件等价的扩展或虚拟的平台,它抽象了许多硬件细节,程序可以以某种统一的方式处理数据,而程序员则可以避开许多硬件细节。 从普通用户把操作系统看成为一个资源管理者,在它的帮助下,用户可以以某种易于理解的方式组织自己的数据、完成自己的工作并和其他人共享资源。 Linux以统一的方式支持多任务,而这种方式对用户进程是透明的。,2019/11/5,75,1.3 Linux内核 特征,Linux内核的组织形式为整体式结构,也是开放式的结构。 Linux的进程调度方式简单而有效,对于用户进程,采用简单的动态优先级调度方式,对于内核中的例程,采用内核例程处理程序,保证内核例程的高效运行。 Linux支持内核线程(或称守护进程),内核线程是在后台运行而又无终端或登录shell和它结合在一起的进程。 Linux支持多种平台的虚拟内存管理,Linux的虚拟内存管理为不同的硬件平台提供统一的接口。,2019/11/5,76,1.3 Linux内核 特征,Linux内核另一独具特色的部分是虚拟文件系统,虚拟文件系统不仅为多种逻辑文件系统提供统一的接口,而且为各种硬件设备也提供了统一的接口。 Linux的模块机制使得内核保持独立而又利于扩充,模块机制可以使内核很容易地增加一个新的模块,而无需重新编译内核。 Linux增加系统调用以满足用户的特殊需求,Linux开放的源代码也允许用户设计自己的系统调用,然后加入内核。 网络部分面向对象的设计思想使得Linux内核支持多种协议、多种网卡驱动程序变得容易。,2019/11/5,77,1.3 Linux内核 抽象结构,Linux内核子系统及其之间的关系,2019/11/5,78,1.3 Linux内核 内核组成,Linux内核包括五个部分: 进程调度:控制进程对CPU的访问。Linux使用基于优先级和时间片的进程调度算法来选择新的进程。 内存管理:支持虚拟内存,操作系统只在内存中保存当前使用的程序,其余程序留在磁盘上,必要时,操作系统负责在磁盘和内存之间交换程序块。 虚拟文件系统:隐藏了各种不同硬件的具体细节,为所有设备提供统一的接口。支持多达数十种不同的文件系统。 网络:提供对各种网络标准协议的存取和各种网络硬件的支持。 进程间通信:支持进程间各种通信机制,包括共享内存、消息队列、管道等。,2019/11/5,79,1.3 Linux内核 内核组成,各部分之间的依赖关系: 进程调度与内存管理之间的关系:互相依赖。 进程间通信与内存管理之间的关系:进程间通信子系统要依赖于内存管理支持内存通信机制,这种机制允许两个子进程除了拥有自己的私有内存,还可以存取共同的区域。 虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统,也利用内存管理支持RAMDISK设备。 内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期地由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。,2019/11/5,80,1.3 Linux内核 具体结构,Linux内核子系统之间的依赖关系,2019/11/5,81,1.3 Linux内核 内核源代码结构,Linux内核源代码位于/usr/src/linux目录下,每一个目录或子目录可以看作一个模块,其目录之间的连线表示 “子目录或子模块” 的关系。,2019/11/5,82,1.3 Linux内核 进程调度,进程调度是Linux操作系统的心脏,具有以下功能: 运行进程建立自己的新拷贝 决定哪个进程将占用CPU,使得可运行进程之间进行有效地转移 接受中断并将它们发送到合适的内核子系统 发送信号给用户进程 管理定时器硬件 进程结束后,释放进程所占用的资源 支持动态装入模块,这些模块代表内核启动后所增加的内核功能,这种可装入的模块将由虚拟文件系统和网络接口使用。,2019/11/5,83,1.3 Linux内核 内存管理,内存管理提供以下功能: 扩大地址空间 进程保护 内存映射 公平的物理内存分配 共享虚拟内存 提供两级接口 用户进程使用的系统调用接口 其他内核子系统完成它们的任务所使用的内核接口,2019/11/5,84,1.3 Linux内核 虚拟文件系统,虚拟文件系统具有下列功能: 支持多种硬件设备 支持多种逻辑文件系统 支持可执行文件格式 统一性为各种文件系统和所有的设备提供统一的接口 高性能对文件进行高速存取 安全性不丢失数据或不破坏数据 文件保护限制用户对文件的存取权限,2019/11/5,85,1.3 Linux内核 进程间通信,Linux支持的IPC机制具有下列功能: 支持信号 支持等待队列 支持文件锁 支持管道和命名管道 支持System V IPC机制 支持信号量 支持消息队列 支持共享内存 支持Linux的套接口,

温馨提示

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

评论

0/150

提交评论