第1章 操作系统笔记讲解学习.docx
《第1章 操作系统笔记讲解学习.docx》由会员分享,可在线阅读,更多相关《第1章 操作系统笔记讲解学习.docx(30页珍藏版)》请在冰豆网上搜索。
第1章操作系统笔记讲解学习
第1章操作系统笔记
操作系统的定义:
操作系统(OperatingSystem,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充
1.1操作系统的目标和作用
在计算机系统上配置操作系统主要目标与计算机系统的规模和应用环境有关。
1.1.1操作系统的目标
方便性
●硬件只能识别机器代码(0、1)
●OS提供命令,方便用户使用计算机
有效性
●使CPU、I/O保持忙碌,充分利用
●使内存、外存数据存放有序,节省空间
●合理组织工作流程,改善资源利用率,提高吞吐量
可扩充性
●计算机技术的发展:
硬件/体系结构/网络/Internet
●OS应采用层次化结构,便于扩充和修改功能层次和模块
开放性
●支持网络环境,兼容遵循OSI标准开发的硬件和软件
1.1.2操作系统的作用
1.用户与计算机硬件系统之间的接口
●命令方式
用户通过键盘输入联机命令(语言)
●系统调用方式
用户程序通过系统调用,操纵计算机
●图形、窗口方式
用户通过窗口、图标等图形界面操纵计算机
2.计算机系统资源管理者
●4大类资源:
处理机;存储器;I/O设备;信息(文件:
程序、数据)
3.对计算机资源的抽象(扩充机器)
●裸机:
只有硬件的计算机,难以使用
●虚机器:
在裸机增加软件(OS等),功能增强,使用方便
1.1.3推动操作系统发展的主要动力
1.不断提高计算机资源利用率
早期计算机很昂贵,为提高资源利用率,产生了批处理系统
2.方便用户
为改善用户上机、调试程序时的条件,产生了分时系统
3.器件的不断更新换代
OS随之更新换代,如:
8位->16位->32位
4.计算机体系结构的不断发展
单处理机OS->多处理机OS->网络操作系统
1.2操作系统的发展过程
无操作系统时代
OS尚未出现,人们如何使用计算机?
人工操作方式
人工操作方式的缺点
用户独占全机
CPU等待人工操作
结果:
资源利用率低下
脱机输入输出系统
低速设备
⏹纸带机/卡片机
高速设备
⏹磁带/磁盘
⏹I/O速度提高,缓解了I/O设备与CPU的速度矛盾
主机:
用于计算的主计算机
外围机:
也是计算机,处理输入输出,使之不占用主机CPU时间
外围机控制输入/输出
⏹输入:
低速设备->高速设备
⏹输出:
高速设备->低速设备
⏹输入和输出使用独立于主机的外围机,不占用主机的CPU时间,是脱机过程,因此叫做脱机输入/输出方式
单道批处理系统
计算机发展的早期,没有任何用于管理的软件,所有的运行管理和具体操作都由用户自己承担,任何操作出错都要重做作业,CPU的利用率甚低。
解决的方法有两个:
首先配备专门的计算机操作员,程序员不再直接操作机器,减少操作机器的错误。
另一个是进行批处理,操作员把用户提交的作业分类,把一批中的作业编成一个作业执行序列。
每一批作业将有专门编制的监督程序(monitor)自动依次处理。
说明:
监督程序的作用:
用来装入用户作业,和用户作业交替地使用CPU。
“批”的含义:
供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件(系统带)。
关于“作业”的说明:
通常,把计算机完成用户算题任务所需进行的各项工作称为一道作业。
多道批处理系统
早期的批处理可能出现两种情况:
⏹对于以计算为主的作业,输入输出量少,外围设备空闲;
⏹对于以输入输出为主的作业,主机空闲。
问题的提出
在早期的单道批处理系统中,内存中仅有单个作业在运行,致使系统中仍有许多资源空闲,设备利用率低,系统性能较差。
多道程序设计技术
若当前作业因等待I/O而暂停,CPU只能空闲直至该I/O完成
对于科学计算问题,CPU操作密集,CPU浪费时间少
对于商业数据处理,I/O操作密集,I/O等待时间常占80%-90%
解决办法
将内存分几个部分,每部分放不同的作业
当一个作业等待I/O时,CPU可被另一作业使用
在主存中同时驻留多个作业
多道程序设计
多道程序设计是指允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。
合理搭配I/O为主和计算为主的程序交替运行,充分利用资源,提高系统效率。
多道程序的运行特点:
多道:
计算机内存中同时存放多道相互独立的程序。
宏观上并行运行:
同时进入系统的几道程序都处于运行状态,但都未运行完。
微观上串行运行:
各作业轮流使用CPU,交替执行。
实现技术:
当正在运行的程序因I/O暂停执行时,系统可调度另一道程序运行,使CPU保持忙碌。
例题:
有两道程序A、B,按下图以多道程序方式运行,要求在右图画出它们的运行轨迹,并计算在60ms内,CPU的利用率,假设起始时首先运行B,并允许忽略监督程序切换A、B的时间(不考虑I/O的冲突)。
分时系统
概念:
时间片、终端、响应时间
分时(TimeSharing)是把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片(TimeSlice),每个用户依次轮流使用时间片。
分时技术:
把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分配给各联机作业使用
分时系统的定义
分时操作系统:
是一种联机的多用户交互式的操作系统。
一般采用时间片轮转的方式,使一台计算机为多个终端服务。
对每个用户能保证足够快的响应时间,并提供交互会话能力。
分时系统的特点
多路性
⏹系统支持单主机多个终端,按分时原则服务
独立性
⏹各用户独立操作,互不干扰。
及时性
⏹对用户请求的响应时间短(1~3s)
交互性
⏹用户向系统提出服务请求更方便,也更广泛
⏹通过终端
实时系统
产生背景:
虽然多道批处理操作系统和分时操作系统获得了较佳的资源利用率和快速的响应时间,从而使计算机的应用范围日益扩大但它们难以满足实时控制和实时信息处理领域的需要。
于是,便产生了实时操作系统,目前典型的实时系统:
实时控制系统、实时信息处理系统。
什么是实时系统?
有高可靠性和安全性,系统的效率则放在第二位
典型的实时系统
(1)
实时控制系统:
计算机用于生产过程控制时,要求系统能现场实时采集数据,并对采集的数据进行及时处理,进而能自动地发出控制信号控制相应执行机构,使某些参数(压力、温度、距离、湿度)能按予定规律变化,以保证产品质量。
导弹制导系统,飞机自动驾驶系统,火炮自动控制系统都是实时过程控制系统。
典型的实时系统
(2)
实时信息处理系统:
计算机还可用于控制进行实时信息处理。
计算机接收成干上百从各处终端发来的服务请求和提问,系统应在极快的时间内做出回答和响应。
机票订购系统、情报检索系统是典型的实时信息处理系统
微机操作系统
1.单用户单任务OS
只允许一个用户上机,且只允许用户程序作为一个任务运行。
典型代表:
⏹CP/M
♦8位机上的主流操作系统
⏹MS-DOS
♦最早的PC操作系统
♦16位机上的主流操作系统
2.单用户多任务操作系统
只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行。
典型代表:
⏹微软公司推出的windows
3.多用户多任务OS
允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行。
典型代表:
UNIX
1.3操作系统的基本特性
以多道程序设计为基础的现代操作系统具有以下几个主要特征:
⏹并发性(Concurrence)
⏹共享性(Sharing)
⏹异步性(Asynchronism)或称不确定性(Nondeterministic)
⏹虚拟性(Virtual)
1.3.1并发性
概念:
并发、并行、进程
并发性(Concurrence)是指两个或两个以上的运行程序在同一时间间隔段内同时执行。
操作系统是一个并发系统,并发性是它的重要特征,它应该具有:
处理多个同时执行的程序的能力。
并行与并发的不同:
1并行性是指两个或多个事件在同一时刻发生
2并发性是指两个或多个事件在同一时间间隔内发生
引入进程
在多道程序系统中,为了能够并发执行,系统必须为每个程序建立进程。
⏹程序是静态的,进程是动态的。
⏹进程能支持并发,程序不能。
进程由一组机器指令、数据和堆栈组成,是一个能独立运行的活动实体。
进程是资源分配的独立单位。
多个进程能并发执行,进程运行时要占用一定的系统资源,如CPU、存储空间和I/O设备等。
1.3.2共享性(sharing)
概念:
互斥访问、临界资源、同时访问
共享指操作系统中的资源(包括硬件资源和信息资源)可被
多个并发执行的进程所使用。
发生条件
⏹多个进程并发执行
⏹多个进程需要同一资源
资源共享的方式
资源共享的方式可以分成两种:
第一种是互斥共享。
系统中的某些资源如打印机、磁带机、卡片机,虽然它们可提供给多个进程使用,但在同一时间内却只允许一个进程访问这些资源。
这种同一时间内只允许一个进程访问的资源称临界资源,许多物理设备,以及某些数据和表格都是临界资源,它们只能互斥地被共享。
第二种是同时访问。
系统中的还有许多资源,允许同一时间内多个进程对它进行访问,这里“同时”是宏观上的说法。
典型的可供多进程同时访问的资源是磁盘。
共享与并发
共享性和并发性是操作系统两个最基本的特征,它们互为依存:
⏹一方面,资源的共享是因为运行程序的并发执行而引起的,若系统不允许运行程序并发执行,自然也就不存在资源共享问题。
⏹另一方面,若系统不能对资源共享实施有效地管理,必然会影响到运行程序的并发执行,甚至运行程序无法并发执行,操作系统也就失去了并发性,导致整个系统效率低下。
1.3.3虚拟技术
虚拟是指操作系统中的一种管理技术,它是把物理上的一个实体变成逻辑上的多个对应物,显然,前者是实际存在的而后者是虚构假想的。
时分复用
⏹虚拟处理机
♦通过多道程序和分时使用CPU技术,物理上的一个CPU变成逻辑上的多个CPU
⏹虚拟设备
♦打印机
⏹若某物理设备通过时分复用虚拟为N台,则虚拟设备速度是原设备的1/N
空分复用
⏹虚拟磁盘
♦1个硬盘实体->多个逻辑卷
⏹虚拟存储器
♦虚拟存储器则是把物理上的多个存储器(主存和辅存)变成逻辑上的一个(虚存)的例子
♦内存空分复用提高内存空间利用率
♦结合时分复用,可实现在逻辑上扩大内存,使程序中远小于它的空间运行
⏹若某物理设备通过空分复用虚拟为N台,则虚拟设备占用空间是原设备的1/N
1.3.4异步性
异步性(Asynchronism)亦称不确定性,(Nondeterministic)进程以人们不可预知的速度向前推进,即进程的异步性。
在多道程序环境中,允许多个进程并发执行,由于资源有限而进程众多,进程的执行往往不是一气呵成,而是“走走停停”,其运行、暂停和完成的时间都无法确定。
a.系统中的进程何时执行?
b.何时暂停?
c.以什么样的速度向前推进?
d.进程总共要多少时间执行才能完成?
这些都是不可预知的,或者说该进程是以不确定的方式运行的,不确定性给系统带来了潜在的危险,有可能导致与时间有关的错误。
但只要运行环境相同,操作系统必须保证多次运行作业,都会获得完全相同的结果。
设计操作系统必修考虑异步性带来的问题。
\
1.4操作系统功能
操作系统有如下几个基本功能:
◆处理机管理
◆存储器管理
◆设备管理
◆文件管理
◆用户接口
(一)处理机管理
在传统的多道程序系统中,处理机的分配和运行都是以进程
为基本单位,因而对处理机的管理可归结为对进程的管理:
进程控制
⏹创建、撤销、状态转换
进程同步
⏹访问临界资源、协调合作次序
进程通信
⏹合作进程的消息交换
调度
⏹作业调度、进程调度
(二)存储器管理
存储管理的主要任务是管理存储器资源,为多道程序运行提供有力支撑。
存储管理的主要功能包括:
内存分配
⏹存储管理将根据用户程序的需要给它分配存储器资源,并在其使用完毕后回收。
内存保护
⏹存储管理要把各个用户程序相互隔离起来互不干扰,更不允许用户程序访问操作系统的程序和数据,从而保护用户程序存放在存储器中的信息不被破坏。
地址映射
⏹进程逻辑地址到内存物理地址的映射。
这样程序员无需知道自己的程序分配到内存的什么具体物理地址,仅仅知道自己的逻辑地址即可,体现了存储的无关性。
内存扩充
⏹借助虚拟存储技术,从逻辑上扩充内存,使用户感觉到比实际大的多的内存,可是更多程序并发运行。
⏹功能:
请求调入、置换
(三)设备管理
设备管理的主要任务:
1管理各类外围设备,完成用户提出的I/O请求,加快I/O信息的传送速度,发挥I/O设备的并行性,提高I/O设备的利用率;
以及提供每种设备的设备驱动程序和中断处理程序,向用户屏蔽硬件使用细节
设备管理的主要功能:
1.缓冲管理
♦缓冲区,缓和CPU和I/O速度不匹配的矛盾
♦单缓冲、双缓冲、公用缓冲
2.设备分配
♦为进程分配设备,以及设备控制器、通道
3.设备处理
♦设备驱动程序:
CPU和设备控制器之间的通信
(四)文件管理
上述三种管理是针对计算机硬件资源的管理。
文件管理则是对系统的软件资源的管理。
在现代计算机中,通常把程序和数据以文件形式存储在外存
储器上,供用户使用。
为此,OS需配置文件管理机构。
文件存储空间的管理
⏹为文件分配外存空间,提供外存利用率
⏹记录外存使用情况、分配、回收外存空间
目录管理
⏹为文件建立目录项,有效组织,按名存取
文件的读/写管理和保护
⏹向外存读取/写入数据
⏹防止文件被非法窃取或破坏—存取控制
(五)OS与用户之间的接口
1.用户接口
⏹联机接口
♦命令,用户通过和终端交互控制作业
⏹脱机接口
♦作业控制语言(JCL),用户通过作业说明书委托系统代为控制作业
⏹图形用户接口
♦用直观图标、菜单、对话框替代命令,免于单调、繁琐和记忆之累
2.程序接口
⏹供用户程序使用OS服务的系统调用
1.5操作系统的结构设计
操作系统规模庞大,结构复杂,其质量的好坏直接关系到
计算机系统能否有效可靠的运行。
从操作系统的发展过程来看,操作系统的结构有如下几种:
1.无结构OS
在早期开发操作系统时,设计者只是把他的注意力放在
功能的实现和获得高的效率上,缺乏首尾一致的设计
思想。
这种OS是无结构的,也称整体系统结构。
整个操作系统是一组过程的集合,每个过程都可以调用
任意其他过程。
优点:
程序紧凑,可有效利用内存。
缺点:
程序杂乱,错误多、维护难。
2.模块化结构OS
将OS按其功能精心地划分为若干个具有一定独立性和大
小的模块,每个模块具有某方面的管理功能;
仔细地规定好各模块之间的接口,使各模块之间能通过
该接口实现交互。
关键问题:
⏹模块的划分
⏹规定好模块之间的接口
衡量模块独立性
⏹内聚性:
模块内部的联系紧密程度
⏹耦合性:
模块之间的联系和影响程度
优点:
⏹比无结构OS,更容易设计、开发和维护,错误更少,适应性更好
缺点:
⏹接口规定难以满足实际需求
⏹模块设计决定的“无序性”
3.分层式结构OS
所谓分层结构,即是把操作系统划分为内核和若干模块(或进程)组成,这些模块(或进程)排列成若干层,各层之间只能是单向依赖关系,不构成循环。
设计任务:
⏹在目标系统An和裸机系统(宿主系统)A0之间,铺设若干层软件啊A1,A2,…,An-1,使An能通过这些层,最终在A0上运行。
设计原则:
⏹每一步都设计都建立在可靠的基础上。
⏹每一层仅能使用其底层提供的功能和服务。
⏹各层之间单向依赖,高层仅依赖相邻低层。
⏹每层可包括若干模块。
⏹对每一层精心设计和充分测试后,认为其是正确的,并且与其所有高层无关。
优点:
⏹易保证正确
♦有序,自下而上、所有设计决定建立在较为可靠的基础上
⏹易扩充、维护
♦增加、修改或替换一个层次中的模块,只要接口不变,不影响其他的层次
缺点
⏹系统效率降低了
♦层间通信,OS执行一个功能要穿越多个层次
1.5.2客户/服务器模式
组成:
⏹客户机
♦具有一定处理能力,也可向服务器请求服务
⏹服务器
♦提供服务的机器或程序
⏹网络系统
♦连接客户机和服务器
交互过程:
⏹客户发送请求消息
⏹服务器接收消息
⏹服务器回送消息
⏹客户机接收消息
优点:
⏹数据分布处理(客户机)
⏹集中管理(服务器)
⏹灵活,易扩充(客户机、服务器)
⏹易改编应用软件(客户机程序)
OS中的各种实体
⏹进程、线程、消息、存储器和文件
使用对象概念
⏹进程对象、线程对象…
使用面向对象技术开发OS的优点
⏹易重用、修改、扩展
⏹易保证正确性和可靠性
1.5.3微内核OS结构
基本概念:
⏹基于客户/服务器模式,将操作系统划分为两大部分:
微内核和多个服务器。
基本思想:
⏹内核中仅存放那些最基本的核心操作系统功能。
其它服务和应用则建立在微内核之外,在用户模式下运行。
微内核OS主要特征
1.足够小的内核
2.基于客户/服务器模式
3.应用“机制与策略分离”原理
4.采用面向对象技术
足够小的内核
现代操作系统的一个趋势是将这种把代码移到更高层次的思想进一步发展,从操作系统中去掉尽可能多的东西,而只留一个最小的核心。
微内核不是一个完整的OS,只是操作系统最基本的部分:
⏹与硬件紧密相关的
⏹较基本的功能
⏹客户和服务器的通信
基于客户/服务器模式
微内核OS最基本的部分在内核,绝大部分OS功能放在微内核外面的一组服务器(进程)中实现。
过去已成为操作系统传统的许多服务,现在成了与微内核交互的外部子系统。
服务器进程和用户进程,运行在用户态
微内核运行在核心态
为什么要区分处理机的状态?
答:
操作系统是计算机系统的最重要的系统软件,为了能正确的进行管理和控制,其本身是不能被破坏的。
为此系统应能建立一个保护环境,采用的办法就是区分处理机的状态
在系统中有两类程序在运行——
1.管理程序
2.用户程序
1.管理程序
其担负的任务是:
a.管理和控制者
b.为用户提供服务
c.负责管理和分配系统资源
2.用户程序
其担负的任务是:
a.被管理和被控制者
b.所需资源必须向操作系统提出请求
c.享受系统提供的服务
什么是处理机的态?
处理机的态——处理机的工作状态,即处理机当前正在执行哪一类程序,依此来区分处理机的状态。
计算机系统在执行上述两种不同类型的程序时,就应该有不同的权限。
而为此根据对资源和机器指令的使用权限,把处理执行时的两种工作状态分为核态和用户态。
关于“态”的几个概念
核心态(KernelMode),又称管态或系统态:
CPU执行管理程序时所处的状态。
在此状态下允许CPU使用全部资源和全部指令,其中包括一组特权指令(如涉及外设的I/O、改变处理机状态、修改存储保护的指令)。
是操作系统内核所运行的模式,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。
用户态(UserMode):
又叫目态或常态。
用户程序执行时CPU所处的状态。
在此状态下禁止使用特权指令,不能直接使用系统资源与改变CPU状态,并且只能访问用户程序所在的存储空间。
当用户程序执行时,如果需要请求操作系统服务,则必然由用户态转为核态,即由操作系统得到控制权,在核态下执行其管理程序。
服务完毕后,由核态返回用户态,继续让用户程序执行。
一道考研题
在计算机系统中,为什么要区分管态与目态?
(西安电子科技大学1999年试题)
【解答】操作系统是计算机系统中最重要的系统软件,为了能正确地进行管理和控制,其本身是不能被破坏的。
因此,系统采用了区分处理机状态的办法,为操作系统程序建立一个保护环境。
这样,用户程序只能在目态下运行,只能执行非特权指令,只能访问自己的存储区,从而保护了操作系统程序的正常运行。
应用“机制与策略分离”原理
机制:
实现某一功能的具体执行机构
⏹关注的问题:
做什么?
由什么来做?
⏹机制处于系统的基层
⏹机制通常放在微内核中
策略:
借助于某些参数和算法来实现该功能的优化。
⏹关注的问题:
具体怎么做?
⏹策略处于系统的高层
采用面向对象技术
面向对象技术作为一种先进的软件工程技术,对大型复杂系统的开发具有普遍的优越性,故广泛地应用现代OS设计。
内核虽然小,微内核OS还必须包括服务器部分,才能实现其作为操作系统应有的功能。
因此微内核OS仍然是复杂的大型系统,采用面向对象技术有益于其设计和开发。
微内核的基本功能
一般采用“机制与策略分类”的原理,将机制部分,以及与硬件紧密相关的部分放入微内核。
微内核功能:
1.进程(线程)管理
2.低级存储器管理
3.中断和陷入处理
进程(线程)管理
机制部分放入微内核,如
⏹为实现调度功能设置的进程(线程)优先级队列;
⏹从队列中取出指定优先级的进程,使其运行
⏹进程间的通信
⏹进程的切换、调度
⏹多处理机之间的同步
策略部分放入进程(线程)管理服务器,如:
⏹如何确定优先级
⏹如何修改优先级
低级存储器管理
微内核中只配置最基本的低级存储器管理机制:
⏹页表机制和地址变换机制,依赖于机器
实现虚拟存储器管理的策略放入存储器管理器中:
⏹页面置换算法
⏹内存分配和回收策略
中断和陷入处理
与硬件紧密相关,微内核部分:
⏹捕获中断和陷入事件
⏹进行相应前期处理
♦中断现场保护
♦识别中断和陷入的类型
♦将有关事件转换成消息,发给相关服务器
服务器部分:
⏹根据中断和陷入的类型,调用相应的处理程序进行后期处理。
分层结构内核和微内核结构对比
分层结构操作系统的内核很大,互相之间调用关系复杂。
微内核结构操作系统则把大量的操作系