Op e r a t in g S y s t e m
第 1章 操作系统概述
Op e r a t in g S y s t e m
1.1 操作系统的地位计算机系统由硬件和软件组成操作系统在硬件基础上的第一层软件是其它软件和硬件的接口
Op e r a t in g S y s t e m
游戏 MIS 。。。
编译器 命令解释器 网络,数据库操作系统机器语言微程序物理设备
Op e r a t in g S y s t e m
1.2 操作系统的定义操作系统是计算机系统中的一个系统软件,
是一些程序模块的集合 ——
它们能以尽量有效合理方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活,方便,有效的使用计算机,使整个计算机系统能高效的运行。
Op e r a t in g S y s t e m
有效,系统效率
(如 CPU用的充足与否)
资源利用率
(如内存,外部设备是否忙碌)
合理:
公平与否,如果不公平则回产生,死锁,或,饥饿,。
方便:
用户界面
Op e r a t in g S y s t e m
1.3 操作系统的特征并发:
在计算机系统中同时存在多个程序,
从宏观上看这些程序是同时在执行的。
从微观上讲任何时刻只有一个程序在执行,
微观上说这些程序在 CPU上轮流执行 。
并行,(与并发相同,但多指硬件支持)
Op e r a t in g S y s t e m
共享:
操作系统与多个用户的程序共同使用计算机上的资源。
操作系统特征
Op e r a t in g S y s t e m
1.4 操作系统的发展操作系统发展是随着计算机硬件技术的发展而发展的目标:充分利用硬件操作系统历史划分为 4个阶段
Op e r a t in g S y s t e m
第 0 阶段硬件非常昂贵,没有操作系统控制台 一个用户
一次完成一个功能(计算,I/O,用户思考 /反应
程序通过卡片装入
用户在控制台前调试程序
Op e r a t in g S y s t e m
工作效率非常低
每一用户都要自行编写涉及到硬件的源代码。
工作量大,难度高,易出错需要大量人力和物力。
Op e r a t in g S y s t e m
第 1 阶段硬件昂贵,人力便宜简单批处理:装入程序、运行、打印结果、撤出、再重复
用户把程序(卡片或磁带)交给负责调度的操作员(系统管理员)
常驻监控程序 自动地装入程序、运行、
撤出作业
Op e r a t in g S y s t e m
需要存储管理、重定位和保护机制
硬件使用较为高效,
但(从输出)调试困难
CPU 与 I/O 操作交叉覆盖
后期,Spool 数据到磁盘上
早期:将慢速设备转到同 CPU 相连的快速磁带驱动器上
Op e r a t in g S y s t e m
增加:缓冲,DMA,中断处理作业被送 ( spool) 到磁盘仍然是单个作业,利用率低
Op e r a t in g S y s t e m
多道程序批处理系统
在磁盘上多个作业等待运行
多道程序 - 同时运行 多个作业
- 选择若干作业准备运行( 调度 )
并装入内存( 存储管理 )
- 运行一个作业,当它等待时
(如需安装磁带,等键按下),
切换至内存中的另一个作业
Op e r a t in g S y s t e m
多道程序设计:多个用户共享系统增加:存储保护,重定位利用率高(多个作业)
有必要采用并发程序设计技术操作系统成为研究焦点:需要处理复杂性
Op e r a t in g S y s t e m
首次面对重大失败:
- MULTICS 于 1963 年开始,
直至 1969 年才发布
- IBM 的 OS/360 发布时,
带着已知的 1000 个错误
Op e r a t in g S y s t e m
早期计算机:单控制方式
- CPU负责计算,也负责传输
早期计算机的使用方式
- 一个用户独占全部资源
- 浪费,CPU与外设速度不匹配手工操作方式和高速机器之间的不匹配
Op e r a t in g S y s t e m
提高资源利用率
- 多部件并行,多任务共享通道引入:传输和 CPU相对独立中断引入:各部件的协调动作成为可能体系结构的发展可以支持 OS
多道程序运行模式
Op e r a t in g S y s t e m
第 2 阶段硬件较以前便宜,人力昂贵交互式 分时处理
一台计算机,多个便宜终端
- 所有用户可与系统立即交互
- 调试比较方便
Op e r a t in g S y s t e m
磁盘便宜,故可在线存放程序和数据
- 1 张穿孔卡片 = 100个字节
- 1 MB = 10K卡片
- OS/360 有若干英尺长度的卡片
Op e r a t in g S y s t e m
新问题
- 易于使用,提高人的生产力
- 合理的响应时间
- 引入文件系统,使用户可存取数据
Op e r a t in g S y s t e m
解决
- 需要抢占式调度以便保持适当的响应时间
- 需要避免抖动(程序在内存中过于频繁的对换)
- 需要提供适用的安全检测
Op e r a t in g S y s t e m
成功:
一群计算机迷 ( Tomson,Ritchie )
在贝尔实验室发展出了 UNIX。
(这样他们可以在一台无人使用的
DEC PDP-7 小型计算机上玩星际探险游戏)
Op e r a t in g S y s t e m
成功:
Ken Thompson,Dennis Ritchie
1983年图灵奖获得者
1999年 4月 美国国家技术金奖
Op e r a t in g S y s t e m
第 3 阶段硬件非常便宜,人力昂贵目标:
充分利用人和时间
Op e r a t in g S y s t e m
个人计算
CPU 便宜到可在每台终端上安装,
功能强大有效
- 成为大众的计算机
放弃多道程序、并发和保护机制,
使 OS 回归简单
Op e r a t in g S y s t e m
使用户再次与系统交互
增强文件系统
响应时间,保护成更为重要
Op e r a t in g S y s t e m
网络
允许不同机器很容易共享资源
- 共享,安全
Op e r a t in g S y s t e m
操作系统的历史,
变化 !
意味着技术总在改变要适应、折衷权衡
Op e r a t in g S y s t e m
1.4.3 操作系统的分类批处理操作系统(多道批处理)
分时操作系统实时操作系统个人计算机操作系统网络操作系统分布式操作系统
Op e r a t in g S y s t e m
1.4.3.1 批处理操作系统工作方式:
用户将作业交给系统操作员系统操作员将许多用户的作业组成一批作业之后输入到计算机中,在系统中形成一个自动转接的连续的作业流启动操作系统系统自动、依次执行每个作业最后由操作员将作业结果交给用户
Op e r a t in g S y s t e m
卡片早期批处理系统
IBM
1401
IBM
7094
IBM
1401
输入磁带磁带机卡片阅读机输出磁带打印机
Op e r a t in g S y s t e m
$END
$RUN
Data for program
$LOAD
Fortran program
$FORTRAN
$JOB,10,429754
Cherry Chen
典型的
FMS JOB 结构
Op e r a t in g S y s t e m
批处理操作系统特点,
多道,
(注:多道指某个作业占用 CPU,若由于某种原因暂时不用 CPU 则系统让第二个作业占用 CPU)
成批处理:
Op e r a t in g S y s t e m
批处理操作系统特点成批处理:
用户自己不能干预自己作业的运行,
一旦发现作业错误不能及时改正,
并延长开发软件时间,
所以适用于成熟的程序。
Op e r a t in g S y s t e m
Spooling系统 ( 技术 )
1961年,英国曼彻斯特大学,Atalas机
Simultaneous Peripheral Operation
On-Line
同时的外围设备联机操作 --假脱机技术利用磁盘作缓冲,将输入、计算、输出分别组织成独立的任务流,使 I/O和计算真正并行
Op e r a t in g S y s t e m
Spooling系统工作原理
- 作业进入到磁盘上的输入井
- 按某种调度策略选择几种搭配得当的作业,并调入内存
- 作业运行的结果输出到磁盘上的输出井
- 再由磁盘上的输出井将结果送到打印机
Op e r a t in g S y s t e m
批处理操作系统
- 优点:作业流程自动化效率高,吞吐率高吞吐量:
单位时间内处理作业的个数
- 缺点:无交互手段,调试程序困难
Op e r a t in g S y s t e m
1.4.3.2 分时操作系统
工作方式,
一台主机连接了若干个终端每个终端有一个用户在使用交互式的向系统提出命令请求系统接受每个用户的命令采用时间片轮转方式处理服务请求并通过交互方式在终端上向用户显示结果用户根据上步结果发出下道命令
Op e r a t in g S y s t e m
主机终端
Op e r a t in g S y s t e m
分时操作系统
时间片:
操作系统将 CPU的时间划分成若干个片段,
称为时间片,
操作系统以时间片为单位,轮流为每个终端用户服务,
每次服务一个时间片,
(其特点是利用人的错觉,使人感觉不到,)
Op e r a t in g S y s t e m
分时操作系统特点
多路性
交互性
,独占”性
及时性
Op e r a t in g S y s t e m
分时操作系统多路性:
同时有多个用户使用一台计算机宏观上看是多个人同时使用一个 CPU
微观上是多个人在不同时刻轮流使用 CPU
Op e r a t in g S y s t e m
分时操作系统交互性:
用户根据系统响应结果进一步提出新请求
(用户直接干预每一步 )
Op e r a t in g S y s t e m
分时操作系统
“独占,性:
用户感觉不到计算机为其他人服务
( OS提供虚机器,各个用户的虚机器互不干扰)
及时性
系统对用户提出的请求及时响应 。
Op e r a t in g S y s t e m
分时操作系统实现 ( 条件 ),
终端设备轮转算法会话语言一般资源独占,“滚进滚出”方法
Op e r a t in g S y s t e m
分时操作系统追求目标:
及时响应
(根据指标是响应时间 )
响应时间:
从终端发出命令到系统给予回答所经历的时间
Op e r a t in g S y s t e m
分时操作系统影响响应时间的因素:
- 机器处理能力
- 请求服务的时间长短
- 系统中连接的终端数目
- 服务请求的分布
- 调度算法(时间片的选取)
Op e r a t in g S y s t e m
通用操作系统分时系统与批处理系统结合原则:分时优先,批处理在后
“前台”:需频繁交互的作业
“后台”:时间性要求不强的作业
Op e r a t in g S y s t e m
1.4.3.3 实时操作系统分类:
第一类:实时过程控制工业控制,军事控制,,..
第二类:实时通信 ( 信息 ) 处理电讯 ( 自动交换 ),银行,飞机订票
Op e r a t in g S y s t e m
实时操作系统主要追求目标:
对外部请求在严格时间范围内作出反应
有高可靠性
完整性实时系统必须和先进的技术装备相结合
Op e r a t in g S y s t e m
1.4.3.4 个人计算机操作系统
(单用户多任务 )
计算机在某一时间内为单用户服务,
其追求目标是界面友好,
使用方便,
Op e r a t in g S y s t e m
1.4.3.5 网络操作系统它是基于计算机网络的,
是在各种计算机操作系统上,
按网络体系结构协议标准开发的软件,
包括网络管理,通讯,安全,资源共享和各种网络应用。
其目标是相互通讯及资源共享。
Op e r a t in g S y s t e m
网络操作系统网络服务应用程序通信软件
(协议支持)
单机操作系统用户应用程序局域网操作系统的结构通信软件
(协议支持)
Op e r a t in g S y s t e m
1.4.3.6 分布式操作系统它基于两种环境,
多机 (CPU)系统或网络是网络操作系统的更高级的形式,
它保持了网络操作系统的全部功能
Op e r a t in g S y s t e m
分布式操作系统,
特征,
1.是一个统一的操作系统
2.资源进一步共享
3.透明性,
资源共享,分布,用户并不知道,对用户来讲是透明的,
4.自治性,
处于分布式系统的多个主机处于平等地位
Op e r a t in g S y s t e m
网络和分布式的区别,
(1) 分布具有各个计算机间相互通讯,
无主从关系 ;网络有主从关系
(2) 分布式系统资源为所有用户共享 ;
而网络有限制地共享
(3) 分布式系统中若干个计算机可相互协作共同完成一项任务
Op e r a t in g S y s t e m
1.5 研究操作系统的几种观点
作为软件来看的观点
资源管理的观点
进程的观点
虚机器观点
Op e r a t in g S y s t e m
1.5.1 作为软件来看的观点软件的特性外在特性:
软件是种语言,是界面界面,使用方式 (命令,系统调用等 )
内在特性:
软件的结构
a.由有几部分组成
b.每个部分的功能
c.部分之间的关系
Op e r a t in g S y s t e m
1.5.2 资源管理的观点操作系统 ---资源管理者硬件资源:
CPU,内存,
外部设备 (I/O设备,外存,时钟等 )
软件资源:
硬盘上的文件,信息,
Op e r a t in g S y s t e m
管理资源
记录资源状况如 哪些资源空闲,好坏与否,被谁使用,
使用多长时间等
合理的分配资源:
静态分配策略
(在程序运行前分配,但效率不高 )
动态分配策略
(在程序运行过程中何时用资源,何时分配,
其缺点时会出现死锁 )
具体执行分配
回收资源
Op e r a t in g S y s t e m
资源管理的目的实现资源共享提高资源利用率
Op e r a t in g S y s t e m
1.5.3 进程的观点是从操作系统运行时动态的观察操作系统,
从这个观点来看:
操作系统是由某个可同时独立运行的进程和一个对这些进程进行协调的核心组成,
Op e r a t in g S y s t e m
进程:
某一特定功能的程序它是程序的一次执行过程它是有生命的,当它执行时存在,否则消失,
Op e r a t in g S y s t e m
1.5.4 虚机器观点从操作系统内部结构来看:
把操作系统分成若干层每个层完成其特定功从而构成一个虚机器,
并对上一层提供支持通过逐层功能扩充,最终完成整个操作系统虚机器而操作系统虚机器向用户提供完全功能,
完成用户请求
Op e r a t in g S y s t e m
1.5.5 提供服务在操作系统之外从用户角度来看:
操作系统为用户提供一组功能强大的、方便易用的命令或系统调用
Op e r a t in g S y s t e m
1.6 操作系统功能
CPU(进程 )管理存储管理文件管理设备管理作业管理
Op e r a t in g S y s t e m
操作系统的硬件环境操作系统在硬件之上,软件之下,直接与硬件打交道
CPU
中断系统堆栈,
通道地址映射机制存储保护设施
Op e r a t in g S y s t e m
CPU
CPU状态:
CPU状态的转换
Op e r a t in g S y s t e m
CPU指令系统两类指令,
.特权指令:允许操作系统使用,不允许一般用户使用
(如修改程序状态字 ;设置中断屏蔽:启动
I/O设备 ;清内存 ;设置时钟等 )
.非特权指令:用户均可用的
Op e r a t in g S y s t e m
CPU状态:
在 PSW中专门设置一位,它是根据运行程序使用指令权限而设置,
管态 (特态 ):能执行指令全集 (包括特权,非特权指令 ),具有改变 CPU状态的能力,操作系统在管态下运行,
目态 (普态 ):只能执行非特权指令,用户程序在目态下运行,(如果在目态下用户执行了特态指令,则产生中断,由操作系统得到控制权,而特权指令被停止,)
( 这两种状态时可转换的 )
Op e r a t in g S y s t e m
CPU状态的转换目态 --管态其转换的唯一途径是通过中断,
管态 --目态可用设置 PSW(修改程序状态字 )可实现,
Op e r a t in g S y s t e m
中断
特点,
中断系统的概念
中断源
中断类型
中断响应
中断处理
中断优先级
中断屏蔽
中断嵌套
Op e r a t in g S y s t e m
中断 概述,
中断是现代计算机系统中基本设施之一,它起着通讯联络作用,协调系统对各种外部事件的响应和处理,中断是实现多道程序的必要条件,
引入中断的目的解决主机与外设的并行工作问题提高可靠性实现多机联系实现实时控制
Op e r a t in g S y s t e m
中断定义:
CPU对系统发生的某个事件作出的一种反应,CPU暂停正在执行的程序,保留现场后自动转去进行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序,
Op e r a t in g S y s t e m
特点,
1)中断随机的
2)中断是可恢复的
3)中断是自动处理的
Op e r a t in g S y s t e m
中断系统的概念中断由软硬件协同处理中断装置,指发现中断,响应中断的硬件中断处理程序,是由软件来完成的中断系统 =中断装置 +中断处理程序
Op e r a t in g S y s t e m
中断源:引起中断发生的事件
中断寄存器:记录中断
中断字:中断寄存器的内容系统堆栈,
在内存开辟的一块区域,用于临时保存现场
Op e r a t in g S y s t e m
中断类型强迫性中断输入 /输出 (I/O)中断:主要来自外部设备通道程序性中断:运行程序中本身的中断
(如溢出,缺页中断,缺段中断,地址越界 )
时钟中断:
控制台中断:
硬件故障:
自愿性中断
Op e r a t in g S y s t e m
中断类型强迫性中断正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的 。
自愿性中断用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提供服务,有意使用,访管,指令或系统调用,使中断发生 。
Op e r a t in g S y s t e m
中断响应,
发现中断、接收中断的过程
(硬件完成)
* 发现中断源 (识别中断原因 )
* 保存现场,将中断向量推入系统堆栈
* 引出中断处理程序
Op e r a t in g S y s t e m
中断响应 具体做法,
CPU在执行每条指令后扫描中断寄存器,
查看有无中断请求。如果没有,则运行下一条指令;如果有中断请求,则通过交换中断向量引出(进入)中断处理程序,
Op e r a t in g S y s t e m
P S W PC
......
P S W P C
......
......
程序状态字 指令计数器
系统堆栈
PSW1 PC1
PSW2 PC2
PSW3 PC3
PSW4 PC4
PSW5 PC5
PC1
PC2
PC3
Op e r a t in g S y s t e m
中断处理
* 保存现场 (保存未被硬件保存的现场 )
* 识别中断具体原因
* 根据中断原因处理中断事件
* 中断返回
Op e r a t in g S y s t e m
强迫性中断事件 自愿性中断事件保存现场信息 保存现场信息取出中断码 取出访管号分析中断原因 分析何种系统调用转相应处理程序是否中断嵌套由系统恢复现场 由系统恢复现场 转低级调度程序返回上层中断 返回目态程序需要切换进程
T F
F T
Op e r a t in g S y s t e m
输入输出中断处理
1,I/O正常结束如果要继续传输,准备好数据,启动通道如果有进程等待 I/O结束,将其唤醒
2,I/O传输错误进行 I/O复执,多次不成功,通知系统操作员设备故障
Op e r a t in g S y s t e m
时钟中断处理进行系统管理及维护有关的工作:
1、进程管理
2、作业管理
3、资源管理
4、事件处理
5、系统维护
6、实现软件时钟
Op e r a t in g S y s t e m
控制台中断处理系统操作员利用控制台向系统发出中断请求:
按下控制台上某一个按纽,产生一个中断信号(相当于一个操作命令),操作系统转到相应的处理程序(与具体系统有关)。
Op e r a t in g S y s t e m
硬件故障中断处理主要工作是保存现场,并向系统操作员报告故障信息,以及估计对系统造成的破坏,对系统进行可能 的恢复。
排除故障必须有人工干预。
1、电源故障处理
2、主存故障处理内存校验线路发现奇偶校验错误或海明校验错误而引起的中断,停止相关进程的执行,向系统操作员报告错误及单元号
Op e r a t in g S y s t e m
程序性中断处理两种策略:
1、由系统处理该中断事件可能影响其它进程或操作系统
(内存访问地址越界,执行非法特权指令,
缺页,缺段等)
* 报告出错的进程号、出错位置和错误性质
* 调入段或页
Op e r a t in g S y s t e m
2、由用户处理该中断事件只影响其自身
(浮点溢出、阶码下溢、除数为零等)
如果用户程序不提供特定的处理程序,操作系统将按照标准处理方法进行处理
on <中断条件 ><中断续元入口 >
例,on devide_zero goto LA;
运行前,编译系统为每个用户生成一个中断续元入口表,规定好每个中断事件对应的表目
Op e r a t in g S y s t e m
中断事件 0:中断续元运行环境 0 中断续元入口 0
中断事件 1:中断续元运行环境 1 中断续元入口 1
中断事件 2:中断续元运行环境 2 中断续元入口 2
………………………...
中断事件 m 中断续元运行环境 m 中断续元入口 m
Op e r a t in g S y s t e m
自愿性中断处理访管指令,SVC n?
SVC:指令码
n:访管中断号(整数)
中断发生时,硬件中断装置将访管中断号送入老的程序状态字中的内中断码字段,访管中断总控程序从系统堆栈中将其取出,并根据它转入对应的服务程序。
Op e r a t in g S y s t e m
自愿性中断处理用户使用访管指令的一般形式为:
准备参数
SVC n?
取返回值根据具体访管要求约定,参数及返回值可以通过寄存器或内存传递
Op e r a t in g S y s t e m
自愿性中断处理在高级语言中一般表现为与过程调用类似的形式:
返回值 =系统调用名(参数 1,参数 2,… )
编译程序会将?翻译成?的形式,其中系统调用名对应?,不同的系统调用对应不同的整数 n。
Op e r a t in g S y s t e m
用户程序用户堆栈中断续元表中断续元运行程序中断向量处理程序硬件系统堆栈寄存器 溢出访问
PSW LA
......
LA
PSW PC
PSW1 PC1
PC1
......
RET
......
......
......,.....
......

