▪第一章 操作系统引论
1.1 操作系统的目标和作用
操作系统的概念
▪操作系统定义1:操作系统是一组控制和管理计算机软硬件资源、合理地对各类作业进行调度以及方便用户使用的程序集合。
▪ 操作系统定义2(Operating System, OS):操作系统是位于硬件层(HAL)之上,所有其它系统软件层之下的一个 系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方便用户使用计算机系统。
1.1.1 操作系统的目标
▪方便性: 操作系统使计算机更易于使用。
▪有效性: 操作系统允许以更有效的方式使用计算机系统资源。
▪提高系统资源利用率
▪提高系统的吞吐量
▪可扩展性: 在操作系统中,允许有效地开发,测试和引进新的系统功能。
▪开放性: 实现应用程序的可移植性和互操作性,要求具有统一的开放的环境。
1.1.2 OS的作用
-
作为用户与计算机硬件系统之间的接口
用户命令 Interface(用户接口)/命令接口 命令的表示形式(字符形式、菜单形式、图形形式)
System Call(系统调用) 程序接口/应用编程 接口(Application Programming Interface,API)
-
作为资源管理者的操作系统(软硬件资源)
-
处理机管理, 用于分配和控制处理机;
-
存储器管理,主要负责内存的分配与回收;
-
I/O设备管理,负责I/O设备的分配与操纵;
-
文件管理,负责文件的存取、共享和保护。
▪ 对于多用户系统,需要管理共享资源,避免发生冲突。
多路复用(共享)资源 1. 在时间上复用 2. 在空间上复用
-
作为扩展机器的操作系统
裸机:完全无软件的计算机系统。
扩充机器或虚机器:通常把覆盖了软件的机器
1.2 操作系统的发展过程
-
无操作系统
1、人工操作方式 2、脱机输入输出方式
-
单道批处理操作系统
-
概念:系统对作业的处理都是成批进行的,且在内存中始终仅存一道作业运行,运行结束或出错,才自动调另一道作业运行
-
主要特征:自动性、顺序性、 单道性。
-
主要优点:减少人工操作, 解决了作业的自动接续。
-
主要缺点:平均周转时间长, 没有交互能力。
-
多道批处理操作系统
-
概念: 在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行。多道程序带来的好处: 1、提高CPU的利用率。 2、提高内存和I/O设备利用率。 3、增加系统吞吐率。
-
主要特征: 多道性、无序性、调度性(进程调度和作业调度)。
-
主要优点:提高了资源利用率和吞吐能力。
-
主要缺点:平均周转时间长,没有交互能力。
-
需要解决的5个问题 :1、处理机管理:分配和控制CPU。 2、存储器管理:内存分配与回收 3、I/O设备管理:I/O设备的分配与操纵。 4、文件管理:文件的存取、共享和保护。 5、作业管理:如何组织作业运行。
-
分时操作系统(time-sharing system)
-
产生 用户需要:人机交互、共享主机、便于用户上机
-
关键问题: 及时接收:实现多个用户的信息及时接收。 及时处理:及时控制作业的运行。
-
实现的方法 ▪ 简单分时系统 ▪ 具有“前台”和“后台”的分时系统 ▪ 多道分时系统
-
特点: ▪多路性:一个主机与多个终端相连; ▪独立性:彼此独立操作,互不干扰; ▪及时性:系统能在很短的时间得到回答; ▪交互性:能实现人机对话(区别于批处理系统)
-
典型系统: ▪Multics (MIT) ▪UNIX
-
实时操作系统(real time system)
-
概念:计算机及时响应外部事件的请求, 在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行。
-
实例:1、实时控制系统:工业控制,军事控制,医疗控制,…….
2、实时信息处理系统:航班定票,联机情报检索,……
-
特点: (1)响应及时(prompt response) (2)可靠性高(high reliability)
-
实时任务的类型:
-
按任务执行是否为周期性来化分 ▪ 周期性实时任务 ▪ 非周期性实时任务
-
按截止时间来化分 ▪ 硬实时任务 ▪ 软实时任务
-
实时系统的特征:
-
多路性:能对多个对象进行控制。
-
独立性:独立运行,不混淆,不破坏。
-
交互性:仅限于访问系统中某些特定的专用服务程 序。
-
可靠性:高可靠性,应具有多级容错防护能力。
-
及时性:不同的系统要求不一样,控制对象必须在 截止时间内完成。
1.3 操作系统的基本特征
现代OS的四个基本特征:
1、并发性(最重要的特征)
2、共享性
3、虚拟性
4、异步性
1.3.1 并发
1、并发——并行性和并发性,并发执行的过程。
▪ - 并行性:是指两个或多个事件在同一时刻发生。
▪ - 并发性:是指两个或多个事件在同一时间间隔内发生。
▪ 任务共行 - 从宏观上看,任务共行是指系统中有多个任务同时运行 - 从微观上看,任务共行是指单处理机系统中的任务并发 (Task Concurrency:即多个任务在单个处理机上交替运行)或多处理机系统中的任务并行(Task Parallelism: 即多个任务在多个处理机上同时运行)。
2. 引入进程
▪ 程序:静态实体
▪ 进程:系统中能独立运行并作为资源分配的基本单位,由一组机器指令、数据和堆栈等组成的独立运行的活动实体。
3. 引入线程
-
进程作为资源分配的基本单位
-
线程作为独立运行和调度的基本单位
1.3.2 共享
▪ 共享:是指系统中的资源可供内存中多个并发执行的进程共同使用。
1、互斥共享方式:
- 把在一段时间内只允许一个进程访问的资源,称为临界资源。如打印机、栈、表格等
- 系统中的临界资源可以提供给多个进程使用,但一段时间内仅允许一个进程使用,称为互斥共享方式。
2、同时访问方式:
-从宏观上看,资源共享是指多个任务可以同时使用系统中的软硬件资源。
- 从微观上看,多个进程交替互斥地使用系统中的某个资源。例如磁盘。
-并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件
1.3.3 虚拟性
▪ 虚拟:是指通过某种技术把一个物理实体变为(映射为) 若干个逻辑上的对应物。
1.时分复用技术 ▪虚拟处理机:分时实现 ▪虚拟设备:SPOOLING技术
2.空分复用技术 ▪虚拟磁盘技术:逻辑分区 ▪虚拟存储器:虚拟存储管理实现
1.3.4 异步性
1、执行结果不确定,程序不可再现。
2、异步性,多道程序环境下程序(进程)以异步 的方式执行,每道程序在何时执行、各自执行的 顺序、完成时间都是不确定的,也是不可预知的。
1.4 操作系统的主要功能
-
操作系统的主要任务: ▪为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。
-
操作系统应具有五方面的功能:
-
1、处理机管理(CPU)
-
2、存储器管理
-
3、设备管理
-
4、文件管理
-
5、方便用户使用的用户接口。
-
1.5 操作系统的结构设计
▪ 操作系统是一个大型系统软件,其结构已经历了四代的变革:
第一代的OS是无结构的;
第二代OS采用了模块式结构;
第三代是层次式结构;
现代OS结构是微内核结构;
传统的操作系统结构:
▪操作系统中增加了越来越多的功能,并且随着 底层硬件更高的性能,更加通用,操作系统的 大小和复杂性也随着增加。 ▪为了控制该软件的复杂性,在开发OS时,先后 引入了分解、模块化、抽象和隐蔽等方法。开 发方法的不断发展,促进了OS结构的更新换代。
1.5.1 无结构操作系统
▪ 在早期开发操作系统时,设计者只是把他的注意力放在功 能的实现和获得高的效率上,缺乏首尾一致的设计思想。
▪ OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构,因此,有人把它 称为整体系统结构。
▪ 缺陷: ▪设计出的操作系统既庞大又杂乱,缺乏清晰的程序结构。 ▪编制出的程序错误很多,给调试工作带来很多困难;增加了维护人员的负担。
1.5.2 模块化OS结构
(1)模块化结构(模块-接口法) ▪ 使用分块结构的系统包含若干module(模块);其中, 每一块实现一组基本概念以及与其相关的基本属性。 ▪ 块与块之间的相互关系: - 所有各块的实现均可以任意引用其它各块所提供的概念及属性。
(2)模块化OS的优缺点
优点: ①提高了OS设计的正确性、可理解性和可维护性。 ②增强了OS的可适应性。 ③加速了OS的开发过程。
缺点: ① 对模块的划分及对接口的规定要精确描述很困难。 ②从功能观点来划分模块时,未能将共享资源和独占资源加以区别。
1.5.3 分层式OS结构
▪ 使用分层系统结构包含若干layer(层);其中,每一层实现一组基本概念以及与其相关的基本属性。
•层与层之间的相互关系: - 所有各层的实现不依赖其以上各层所提供的概念及其属性,只依赖其直接下层所提供的概念及属性; - 每一层均对其上各层隐藏其下各层的存在。
▪ 层次的设置时应考虑的几个因素
(1)程序嵌套。通常OS的每个功能的实现,并非是只用一个程序便能完成的,而是要经由若干个软件层才有可 能完成,因此在考虑实现OS时,每个功能可能形成的 程序嵌套。
(2)运行频率。将那些经常活跃的模块放在最接近硬件的层。
(3)公用模块。把供多种资源管理程序调用的公用模块, 设置在最低层, 以便调用。
(4)用户接口。命令接口、程序接口以及图形用户接口。 这些接口应设置在OS的最高层,直接提供给用户使用。
1.5.4 操作系统层次化体系结构
DeltaCORE的体系结构:层次+模块结构
客户/服务器模式(Client-Server Model)
▪ 优点: ▪提高了系统的可扩展性 ▪增强了系统的可靠性 ▪可移植性好 ▪提供了对分布式系统的支持
▪ 缺点: ▪运行效率有所降低: 消息传递开销+模式切换 开销
面向对象的程序设计技术 (OOP)
1) 面向对象技术的基本概念
所谓对象,是指在现实世界中具有相同属性、服从相同规则的一系列事物的抽象,而把其中的具体事物称为对象的实例。 OS中的各类实体如进程、线程、消息、存储器等,都使用了对象这一概念,相应地,便有进程对象线程对象、存储器对象等。
2) 面向对象技术的优点
(1) 可修改性和可扩充性。由于隐蔽了表示实体的数据和操作,因而可以改变对象的表示而不会影响其它部分, 从而可 以方便地改变老的对象和增加新的对象
(2) 继承性。继承性是面向对象技术所具有的重要特性。继承性是指子对象可以继承父对象的属性,这样,在创建一个 新的对象时, 便可减少大量的时空开销
(3) 正确性和可靠性。由于对象是构成操作系统的基本单元, 可以独立地对它进行测试,这样,比较易于保证其正确性和可靠性,从而比较容易保证整个系统的正确性和可靠性
1.5.5 微内核OS结构
▪ 所谓微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核,它与一般的OS(程序)不同, 它更小更 精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。
▪ 当前比较流行的、能支持多处理机运行的OS几乎全部都采用了微内核结构,如Mach OS,windows 2000
• 微内核所提供的功能,通常都是一些最基本的功能,如进程管理、低级存储器管理、中断和陷入处理、进程间通信、 低级I/O功能
• 微内核特点 ➢足够小的内核 ➢基于客户/服务器模式 ➢应用“机制与策略分离”原理 ➢采用面向对象技术
持续更新ing