int main(int argc, char *argv[]) { puts("hello world"); return 0; }"> int main(int argc, char *argv[]) { puts("hello world"); return 0; }">

Presentation is loading. Please wait.

Presentation is loading. Please wait.

第一章 操作系统引论.

Similar presentations


Presentation on theme: "第一章 操作系统引论."— Presentation transcript:

1 第一章 操作系统引论

2 操作系统做什么? int main(int argc, char *argv[]) { puts("hello world");
#include <stdio.h> int main(int argc, char *argv[]) { puts("hello world"); return 0; }

3 用户告诉操作系统执行hello程序 文件系统找到hello程序的第一个磁盘块 操作系统为hello程序创建进程,填写进程控制块pcb 设置cpu上下文环境,跳到程序开始处 产生缺页中断,操作系统分配内存,调入页面 执行系统调用,将字符串送给输出进程 你在屏幕上看到hello world

4 为什么学习操作系统? 设计操作系统 或者 修改现有的系统 存在人们意识不到的大量“操作系统” 嵌入式系统(Embedded OS)
设计操作系统 或者 修改现有的系统 存在人们意识不到的大量“操作系统” 嵌入式系统(Embedded OS) 加深对使用的OS的理解,有利于深入编程 用户为了开发应用程序必须与操作系统打交道 编程时借鉴操作系统的设计思想和算法 操作系统中所用的许多概念和技巧可以推广应 用到其他领域

5 OS在计算机系统中的地位 计算机由硬件和软件两部分组成,操作系统OS(Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的第一次扩充。它在计算机系统中占据了特殊重要的地位,其它所有的软件如汇编程序,数据库管理系统等系统软件等及大量的应用软件,都将依赖于操作系统的支持。操作系统已成为从大型机直至微机都必须配置的软件。

6 Layers of Computer System
游戏,MIS 编译器、DBMS、 命令解释器 DOS、Windows Unix 计算机硬件

7 1.1 操作系统的目标、作用和模型 1.1.1 操作系统的目标
1.1 操作系统的目标、作用和模型 操作系统的目标 目前存在着许多种类型的OS,不同类型的OS其目标各有所侧重,在计算机硬件上的OS的目标有以下几点: 1、方便性 以命令(或图形方式)方式代替手工方式(或程序方式)操作机器 机器语言->高级语言 dOS->Windows 2、有效性 使CPU几各I/O设备有效利用(充分忙碌) 3、可扩充性 层次化,便于修改或增加功能 4、开放性 软件在各种硬件设备上的移植性和互操作性,要求OS具有开放性

8 1.1.2 操作系统的作用 一、OS作为用户与计算机硬件系统之间的接口 操作系统 由图可以看出,用户可以通过两种方式来使用计算机: 用户
操作系统的作用 一、OS作为用户与计算机硬件系统之间的接口 由图可以看出,用户可以通过两种方式来使用计算机: (1)命令方式(用户接口)命令行、菜单式或GUI (2)系统调用方式API,INT调用(编程接口) 计算机硬件 系统调用 命令 操作系统 应用程序 用户

9 1.1.2 操作系统的作用 二、OS作为计算机系统资源的管理者: 硬件资源: CPU,内存,外部设备(I/O设备,外存,时钟,网络接口等)
操作系统的作用 二、OS作为计算机系统资源的管理者: 硬件资源: CPU,内存,外部设备(I/O设备,外存,时钟,网络接口等) 软件资源: 硬盘上的文件,信息

10 管理资源 记录资源使用状况 如 哪些资源空闲,好坏与否,被谁使用,使用多长时间等 合理的分配资源 具体完成分配 回收资源 静态分配策略
(在程序运行前分配,但效率不高) 动态分配策略 (在程序运行过程中何时用资源,何时分配。其缺点是会出现死锁) 具体完成分配 回收资源

11

12 1.1.2 操作系统的作用 三、OS用作扩充机器: 通常把覆盖了软件的机器称为扩充机器或虚拟机。
操作系统的作用 三、OS用作扩充机器: 通常把覆盖了软件的机器称为扩充机器或虚拟机。 从操作系统内部结构来看:把操作系统分成若干层。每一层完成其特定功能,从而构成一个虚机器,并对上一层提供支持。通过逐层功能扩充,最终完成整个操作系统虚机器。而操作系统虚机器向用户提供各种功能,完成用户请求

13 (处理机管理软件、存储器管理软件、设备管理软件、文件管理软件)
操作系统的层次模型: 用户接口 (命令接口、程序接口、图形用户接口) 对对象操纵和管理的软件集合 (处理机管理软件、存储器管理软件、设备管理软件、文件管理软件) 操作系统对象 (处理机、存储器、设备、文件) 1、OS的对象:(处理机、存储器、设备、文件和作业) 2、对对象操纵和管理的软件集合(处理机、存储器、设备、文件) 3.用户接口(命令接口、程序接口、图形用户接口)

14 50年代中期出现了第一个简单的批处理操作系统;60年代中期出现了多道批处理,分时系统。80年代后出现微机OS和LAN OS。
1.2 操作系统的发展过程 50年代中期出现了第一个简单的批处理操作系统;60年代中期出现了多道批处理,分时系统。80年代后出现微机OS和LAN OS。

15 1.2.1推动操作系统发展的主要动力 1、不断提高计算机资源利用率的需要。 2、方便用户。 3、器件的不断更新换代。
4、计算机体系结构的不断发展。

16 1.2.2无操作系统时的计算机系统 一、人工操作方式
从第一代计算机诞生(1945年)到50年代中期的计算机尚属第一代,还未出现OS。 (1)用户独占全机; (2)CPU等待人工操作。 一次完成一个功能(计算,I/O,用户思考/反应) 程序通过卡片装入 用户在控制台前调试程序

17 50年代早期出现了穿孔卡片 程序写在卡片上然后读入计算机

18 二、脱机输入输出方式(off--line I/O)
优点:(1)减少了CPU的空闲时间; (2)提高了I/O的速度。 程序卡片被拿到机房后 能够很快将一作业从卡片读入磁盘 任何时刻当一作业运行结束 操作系统就将一新作业从磁盘读出 装入空出的内存区运行 Spooling技术 (Simultaneous Peripheral Operation On Line) 该技术也用于输出

19 1.2.3 单道批处理系统(Simple Batch System)(50年代)
一、系统中配置监督程序(Monitor),把一批作业以脱机输入方式输入到磁带上,在Monitor的控制下,使作业能一个接一个地连续处理。 二、特征:是OS的前身,并非现在所说的OS

20 早期批处理系统 磁带机 卡片 卡片阅读机 IBM1401 IBM7094 IBM1401 输入磁带 输出磁带

21 1.2.4 多道批处理系统(60年代中期) 在IBM 7094机上,若当前作业因等待I/O而暂停, CPU只能踏步直至该I/O完成
多道批处理系统(60年代中期) 在IBM 7094机上,若当前作业因等待I/O而暂停, CPU只能踏步直至该I/O完成 对于CPU操作密集科学计算问题,浪费时间少 对于商业数据处理,I/O等待时间常占80%-90% 解决办法 将内存分几个部分,每部分放不同的作业 当一个作业等待I/O时,另一个作业可以使用CPU 在主存中同时驻留多个作业需要硬件进行保护 以避免信息被窃取或攻击

22 一、处理过程: 在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,该队列被称为“后备队列”;然后有作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源,以达到提高资源利用率和系统吞吐量的目的。 1) 提高CPU的利用率 2) 可提高内存和I/O的利用率 3) 增加系统吞吐量