操作系统
Op e r a t in g S y s t e m
Op e r a t in g S y s t e m
中断优先级中断优先级是由硬件规定的,系统根据引起中断事件的重要性与紧迫程度将中断源划分为若干个级别,
当有多个中断同时发生时,系统根据中断优先级决定响应中断次序,优先响应级别高的中断;
对同级中断按硬件规定次序,
Op e r a t in g S y s t e m
中断屏蔽中断发生时,CPU输出不予响应的状态,常用于必须连续运行的程序,防止任务被中断干扰,或执行处理某一类中断,防止其它中断干扰,
在 PSW中设置一个中断屏蔽位,通过设置中断屏蔽指令完成开中断与管中断来进行中断屏蔽中断嵌套在处理中断时又响应新的中断,
Op e r a t in g S y s t e m
时钟硬件时钟软件时钟
Op e r a t in g S y s t e m
硬件时钟:
某个寄存器来模拟,
(根据脉冲频率定时加 1)
绝对时钟:
绝对时间,一般不会中断,
相对时钟:
如闹钟,每隔固定时间发一次中断,
Op e r a t in g S y s t e m
晶体震荡每个脉冲使计数器减 1
用来装入计数器初值
Op e r a t in g S y s t e m
软件时钟:
做相对时钟,
(用内存单元来模拟时钟 )
Op e r a t in g S y s t e m
引入通道的目的为了使 CPU从 I/O事务中解脱出来,
同时为了提高 CPU与设备、设备与设备之间的并行度。
Op e r a t in g S y s t e m
通道定义:
独立于 CPU的专门负责数据输入 /输出传输工作的处理机,对外部设备实现统一管理,代替 CPU对输入 /输出操作进行控制,从而使输入 /输出操作可和 CPU并行操作。
Op e r a t in g S y s t e m
地址映射机制同时有多个程序在内存,
程序在内存的位置不是固定的而是随机的,
Op e r a t in g S y s t e m
存储保护设施问题的提出:
多个程序同时在同一台机器上运行,怎样才能互不侵犯?
Op e r a t in g S y s t e m
保护的目的:
防止用户程序破坏 OS
防止用户程序互相干扰
Op e r a t in g S y s t e m
保护的硬件支持:
为了保证软件程序只影响程序的内部,硬件提供两项功能
地址转换
两种状态运行
Op e r a t in g S y s t e m
CPU
Translation
Box
(MMU)
虚拟地址物理地址物理空间数据读或写
(不需转换)
现代体系结构中的地址转换
Op e r a t in g S y s t e m
code
data
heap
stack
程序 2
虚地址空间
data2
stack1
code1
heap1
code2
stack2
data1
heap2
OS code
OS data
OS heap
& stacks
程序 1
虚地址空间
code
data
heap
stack
内存地址转换
Op e r a t in g S y s t e m
地址转换,
地址空间:
一个程序可以访问的所有地址限制程序做什么可以通过限制它的访问达到
Op e r a t in g S y s t e m
看内存的两种角度:
从 CPU的角度:程序所能看到的是虚存
从存储角度:物理内存
Op e r a t in g S y s t e m
两种状态运行
操作系统中:可以做任何事 ( 核心态 )
用户程序中:限制只能访问属于它自己的空间 ( 用户态 )
划分每一地址空间,使其行为不能造成破坏
Op e r a t in g S y s t e m
应用程序标准库用户态核心态 可移动 OS层依赖于机器 OS的层硬件典型 UNIX操作系统结构