教材:
《计算机操作系统》,汤子瀛等,西安电子科技大学出版社(第4版)
参考书:
《操作系统教程》(第3版),孙钟秀 ,高等教育出版社 ,2003年11月
《Operating System Concepts》(第七版)(英文影印版) Silberschatz A ,Galvin P B, Gagne G著,高等教育出版社 ,2007 年12月。
《现代操作系统》 (英文第2版),(荷)Andrew S. Tanenbaum著 ,陈向群等译,机械工业出版社, 2005 年6月
《操作系统:设计与实现》(上下册) ,Andrew S.Tanenbaum ,电子工业出版社 ,1998年
《Linux内核完全剖析--基于0.12内核 》,赵炯 ,机械工业出版社 ,2009年1月。
《UNIX结构分析(核心代码的结构与算法) 》胡希明 ,浙江大学出版社 ,2002 年8月。
《嵌入式实时操作系统uC/OS-II 》 (第2版), (美)Jean J. Labrosse著 ,邵贝贝译, 北京航空航天大学出版社 , 2007 年9月
《Unix系统内幕》,Uresh Vahalia ,人民邮电出版社 ,2003年
操作系统是系统软件
系统软件是与硬件相关的软件。
§1.1 操作系统的目标和作用
硬件之上,其他软件之下。
- 目标: 方便性,有效性,可扩充性,开放性.
- 作用: 用户与计算机的接口,系统资的管理者,扩充机器。
推动OS发展的主要动力:
- 不断提高计算机资源利用率
- 方便用户
- 器件的不断更新换代
- 计算机体系结构的不断发展
- 不断提出的应用需求
§1.2 操作系统的发展过程
无OS:
人工操作系统:
- 1946-50年代中:电子管时代,计算机速度慢,无操作系统,集中计算,计算机资源昂贵;
- 用户:既是程序员又是操作员;用户是计算机专业人员;
- 编程语言:机器语言;
- 输入输出:纸带或卡片;
脱机I/O方式:
OS分类:
OS所在的角度
- 多任务,单CPU, CPU具有与外设并行操作的能力。
- 程序均由CPU执行
- CPU只能执行机器语言程序
- CPU执行的程序均在内存中
######## 批处理系统
- 单道程序工作示例:
- 多道程序工作示例:
分时系统
目标:
- 对用户的请求及时响应;尽量提高系统资源的利用率
原理:
- 一台计算机连接多个终端,用户通过各自的终端把作业送入计算机;计算机又通过终端向各个用户报告其作业的运行情况。
- 计算机能分时轮流地为各终端用户服务,并能及时地对用户服务请求予以响应。
基本特性:
- 多路性,独立性,及时性,交互性。
实时系统
目的:
- 提高系统的响应时间,对随机发生的外部事件作出及时响应并对其进行处理。
分类
基本特性
三种系统比较
§1.3 操作系统的基本特性
并发
并发:一段时间
- 指两个或多个事件在同一时间间隔内发生。
并行:一个时间
- 指两个或多个事件在同一时刻发生。
共享
-
指系统中的资源供内存中的多道程序所共同使用。
-
同时访问方式,互斥共享方式。
虚拟
- 指通过某种技术把一个物理实体变成若干个逻辑上的对应物。(虚拟机)
异步性
- 系统中并发执行的多道程序“走走停停”,以不可预知的速度向前推进
§1.4 操作系统的主要功能
OS定义
- OS是直接控制和管理计算机硬件、软件资源,合理地对各类作业进行调度,以方便用户使用的程序集合
— 处理机管理功能
— 存储器管理功能
— 设备管理功能
— 文件管理功能
— 用户接口
主要任务
- 为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。
§1.5 OS结构设计
- 传统的操作系统结构
-
无结构操作系统
OS是由众多的过程直接构成,各过程之间可相互调用,但OS内部不存在任何结构,所以这种OS是无结构的,又称为整体系统结构。缺点:
既庞大又杂乱,缺乏清晰的程序结构;程序错误多,调试难、阅读难、理解难、维护难。 -
模块化OS结构
OS是采用“模块化程序设计”技术,按其功能划分为若干个独立的模块,管理相应的功能,同时规定好各模块之间的接口,以实现其交互,对较大模块又可按子功能进一步细分下去。优点
提高了OS设计的正确性、可理解性和可维护性
增强了OS的可适用性
加速了OS的开发过程缺点
模块及接口划分较困难
从功能上划分模块,未区别共享资源和独占资源
由于管理的差异,使OS结构变得不够清晰 -
分层式OS结构
分层式OS结构是对模块化结构的一种改进,它按分层式结构设计的基本原则,将OS 划分为若干个层次,每一层都只能使用其底层所提供的功能和服务,从硬件开始,在其上面一层一层地自底向上增添相应功能的软件,这种OS结构称为分层式OS结构。优点:
每一步设计都建立在可靠的基础上,结构更清晰
调试和验证更容易,正确性更高缺点:
系统效率降低。只能是单向依赖,每执行一个功能,自底向上需要穿越很多个层次。
- 现代操作系统结构: 微内核的OS结构
-
** 微内核技术的主要思想**
在OS内核中只留下一些最基本的功能,而将其他服务分离出去,由工作在用户态下的进程来实现,形成所谓“客户/服务器”模式。客户进程可通过内核向服务器进程发送请求,以取OS的服务。 -
微内核
精心设计的,能实现现代OS核心功能的小型内核,它小而精炼,运行在核心态下,开机后常驻内存,不会因内存紧张而换出,它为构建通用OS提供了一个重要基础。 -
微内核的基本功能
- 进程管理
- 存储器管理
- 进程通信管理
- I/O设备管理
-
特点
- 小而精练
- 系统的灵活性和可扩充性好
- 系统的可靠性高
- 适用于分布式系统
§1.6 常见的OS
OS:
- MS DOS
- MS Windows
- UNIX
- Linux
- 手持系统(handheld system)
嵌入式操作系统 (Embedded OS)
- DOS BIOS(Basic Input/Output System):由一组与硬件相关的设备驱动程序组成,实现基本的I/O功能;
- DOS核心:提供一套独立于硬件的系统功能:内存管理、文件管理、字符设备和输入/输出、实时时钟等;
- 命令处理程序:对用户命令进行分析和执行;
通用开放软件环境(COSE)
- 一些主要的UNIX系统厂商在1993年成立了通用开放软件环境联盟。这些厂家当时包括HP,IBM,Sun,SCO,Novell及UNIX系统实验室。
自由软件基金会(FSF)
- 目标是创建一个与UNIX类似的系统,名为HURD。
- 他们的这项工程称为GNU(全称为GNU’s Not UNIX)。
- 在编写HURD的过程中,他们编写了许多非常有用的、可移植性很强的流行实用程序。
- 例如GNU C 编译器gcc。用户既可以得到这些工具的源代码而自行进行编译,也可以得到能立即运行的可执行文件。
Linux的体系结构
- 用户应用:文字处理工具、浏览器等用户应用程序;
- 系统服务:它是操作系统的一部分,但不是内核。包括窗口系- 统、命令解释程序、应用开发工具(编译器、系统库等)
- Linux内核:操作系统内核,完成资源管理功能。
- 硬件控制 :系统中的所有物理设备控制 。
手持系统(handheld system) && 嵌入式操作系统 (Embedded OS)
- 个人数字助理(Personal Digital Assistants, PDAs)
- 蜂窝电话(Cellular telephones)
- 存在的问题
- 内存有限(32M – 64M)
- 低速处理器(只有个人计算机处理器速度的几分之一)
- 屏幕小(5英寸×3英寸)