23 二、多道批处理系统的特征: (1)多道性; (2)无序性; (3)调度性 作业调度(外存 内存) 进程调度(内存 分配处理机)

24 (a)单道程序运行情况 (b)四道程序运行情况 (a)
t1 t2 t5 t6 t7 t8 t3 t4 用户程序 I/O中断请求 启动I/O I/O完成 结束中断 监督程序 I/O 操作 调度程序 程序D 程序C 程序B 程序A 程序A I/O请求 程序B I/O请求 C I/O请求 程序D I/O请求 C I/O完成 C 再被调度 程序A I/O完成 A 再被调度 A 完成 程序B I/O完成 (a)单道程序运行情况 (b)四道程序运行情况 (a) (b)

25 例题:有两道程序A、B,按下图以多道程序方式运行,要求在右图画出它们的运行轨迹,并计算在60ms内,CPU的利用率,假设起始时首先运行B,并允许忽略监督程序切换A、B的时间。

26 运行15ms I/O 20ms 运行10ms I/O 10ms B A I/O 10ms 60ms t

27 解: A B I/O I/O t 10 20 25 30 35 40 45 50 60

28 例 R. Turner 提出的例子更具说服力 为了说明多道程序的优点,不妨参考R Turner 提出的例子:某计算机系统,有256KB的主存(不包含操作系统),一个磁盘,一个终端和一台打印机。同时提交的三个作业分别命名为JOB1、JOB2、JOB3。各作业运行时间分别为5min、15min和10min。它们对资源的使用情况如下表所示:

