操作系统复习.docx
- 文档编号:7969991
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:51
- 大小:795.62KB
操作系统复习.docx
《操作系统复习.docx》由会员分享,可在线阅读,更多相关《操作系统复习.docx(51页珍藏版)》请在冰豆网上搜索。
操作系统复习
操作系统原理复习
操作系统是计算机系统的核心软件,它是连接计算机硬件和软件的纽带。
操作系统课程是计算机各专业的必修课和主干课之一。
它在学生的计算机专业知识结构中有着重要的地位和作用,它为学生学习以后的课程(分布式系统、操作系统设计与实现)的学习打下扎实的基础。
学生通过学习本课程应该达到以下目标:
1.掌握操作系统的基本概念、原理、技术和方法,深入了解操作系统在计算机系统中的地位及作用,以及它与硬件和其它软件之间的关系,进而了解操作系统控制整个计算机系统执行的全过程,具有操作系统的整体概念。
2.能用程序设计语言编写、调试和运行操作系统的主要算法和功能模块。
3.了解一个以上主流操作系统的实现技术,熟练掌握应用。
4.获取知识的同时,掌握学科的基本规律及研究方法,初步培养自我拓展知识和运用知识的能力。
本课程要求学生全面地了解和掌握操作系统的目标、作用和模型,从资源管理的角度领会操作系统的功能和实现过程,使学生系统科学地受到分析问题和解决问题的训练,提高运用理论知识解决实际问题的能力,鼓励并初步培养学生的研究精神和能力。
难点:
《操作系统原理》讲述操作系统核心的基本设计原理,由于不涉及具体的实现细节,学生学习起来可能会觉得比较空泛,此外,操作系统的研究是计算机领域中最活跃的分支之一,操作系统的新概念、新技术和新方法层出不穷,结合学生熟悉的主流操作系统(WindowsXP、Windows2003;UNIXSVR4、Solaris;Linux)的具体实现方案,让学生获得更多的感性认识。
针对其中一个操作系统设计一组系统、全面的实验题目,监督学生切实完成各个实验,启发学生思维,鼓励学生自主发现问题、提出自己的解决办法以及验证并评价的能力,通过实验总结和相互交流达到水平的提高。
除了讲授经典内容外,适当将国内外操作系统研究的最新成果补充到教学内容中,以充实拓宽学生视野。
时间允许也可考虑组织学生对公开源码的操作系统内核进行代码分析。
先修课程包括:
《程序设计》、《计算机组成原理》和《数据结构》
后续课程主要是:
《操作系统设计与实现》和《分布式操作系统》
平行课程:
《计算机网络》
指定教材(外文原版)
[1]WilliamStalling著、陈渝等译,操作系统:
内核与设计原理(第五版),电子工业出版社,2006年1月
教学参考书
[2]张尧学、史美林,计算机操作系统教程(第2版),清华大学出版社,2003年2月
[3]尤晋元、史美林等,Windows操作系统原理,机械工业出版社,2001年7月
《操作系统原理》讲述操作系统的基本概念、原理和方法。
从资源管理的角度来说,课程内容主要围绕操作系统的几个基本功能展开:
(1)操作系统概述:
介绍操作系统的基本概念、目标、功能、发展历史和类型、操作系统的主要成就以及现代操作系统的特点等。
(2)处理器管理:
在进程概念的基础上讨论进程描述、进程控制、进程同步和互斥、死锁、饿死、线程、处理器调度等问题。
(3)存储器管理:
讨论各种存储管理技术,包括固定分区、可变分区、简单分页、简单分段、虚拟分页、虚拟分段,包括虚拟存储技术的软硬件支持。
(4)文件管理:
讨论文件管理的各要素及实现技术,重点是文件的逻辑结构和物理结构、目录管理、磁盘空间管理、可靠性和安全性等问题。
(5)设备管理:
介绍I/O设备相关的硬件和软件原理,重点讨论数据传送控制方式、缓冲技术、磁盘调度、磁盘阵列和虚拟设备技术等。
教材实例WindowsXP、Windows2003;UNIXSVR4、Solaris;Linux在操作系统演化中位置
第一章计算机系统概述
1.1BASICELEMENTS(基本组成)
处理器、主存储器、输入、输出模块、系统总线
1.2处理器寄存器
处理器中两类寄存器的作用:
User-visibleregisters(用户能访问寄存器):
合理的使用寄存器,减少对主存引用。
Controlandregesters:
(控制和状态寄存器):
控制处理器的操作和反映出执行状态。
1.2.1用户能访问寄存器
Dataregisters(数据寄存器)
Addressregisters(地址寄存器)
Indexregister(变址寄存器)
Segmentpointer(段址寄存器)
Stackpointer(栈地址寄存器)
1.2.2ControlandStatusRegistrs(控制和状态寄存器)
Programcounter(程序计数器):
PC
Instructionregister(指令寄存器):
IR
Programstatusword(程序状态字):
PWS
1.3INSTRUCTIONEXECUTION(指令执行)
1.3.1取指令和执行指令
1.3.2I/OFunction(I/O功能)
I/O功能分两种情况:
I/O模块(例如磁盘控制器):
可以直接与处理器交换数据。
DMA模块:
可以直接与存储器交换数据。
1.4INTERRUPT(中断)
中断分类:
•程序中断:
例如溢出中断
•时钟中断:
例如,时间片到
•I/O中断:
例如,收到一个包
•硬件故障中断:
例如,掉电
•软中断:
例INT
1.4.2InterruptProcessing(中断处理)
•简单中断处理流程
•因中断引起存储器与寄存器的变化
•多中断源的处理方式:
•按顺序处理
•按优先级处理
1.4.3Multiprogramming(多道程序设计)
•一个支持Multiprogramming的系统允许多道程序同时准备运行;当正在运行的那道程序因为某种原因(比如等待输入或输出数据)暂时不能继续运行时,系统将自动地启动另一道程序运行;一旦原因消除(比如数据已经到达或数据已经输出完毕),暂时停止运行的那道程序在将来某个时候还可以被系统重新启动继续运行。
1.5THEMEMORYHIERARCHY(存储器的层次结构)
计算机存储器存在以下关系:
•存取速度越快,每一位的价格越高。
•容量越大,每一位的价格越低。
•容量越大,存取速度越慢。
处理器存取两级存储器
1级存取时间0.1us
2级存取时间1us
两级存储器的平均存取时间是关于命中率H的函数。
假设在cache中发现95%的存储器存取H=0.95,则访问一个字的平均存取时间可表示为(0.95)(0.1us)+(0.05)(0.1us+1us)=0.15us
1.6CACHEMEMORY(高速缓冲存储器)
Motivation(动机):
为了提高访问存储器的速度,在处理机和存储器之间提供一个小容量高速存储器(由寄存器构成),该存储器称为高速缓冲存储器。
有了该缓存可以大大的提高访问主存的速度.
•Cache设计
块大小:
cache与主存储器间数据交换单位。
块由小到大:
局部性原理,命中率增加
块更大:
命中率反而减少
替换算法:
减少替换出的块在将来还会被用到的可能性。
(LRU最近最少使用算法)
如果cache中某个块的内容被修改,在它被替换出cache之前写回主存储器
1.7(I/O通信技术)
•I/O操作有三种方式:
程序控制:
处理器不断地询问I/O模块的状态
中断驱动:
消除不必要的等待,但I/O与存储器之间传送数据时必须通过处理器
直接存储器存取:
移动大量数据,在开始传送和结束传送才会用到处理器。
第二章操作系统概述
2.1操作系统的基本概念
1.操作系统的历史
操作系统是计算机系统中最基本的系统软件,它是随着计算机研究和应用的发展而逐步形成并发展起来的。
通常,人们按照计算机元件工艺的演变过程将计算机硬件的发展划分为四个时代:
电子管时代、晶体管时代、集成电路时代和大规模集成电路时代。
对应地,人们也将操作系统的发展过程划分为:
串行(手工)操作阶段,单道批处理时代,多道批处理时代,分时、实时,通用系统时代,进一步发展的个人计算机,嵌入式,网络和分布式系统时代等。
2.操作系统的定义
在计算机系统中,操作系统位于硬件和用户之间,一方面它能向用户提供接口,方便用户使用计算机;另一方面它能管理计算机软硬件资源,以便合理充分地利用它们。
由此,我们可以定义操作系统:
操作系统是控制和管理计算机软硬件资源,以尽量合理有效的方法组织多个用户共享多种资源的程序集合。
2.2操作系统的功能
从资源管理的角度看,操作系统也即资源管理系统,它具有五大功能。
1·进程管理
进程是指程序及其数据在计算机上的一次运行。
在计算机系统内部,进程不仅是独立的运行实体,要独立争夺资源,而且是构成系统的基本细胞,它能确切地反映操作系统的内在本质与特征,尤其是动态和并发的特征。
因此,进程的控制与管理是操作系统的基本任务。
进程管理的主要任务是按照某种原则为进程分配资源。
2·存储管理
存储管理主要是管理内存资源。
由于操作系统的重要目标之一是提高计算机的利用率,而提高计算机利用率的根本途径是采用多道程序设计技术,因此必须合理地管理存储空间,使尽量多的作业能够同时存放于主存,竞争CPU,保证CPU和I/0设备足够繁忙。
并且,在用户程序较大时,还要考虑内存的扩充问题,即把主、辅存统一起来管理,把程序的一部分调入内存,另一部分仍留在外存中,程序可以在内、外存之间互换,为用户提供一个容量比实际大得多的虚拟存储器,以保证大程序的运行。
3·设备管理
计算机外部设备的种类繁多,功能差异很大,管理困难,而外设的投资通常占整个系统投资的50,80。
因此管理好整个系统的设备,使其高效地发挥功用是操作系统的重要任务。
设备管理的主要任务是按照硬件1/0子系统的结构和设备类型制定分配和使用设备的策略;为请求1/0操作的进程分配一条传输信息的通路;合理地控制1/O操作过程,最大程度地实现并行操作。
4·文件管理
计算机系统中大量信息总是以文件形式保存在外存储器上。
操作系统必须向用户提供快速、有效、合理地存取这些数据的手段。
文件管理的主要任务是有效管理文件的存储空间,合理组织和管理文件系统的目录,支持对文件的存储、读写操作,解决文件信息的共享、保护及访问控制等。
5·用户接口
操作系统还为用户提供使用计算机的两种方式:
一种是程序一级的接口,提供一组广义指令(或称为系统调用)供用户程序调用。
另一种是作业一级的接口,提供一组操作命令供用户自己作业运行。
如何更好理解操作系统的功能可以通过HelloWorld的实例进行阐述:
1.用户告诉操作系统执行程序
2.操作系统找到该程序,检查其类型
3.检查程序首部,找出正文和数据的地址
4.文件系统找到第一个磁盘块
5.父进程需要创建一个新的子进程,执行程序
6.操作系统需要将执行文件映射到进程结构
7.操作系统设置CPU上下文环境,并跳到程序开始处
8.程序的第一条指令执行,失败,缺页中断发生
9.操作系统分配一页内存,并将代码从磁盘读入,继续执行
10.更多的缺页中断,读入更多的页面
11.程序执行系统调用,在文件描述符中写一字符串
12.操作系统检查字符串的位置是否正确
13.操作系统找到字符串被送往的设备
14.设备是一个伪终端,由一个进程控制
15.操作系统将字符串送给该进程
16.该进程告诉窗口系统它要显示字符串
17.窗口系统确定这是一个合法的操作,然后将字符串转换成像素
18.窗口系统将像素写入存储映像区
19.视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
20.显示器发射电子束,你在屏幕上看到“Helloworld”
2.3操作系统的特征
1.并发性
几道程序开始各自的运行,但都未运行完毕。
单cpu,微观上串行交替执行,宏观上并发
2.共享性
由于操作系统具有并发性,整个系统的软、硬件资源不再为某个程序所独占,而是由许多程序共同使用,即许多程序共享系统中的各种资源。
并发性和共享性相辅相成,是操作系统的两个基本的特征。
3·不确定性
在多道程序设计中,由于运行环境的影响,程序的运行时间、运行顺序及同一程序或数据的多次运行结果等均具有不确定性。
4·虚拟性
"虚拟"是指把一个物理上的客体变为若干个逻辑上的对应物。
分时系统若干终端用户分时使用一台主机,好像每人独占了一台计算机;虚拟存储器使得主存为1MB的计算机可以运行总容量为5MB以上的程序。
这些都体现了操作系统的虚拟性。
2.4操作系统的分类
随着计算机硬件及其应用的不断发展,操作系统的类型也逐渐多样化,如何对这些操作系统进行分类取决于分类的方法,即所依据的标准。
下面列出了三种分类方法。
按用户、任务数目分为:
单用户单任务MSDOS;单用户多任务Windows、OS/2;多用户多任务Unix、Linux
按硬件结构分为单CPU操作系统、多CPU操作系统、网络操作系统、分布式操作系统
*按使用环境分为批处理操作系统、分时操作系统和实时操作系统。
目前最常用的分类方法是按操作系统的使用环境来分类的,由于使用环境不同,批处理操作系统、分时操作系统和实时操作系统的功能和结构也明显不同。
下面将重点分析这三类操作系统的特点。
1.批处理操作系统
批处理操作系统也称为作业处理系统。
在批处理系统中,操作人员将作业成批地装入计算机中,由操作系统在计算机中某个特定磁盘区域(一般称为输入井)将其组织好并按一定的算法选择其中的一个或几个作业,将其调入内存使其运行。
运行结束后,把结果放人磁盘"输出井",由计算机统一输出后交给用户。
批处理操作系统有如下两个重要特点:
(1)脱机。
用户提交了作业后就像脱离了计算机,不必直接控制计算机,一切按作业说明书的指示行动,使其交互性较差。
(2)成批。
由于没有人工干预,操作系统可以从输人作业中选择适当的一批作业运行,达到系统资源的最大利用率和最大的吞吐能力。
由于其吞吐能力大,资源利用率高,批处理操作系统往往用在大型计算机中心,针对大型的科学计算或事务处理。
(3)多道程序运行。
多道程序设计的调度原则,从后备作业中选取多道作业进入内存。
2·分时操作系统
在分时操作系统中,一台计算机与多台终端设备相连接,多终端上的用户可以同时使用计算机,计算机在操作系统控制下轮流为每个终端用户服务,由于CPU速度比人在终端上拍人控制命令的速度快得多,使得每个用户就好像独占计算机一样。
在协调用户分享CPU时,操作系统通常采用"时间片轮转法"分配计算机的CPU,"时间片轮转"原则即系统规定一个被称为"时间片"的时间单位,所有终端用户轮流享用一个时间片的CPU时间。
分时系统具有如下几个基本特点:
(1)多用户同时性:
从客观上看,若干用户同时使用计算机,虽然在微观上是计算机轮流服务。
(2)交互性:
用户通过终端向主机发出请求,并根据主机的响应结果再向系统发出请求,直至得到满意的结果。
(3)独立性:
每个用户使用各自的终端与主机交互,感觉不到其它用户的存在,好像独立使用计算机。
分时系统主要用于软件开发和运行较小的程序。
因为在这种环境下用户大部分时间都在思考,不会长期连续地占用CPU,以利于其他用户使用。
3·实时操作系统
实时可以理解为立即、及时的意思,是指汁算机的运算和处理时间与被控过程或事务处理所需的真实时间相适应。
面向这类实时应用的计算机系统称为实时系统。
实时系统可分为两类:
(1)硬实时系统即实时控制系统:
主要用于军事和工业控制领域,计算机及时测量出被控系统的各种数据,并及时作出处理。
这种实时操作系统响应速度快、可靠性高。
(2)软实时系统即实时事务处理系统:
主要用于诸如飞机订票系统、银行管理系统等方面。
在这种应用中,计算机要能对用户的服务请求及时作出回答,并能及时修改、处理系统中的数据。
实时系统具有以下特点:
(1)实时时钟。
实时系统一般具有高精度的实时时钟,它能及时地响应外部文件的请求,并在严格规定的时间内完成对该文件的处理,控制实时设备和实时任务协调一致地还行。
(2)连续的人机对话。
(3)高可靠性。
这是实时系统的主要设计目标之一。
为了提高实时系统的可靠性,软硬件都必须采取相应的措施加以保证。
(4)较强的过载防护能力。
在支持多任务的实时系统中,实时任务启动的数目在某些时刻超出系统的处理能力时,系统要通过相应的措施(比如延迟或丢弃不重要的任务)来保证实时性强的重要任务能及时处理。
2.5操作系统的结构设计
1·模块结构:
思想:
来源于服务功能观点,而不是资源管理的观点
优点:
具有一定灵活性,在运行中的高效率
缺点:
功能划分和模块接口难保正确和合理;模块之间的依赖关系,降低了模块之间相对独立性,不利于修改
2·层次结构:
目的:
要清除模块接口法的缺点就必须减少各模块之间毫无规则地相互调用、相互依赖的关系,特别是清除循环调用、递归调用现象
方法:
操作系统的所有功能模块按功能的调用次序分别排列成若干层(单向依赖或单向调用)
分层的原则:
1公共模块底层:
缓冲区队列、堆栈
2被调用放在低层:
设备驱动程序
3与机器密切相关最底层:
中断、输入输出管理(BIOS)
4资源管理分配策略外层:
便于修改
5键盘命令解释程序外层:
可变部分
3·微内核与单体内核(争论焦点)
单体内核(大多Unix、Linux):
由大内核提供包括调度、文件系统、网络、设备驱动程序、存储等,作为一个进程来实现,共享相同地址空间
微内核(Windows改进微内核):
给内核分配低级存储管理、进程间通信和I/O、中断等基本功能。
其他由运行在用核外户模式下与应用程序类似的进程提供。
两种机器状态:
用户态和核心态;它们的转换:
通过系统调用或访管指令进入到OS内核运行
传统的UNIX:
膨胀的、非模块化的内核
现代的UNIX:
模块化更好的结构
LINUX:
可加载模块化结构
WindowsXP/2003:
改进的微内核+分层
2.6Windows2000/XP的构成
用户态
系统支持进程
1.Idle进程
2.系统进程
3.会话管理器SMSS
3.Win32子系统CSRSS
4.登录进程WINLOGIN
5.本地安全身份验证服务器LSASS
6.服务控制器SERVICES及其相关的服务进程
服务进程
1.spoolsv.exe缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
2.service.exe用于管理启动和停止服务
3.winmgmt.exe是win2000客户端管理的核心组件。
透过WindowsManagementInstrumentationdata(WMI)技术处理来自应用客户端的请求
4.Svchost进程提供很多系统服务,系统服务是以动态链接库(dll)形式实现的,由svchost调用相应服务的动态链接库来启动服务
环境子系统
1.环境子系统是用户模式进程,建立在windows执行体服务程序之上。
Windows得以运行其他操作系统开发的程序。
2.将基本的执行体系统服务的某些子集以特定的形态展示给应用程序,函数调用不能在不同子系统之间混用,因此每一个可执行的映像都受限于唯一的子系统
3.三种环境子系统:
POSIX、OS/2和Win32(OS/2只能用于x86系统)它们提供api
4.Win32子系统必须始终处于运行状态,其他两个子系统只是在需要时才被启动,Win32子系统是Windows2000/XP运行的基本条件之一。
应用程序
Win32、Windows3.1、MS-DOS、POSIX或OS
系统动态链接库
服务进程和应用程序是不能直接调用操作系统服务的,它们必须通过子系统动态链接库(subsystemDLLs)和系统交互。
子系统动态链接库的作用就是将文档化函数(公开的调用接口)转换为适当的Windows2000/XP内部系统调用
核心类组件包括以下内容:
①核心(kernel.)包含了最低级的操作系统功能,例如线程调度、中断和异常调度等,
②执行体包含了基本的操作系统服务,例如内存管理器、进程和线程管理、安全控制、及进程间的通信;
③硬件抽象层(HardwareAbstractionLayer,HAL)将内核、设备驱动程序以及执行体同硬件分隔开来,使它们可以适应多种平台;
④设备驱动程序(DeviceDrivers)包括文件系统和硬件设备驱动程序等,其中硬件设备驱动程序将用户的I/0函数调用转换为对特定硬件设备的I/0请求;
⑤图形引擎包含了实现图形用户界面(GraphicalUserInterface,GUl)的基本函数。
Windows2000/XP的可移植性
1.分层的设计,底层部分被隔离在单独的模块之中,系统的高层可以被屏蔽在千差万别的硬件平台之外。
提供操作系统可移植性的两个关键组件是HAL和内核。
2.Windows2000/XP几乎全部使用高级语言写成——执行体、实用程序和设备驱动程序都是用C语言编写的,图形子系统部分和用户界面是用C++编写的。
只有那些必须和系统硬件直接通信的操作系统部分(如中断陷阱处理程序),或性能极度敏感(如描述表切换)的部分是用汇编语言编写的。
汇编语言代码主要分布在内核及HAL中,极少量分布于执行体的少数区域(例如实现互锁指令的执行体例程)、Win32子系统的核心部分和少数用户态库中,例如在NTDLL.DLL中的进程启动代码。
Windows2000/XP的对称多处理的支持
Windows2000/XP支持“对称多处理”(SMP)。
在SMP中不存在主处理器——操作系统和用户线程能被安排在任一处理器上运行;所有的处理器共享一个内存空间。
这种模型与“非对称多处理”(ASMP)形成对比,后者只能在某个特定处理器上执行操作系统代码,而其他处理器只能运行用户代码。
Windows2000/XP能在多个处理器上运行,在不同的处理器中,每一个线程基本上都可以同时执行。
执行体包含下列重要的组件
1)I/0管理程序
2)对象管理程序
3)安全访问监控程序
4)进程/线程管理程序
5)本地过程调用
6)虚拟存储器管理程序
7)Cache管理程序
8)窗口/图形模块
第三章进程描述和控制
操作系统曾被描述为管理资源的一组程序的集合,实际上这是一种静态的观点,为了认识操作系统动态活动的内在本质,从而引出了新的概念——进程。
本章主要讨论进程的控制和调度,有关并发进程以及进程通信和死锁的问题。
随着多道程序设计技术的引人,程序运行的环境发生了巨大变化,即在该环境下可实现资源共享和程序并发执行。
而在单道系统中,代表程序顺序执行过程的程序已不足以描述程序并发执行的动态特点,从而引人了进程的概念。
程序的顺序执行的特点:
顺序性;封闭性;可再现性
多道程序系统中程序执行环境特点:
独立性;随机性;异步性;不确定性;资源共享—失去可再现性
理论基础:
两相邻语句并发执行的条件:
Bernstein条件
将程序中任一语句Si划分为两个变量的集合R(Si)和W(Si)。
其中
R(Si)={a1a2…am}表示Si在执行期间所有引用变量的集合;
W(Si)={b1b2…bn}表示Si在执行期间要改变值的全部变量;
①R(S1)∩W(S2)={∮}
②W(S1)∩R(S2)={∮}
③W(S1)∩W(S2)={∮}
同时成立,则语句S1和S2是可以并发执行的
计算量大,一般不提倡——解决方法:
临界区的使用
进程是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动,其具有以下基本特征:
(1)动态特征:
进程是程序的一次执行过程,它有从"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)