1.38k likes | 1.54k Views
操 作 系 统. 张荣富. 第一章 操作系统引论. 介绍操作系统的基础知识及其形成和发展 , 以及操作系统的分类和几种比较熟悉的操作系统. 一、计算机系统组成. 中央处理器(处理机, CPU ). 计 算 机 系 统. 硬件. 存储器(内存、辅存). I/O 设备(输入 / 输出设备). 系统软件(如操作系统). 软件. 支撑软件(工具软件). 应用软件(如图形处理系统). 1 、 用户命令执行流程. 内存. 用户的键盘操作在 CPU 的控制下调入内存. 执行结果在 CPU 的控制下又反馈到显示器.
E N D
操 作 系 统 张荣富
第一章 操作系统引论 介绍操作系统的基础知识及其形成和发展,以及操作系统的分类和几种比较熟悉的操作系统.
一、计算机系统组成 中央处理器(处理机,CPU) 计 算 机 系 统 硬件 存储器(内存、辅存) I/O设备(输入/输出设备) 系统软件(如操作系统) 软件 支撑软件(工具软件) 应用软件(如图形处理系统)
1、用户命令执行流程 内存 用户的键盘操作在CPU的控制下调入内存 执行结果在CPU的控制下又反馈到显示器 然后CPU从内存中取出用户的命令,执行后返回结果 键盘 显示器 CPU 返回
2、操作系统的概念 操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。 三要点: ①是软件,且是系统软件 ②基本职能是控制和管理系统资源 ③提供服务,方便用户使用
3、操作系统的功能 用户接口 处理机管理 存储器管理 设备管理 文件管理 前进
(1)处理机管理 在一段时间内,只能有一个进程在CPU中执行。 ①作业和进程调度 ②进程控制 ③进程通信 同步方式和互斥方式;通信机制
(2)存储器管理 计算机存储器的设计目标可以归纳成三个问题:多少?多快?多贵? ①内存分配 ②地址映射(逻辑地址、物理地址) ③内存保护(上界地址值、下界地址值) ④内存扩充(虚拟存储技术)
(3)设备管理 计算机外设种类众多,而且各种设备的传输速度差异很大,很难开发一种通用的、一致的解决方案。 ①缓冲区管理 ②设备分配 ③设备驱动 ④设备无关性 前进
(4)文件管理 在大多数应用中,文件是一个核心成分,除了实时应用和一些特殊应用外,应用程序的输入都是通过文件来实现的。 ①文件存储空间的管理 ②文件操作的一般管理 ③目录管理 ④文件的读写管理和存取控制
(5)用户接口 操作系统为用户操作提供良好的硬件接口。 ①命令界面(DOS, Unix, windows命令行) ②程序界面(系统调用界面) ③图形界面(windows窗口, Linux的X-window)
4、操作系统的地位 终端用户 程序员 操作系统 设计者 应用程序 实用程序 操作系统 计算机硬件
二、操作系统的发展历程 1、手工操作阶段(串行处理) 2、早期批处理阶段 3、多道批处理系统 4、操作系统的发展
早期批处理阶段 简单批处理方案的中心思想是使用一个称作监控程序的软件。通过使用监控程序,用户不再直接访问机器,相反,用户把卡片或磁带中的作业提交给计算机操作员,由他把这些作业按顺序组织一批,并将整个批作业放在输入设备上,供监控程序使用。每个程序完成处理后返回到监控程序,同时,监控程序自动加载下一个程序。 早期联机批处理、早期脱机批处理
多道程序设计 基本思想:在内存中同时存放多道程序,在管理程序的控制下交替地执行。 程序A 运行 运行 等待 等待 单道程序设计 程序A 运行 运行 等待 等待 程序B 运行 运行 等待 等待 等待 组合 运行 运行 运行 运行 等待 等待 多道程序设计
三、操作系统的特征和体系结构 1、特征 ①并发 指两个或多个活动在同一给定的时间间隔中进行 ②共享 指计算机系统中的资源被多个任务所共用 ③异步性
①单块式结构 2、体系结构 难于修改,可靠性低 ②层次结构 按照操作系统各模块的功能和相互储存关系,把系统中的模块分为若干层,其中任一层模块(除底层外)都建立在它下面一层的基础上 ③微内核结构
四、操作系统的类型 1、多道批处理系统 2、分时系统 3、实时系统 4、个人机系统 5、网络操作系统 6、分布式操作系统
多道批处理系统 特点:多道、成批 优点:资源利用率高、系统吞吐量大 缺点:等待时间长、没有交互能力
分时系统 分时主要指若干并发程序对CPU时间的共享 特点:同时性、交互性、独立性、及时性 优点:响应快界面友好、多用户便于普及、 便于资源共享 多道批处理和分时比较 多道批处理 分时 主要目标 最有效地使用处理器 减小响应时间 系统指令源 作业控制语言 作业提供的命令 终端键入的命令
实时系统 特点:响应时间很快、可以在毫秒甚至微秒 应用:过程控制系统、信息查询系统、事务 处理系统 与分时系统区别: 交互能力较弱,系统专用 响应时间更严格、及时 可靠性要求更高
个人机系统 单用户操作系统: MS-DOS,OS/2,Windows95\98\NT 多用户操作系统: Solaris,SVR4,AIX,SCO OpenServer, SCO UnixWare 7,XENIX,Linux, Windows 2000\XP
网络操作系统 计算机网络=计算机技术+通信技术 特征: 分布性、自治性、互连性、可见性 网络操作系统一般建立在各个主机的本地操作系统基础之上,其功能是: 网络通信、资源共享和保护、网络服务、网络接口
分布式操作系统 特征: 分布式处理、模块化结构、利用信息通信、实施整体控制 特点: 透明性、灵活性、可靠性、高性能、可扩充性
五、主要产品 1、DOS 2、Windows 3、OS/2 4、UNIX/Linux 5、Macintosh(苹果机) 6、NetWare(Novell)
六、用户界面 1、命令界面 2、图形界面 3、系统调用
复习 1、操作系统的概念 操作系统是管理和控制计算机硬件和软件资源的系统软件,是用户与计算机之间的接口。 2、操作系统的功能 操作系统的五项功能: 处理机管理、存储管理、文件管理、设备管理、用户接口 3、多道程序设计 多道程序设计是指多道程序在内存中并发执行。
进程 第二章 管理 重点关注典型的操作系统中用于进程管理的数据结构和技术。
一、进程的基本概念 问题: 1、什么是进程? 2、为什么要引入“进程”这一概念? 3、我们知道计算机运行的是程序,跟进程这一概念有联系或区别吗?
1、为什么要引入进程这一概念 通过上节课的学习,我们知道,早先的单道程序设计中计算机程序的执行是严格按照程序编写顺序执行(顺序性)。也就是说,程序是怎么编的,计算机就按什么顺序执行。那么只有等待此程序运行完毕后,才能运行其他程序(封闭性)。显然,程序不管何时运行都能得出一样的结果(可再现性)。 然而,为了提高整个系统的效率,现代的操作系统都采用了多道程序设计。也就是多道程序同时放在内存中让CPU选取加以执行。那么,程序的运行会发生如何的变化呢?
指令轨迹: • 102 • 103 • 104 • 105 • 12000 • 12001 • 12002 • 12003 • 12004 • 12005 • ------------超时 • 100 • 101 • 102 • 103 • 104 • 105 • 5006 • 8000 • 8001 • 8002 • ------------I/O请求 • 100 • 101 • 102 • 103 • 104 • 105 • …… • 5000 • 5001 • 5002 • 5003 • 5004 • 5005 -----------超时 • 100 • 101 • 102 • 103 • 104 • 105 • 8000 • 8001 -----------I/O请求 • 100 • 101
1、为什么要引入进程这一概念 现有甲、乙两个人,甲运行程序A,乙运行程序C: 在早先的单道程序设计中,如果甲、乙两个商量好甲先运行,然后乙再运行。那么输出的结果就是:甲得到的是1,乙得到的是2。如果乙先运行甲后运行,那么甲得到的是1,乙得到的也是1。这个运行结果完全可以由人为因素和程序的编写过程控制。 然而,在多道程序设计中。多道程序同时放在内存中让CPU选取加以执行。也就是说,这三道程序A、B、C同时放在内存中让操作系统决定CPU先执行哪一个。那么这三个程序的地位是平等的,到底是哪个程序先运行?显然整个程序的运行结果不再完全由自身决定,它跟程序的运行环境和程序间的相对速度有关。 这样一来,程序本身的封闭性也就不再具有。 q
1、为什么要引入进程这一概念 在早期的单道程序设计中,程序是一个一个依次执行的。一个程序就对应唯一的一个执行过程。 在多道程序设计中,程序A调用B,程序C也调用B。这样在程序执行过程中,程序B是程序A和C的共享资源。在程序A调用B时,B属于程序A执行过程的一部分;当程序C调用B时,B属于程序C执行过程的一部分。 这样一来,一个程序就不再对应一个执行(计算)过程。一个程序可以对应多个执行过程,一个执行过程也可以对应多个程序。 q
1、为什么要引入进程这一概念 在早期的单道程序设计中,程序是一个一个依次执行的。一个程序的执行跟别的程序的执行是没有什么关系的。 在多道程序设计中,程序A调用打印机,程序C也调用打印机,我们知道它们可以同时运行,那么打印机应该给谁使用呢?一种方案是都给,既给A用又给B用,那结果可能是打印A一部分,再打印C一部分,再打印A一部分。这种结果显然不是我们想要的。另一种方案是每次只让一个程序调用。程序A打印完才程序C调用。 也就是说,一个程序的执行不再仅仅由自身代码决定,要受到其它并发程序的制约。 q
1、为什么要引入进程这一概念 综上所述,由于多道程序并发执行时共享资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态执行过程中发生的。 而程序(Program)本身只是机器能够翻译或执行的一组动作或指令,它或者写在纸上,或者存放在磁盘等介质上,是静止的。 显然,直接从“程序”的字面上无法看出它什么时候运行、什么时候停顿,也看不出它是否影响其它程序或者一定受其它程序的影响。 也就是说,用程序这个静态的概念已不能如实反映程序在并发执行过程的这些动态特征。于是,人们引入“进程(Process)“这一概念来描述程序动态执行过程的性质。
2、什么叫进程 进程的几种定义: (1)进程(或任务)是可以和别的计算并发执行的计算 (2)进程是程序的一次执行,是在给定内存区域中的一组指令序列的执行过程 (3)所谓进程,简单来说就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程 (4)进程可定义为一个数据结构和能在其上进行操作的一个程序 (5)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位 综上所述,进程最根本的属性是动态性和并发性。我们把进程定义为:进程是程序在并发环境中的执行过程。
4、进程的特征 (1)动态性 (2)并发性 (3)调度性 (4)异步性 (5)结构性
3、进程的组成 进程的活动是通过在CPU上执行的一系列程序和对相应数据进行操作来实现的,因此,程序和它操作的数据是进程存在的实体。 但这二者仅是静态的文本,没有反映出其动态性。还需要有一个数据结构用来描述进程当前的状态、本身的特性等。这种数据结构被称为进程控制块(Process Control Block,PCB)。 进程实体通常由程序、数据集合和PCB这三部分组成。 PCB 程序 数据集合
4、进程控制块PCB的组成 进程控制块是进程组成中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,它是系统对进程识别和控制的依据,在不同的系统中,PCB的具体组成是不同的。 进程名 特征信息 PCB 进程状态信息 程序 调度优先权 数据集合 通信信息 现场保护区 资源需求分配信息 进程实体信息 族系关系 其它信息
5、进程控制块PCB的作用 进程控制块与进程关系: ①每个进程有唯一的PCB ②操作系统(OS)根据PCB管理进程 ③利用PCB实现进程的动态、并发 ④PCB是进程存在的唯一标志
6、进程队列 系统中有许多进程,处于就绪状态和处于阻塞状态的进程可分别有多个,而阻塞的原因可以各不相同。这么的进程如何管理操作系统才能找到呢?操作系统采用队列来对它们进行管理,也就是说,把他们进行排队。 排队的方式有三种: ①线性方式: 操作系统预先确定整个系统中同时存在的进程的最大数目,静态分配空间,把所有进程的PCB都放在这个表中。 ②链接方式: ③索引方式:
进程排队方式 PCB · 0 运行队列指针 PCB PCB PCB · 0 就绪队列指针 PCB PCB PCB · 阻塞队列1指针 0 · PCB PCB 阻塞队列2指针 0
复习 1、一个重要概念——进程 进程是程序在并发计算中的执行过程。 2、程序与进程的区别 (1)程序是静态概念,进程是动态概念 (2)进程是一个能独立运行的单位,而程序是以进程为单位执行的 (3)程序和进程无一一对应关系 (4)进程之间会产生相互制约关系,而程序没有 3、进程的状态 三种基本状态:运行态、就绪态、阻塞态
复习 4、三种状态之间的转换 运行态 就绪态 阻塞态 5、进程的组成 PCB 程序部分 数据集合