操作系统原理
Principles of Operating System
软件教研室 张立
2005年 2月教材:
汤子瀛,哲凤屏,计算机操作系统,西安电子科技大学出版社参考书:
孟静,操作系统教程 — 原理和实例分析,高等教育出版社
庞丽萍,操作系统原理,华中理工大学出版社
Andrew S.Tanenbaum.现代操作系统,机械工业出版社
尤晋元,史美林,Windows操作系统原理,机械工业出版社
何炎祥,操作系统原理,华中科技大学出版社
2009-7-24第一章 绪论 3
教案主页
http://os2000.nease.net
2009-7-24第一章 绪论 4
本课程地位
专业核心课程
考研核心课程
技术开发的理论基础
2009-7-24第一章 绪论 5
学习方法
抽象
宏观
2009-7-24第一章 绪论 6
本课程内容
第一章 绪论
第二章 硬件环境
第三章 进程概念
第四章 进程同步
第五章 调度与死锁
第六章 存储管理
第七章 设备管理
第八章 文件系统
2009-7-24第一章 绪论 7
第九章 磁盘管理
第十章 操作系统设计
第十一章 UNIX进程子系统
第十二章 UNIX文件子系统
2009-7-24第一章 绪论 8
第一章 绪论
1.1 操作系统是什么
1.2 操作系统如何工作
1.3 从各种角度看操作系统
1.4 操作系统的历史
1.5 操作系统的功能
1.6 操作系统的特性
1.7 操作系统纵览
2009-7-24第一章 绪论 9
1.1 操作系统是什么
1.1.1 你所用过的操作系统
1.1.2 操作系统是什么
2009-7-24第一章 绪论 10
1.1.1 你所用过的操作系统你知道下列哪些是操作系统吗?
极品飞车 DOS LINUX
WINDOWS TURBO-C WORD
FOXPRO UNIX TURBO-ASM
VI 一个 C语言源程序
2009-7-24第一章 绪论 11
目前常见操作系统
微软,Windows系列(以前 MS-DOS)
UNIX,Solaris,AIX,HP UX,SVR4,BSD,
ULTRIX
自由软件,Linux,freeBSD,Minix
IBM,AIX,zOS(OS/390),OS/2,OS/4000,
PC DOS
其他,Mac OS,NetWare,……
2009-7-24第一章 绪论 12
你用过的操作系统能做什么?
各种命令,dir copy del format
启动、结束用户程序
系统调用:例如 INT指令
WINDOWS,UNIX 等提供多任务或多用户环境
2009-7-24第一章 绪论 13
你知道操作系统不能做什么?
不做天气预报
不做房屋设计
不是编译程序总之,操作系统不直接解决最终具体应用问题,也不负责编译源程序,..
2009-7-24第一章 绪论 14
1.1.2 操作系统是什么操作系统为你完成所有
,硬件相关、应用无关,
的工作,以给你方便、效率、安全
2009-7-24第一章 绪论 15
操作系统的定义操作系统( operating system,简称
OS) 是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调多个任务的活动,实现信息的存取和保护。它提供用户接口,
使用户获得良好的工作环境。
2009-7-24第一章 绪论 16
操作系统是以下系统程序的集成
用户程序的启动、中止
系统调用 —— 用户程序 运行过程中 对操作系统的调用
为常用基本操作提供实用程序
改善基本使用中的效率和安全问题
2009-7-24第一章 绪论 17
硬件相关 应用无关
涉及物理地址、
设备接口寄存器、
设备接口缓冲区
代码量大,需硬件知识
需随硬件的变化而变化
提供所有应用及用户共需的东西
与应用无直接关系
2009-7-24第一章 绪论 18
1.2 操作系统如何工作
1.2.1 OS的第 1个工作:启动和结束程序
1.2.2 OS的第 2个工作:用户程序对 OS的调用
1.2.3 OS的第 3个工作:为常用操作提供程序
1.2.4 OS的第 4个工作:解决效率和安全问题
2009-7-24第一章 绪论 19
1.2.1 OS工作 1:负责启动和结束程序程序的六种启动方式(其中前 4由 OS负责提供)
1,鼠标方式启动
2,命令方式启动
3,批方式启动
4,程序中启动方式
5,纯硬件启动方式
6,自启方式( OS本身的启动方式)
程序的两种结束方式
1,正常结束
2,非正常结束
2009-7-24第一章 绪论 20
程序第 1种启动方式:鼠标方式启动
简单
形象
免记
交互性强
操作有时比命令方式慢
2009-7-24第一章 绪论 21
程序第 2种启动方式:命令方式
命令方式是通过键入程序名 (及参数 )来启动程序。 例如,C>format a,或 #mkfs /dev/fd1
命令方式在不同 OS下的不同体现:
LINUX,UNIX,DOS下:命令提示符与命令行
WINDOW下,?开始?运行:命令行窗口
开始?程序?命令提示符:命令行窗口
2009-7-24第一章 绪论 22
命令启动方式的工作过程
2009-7-24第一章 绪论 23
命令方式的特点
过去最常用的启动方式
需记程序名和位置
交互性较强
有时操作比鼠标方式快
2009-7-24第一章 绪论 24
程序第 3种启动方式:批方式
批方式是指将若干条命令放在一个文件中,
该文件可以在需要时象程序一样被启动执行
(命令方式或鼠标方式)
其执行过程是由计算机自动连续顺序地执行该文件中的这组命令。
2009-7-24第一章 绪论 25
批方式举例
批文件 sh1的 内容:
cd /usr/man/man1
ls>/home/dragon/scls
mjn=1
while test $mjn != 236
do
mjflong=`head -n $mjn /home/dragon/scls|tail -n 1`
mjf=`basename $mjflong \.2`
man -S 2 $mjf|cat -s|head -n 2|tail -n 1 >>/home/dragon/sclist
mjn=$[mjn+1]
2009-7-24第一章 绪论 26
批方式的实现 (通常由命令解释器实现 )
2009-7-24第一章 绪论 27
批方式的特点
程序间可以连续执行,不经人工干涉。
命令可以设计成有顺序、分支和循环控制的形式,称为作业控制语言,使程序可以组合执行 。
把现有的程序组合起来实现更复杂的功能
2009-7-24第一章 绪论 28
批方式的用途
自动批处理文件 (放在根目录下或用户主目录下 ),
用来自动执行每次开机或登录时的例行工作(见例 1)
启动诸如中文环境这样的集成软件或一些参数复杂的软件,简单方便,不必要求用户了解相应启动步骤 (装字库 /启动程序 /装输入法等)和参数
(见 例 2)
2009-7-24第一章 绪论 29
例 1:自动批处理文件
MSDOS下自动批文件 AUTOEXEC.BAT在开机时命令提示符出现前自动执行。
path c:\dos
prompt $p$g
2009-7-24第一章 绪论 30
例 2:通过批文件启动中文环境
MSDOS下通过 ucdos.bat文件启动一个中文环境。
C:\UCDOS\RD16 %1
C:\UCDOS\KNL %2
C:\UCDOS\PY
C:\UCDOS\WB
启动 SPDOS中文环境
CD\SPDOS
SPLIB/1
SPDOS
WBX
2009-7-24第一章 绪论 31
程序第 4种启动方式:程序中启动方式
在一个程序中启动另一程序
如,编译器、并发程序设计、窗口程序 等
2009-7-24第一章 绪论 32
程序中启动方式的工作过程
2009-7-24第一章 绪论 33