29 三个作业的执行要求 P7 Tab1-1 作业名 JOB1 JOB2 JOB3 作业类型 CPU型 I/O型 I/O型 所需主存/KB 50
100 80 所需磁盘 不用 不用 需要 所需终端 不用 需要 不用 所需打印机 不用 不用 需要 运用时间/min 5 15 10

30 假定JOB1主要使用CPU处理数据,JOB2主要使用终端进行作业的输入,JOB3运行时主要使用磁盘和打印机,后两作业都只需要较少的CPU时间。对于简单批处理情况,这些作业将按顺序执行。JOB1运行5min完成,JOB2在等待5min后,运行15min完成,JOB3在等待20min后开始执行。三个作业全部完成需要30min(这三个作业是一批)。

31 采用多道程序设计技术,可让这三个作业并行运行。由于它们运行中几乎不同时使用同一资源,所以三个作业可同时运行。JOB1在进行数据处理的同时,JOB2在终端上进行作业输入,JOB3在使用磁盘和打印机。因此,JOB1只需5min完成,JOB2需15min完成,JOB3需10min完成。这样三个作业全部完成的时间只需15min,显然系统处理效率明显提高。

32 多道程序与单道程序的平均资源利用率 P8 Tab1-2
单 道 多道 (三道作业) CPU利用率 17%=5/( ) 33%=(5/15) 主存利用率 30%=( )/256/3 90%=( )/256 磁盘利用率 33%=10/30 67%=10/15 打印机利用率 33%=10/30 67%=10/15 全部作业完成时间/min 30= 15 吞吐量/(作业 ·h–1) 6=3/(30/60) 12=3/(15/60) 平均周转时间/min 18=( )/3 10=( )/3

33 4.几个概念 吞吐量:单位时间(1小时)内系统所处理的作业个数。 周转时间:从作业进入系统到作业完成退出系统所用的时间。
平均周转时间:同时参与系统运行的几个作业的周转时间的平均值。

34

35 三、多道批处理系统的优缺点 四、多道批处理系统需要解决的问题 (1)主要优点:资源利用率高,系统吞吐量大。
(2)缺点:平均周转时间长,无交互能力。 四、多道批处理系统需要解决的问题 1、处理机管理问题 2、内存管理问题 3、I/O设备管理问题 4、文件管理问题 5、作业管理问题

36 1.2.5 分时系统:(Time-Sharing System) 一、分时系统的产生
分时系统使指在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,每个用户都可以通过自己的终端以交互方式使用计算机。 批处理系统从一作业提交到结果取回, 往往长达数小 时一个逗号的误用会导致编译失败,而可能浪费程序 员半天时间,用户需要: 人机交互 共享主机 便于用户上机 问题的解决导致分时系统的出现 (CTSS,Compatible Time Sharing System)

37 二、分时系统实现中的关键问题 及时接收 及时处理 三、分时系统的特征 (1)多路性 (2)独立性 (3)及时性 (4)交互性

38 “ 时间片轮转法 ” 怎样分享CPU? 一个时间t CPU t PRG1 PRG2 PRG1 PRG2 未完

39 实时系统 一、实时系统的引入 实时控制:当计算机应用于生产过程的控制形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,从而自动地控制相应的执行机构,使某些参数(如湿度、压力、液位)能按预定的规律变化,以保证产品的质量和提高产量。火控、导弹 实时信息处理:通常,我们把要求对信息进行实时处理的系统称为实时信息处理系统。飞机订票、证券交易

40 批处理系统、分时系统和实时系统时三种基本的操作系统类型,而一个实际的操作系统,可能兼有三者或其中两者的功能。
二、实时系统的特征 1、多路性 2、独立性 3、及时性 4、交互性 5、可靠性 批处理系统、分时系统和实时系统时三种基本的操作系统类型,而一个实际的操作系统,可能兼有三者或其中两者的功能。

