为什么学习操作系统?
1.加深对使用的OS的理解,有利于深入编程:用户为了开发应用程序必须与操作系统打交道;
2.编程时借鉴操作系统的设计思想和算法: 操作系统中所用的许多概念和技巧可以推广应用到其他领域;比如对JAVA虚拟机的理解
3.设计操作系统或者修改现有的系统: 嵌入式系统(Embedded OS);
课程定位
地位:计算机相关各专业的一门重要的专业技术基础课程
涉及的内容:现代操作系统变化巨大,其层次,内涵,及在应用领域、技术领域、服务领域等涉及内容很多,没有必要也不可能完全学完,高等学校《操作系统》课程还是局限于其基本原理部分。
现代操作系统不断变化
应用在变:从核心与外围都有变化,信息处理多元、海量、高速、高性能,要求越来越高——可配置,可拆卸,可剪裁,可替换
软件结构在变:重用,安装、配置;工具箱、服务组件、虚拟件等支持
硬件结构和平台在变:单核,多核,重核
OS结构、功能、性能、组件、算法、机制、接口、界面、安全等都在变化,但核心问题和核心机制没有变。
操作系统逐渐走下神坛
从监控程序→OS→组件式OS
从OS→OS工具箱→OS平台
从计算机→智能信息终端(手机、pda,嵌入式平台等)
OS原有的理论、机制与技术已经广泛应用于数据库、信息系统、移动系统…
人们对OS的理解逐渐深入,基于OS的编程和应用开发蓬勃开展
操作系统家族庞大
高端系统(大型机、阵列机…)
专用系统(实时、分布…)
桌面系统(个人通用OS)
智能终端系统(个人移动终端、手机…)
嵌入系统(智能设备、仪器…)
操作系统课程教学的层次
研究生 本科生 专科生
• OS结构 • OS原理 • OS原理适度
• OS新发展 • OS资源管理 • OS平台操作
• OS新技术 • OS系统服务 • OS系统服务
• OS组件设计 • 基于OS编程 • OS编程适度
• OS系统设计 • 主流OS案例 • 主流OS应用
操作系统课程教学的层次(IEEE,ACM)
科学型 工程型 应用型
• 并发、并行 • 并发、并行 • 原理适度
• 结构、模型 • 原理、技术 • 操作、实践
• 算法、分析 • 资源利用管理 • OS系统维护
• 设计、替换 • 服务调用编程 • OS编程适度
• 改进、优化 • 主流OS案例 • 主流OS应用
• 新结构新技术 • OS安全防护 • OS安全保护
1.1 操作系统的目标、作用和模型
1. OS的目标
方便性:用户无需了解底层硬件,无需用0、1机器语言操作。(可以说不用手,用工具,进入石器时代了。)
有效性:CPU、I/O、存储等的管理专门、合理地被组织管理起来,提高资源的利用率。
可扩充性:扩充应用软件;适应硬件和体系结构发展,扩充底层管理功能模块等。
开放性:网络环境,遵循开放互联标准。
2. OS的作用
1) 作为用户与计算机硬件系统之间的接口
* 达成了方便性的目标。*
用户通过OS来使用计算机系统。或者说,用户在OS帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。
提供三种供用户操作OS的方式,如下图:
2)OS作为计算机系统资源的管理者
* 达成有效性目标 *
处理器 ——》 处理器管理 Os
资 存储器 ——》 存储器管理 主要
源 I/O设备 ——》 I/O设备管理 管理
信息(数据和程序) ——》 文件管理 功能
3)OS用作扩充机器
* 系统软件以及更上层的用户应用软件在操作系统虚拟机上运行:计算机成为功能更强大的多层虚拟机。
* 操作系统附加在裸机上第一层,对裸机的首次扩充: “虚拟机”
* 最低层:
物理“裸机”
目标 作用
方便性: 1) 作为用户与计算机硬件系统之间的接口
有效性: 2)OS作为计算机系统资源的管理者
可扩充性: 3)OS用作扩充机器
开放性:
1.2 操作系统的发展过程
推动OS萌芽、发展、变化的主要动力:
1.方便用户
2.提高计算机资源利用率
3.硬件器件不断更新换代:8bit ->16,32
4.计算机体系结构的不断发展:单CPU,多CPU,网络
1. 人工操作方式
1946-50年代中:电子管时代,计算机速度慢,无操作系统,计算机资源昂贵;
工作方式:
用户:既是程序员又是操作员;用户是计算机专业人员;
编程语言:机器语言;
输入输出:纸带或卡片;
计算机工作特点:
用户独占全机,资源利用率极低;
CPU等待用户,计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或 卡片;CPU利用率低;
主要矛盾:
人机矛盾----人工操作严重降低了计算机资源的利用率
提高效率的途径:
脱机输入/输出技术。
2. 脱机输入/输出(Off-Line I/O)方式:
等待人工操作纸带输入数据的不是CPU,而是外围机,一定程度上解决人机矛盾。
脱机I/O方式的主要优点:
减少了CPU的空闲时间
提高I/O速度
脱机I/O方式的主要缺点:
系统开销大!
3. 单道批处理系统(Simple Batch Processing System)
作业成批、脱机方式输入到磁带或磁盘上
进一步减少脱机I/O中装卸磁带等耗时操作
系统监督程序(Monitor)控制作业自动过渡,一个接一个的连续处理。
特征:
单道性
顺序性
自动性
优点:
一定程度解决人机矛盾,CPU与I/O速度矛盾;
提高了资源利用率和系统吞吐量;
算做OS的前身,但还不是现在所理解的OS;
4. 多道批处理系统
* 一个重要思想诞生:多道程序设计 *
用户作业、外存上排队,称为“后备队列”;
作业调度程序、按一定的算法、从后备队列中选择若干作业 调入内存
入内存的作业、共享CPU和系统中的各种资源,自动批量处理。
“多道”程序有什么好处?
CPU利用率提高:减少了CPU等待时间(正在运行的程序若因为I/O操作暂停,可调度其他程序执行,不必装卸。)
内存利用率提高:容量尽可能多的被利用
多种I/O设备并发被使用,也提高了利用率
总体->系统吞吐量增加(虽然CPU总是串行的,但一段时间内被运行的作业数相对要多)
1)多道批处理系统的特征:
多道性
无序性
作业入内存由算法决定,不按提交顺序。入内存后顺序执行。
调度性
包括作业调度、进程调度
2)多道批处理系统的优缺点:
优点:
资源利用率高:CPU和内存利用率较高;
系统吞吐量大:单位时间内完成的工作总量大;
缺点:
平均周转时间长:短作业的周转时间显著增长;
无交互能力:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;
3)多道批处理系统解决的五大问题:
a.处理机管理问题
b.内存管理问题
c.I/O设备管理问题
d.文件管理问题
e.作业管理问题
操作系统是:一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度(多道),方便用户使用的程序的集合。
5.分时系统(time-sharing system)
1)分时系统的产生
用户的新需求是主要动力:
A.人—机交互
B.共享主机
C.便于用户上机
2)分时系统实现中的关键问题
交互:当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。
共享:强调即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理。
(1)及时接收:多路卡,缓冲区
(2)及时处理:终端请求作业直接进入内存,设置时间片
3)分时系统的实现方法
改变批处理系统的运行方式:
多个用户连接主机
请求的作业发送到主机后,直接进入主机内存以快速响应
系统采用时间片轮转方式处理服务请求
响应时间RT(response time)≈时间片×用户数
时间片:就是分配给进程运行的一段时间(time slice)。
4)分时系统的特征:
多路、独立、及时、交互
多路性:多个用户同时使用一台计算机,共享CPU和其他资源,充分利用系统资源。
宏观上:是多个人同时使用一个CPU
微观上:多个人在不同时刻轮流使用CPU
独立性:用户感觉不到计算机为其他人服务,各用户独立操作,互不干扰。
及时性:通过时间片技术和轮转调度算法保证及时响应。
交互性:系统及时响应用户的请求,显著提高调试和修改程序的效率:缩短了周转时间。
6. 实时系统(Real-Time System)
实时系统是指:系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时系统的引入
(1)实时控制
如:火箭发射随时停止,实时根据采集数据进行处理
(2)实时信息处理
订票系统等,短时间内为用户做出正确回答
实时系统的实现
系统必修有能够保证其承担的多个任务在规定的时间完成,调度和能力是关键。
(1)按任务执行时是否呈现周期性来划分
周期性实时任务
非周期性实时任务——截止时间
(2)根据对截止时间的要求来划分
硬实时任务
软实时任务
操作系统分类
(1)单用户OS:一次只能支持一个用户作业的运行。
(2)批处理OS:用户作业以成批的方式提交给计算机。
(3)分时OS:允许多个用户同时与计算机系统交互。
(4)实时OS:能够及时响应随机发生的外部事件,并对外部事件做出快速处理,对来自外部的请求和信号在限定的时间范围内做出响应。实时性和可靠性是其重要特点。
(5)网络OS:面向网络上多用户,提供基本的网络操作所需要的功能,如文件共享,内存管理和进程任务调度等。
(6)分布式OS:是最高级的操作系统,管理整个系统(包括网络)中的所有资源,负责所有资源的分配和调度、任务的划分和具体安排、信息传递和控制。
(7)嵌入式OS:与应用紧密结合、专用性很强、可裁剪。
分布式操作系统的主要特点是各节点的自治性;资源共享的透明性;各节点间的协同性;系统的坚定性。
分布式OS与网络OS的比较
1、分布性(控制和处理都是分布的)
分布式OS不是集中地驻留在某一个站点,而是较均匀地分布在系统的各个站点上,所以OS的处理和控制功能是分布式的。
计算机网络也具有分布处理功能,但网络的控制功能,是集中在某个主机或网络服务器中,或说控制方式是集中式的。处理是分布的。
2、并行性
分布式处理系统,具有多个处理单元,分布式OS的任务分配程序可将多个任务分配到多个处理单元上,使这些任务并行执行,从而加速了任务的执行。
计算机网络中,每个用户的一个或多个任务通常都在自己(本地)的计算机上处理,所以,在网络OS中无任务分配功能。
3、透明性
分布式OS能很好地隐藏系统内部的实现细节,如:对象的物理位置,并发控制,系统故障等,对用户都是透明的。
当用户访问某个文件时,只需提供文件名而无须知道它是驻留在哪个站点上,即可对它进行访问,即物理位置是透明的。
网络OS,也有一定的透明性,但主要是指在操作实现上的透明性。如:当用户要访问服务器上的文件时,只需发出相应的文件存取命令,而无须了解对该文件的存取是如何实现的。
4、共享性
分布式系统中,分布在各个站点上的软、硬件资源,可供全系统中的所有用户共享,并能以透明方式对它们进行访问。
网络OS也能提供资源共享,但所共享的资源大多是设置在主机或网络服务器中,而在其它机器上的资源,只能由使用该机的用户独占。
5、健壮性
分布式系统的处理和控制功能是分布的,任何站上的故障,都不会给系统造成太大的影响,并且,当某设备出现故障时,可通过容错技术实现系统重构,使系统能正常运行,所以,系统具有健壮性,即具有较好的可用性和可靠性。
网络OS中,其控制功能大多集中在主机或服务器中,使系统具有潜在的不可靠性,此外,系统的重构功能也较弱。