见 ProcessA.exe,ProcessB.exe
2009-7-24第一章 绪论 34
程序中启动方式的 特点与作用
实际应用中经常需要程序中启动方式
便于程序的灵活方便启动与动态自动启动
前三种启动方式在内部实现时最终都是由程序中启动方式实现的
2009-7-24第一章 绪论 35
思考,
程序中启动方式与子程序调用有何不同?
2009-7-24第一章 绪论 36
程序第 5种启动方式:纯硬件启动方式
最早期的计算机工作方式
2009-7-24第一章 绪论 37
纯硬件启动方式的工作过程
2009-7-24第一章 绪论 38
问题分析
为什么那时用而现在不用纯硬件启动方式?
纯硬件装入要求用户程序顺序连续存放,且一个存储介质限存一个文件,否则硬件太复杂
纯硬件启动方式下,每运行一个程序都要经过人工判断和操作,效率低且不灵活
硬件功能有限不能对读入的程序和数据做充分的正确性检查
2009-7-24第一章 绪论 39
程序第 6种启动方式:自启
自启方式是指由程序自已装入与启动自己
谬论乎?
2009-7-24第一章 绪论 40
自启方式的工作过程
2009-7-24第一章 绪论 41
自启方式的特点与作用
早期用的较多,现除 OS外已基本不用
要求顺序连续存放,且位置固定
编程麻烦,操作麻烦,存放受限
所有操作系统都是自启程序
2009-7-24第一章 绪论 42
思考,
自启与自动批处理、独立程序启动方式的比较
2009-7-24第一章 绪论 43
程序结束
正常结束
非正常结束
2009-7-24第一章 绪论 44
正常结束与非正常结束对比分析正常结束 非正常结束解释 程序在按本身的逻辑有效地完成预定功能后结束,或者预料之中的错误结束发生了某些预料之外的错误而导致程序在没有完成预定功能时提前结束结束时机 预料之中,预先知道在哪结束随时可能发生的,
不可预测的结束处理 报告结果信息或错误原因、释放所用空间与设备、记录使用情况与记帐等结束方式,程序结束”系统调用指令中断处理或系统瘫痪
2009-7-24第一章 绪论 45
1.2.2 OS工作 2:用户程序中对 OS的调用 ——系统调用
1.2.2.1 系统调用的功能、作用和用法
1.2.2.2 系统调用指令的实现及其特殊性系统调用,system call ( 简称 SC)
2009-7-24第一章 绪论 46
1.2.2.1 系统调用的功能、作用和用法
系统调用就是 用户程序对操作系统的调用 。
例如打印、读写盘等工作
2009-7-24第一章 绪论 47
系统调用指令的功能列举
系统调用包括:
外存文件与目录的读写
各种 I/O设备的使用
在一个程序中启动另一个程序
查询和统计系统资源使用情况等等 …
2009-7-24第一章 绪论 48
程序段 1:利用系统调用打印(用 INT指令调用
DOS的功能来完成)
MOVE AH,05H
MOVE DL,Char
INT 21H