41 1.3 操作系统的特征和功能 1.3.1 操作系统的特征 四个基本特征:并发、共享、虚拟、异步 一、并发:
1.3 操作系统的特征和功能 操作系统的特征 四个基本特征:并发、共享、虚拟、异步 一、并发: 在计算机系统中同时存在多个程序 宏观上:这些程序是同时在执行的 微观上:任何时刻只有一个程序在执行 即微观上这些程序在CPU上轮流执行 并行:(与并发相似,但多指硬件支持) 进程:计算机可以独立进行的程序的一次运行

42 二、共享 操作系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源)
操作系统要对系统资源进行合理分配和使用 资源在一个时间段内交替被多个进程所用 互斥共享(如音频设备) 同时访问(如可重入代码,磁盘文件) 资源分配难以达到最优化

43 三、虚拟 一个物理实体映射为若干个对应的逻辑实体 分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率
CPU--每个用户(进程)的"虚处理机" 存储器--每个进程都占有的地址空间(指令+数据+堆栈) 显示设备--多窗口或虚拟终端

44 四、异步性 操作系统必须随时对以不可预测的次序发生的事件进行响应
进程的运行速度不可预知:分时系统中,多个进程并发执行,“走走停停”,无法预知每个进程的运行推进快慢 难以重现系统在某个时刻的状态(包括重现运行中的错误)

45 1.4操作系统的功能 在多道程序环境下,系统通常无法同时满足所有作业的资源要求,为使多道程序能有条不紊地运行,操作系统应具有这样的功能:
处理机管理 存储器管理 设备管理 文件管理 方便的用户接口

46 1.4.1处理机管理 主要任务:是对处理机进行分配,并对其运行进行有效控制和管理。在多道程序环境下,处理机的分配和运行都是以进程为基本单位。 进程控制:多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并给它分配必要的资源。进程结束的时候要立即撤消这个进程,以便收回该进程所占用的各类资源,进程控制的主要任务就是为作业创建进程,撤销已结束的进程以及控制进程在运行中的状态转换

47 进程同步。进程是以异步方式进行的,运行的速度不定。进程同步的主要任务是对诸进程的运行进行协调。
进程互斥方式 进程同步方式 进程通信:多道程序环境下,可由系统为应用程序建立多个进程。这些进程相互合作共同完成同一任务,在这些相互合作的进程之间需要交换信息。例如:三个相互合作的进程:输入进程、计算进程、打印进程。 调度:从进程的就绪队列中,按照一定的算法选出一进程,把处理机分配给它。

48 1.4.2存储器管理功能 为了实现内存分配,在内存分配的机制中应具有一下结构和功能:
存储器管理的主要任务,是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以便能从逻辑上来扩充内存。 内存分配:(1)静态分配;(2)动态分配。 为了实现内存分配,在内存分配的机制中应具有一下结构和功能: 内存分配数据结构。该结构用于记录内存空间的使用情况,作为内存分配的依据。 内存分配功能。 内存回收功能。

49 内存保护:确保每道用户程序都在自己的内存空间中运行,互不干扰。(设置两个界限寄存器。存放正在之行程序的上界和下界。)
地址映射:在多道环境下,地址空间中的逻辑地址和内存空间中的物理地址是不可能一致的。地址映射实现它们之间的转换。 内存扩充:借助于虚拟存储技术,从逻辑上去扩充内存容量。若内存中已没有足够的空间来装入调入程序的时候,系统能将内存中的一部分暂时不用的程序和数据调道磁盘上,腾出更多的内存空间。

50

51 1.4.3设备管理功能 主要任务:完成用户提出的I/O请求,为用户分配I/O设备,提高CPU和I/O设备的利用率。
虚拟设备:把每次只允许一个进程使用的物理设备变换为多个对应的逻辑设备,提高了设备的利用率,使每个用户感觉自己在独占该设备。

