您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 作业吞吐量 >

一章节操作系统引论

发布时间:2019-07-29 20:34 来源:未知 编辑:admin

  第一章 操作系统引论 操作系统做什么? #include stdio.h int main(int argc, char *argv[]) { puts(hello world); return 0; } ? 用户告诉操作系统执行hello程序 ? 文件系统找到hello程序的第一个磁盘块 ? 操作系统为hello程序创建进程,填写进程控制 块pcb ? 设置cpu上下文环境,跳到程序开始处 ? 产生缺页中断,操作系统分配内存,调入页面 ? 执行系统调用,将字符串送给输出进程 ? 你在屏幕上看到hello world 为什么学习操作系统? ? 设计操作系统 或者 修改现有的系统 存在人们意识不到的大量“操作系统” 嵌入式系统(Embedded OS) ? 加深对使用的OS的理解,有利于深入编程 用户为了开发应用程序必须与操作系统打交道 ? 编程时借鉴操作系统的设计思想和算法 操作系统中所用的许多概念和技巧可以推广应 用到其他领域 OS在计算机系统中的地位 ? 计算机由硬件和软件两部分组成,操作系 统OS(Operating System)是配置在计算机 硬件上的第一层软件,是对硬件系统的第 一次扩充。它在计算机系统中占据了特殊 重要的地位,其它所有的软件如汇编程序, 数据库管理系统等系统软件等及大量的应 用软件,都将依赖于操作系统的支持。操 作系统已成为从大型机直至微机都必须配 置的软件。 Layers of Computer System 游戏,MIS 编译器、DBMS、 命令解释器 DOS、Windows Unix 计算机硬件 1.1 操作系统的目标、作用和模型 1.1.1 操作系统的目标 ? 目前存在着许多种类型的OS,不同类型的OS其目标各 有所侧重,在计算机硬件上的OS的目标有以下几点: ? 1、方便性 ? 以命令(或图形方式)方式代替手工方式(或程序方式) 操作机器 机器语言-高级语言 dOS-Windows ? 2、有效性 ? 使CPU几各I/O设备有效利用(充分忙碌) ? 3、可扩充性 ? 层次化,便于修改或增加功能 ? 4、开放性 ? 软件在各种硬件设备上的移植性和互操作性,要求OS具有 开放性 1.1.2 操作系统的作用 用户 应用程序 系统调用 命令 操作系统 计算机硬件 ? 一、OS作为用户与计算 机硬件系统之间的接口 ? 由图可以看出,用户可以 通过两种方式来使用计算 机: ? (1)命令方式(用户接口) 命令行、菜单式或GUI ? (2)系统调用方式 API,INT调用(编程接口) 1.1.2 操作系统的作用 ? 二、OS作为计算机系统资源的管理者: 硬件资源: CPU,内存,外部设备(I/O设备,外 存,时钟,网络接口等) 软件资源: 硬盘上的文件,信息 管理资源 ? 记录资源使用状况 如 哪些资源空闲,好坏与否,被谁使用,使用多 长时间等 ? 合理的分配资源 静态分配策略 (在程序运行前分配,但效率不高) 动态分配策略 (在程序运行过程中何时用资源,何时分配。其缺 点是会出现死锁) ? 具体完成分配 ? 回收资源 1.1.2 操作系统的作用 ? 三、OS用作扩充机器: ? 通常把覆盖了软件的机器称为扩充机器或虚 拟机。 ? 从操作系统内部结构来看:把操作系统分 成若干层。每一层完成其特定功能,从而构 成一个虚机器,并对上一层提供支持。通过 逐层功能扩充,最终完成整个操作系统虚机器。 而操作系统虚机器向用户提供各种功能,完成 用户请求 1.1.3 操作系统的层次模型: 用户接口 (命令接口、程序接口、图形用户接口) 对对象操纵和管理的软件集合 (处理机管理软件、存储器管理软件、设备管理软件、文件管理软件) 操作系统对象 (处理机、存储器、设备、文件) ? 1、OS的对象:(处理机、存储器、设备、文件和作业) ? 2、对对象操纵和管理的软件集合(处理机、存储器、设 备、文件) ? 3.用户接口(命令接口、程序接口、图形用户接口) 1.2 操作系统的发展过程 ? 50年代中期出现了第一个简单的批 处理操作系统;60年代中期出现了 多道批处理,分时系统。80年代后 出现微机OS和LAN OS。 1.2.1推动操作系统发展的主要动力 ? 1、不断提高计算机资源利用率的需要。 ? 2、方便用户。 ? 3、器件的不断更新换代。 ? 4、计算机体系结构的不断发展。 1.2.2无操作系统时的计算机系统 一、人工操作方式 ? 从第一代计算机诞生(1945年)到50年代中期 的计算机尚属第一代,还未出现OS。 ? (1)用户独占全机; ? (2)CPU等待人工操作。 ? 一次完成一个功能(计算,I/O,用户思考/反应) ? 程序通过卡片装入 ? 用户在控制台前调试程序 50年代早期出现了穿孔卡片 程序写在卡片上然后读入计算机 二、脱机输入输出方式(off--line I/O) ? 优点:(1)减少了CPU的空闲时间; ? (2)提高了I/O的速度。 ? 程序卡片被拿到机房后 能够很快将一作业从卡片读入磁盘 ? 任何时刻当一作业运行结束 操作系统就将一新作业从磁盘读出 装入空出的内存区运行 ? Spooling技术 (Simultaneous Peripheral Operation On Line) ? 该技术也用于输出 1.2.3 单道批处理系统(Simple Batch System)(50年代) ? 一、系统中配置监督程序(Monitor),把一批作业以 脱机输入方式输入到磁带上,在Monitor的控制下,使 作业能一个接一个地连续处理。 ? 二、特征:是OS的前身,并非现在所说的OS 卡片 卡 片 阅 读 机 IBM 1401 磁带机 早期批处理系统 IBM 7094 IBM 1401 输入磁带 输出磁带 1.2.4 多道批处理系统(60年代中期) ? 在IBM 7094机上,若当前作业因等待I/O而暂停, CPU只能踏步直至该I/O完成 对于CPU操作密集科学计算问题,浪费时间少 对于商业数据处理,I/O等待时间常占80%-90% ? 解决办法 将内存分几个部分,每部分放不同的作业 当一个作业等待I/O时,另一个作业可以使用CPU 在主存中同时驻留多个作业需要硬件进行保护 以避免信息被窃取或攻击 ? 一、处理过程: ? 在该系统中,用户所提交的作业都先存放在外 存上并排成一个队列,该队列被称为“后备队 列”;然后有作业调度程序按一定的算法从后 备队列中选择若干个作业调入内存,使它们共 享CPU和系统中的各种资源,以达到提高资源 利用率和系统吞吐量的目的。 ? 1) 提高CPU的利用率 ? 2) 可提高内存和I/O的利用率 ? 3) 增加系统吞吐量 ? 二、多道批处理系统的特征: ? (1)多道性; ? (2)无序性; ? (3)调度性 ? 作业调度(外存 内存) ? 进程调度(内存 分配处理机) 用户程序 监督程序 I/O中断请求 启动I/O I/O中断请求 I/O完成 启动I/O I/O完成 I/O 操作 结束中断 结束中断 t1 t2 t3 t4 (a) t5 t6 t7 t8 程序A 程序B 程序C 程序D 程序A I/O请求 程序A I/O完成 程序A A 再被调度 A 完成 程序B I/O请求 程序B 程序B I/O完成 C I/O请求 C I/O完成 C 再被调度 程序C 程序D I/O请求 程序D 调度程序 (b) (a)单道程序运行情况 (b)四道程序运行情况 例题:有两道程序A、B,按下图以多道程序方式运 行,要求在右图画出它们的运行轨迹,并计 算在60ms内,CPU的利用率,假设起始时首 先运行B,并允许忽略监督程序切换A、B的 时间。 运行15ms I/O 20ms A 运行10ms I/O 10ms B A B A I/O B I/O 10ms t 60ms 解: A B I/O I/O 10 20 25 30 35 40 45 50 60 t P C? P6 U ? ( 0 6 4? 3 0 5 )? 5 1% 0 ? 5 6 0 ? 1 0 0% 0 ? 8 0 .3 % 3 例 R. Turner 提出的例子更具说服力 为了说明多道程序的优点,不妨参考R Turner 提出的例子:某计算机系统,有256KB的 主存(不包含操作系统),一个磁盘,一个终端和一 台打印机。同时提交的三个作业分别命名为JOB1、 JOB2、JOB3。各作业运行时间分别为5min、 15min和10min。它们对资源的使用情况如下表所 示: 作业名 作业类型 所需主存/KB 所需磁盘 所需终端 所需打印机 运用时间/min 三个作业的执行要求 P7 Tab1-1 JOB1 CPU型 JOB2 I/O型 JOB3 I/O型 50 不用 100 不用 80 需要 不用 需要 不用 不用 不用 需要 5 15 10 假定JOB1主要使用CPU处理数据,JOB2主要 使用终端进行作业的输入,JOB3运行时主要使用 磁盘和打印机,后两作业都只需要较少的CPU时 间。对于简单批处理情况,这些作业将按顺序执 行。JOB1运行5min完成,JOB2在等待5min后,运 行15min完成,JOB3在等待20min后开始执行。三 个作业全部完成需要30min(这三个作业是一批)。 采用多道程序设计技术,可让这三个作业并 行运行。由于它们运行中几乎不同时使用同一资 源,所以三个作业可同时运行。JOB1在进行数据 处理的同时,JOB2在终端上进行作业输入,JOB3 在使用磁盘和打印机。因此,JOB1只需5min完成, JOB2需15min完成,JOB3需10min完成。这样三个 作业全部完成的时间只需15min,显然系统处理效 率明显提高。 多道程序与单道程序的平均资源利用率 P8 Tab1-2 单道 多道 (三道作业) CPU利用率 17%=5/(5+15+10) 33%=(5/15) 主存利用率 磁盘利用率 打印机利用率 全部作业完成时间/min 吞吐量/(作业 ·h–1) 平均周转时间/min 30%=(50+100+80)/256/3 33%=10/30 33%=10/30 30=5+15+10 6=3/(30/60) 18=(5+20+30)/3 90%=(50+100+80)/256 67%=10/15 67%=10/15 15 12=3/(15/60) 10=(5+15+10)/3 4.几个概念 吞吐量:单位时间(1小时)内系统所处理的作业 个数。 周转时间:从作业进入系统到作业完成退出系 统所用的时间。 平均周转时间:同时参与系统运行的几个作业 的周转时间的平均值。 ? 三、多道批处理系统的优缺点 ? (1)主要优点:资源利用率高,系统吞吐量大。 ? (2)缺点:平均周转时间长,无交互能力。 ? 四、多道批处理系统需要解决的问题 ? 1、处理机管理问题 ? 2、内存管理问题 ? 3、I/O设备管理问题 ? 4、文件管理问题 ? 5、作业管理问题 1.2.5 分时系统:(Time-Sharing System) 一、分时系统的产生 ? 分时系统使指在一台主机上连接了多个带有显示器和 键盘的终端,同时允许多个用户共享主机中的资源, 每个用户都可以通过自己的终端以交互方式使用计算 机。 ? 批处理系统从一作业提交到结果取回, 往往长达数小时 一个逗号的误用会导致编译失败,而可能浪费程序员 半天时间,用户需要: ? 人机交互 ? 共享主机 ? 便于用户上机 ? 问题的解决导致分时系统的出现 (CTSS,Compatible Time Sharing System) ? 二、分时系统实现中的关键问题 ? 及时接收 ? 及时处理 ? 三、分时系统的特征 ? (1)多路性 ? (2)独立性 ? (3)及时性 ? (4)交互性 “ 时间片轮转法 ” 怎样分享CPU? 一个时间t CPU PRG1 PRG2 … 未完 PRG1 PRG2 … t 1.2.6 实时系统 ? 一、实时系统的引入 ? 实时控制:当计算机应用于生产过程的控制形成以 计算机为中心的控制系统时,系统要求能实时采集 现场数据,并对所采集的数据进行及时处理,从而 自动地控制相应的执行机构,使某些参数(如湿度、 压力、液位)能按预定的规律变化,以保证产品的 质量和提高产量。火控、导弹 ? 实时信息处理:通常,我们把要求对信息进行实时 处理的系统称为实时信息处理系统。飞机订票、证 券交易 ? 二、实时系统的特征 ? 1、多路性 ? 2、独立性 ? 3、及时性 ? 4、交互性 ? 5、可靠性 ? 批处理系统、分时系统和实时系统时三种基本 的操作系统类型,而一个实际的操作系统,可 能兼有三者或其中两者的功能。 1.3 操作系统的特征和功能 1.3.1 操作系统的特征 ? 四个基本特征:并发、共享、虚拟、异 步 ? 一、并发: ? 在计算机系统中同时存在多个程序 ? 宏观上:这些程序是同时在执行的 ? 微观上:任何时刻只有一个程序在执行 即 微观上这些程序在CPU上轮流执行 ? 并行:(与并发相似,但多指硬件支持) ? 进程:计算机可以独立进行的程序的一次运 行 ? 二、共享 ? 操作系统与多个用户的程序共同使用计算机 系统中的资源(共享有限的系统资源) ? 操作系统要对系统资源进行合理分配和使用 资源在一个时间段内交替被多个进程所用 ?互斥共享(如音频设备) ?同时访问(如可重入代码,磁盘文件) ?资源分配难以达到最优化 ? 三、虚拟 ? 一个物理实体映射为若干个对应的逻辑实体 ? 分时或分空间。虚拟是操作系统管理系统资 源的重要手段,可提高资源利用率 ? CPU--每个用户(进程)的虚处理机 ? 存储器--每个进程都占有的地址空间(指令+数据+ 堆栈) ? 显示设备--多窗口或虚拟终端 ? 四、异步性 ? 操作系统必须随时对以不可预测的次序发生 的事件进行响应 ? 进程的运行速度不可预知:分时系统中,多个 进程并发执行,“走走停停”,无法预知每个进 程的运行推进快慢 ? 难以重现系统在某个时刻的状态(包括重现运 行中的错误) 1.4操作系统的功能 ? 在多道程序环境下,系统通常无法同时 满足所有作业的资源要求,为使多道程 序能有条不紊地运行,操作系统应具有 这样的功能: ? 处理机管理 ? 存储器管理 ? 设备管理 ? 文件管理 ? 方便的用户接口 1.4.1处理机管理 ? 主要任务:是对处理机进行分配,并对其运行进行有 效控制和管理。在多道程序环境下,处理机的分配和 运行都是以进程为基本单位。 ? 进程控制:多道程序环境下,要使作业运行,必须先 为它创建一个或几个进程,并给它分配必要的资源。 进程结束的时候要立即撤消这个进程,以便收回该进 程所占用的各类资源,进程控制的主要任务就是 为作业创建进程,撤销已结束的进程以及控制 进程在运行中的状态转换 ? 进程同步。进程是以异步方式进行的,运行的速度不 定。进程同步的主要任务是对诸进程的运行进行协调。 ? 进程互斥方式 ? 进程同步方式 ? 进程通信:多道程序环境下,可由系统为应用程序建 立多个进程。这些进程相互合作共同完成同一任务, 在这些相互合作的进程之间需要交换信息。例如:三 个相互合作的进程:输入进程、计算进程、打印进程。 ? 调度:从进程的就绪队列中,按照一定的算法选出一 进程,把处理机分配给它。 1.4.2存储器管理功能 ?存储器管理的主要任务,是为多道程序的运行提供良好的 环境,方便用户使用存储器,提高存储器的利用率,以便能 从逻辑上来扩充内存。 ?内存分配:(1)静态分配;(2)动态分配。 ?为了实现内存分配,在内存分配的机制中应具有 一下结构和功能: ?内存分配数据结构。该结构用于记录内存空间的使用情 况,作为内存分配的依据。 ?内存分配功能。 ?内存回收功能。 ? 内存保护:确保每道用户程序都在自己的内存空间中 运行,互不干扰。(设置两个界限寄存器。存放正在 之行程序的上界和下界。) ? 地址映射:在多道环境下,地址空间中的逻辑地址和 内存空间中的物理地址是不可能一致的。地址映射实 现它们之间的转换。 ? 内存扩充:借助于虚拟存储技术,从逻辑上去扩充内 存容量。若内存中已没有足够的空间来装入调入程序 的时候,系统能将内存中的一部分暂时不用的程序和 数据调道磁盘上,腾出更多的内存空间。 1.4.3设备管理功能 ? 主要任务:完成用户提出的I/O请求,为用户分配I/O 设备,提高CPU和I/O设备的利用率。 ? 缓冲管理:管理好各类型的缓冲区,以缓和CPU和I/O 设备速度不匹配的矛盾 ? 设备分配:根据用户的I/O请求,为之分配其所需的设 备。 ? 设备处理:基本任务是实现CPU和设备之间的通信。 ? 虚拟设备:把每次只允许一个进程使用的物理设备变 换为多个对应的逻辑设备,提高了设备的利用率,使 每个用户感觉自己在独占该设备。 1.4.4文件管理功能 ? 主要任务:是对用户文件和系统文件进行管理,方便用户的使用。 ? 文件存储空间的管理:为每个文件分配必要的外存空间,提高外存的 利用率。(一般以盘块为基本分配单位,通常512字节~4K字节) ? 目录管理:系统为每个文件建立一个目录项,目录项包含文件名、文 件属性、文件在磁盘上的物理位置。用户只需要提供文件名,对文件 进行存取。 ? 文件的读、写管理:进行读写文件时,系统根据用户给出的文件名去 减缩文件目录,从中获得文件在外存中的位置,然后利用文件读写指 针,对文件进行读写,一旦读写完成便修改读写指针,为下一次读写 做准备。 ? 文件的存取控制: ? 防止未经核准的用户存取文件 ? 防止冒名顶替存取文件 ? 防止以不正确的方式使用文件 1.4.5用户接口 ? 命令接口 ? 联机命令接口:是为联机用户提供的,由一组键盘命令和命 令解释程序组成。 ? 脱机命令接口:为批处理作业的用户提供的,由一组作业控 制语言JCL(job control language)组成。 ? 程序接口 是为用户程序在运行过程中访问系统资源而设定的,也是用户 取得操作系统服务的唯一途径,由一组系统调用组成。 ? 图形接口 ? 采用了图形化的操作界面,用图标将系统的各项功能,文件 直观逼真的表示出来,通过鼠标、菜单和对话框图来完成相 应的操作 1.5操作系统的结构设计 ? OS作为大型系统软件的四次变革 ? 第一代 无结构 ? 第二代 模块化 ? 第三代 层次式 ? 第四代 微内核 ? 现代OS采用软件工程学方法 1.5.1软件工程的基本概念 ? 软件 指令和程序的集合,能够正确处理数据 结构;规范的软件包括描述程序功能和如何操 作使用的文档 ? 软件的特点 ? 软件是人的思想产物,要在硬件上加以实现 ? 软件产品不允许有误差,高的质量保证体系 ? 软件的维护比硬件要复杂的多 ? 软件工程的含义 ? 采用系统的、规范的、和可定量的方法,来开发、 运行 、和维护软件(工程化) 1.5.2传统的操作系统结构 第一代到第三代OS结构 ? 1、无结构操作系统 ? 设计者注意力集中在功能实现和获得高 效率,众多的过程的集合,过程允许相 互调用,系统内部不存在任何结构 ? 允许goto语句、结构杂乱、调试和维护 困难 ? 2.模块化OS结构 ? 模块化程序设计技术,按功能划分模块,规定模块 之间的接口用来进行模块间交互。模块可以细分。 ? 优点 ? 提高了OS设计的正确性、可理解性和可维护性(尽可能高 内聚、低耦合) ? 增强了OS的可适应性 ? 加速了OS的开发过程 ? 缺点 ? 设计OS时对模块的划分和接口的规定不精确或有错误,难 以保证模块的正确 ? 从功能观点划分模块,无法对共享和独占资源加以区别; 由于管理的差异,会使模块间存在着复杂的依赖 ? 3、分层式OS结构 ? 1)有序分层的基本概念 ? 每一层仅使用其底层所提供的功能和服务,这样可使系统 的调试和验证变得容易。软件层次为A1,A2…An,若Ai出现 错误,该错误只会出现在Ai ? 2)层次的设置 ? 程序嵌套 ? 运行频率 ? 公用模块 ? 用户接口 1.5.3微内核OS结构 ? MicroKernel,20世纪90年代 ? 支持多处理机,适合分布式系统环境 ? Windows NT ? 以微内核为核心,以客户/服务器为基础, 并且采用面向对象的程序设计方法的特 征 ? 1.客户/服务器模式(client-server model) ? 基本概念: OS分为两部分,一部分用于 提供服务的一组服务器,另一部分是内 核,用来处理客户和服务器之间的通信。 客户 客户 进程 终端 文件 存储器 进程 进程 服务器 服务器 … 服务器 服务器 核心 ? 客户/服务器模式的优点 ? (1)提高了系统的灵活性和可扩充性 ? 功能由服务器实现,安装、更新、增加 ? (2)提高了OS的可靠性 ? 服务器运行在用户态,不直接使用硬件 ? (3)可用于分布式系统 ? 无论服务器在哪,对客户机都相同 ? 2.面向对象的程序设计技术(OOP) ? 1)基本概念:对象,是现实世界中具有相同 属性、服从相同规则的一系列事务的抽象, 其中的具体事物称为对象的实例。利用被封 装的数据结构和一组对它进行操作的过程, 来表示系统中某个对象。 数据结构 过程1 过程2 过程3 ? 面向对象技术的优点 ? 可修改性和可扩充性 ? 继承性 ? 正确性和可靠性 ? 3.微内核技术 ? 1)引入 ? 大规模集成电路的使用,使OS需求增加,规模 膨胀。为了减少OS复杂性,增强OS可扩展性和 可维护性产生了微内核技术 ? 微内核是实现现代OS核心功能的小型内核。开 机常驻内存,不是完整的OS,而是提供构建通 用OS的重要基础。 ? 通常采用客户/服务器结构,OS大部分功能由若 干服务器提供 ? 3.微内核技术 ? 2)微内核基本功能 ? 进程管理 ? 存储器管理 ? 进程通信管理 ? I/O设备管理

http://ampguimods.com/zuoyetuntuliang/254.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有