Char DB '1'
当 INT返回时,打印已经完成系统调用例(汇编程序员观点):打印 5个字符
程序段 2:不用系统调用,
而用 IN/OUT指令直接读写打印机的接口寄存器
MOVE I,0
L1:MOVE I,I+1
CMP I,5
JNC L3 打完五个字符
MOVE A,I
L2:IN ADDR1,B 状态寄存器
OR B,BS 状态位选择码
JNC L2 未准备好
OUT ADDR2,A 打印,数据寄存器
JMP L1
L3:RET
2009-7-24第一章 绪论 49
系统调用的控制流程
2009-7-24第一章 绪论 50
为什么我很少接触系统调用?
高级语言程序员观点
通常仅汇编程序员才会接触到系统调用,而高级语言程序员通常接触不到系统调用,只接触库函数
2009-7-24第一章 绪论 51
函数与系统调用( OS) 的层次关系
2009-7-24第一章 绪论 52
高级语言中对操作系统的“间接”调用
2009-7-24第一章 绪论 53
1.2.2.2 系统调用指令的实现及其特点
1、机器,OS与系统调用指令间的关系
2、系统调用指令的实现机制(借助中断机制)
3,系统调用指令特点
2009-7-24第一章 绪论 54
1、机器,OS和系统调用指令间的关系
每种 OS提供几十至几百个系统调用
每种机器都提供一个系统调用指令:
例,SUN- TRAP指令,SGI工作站- SYSCALL,
IBMPC- INT
2009-7-24第一章 绪论 55
SC指令由机器 ( CPU) 提供,而其调用的功能由 OS提供
不同的系统调用用同一条 SC指令,但指令参数 (功能号或寄存器 )不同
2009-7-24第一章 绪论 56
2,系统调用指令的实现机制
INT/IRET指令内部执行过程
对比,CALL/RET指令内部执行过程
OS内部如何从 SC功能号得到调用地址
2009-7-24第一章 绪论 57
INT/IRET指令内部执行过程
2009-7-24第一章 绪论 58
对比,CALL/RET内部执行过程
2009-7-24第一章 绪论 59
OS内部如何从 SC功能号得到调用地址
2009-7-24第一章 绪论 60
3,系统调用指令特点 (与子程序调用区别 )
同一程序中不包含被调用的代码
调用地址和返回地址都不固定 (不用写在程序中 )
由系统态 /用户态的自动转换保证系统调用的安全
2009-7-24第一章 绪论 61
1.2.3 OS工作 3:为常用操作提供实用程序
常用基本操作:查看磁盘内容,文件复制,
文件删除与移动,目录建删等。
操作系统所提供的实用程序
Windows的资源管理器
现代 UNIX和 LINUX提供上千条命令
2009-7-24第一章 绪论 62
1.2.4 OS工作 4:解决效率和安全问题
操作系统采用了大量技术来提高机器效率和人的效率,并确保安全问题
并发,多任务,多用户,分时
多道,虚存,
文件或设备的共享技术,链接,假脱机,等
这些技术将在以后各章中逐步学习
2009-7-24第一章 绪论 63
1.3 从各种角度看 OS
1.3.1 操作系统的结构
1.3.2 操作系统的接口(使用方式)
1.3.3 操作系统工作过程
1.3.4 操作系统的特点
1.3.5 操作系统的类型
2009-7-24第一章 绪论 64
1.3.1 操作系统的结构
2009-7-24第一章 绪论 65
1.3.2 操作系统的接口(使用方式)
交互界面
登录与注销
命令
窗口界面
编程界面
SHELL编程
系统调用
2009-7-24第一章 绪论 66
1.3.3 操作系统工作过程
2009-7-24第一章 绪论 67
1.3.4 操作系统的特点
硬件相关、应用无关
核心常驻内存
中断驱动
权威性
并发
庞大、复杂
重要性(无处不在、无时不有)
2009-7-24第一章 绪论 68
1.3.5 操作系统的类型
传统( traditional) 操作系统、现代
( contemporary) 操作系统
按硬件规模分:微机、小型机、大型机操作系统
按资源共享的级别分:单任务、多任务、单用户、多用户、单道、多道操作系统
按所允许的交互类型分:批处理、分时处理、
个人机、实时操作系统
2009-7-24第一章 绪论 69
1.4 操作系统的历史
操作系统的产生
1.4.1 手工操作阶段( 40年代)
1.4.2 单道批处理阶段( 50年代)
操作系统的形成
1.4.3 多道批处理( 60年代初)
1.4.4 分时系统( 60年代中)
1.4.5 实时操作系统( 60年代中)
2009-7-24第一章 绪论 70
操作系统的发展
1.4.6 微机操作系统
1.4.7 多处理机操作系统
1.4.8 网络操作系统
1.4.9 分布式操作系统
1.4.10 嵌入式操作系统
2009-7-24第一章 绪论 71
1.4.1 手工操作阶段电子管计算机,无操作系统,由手工控制作业的输入输出,通过控制台开关启动程序运行 。
用户使用计算机的过程大致如下:先把程序纸带装上输入机,启动输入机把程序和数据送入计算机,然后通过控制台开关启动程序运行,计算完毕后,用户拿走打印结果,
并卸下纸带 。
2009-7-24第一章 绪论 72
手工交互方式的特点
(1) 程序设计是直接编制二进制目标程序
(2) 输入输出设备主要是纸带和卡片
(3) 程序员上机必须预约机时
(4) 程序员自己上机操作
(5) 程序的启动与结束处理都以手工方式进行
(6) 程序员的操作以交互方式进行 (控制台 )
(7) 单用户方式
(8) 程序执行过程得不到任何帮助
2009-7-24第一章 绪论 73
1.4.2 单道批处理阶段晶体管计算机,操作系统的雏形,称为监控程序 。
单道批处理系统的工作过程:用户将作业交到机房,操作员将一批作业输入到辅存
( 如磁带 ) 上,形成一个作业队列 。 当需要调入作业时,监控程序从这一批中选一道作业调入内存运行 。 当这一作业完成时,监控程序调入另一道程序,直到这一批作业全部完成 。
2009-7-24第一章 绪论 74
单道批处理分为:联机批处理,脱机批处理联机批处理:由 CPU直接控制作业输入输出脱机批处理:由卫星机控制作业输入输出
2009-7-24第一章 绪论 75
联机批处理和脱机批处理
2009-7-24第一章 绪论 76
单道批处理阶段的特点
(1) 作业间不需要人的干预
(2) 监控程序常驻内存,开机后第一个进入内存,直到关机一直驻留在内存中
(3) 专职操作员,程序员不在现场
(4) 单道
(5) 监控程序只为一个计算机系统设计
(6) 开发过程可以使用 FORTRAN等高级语言,
程序的最后一条指令需是返回控制到监控程序
2009-7-24第一章 绪论 77
对单道批处理阶段的评价
(1) 作业转换时间大大减小,系统运行效果提高
(2) 存在 I/O慢造成的 CPU空闲等待时间(单道)
(3) 程序员(和用户)无法同计算机交互
(4) 一个操作系统被设计成只能在一种机器上运行
2009-7-24第一章 绪论 78
1.4.3 多道批处理操作系统发展史上革命性变革 。
多道程序设计技术,在内存中放多道程序,使它们在管理程序的控制下相互穿插地运行 。
2009-7-24第一章 绪论 79
单道和 多道 程序工作过程比较
2009-7-24第一章 绪论 80
多道运行的特点
多道。
宏观上并行:同时有多道程序有内存运行,
某一时间段上,各道程序不同程度地向前推进。
微观上串行:任一时刻最多只有一道作业占用 CPU,多道程序交替使用 CPU 。
2009-7-24第一章 绪论 81
多道批处理系统的工作过程
用户将作业交到机房,操作员将一批作业输入到辅存(如磁盘)上,形成一个作业队列。
当需要调入作业时,管理程序从这一批中选几道作业调入内存,让它们进入内存运行。
当一些作业完成时,管理程序调入另一些程序,直到这一批作业全部完成。
2009-7-24第一章 绪论 82
多道批处理系统的优点
资源利用率高。资源指 CPU及各种设备。
系统吞吐量大。 系统吞吐量 指系统在单位时间完成的总工作量。
2009-7-24第一章 绪论 83
1.4.4 分时系统
推动多道批处理系统形成和发展的动力是 提高资源利用率和系统吞吐量 。
推动分时系统形成和发展的主要动力是 用户的需要:
交互、共享主机、方便上机 。
多个用户分时使用主机,每一用户分得一个时间片,
用完这个时间片后操作系统将处理机分给另一用户,
如此循环,每一用户可以周期性地获得 CPU使用权,
这样每一用户都有一种独占 CPU的感觉。
2009-7-24第一章 绪论 84
图示主机终端
2009-7-24第一章 绪论 85
分时系统的特征
多路性:允许同一主机联接多台终端。
独立性:每一用户独占一个终端。
及时性:用户请求能及时响应。
交互性:可人机对话。
2009-7-24第一章 绪论 86
1.4.5 实时操作系统
实时控制:如工业控制。
实时信息处理:如联网订票系统。
实时系统的特征:
高响应性。
高可靠性、高安全性 。
批处理、分时、实时系统是三种基本的操作系统类型。一个实际的操作系统可能兼有三者或其中两者的功能。
2009-7-24第一章 绪论 87
1.4.6 微机操作系统
单用户单任务操作系统,CP/M( 75年),MS-
DOS( 81年)。
单用户多任务操作系统,OS/2( 87年),MS
WINDOWS( 90年 windows 3.0)。
多用户多任务操作系统,UNIX( 70年)。
2009-7-24第一章 绪论 88
1.4.7 多处理机操作系统多处理机系统( 70年代)的类型:
紧密耦合 MPS,多处理机通过高速线路互连,
它们共享主存和外设。
松散耦合 MPS,通过通道或通信线路实现多台计算机互连,每台计算机可独立工作,必要时通过通信线路与其它计算机交互。
2009-7-24第一章 绪论 89
多处理机操作系统的类型:
非对称多处理模式:主从模式,主处理机只有一个,配置操作系统。从处理机可有多个。
对称多处理模式:所有处理机都相同。操作系统可根据需要运行于其中的任一处理机上。
2009-7-24第一章 绪论 90
1.4.8 网络操作系统计算机网络操作系统的模式:
客户 /服务器模式 ( Client/Server)
网络中的各个站点可以分为两大类:
服务器:为客户提供服务如文件服务,打印服务,数据库服务等客户机:用户通过客户机访问服务器
对等模式 ( Peer-to-Peer)
各个站点是对等的,它既可作为客户也可作为服务
2009-7-24第一章 绪论 91
1.4.9 分布式操作系统
在以往的系统中,其处理和控制功能都高度集中在一台主机上,所有的任务都由主机处理,这样的系统称为集中式处理系统 。
所谓 分布式系统,是指由多个分散的处理单元经网络的连接而形成的系统。 在分布式处理系统中,系统的处理和控制功能都分散在系统的各个处理单元上。系统中的所有任务可以动态地分配到各个处理单元中去。
2009-7-24第一章 绪论 92
分布式 操作系统 与网络 操作系统 的比较
分布性:在分布式系统中只有一个分布式 操作系统,而在网络系统中各个结点可以有不同的网络操作系统
并行性:分布式系统中可以将一个或多个任务动态分配到不同的单元上,在网络系统中每个用户的一个或多个任务通常都在本地处理 。
透明性:分布式系统具有透明性,如用户要访问某文件,他只需要知道文件名,无需知道文件在哪个站点 。 对网络系统来说,用户要访问一个文件时要知道文件名及位置 。
2009-7-24第一章 绪论 93
共享性:在分布式系统中,各站点的所有资源都可供全系统共享,在网络系统中一般仅有服务器上的部分资源可供全网共享
健壮性:分布式系统有健壮性,当某站点出现故障是,正在该站点处理的任务能被自动迁移到好的站点。在网络系统中若服务器故障往往导致全网瘫痪。
2009-7-24第一章 绪论 94
1.4.10嵌入式操作系统什么是嵌入式系统?
在各种设备、装置或系统中,完成特定功能的软硬件系统
它们是一个大设备、装置或系统中的一部分,
这个大设备、装置或系统可以不是“计算机”
通常工作在反应快或对处理时间有较严格要求环境中
由于它们被嵌入在各种设备、装置或系统中,
因此称为嵌入式系统
2009-7-24第一章 绪论 95
嵌入式操作系统的应用智能卡移动通信计算机外设机顶盒零售设备印刷机复印机 互联网服务器电话交换设备
2009-7-24第一章 绪论 96
1.5 操作系统的功能
1.5.1 处理机管理
1.5.2 存贮管理
1.5.3 设备管理
1.5.4 文件系统管理
2009-7-24第一章 绪论 97
1.5.1 处理机管理处理机是最重要的资源,现代操作系统允许多个程序共享处理机,按照某种算法 ( 分时,
优先级 ) 交替地使用处理机 。
处理机管理包括以下几方面:
进程控制、进程同步、进程通信、进程调度 。
2009-7-24第一章 绪论 98
1.5.2 存贮管理第二重要资源 。 存贮管理要具备下列功能:
内存分配
地址映射:把程序中的逻辑地址映射为物理地址
存贮保护:使多道程序间互不干扰
存贮扩充:用辅存扩充主存,实现,虚拟存贮器,
2009-7-24第一章 绪论 99
1.5.3 设备管理最庞大,琐碎的部分,因为:
物理设备品种繁多,用法各异
各种外设能和主机并行工作
主机与各类外设速度极不匹配,级差很大
2009-7-24第一章 绪论 100
设备管理的功能
缓冲管理:为设备提供缓冲区以缓和 CPU同设备的
I/O速度不匹配的矛盾 。
设备分配
设备驱动:为设备提供驱动程序 。
设备独立性和虚拟设备
2009-7-24第一章 绪论 101
1.5.4 文件系统管理文件系统管理的功能:
文件存储空间管理 。
目录管理:为了用户方便找到他所需的文件 。
文件的读写和存取控制:存取控制就是防止文件被非法使用 。
2009-7-24第一章 绪论 102
1.6 操作系统的特性
1.6.1 并发( Concurrence)
1.6.2 共享 ( Sharing)
1.6.3 虚拟 ( Virtual)
1.6.4 异步性 ( Asynchronism)
2009-7-24第一章 绪论 103
1.6.1 并发性所谓并发是指在内存中放多道作业,在一个时间段上来看,每一道作业都能不同程度地向前推进 。 但在任何一个时间点上只能有一道占用 CPU。 与并发相关的两 个概念:
串行:在内存中每次只能放一道作业,只有它完全执行完后别的作业才能进入内存执行 。
并行,存在于有多个 CPU的环境中,在内存中放多道作业,在任一时间点上都可能有多道作业在不同的 CUP上同时执行 。
2009-7-24第一章 绪论 104
1.6.2 共享性系统中的资源可供多个并发的进程共同使用。
两种共享方式:
互斥共享方式
同时访问方式
2009-7-24第一章 绪论 105
1.6.3虚拟一个物理实体映射为若干个对应的逻辑实体--分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率
CPU-- 每个用户(进程)的 "虚处理机 "
存储器--每个进程都占有的地址空间(指令+数据+堆栈)
显示设备--多窗口或虚拟终端
2009-7-24第一章 绪论 106
1.6.3异步性操作系统必须随时对以不可预测的次序发生的事件进行响应
进程的运行速度不可预知:分时系统中,多个进程并发执行,“走走停停”,无法预知每个进程的运行推进快慢
难以重现系统在某个时刻的状态(包括重现运行中的错误)
2009-7-24第一章 绪论 107
1.7 操作系统纵览
下面让我们顺着历史轨迹纵览各个时期的操作系统
2009-7-24第一章 绪论 108
单道批处理操作系统
1,FMS( FORTRAN Monitor System,FORTRAN
监控系统)
2,IBMSYS( IBM为 7094机配备的操作系统)
2009-7-24第一章 绪论 109
IBM OS/360
1964 年 IBM 宣布推出 System/360计算机系统第一个采用小规模集成电路的主流机型
2009-7-24第一章 绪论 110
IBM System/360,庞大的软件怪兽
数千名程序员写的数百万行汇编语言代码系统自身占据了大量存储空间和一半的 CPU时间
数百万行汇编代码中有成千上万处错误
IBM不断发行新的版本试图更正这些错误每个新版本在更正老错误的同时又引入新错误
所以随着时间的流逝,错误的数量大致保持不变
2009-7-24第一章 绪论 111
MULTICS的灾难
1965年在 ARPA的支持下 MIT,贝尔实验室和通用电气公司决定开发一种,公用计算服务系统,,希望能够同时支持整个波士顿所有的分时用户。该系统称作 MULTICS
( MULTiplexed Information and Computing Service )
MULTICS设计目标是:便利的远程终端使用,
大量终端通过电话线接入计算机主机高可靠的大型文件系统;大容量的用户信息共享;存储和构造层次化信息结构的能力
2009-7-24第一章 绪论 112
MULTICS研制难度超出了所有人预料长期研制工作达不到预期目标,1969年 4月贝尔实验室退出,通用电气公司也退出了
MULTICS引入了许多现代操作系统的概念雏形,对随后操作系统特别是 UNIX的成功有着巨大的影响
2009-7-24第一章 绪论 113
UNIX
一个极为成功的操作系统
2009-7-24第一章 绪论 114
UNIX概述
多用户多任务操作系统
目前三大主流操作系统之一
跨越从 PC到巨型机范围的唯一操作系统
有许多变种与克隆
2009-7-24第一章 绪论 115
UNIX发展简史
产生,69年 AT& T公司贝尔实验室
Thompson&Ritchie,PDP-7
第二阶段( 73-79):免费扩散
第三阶段( 75- 85):商用版本的出现( 77
年)和三大主线的形成
第四阶段( 80年代后期):两大阵营和标准化
第五阶段( 90年代至今):共同面对外来竞争、两大阵营淡化
2009-7-24第一章 绪论 116
UNIX的诞生
1969年,在贝尔退出 MULTICS研制项目后,Ken
Thompson和 Dennis M,Ritchie 想申请经费买计算机从事操作系统研究,但多次申请得不到批准
项目无着落,他们在一台无人用的 PDP-7上,重新摆弄原先在 MULTICS项目上设计的,空间旅行,游戏
为了使游戏能够在 PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序,shell 和汇编程序
到了 1970年,在一切完成后,给新系统起了个同
MULTICS发音相近的名字 UNIX
1973年,UNIX用 C语言全部重写。
2009-7-24第一章 绪论 117
第二阶段( 73-79)免费扩散
73年后,UNIX迅速以许可证形式免费传播到各大学。这些大学、研究机构对 UNIX进行了深入研究、改进和移植。 AT&T又将这些改进加入到 UNIX。
众多大学免费使用 UNIX,使学生们熟悉了
UNIX,他们毕业后将 UNIX传播到各地。
2009-7-24第一章 绪论 118
第三阶段( 75- 85)商用版本的出现( 77年)和三大主线的形成
UNIX的发展导致许多公司开发自己机器上
UNIX增值商业版本。
UNIX变种大量增加。这些变种围绕 3条主线:
由 Bell实验室发布的 UNIX研究版( V1到
V10); 伯克利发布 BSD; Bell发布的 UNIX
System III和 System V。
BSD对 UNIX的发展有重要影响,许多新技术是 BSD率先引入的,TCP/IP,分页存储管理,
快速文件系统,套接字等。
2009-7-24第一章 绪论 119
第四阶段( 80年代后期)两大阵营和标准化
80年代后期,UNIX变种的增多导致了程序的不兼容性和不可移植,因此迫切需要标准化。
87年 AT&T同 SUN合作将 System V和 SUN OS统一为一个系统。其它厂商( IBM,DEC,HP等)感到了威胁,于是联合起来在 88年成立了开放软件基金会( OSF)。 作为回应 AT&T和 SUN成立了 UNIX国际( UI)。
IEEE尝试将两大阵营统一起来,制定了 POSIX标准。
在标准化的过程中,各厂商总想加入一些特性来标榜自己的“产品特色和优势”,这使得标准化没有完全成功。
2009-7-24第一章 绪论 120
第五阶段( 90年代至今)共同面对外来竞争、两大阵营淡化
80年代是 UNIX蓬勃发展的十年,进入 90年代,
Windows的发展,Linux的出现,两大阵营的争斗很快淡化下来。
2009-7-24第一章 绪论 121
UNIX发展简图
2009-7-24第一章 绪论 122
UNIX主要变种概况
2009-7-24第一章 绪论 123
UNIX评析
早期优点:
内核结构小巧精湛
接口简洁统一
功能丰富实用
用高级语言编写和好的结构导致可移植性好
源码免费开放
早期缺点:
缺乏图形界面
内核单体结构可扩充性差
现在这些优缺点有的还在,有的没有了
结构越来越庞大
源码免费开放和简单许可证形式促进了早期的普及,但也导致各变种间的不兼容
图形界面大大增强
内核仍是单体结构
源码不开放后又开始开放
2009-7-24第一章 绪论 124
CP/M 操作系统
随着大规模集成电路发展,个人计算机时代到来了,
各种类型的个人计算机和软件层出不穷
1973年 Gary Kildall看到对个人计算机操作系统的需求,设计了 CP/M操作系统
(Control Program/Microprocessor or Microcomputer)
CP/M操作系统有较好的层次结构。它的 BIOS把操作系统的其他模块与硬件配置分隔开,所以它的可移植性好,具有较好的可适应性和易学易用性
到了 1981年,CP/M操作系统成为世界上流行最广的 8
位操作系统之一
2009-7-24第一章 绪论 125
微软 MS DOS
个人计算机的成功,逼得 IBM采取紧急战略行动,决定要在 1980年尽快生产出微型计算机,以应付挑战
但没有操作系统不行。要想快就是找现成系统配套,
IBM公司洽谈 CP/M操作系统不顺利,机遇落到了微软公司
在关键时刻,开发新操作系统时间和人手上已经不可能,微软找到西雅图计算机产品公司,达成由微软经销西雅图计算机产品公司的 QDOS操作系统的协议
当时西雅图公司并不知道 QDOS将被转卖给 IBM,否则历史将会怎样演变,谁也无法知晓
2009-7-24第一章 绪论 126
IBM在 1981年推出个人计算机,宣布了 DOS操作系统
随着 IBM PC和 MS DOS普及,CP/M逐渐走向下坡路
MS DOS有优良的文件系统但受到 Intel x86体系结构的限制缺乏以硬件为基础的存储保护机制
它属于单用户单任务操作系统
从 1981的 1.0版到 1998年在 Windows 95/98之下的
7.0版,MS DOS历经了 16个年头
迄今仍有 MS DOS爱好者继续开发各种 DOS软件产品
2009-7-24第一章 绪论 127
拯救苹果公司的 Macintosh(MAC OS)
在推出 IBM PC机后,市场卷起一股龙卷风
IBM自己也没有料到产品会有如此巨大的成功
IBM的成功说明必有其他公司失败。甚至连苹果公司也遇到了问题,销售数量落到了兰色巨人的后面
苹果公司推出 Lisa机遭到失败,Apple III
型也遭到失败
分析家们认为,在微机市场上的战斗似乎兰色巨人要嬴了
2009-7-24第一章 绪论 128
2009-7-24第一章 绪论 129
施乐 (Xerox)Palo Alto研究中心-70年代的计算机研究思想库
世界上第一台个人计算机 Alto,1972年在这里出现
图形界面,手持鼠标,面向对象程序设计微机网络,桌面出版和激光打印等等具有先进概念和技术的原型都首次出现在这里
2009-7-24第一章 绪论 130
1979年苹果公司允许施乐公司购买一百万股的苹果公司股票作为回报,施乐公司允许苹果公司的少数人员,包括乔布斯( Jobs),在有限的时间内考察施乐公司 Palo Alto研究中心内部,并同该思想库的研究人员交谈
苹果公司对 Palo Alto研究中心内的技术大感吃惊
他们更吃惊的是,施乐公司在拥有这些宝贵技术的同时竟然什么也没有做!
2009-7-24第一章 绪论 131
对 Palo Alto研究中心这些科学家们而言,
苹果公司的人是他们第一次遇到真正理解他们技术的人
这些科学家们后来有的去了苹果公司,微软公司,有的最终创办了自己的公司
在访问的基础上,苹果决定立即开发采用这些新技术的个人计算机
苹果公司已看到,IBM PC机的技术有多么糟糕,但他们卖得又是特别的好
2009-7-24第一章 绪论 132
MAC OS,鼠标的新型个人计算机
1984年,人们看到一则广告:,What was that?”和对 Macintosh的介绍,这是配有图形界面操作系统
MAC OS和鼠标的新型个人计算机
MAC机一上市立即在市场上获得极大的成功
当年比尔,盖茨都说,这是一台他的妈妈也能使用的计算机
Macintosh把苹果公司从连续的失败中拯救出来苹果公司又开始向前发展
正是 Mac先进图形界面操作系统技术,超前 PC机若干年,造就了一批苹果的忠实追随者
2009-7-24第一章 绪论 133
一波三折的微软 Windows操作系统
1983年 10月,PC机竞争厂家的图形界面相关产品上市
面对市场压力,比尔,盖茨在 1983年 11月 10
日宣布推出 Windows操作系统
然而宣布容易,交货就不简单了,Windows
交货期的灾难,成了当年计算机界的笑柄
直到 1985年 11月 20日,Windows 1.0才正式上市
2009-7-24第一章 绪论 134
Windows的历史记录
Windows在当时微软历史上创了几个记录:延迟交货次数最多,投入开发人员最多,开发时间最长,更换主管人员最多
不过几年之后,Windows终于创造了销售成绩最佳的历史记录
1992年 4月,推出 Windows 3.1,1993年 5月,发表 Windows NT
Windows 95,Windows CE,Windows 98,
Windows 2000,Windows XP,.net
个人计算机采用 Windows占 90%以上,微软公司成了垄断 PC行业的同义词
2009-7-24第一章 绪论 135
Windows系列
2009-7-24第一章 绪论 136
基于微内核的 Mach操作系统
1975年 Rochester大学开发了 RIG 操作系统
系统设计者之一 Richard Rashid 移居到 CMU后,在
DARPA支持下,1984年开始了 Mach的开发
希望 Mach能与 UNIX兼容,运行线程,更好的进程通信机制,支持多处理机及好的虚拟存储系统
Mach第一个版本是 1986年为 VAX 11/784四 CPU多处理机发布
1988年的 Mach 2.5版包含了大量的 BSD UNIX的代码
1989年,Mach 内核中去掉了所有的 BSD UNIX的代码,
剩下了一个纯的 Mach微内核,这就是 Mach 3.0版本,它是 OSF发布的基础
2009-7-24第一章 绪论 137
Mach中采用了许多当代操作系统使用的技术,微内核、线程、进程间消息传递和面向对象的设计方法等等
在 Mach的基础上,有不少用于微处理器、多处理器以及超级计算机的操作系统和实时嵌入式操作系统陆续设计和开发出来,如 OSF/1,DCE Unix,
NeXT等等
2009-7-24第一章 绪论 138
IBM大型计算机操作系统 OS/390
90年代末期,电子商务发展刺激对计算能力的要求,导致大型机市场的再度升温
三十年的改进,IBM S/390已成为有高可靠性、可扩展性、及安全可用性的现代大型计算机系统
支持 UNIX 95标准,UNIX应用程序可在 IBM OS/390上运行
同时还可继续运行 S/390应用程序,包括 S/370上开发的应用程序
包括 TCP/IP的多种通信协议,具有高网络安全性
采用面向对象程序设计、并行处理、分布式处理以及客户机 /
服务器技术,具有较强的互操作性、可移植性与可扩展性
2009-7-24第一章 绪论 139
由于历史渊源,OS/390有不同的系统运行方式,
S/370本机模式,支持原先在 S/370运行的程序
ESA/390模式,支持到 10个 240M处理器内存和 256个通道
ESA/390 LPAR模式,系统可分成最多十个部分,每个部分有自己的 CPU,存储器和通道,且分别运行不同的操作系统,如 S/370,ESA/370 和 ESA/390等
在 PC机时代,人们曾经估计大型计算机会衰亡
IBM S/390是大型计算机复活的一个典型那么,在 21世纪的 Internet和后 PC的时代,大型机还会有什么演化,只有让时间来说明
2009-7-24第一章 绪论 140
IBM的 OS产品简介
AIX 5L,IBM RS/6000和 SP结点上的高端 UNIX
AIX,Advanced Interactive Executive
深蓝,蓝色太平洋
zOS:IBM z/900大型主机系统 64位专有 OS
前身,OS/390( S390服务器)
更早前身,MVS( S38/s370/S360大型主机系统)
VM和 VSE,S38/s370/S360大型主机系统
OS/400,IBM AS/400服务器专有 OS( 原小型机)
OS/2 Warp 4.0,IBM PS/2微机
PC DOS 7和 PC DOS 2000,IBM PC个人机
2009-7-24第一章 绪论 141
嵌入式操作系统的代表 VxWorks
VxWorks支持各种工业标准,包括 POSIX,ANSI C
和 TCP/IP网络协议
VxWorks运行系统的核心是一高效率的微内核
微内核支持各种实时功能,包括快速多任务处理,
中断支持,抢占式和轮转式调度
微内核设计减轻了系统负载并可快速响应外部事件
从只需几千字节存储器的深嵌式产品设计到复杂高端实时系统设计,开发人员有八十多个选件并可构成上百个不同的配置
2009-7-24第一章 绪论 142
VxWorks开发主机,Windows 9x,Windows NT,Sun
Solaris,SunOS,HP-UX等
支持目标微处理器,86,68k,PPC,CPU 32,i960,
SPARC,SPARCLite,SH,ColdFire,R3000,R4000,
C16X,ARM,MIPS等
在,极地登陆者,号,,深空二号,和火星气候轨道器等登陆火星探测器上,就采用了 VxWorks
VxWorks负责火星探测器全部飞行控制,包括飞行纠正、载体自旋和降落时的高度控制等,而且还负责数据收集和与地球的通信工作
目前在国内也占据嵌入式开发系统市场主要份额
2009-7-24第一章 绪论 143
Internet时代与 Free OS
自由软件介绍
Linux
其他 free OS,FreeBSD,Minix等
2009-7-24第一章 绪论 144
自由软件介绍
软件按提供方式和是否盈利可划分为三种模式,
商业软件 (Commercial software)
共享软件( Shareware)
自由软件( Freeware或 Free software)
自由软件的 自由 ( free) 有两个含义:
可 免费 提供任何用户使用?其源码 公开 和可自由修改
84年,自由软件的倡导者 Richard Stallman组织发起了 GNU计划,它的目标是创建一套完全 自由 的 操作系统
93年,Linus把 Linux奉献给了自由软件,从而使自由软件增加了一个很好的发展根基。
2009-7-24第一章 绪论 145
Linux概述
多任务多用户自由 OS
UNIX的克隆( clone)
全球用户上千万
发行套件版本
Red Hat 7.*
2009-7-24第一章 绪论 146
Linux历史
1990- 91:芬兰赫尔辛基大学计算机系大学生 Linus Torvalds
91年底,Linus在赫尔辛基大学 FTP服务器发布
93年,Linux 1.0,完全自由版权
93年底:加入公用版权协议 ( GPL)
98年开始,Linux热
2009-7-24第一章 绪论 147
Linux的特点:
①免费、源代码开放
②具有出色的稳定性和速度性能
③功能完善,尤其网络功能丰富
④硬件需求低
⑤用户程序众多(而且大部分是免费软件),
硬件支持广泛,程序兼容性好
2009-7-24第一章 绪论 148
Linux的未来
Linux受欢迎的原因:
客观原因,Linux本身成本、性能和可能性等优势
主观原因:反微软情绪
另一种声音:审慎和怀疑
业余爱好者开发
自由软件的技术支持和服务支持
Linux结构和功能上的不足
优点和优势仍占主导地位:服务器 OS市场第二
2009-7-24第一章 绪论 149
其他 free OS:FreeBSD,Minix等
FreeBSD:
免费 UNIX变种,基于 4.4BSD
基于 Intel x86平台
Minix:
UNIX的克隆
基于 Intel x86平台
荷兰阿姆斯特丹 Vrije大学国际 OS专家 Andrew S,
Tanenbaum
Other:BeOS,QNX,XINU等
2009-7-24第一章 绪论 150
操作系统领域中新的操作系统
有线电视机顶盒领域,PowerTV
移动通信领域,EPOC
掌上计算机领域,Palm OS
数字影像领域,Digita
2009-7-24第一章 绪论 151
研究中的新的操作系统
哈佛大学的 VINO,使应用得以重用内核构件
犹他州大学的 OSKit,提供构造操作系统所需的基础构件,
也提供高层次构件。 OSKit可用来构造新的 OS
MIT Exokernel,该系统只有一个极小的核。系统抽象通过 Library Operating System完成
加州大学伯克利分校 NOW集群操作系统,100台 Ultra
SPARC-I处理机集群,排名于世界最快的 200台超级计算机之内
NASA空间飞行中心 (GSFC)研制 Beowulf项目开始于 1994年,
用商业化的微型计算机,Linux和以太网等构造集群。已有世界各地的约六十个大学和研究机构在使用
2009-7-24第一章 绪论 152
国内操作系统的研制状况
60年代末至 70年代初,杨芙清院士主持我国第一台百万次集成电路计算机( 150)操作系统。
支持多道程序运行,在石油勘探领域成功应用
70年代中后期,杨芙清院士主持我国第一个全部用高级语言书写的 DJS240机操作系统 DJS200/XT2
层次管程结构模型,PCM设计方法,活跃管程结构模式
GX73多机实时操作系统( 1978年)
国防科技大学,1980年装在“远望” -I 号航天测量船上,完成了向太平洋发射运载火箭、潜水艇水下发射的测控任务;完成了我国第一颗同步地球卫星的测控、定轨、控制任务
2009-7-24第一章 绪论 153
,银河” -1 YHOS巨型机操作系统( 1983年)国防科技大学,用于 YH-1,YH-2超级计算机,用于我国的石油勘探、天气预报和核物理研究
COSIX v 1.X/2.0 国产 UNIX类操作系统(国家八五、九五重点科技攻关成果,以中软为首,联合国内 18个单位共同完成)
微内核结构,安全级别超过 B1,中文界面
嵌入式操作系统 Hopen( 女娲计划)
Linux类操作系统
2009-7-24第一章 绪论 154
思考和回顾
个人计算机的兴起,结束了 IBM的霸主地位
Internet普及,Linux的成功,极大地推动了当代操作系统的研究发展活动
据不完全统计,当前在 Internet上,有超过 100个操作系统的项目在 14个国家中进行着
一批批的程序设计员们自愿通过互联网组织成为研究小组,从事着各类操作系统的研究开发工作
2009-7-24第一章 绪论 155
在一些影响全球的操作系统的诞生和发展过程中,
大师们设计那些知名操作系统的初始动机真是各不相同的
一个操作系统成功的缘由,似乎也在于某种机遇,
往往是有心栽花花不开,无心插柳柳成阴
未来操作系统的发展是否还会是这个模式?
在 Internet时代,新概念、新思想、新原理和新技术层出不穷
谁又能预测,未来会有什么样的新型操作系统在国际互联网上问世呢!