52 1.4.4文件管理功能 主要任务:是对用户文件和系统文件进行管理,方便用户的使用。
文件存储空间的管理:为每个文件分配必要的外存空间,提高外存的利用率。(一般以盘块为基本分配单位,通常512字节~4K字节) 目录管理:系统为每个文件建立一个目录项,目录项包含文件名、文件属性、文件在磁盘上的物理位置。用户只需要提供文件名,对文件进行存取。 文件的读、写管理:进行读写文件时,系统根据用户给出的文件名去减缩文件目录,从中获得文件在外存中的位置,然后利用文件读写指针,对文件进行读写,一旦读写完成便修改读写指针,为下一次读写做准备。 文件的存取控制: 防止未经核准的用户存取文件 防止冒名顶替存取文件 防止以不正确的方式使用文件

53 1.4.5用户接口 命令接口 联机命令接口:是为联机用户提供的,由一组键盘命令和命令解释程序组成。 脱机命令接口:为批处理作业的用户提供的,由一组作业控制语言JCL(job control language)组成。 程序接口 是为用户程序在运行过程中访问系统资源而设定的,也是用户取得操作系统服务的唯一途径,由一组系统调用组成。 图形接口 采用了图形化的操作界面,用图标将系统的各项功能,文件直观逼真的表示出来,通过鼠标、菜单和对话框图来完成相应的操作

54 1.5操作系统的结构设计 OS作为大型系统软件的四次变革 现代OS采用软件工程学方法 第一代 无结构 第二代 模块化 第三代 层次式
第四代 微内核 现代OS采用软件工程学方法

55 1.5.1软件工程的基本概念 软件 指令和程序的集合,能够正确处理数据结构;规范的软件包括描述程序功能和如何操作使用的文档 软件的特点
软件 指令和程序的集合,能够正确处理数据结构;规范的软件包括描述程序功能和如何操作使用的文档 软件的特点 软件是人的思想产物,要在硬件上加以实现 软件产品不允许有误差,高的质量保证体系 软件的维护比硬件要复杂的多 软件工程的含义 采用系统的、规范的、和可定量的方法,来开发、运行 、和维护软件(工程化)

56 1.5.2传统的操作系统结构 第一代到第三代OS结构
1、无结构操作系统 设计者注意力集中在功能实现和获得高效率,众多的过程的集合,过程允许相互调用,系统内部不存在任何结构 允许goto语句、结构杂乱、调试和维护困难

57 2.模块化OS结构 模块化程序设计技术,按功能划分模块,规定模块之间的接口用来进行模块间交互。模块可以细分。 优点 缺点
从功能观点划分模块,无法对共享和独占资源加以区别;由于管理的差异,会使模块间存在着复杂的依赖

58 3、分层式OS结构 1)有序分层的基本概念 2)层次的设置
每一层仅使用其底层所提供的功能和服务,这样可使系统的调试和验证变得容易。软件层次为A1,A2…An,若Ai出现错误,该错误只会出现在Ai 2)层次的设置 程序嵌套 运行频率 公用模块 用户接口

59 1.5.3微内核OS结构 MicroKernel,20世纪90年代 支持多处理机,适合分布式系统环境 Windows NT
以微内核为核心,以客户/服务器为基础,并且采用面向对象的程序设计方法的特征

60 1.客户/服务器模式(client-server model)
基本概念: OS分为两部分,一部分用于提供服务的一组服务器,另一部分是内核,用来处理客户和服务器之间的通信。 客户 进程 服务器 终端 文件 存储器 核心

61 客户/服务器模式的优点 (1)提高了系统的灵活性和可扩充性 (2)提高了OS的可靠性 (3)可用于分布式系统
功能由服务器实现,安装、更新、增加 (2)提高了OS的可靠性 服务器运行在用户态,不直接使用硬件 (3)可用于分布式系统 无论服务器在哪,对客户机都相同

62 2.面向对象的程序设计技术(OOP) 1)基本概念:对象,是现实世界中具有相同属性、服从相同规则的一系列事务的抽象,其中的具体事物称为对象的实例。利用被封装的数据结构和一组对它进行操作的过程,来表示系统中某个对象。 数据结构 过程1 过程2 过程3

63 面向对象技术的优点 可修改性和可扩充性 继承性 正确性和可靠性

64 3.微内核技术 1)引入 大规模集成电路的使用,使OS需求增加,规模膨胀。为了减少OS复杂性,增强OS可扩展性和可维护性产生了微内核技术

65 3.微内核技术 2)微内核基本功能 进程管理 存储器管理 进程通信管理 I/O设备管理


Download ppt "第一章 操作系统引论."

Similar presentations


Ads by Google