第一章 操作系统引论-操作系统原理和实践
三课合一:1.操作系统2.UNIX基础3.UNIX编程要求学完要做到什么?从系统级上掌握分析和设计计算机操作系统的基本思路,对内核、进程、线程等核心概念具有系统级的认识与理解理解操作系统的设计原理、框架、目标、各部分的工作原理,能够从系统级上应用内核、进程、线程等核心概念对操作系统进行设计并改进等能够理解各类操作系统中的经典问题和典型应用,并搭建Linux环境Centos 6.0,开展相应的实验,
目录
作用:用户命令调用和软件调用,以及管理计算机资源,以及扩充机器
1.2.2 单道批处理系统:顺序进行单个任务的计算和IO,依次顺延任务
1.2.3 多道批处理系统:在任务A进行IO时,任务B进行计算
1.3.3 虚拟性:将硬件逻辑化,例如各种牌子的鼠标都抽象为鼠标
1.4.1 处理机管理功能:管理什么时候分配计算资源给不同进程
1.5.1 无结构操作系统:只注重部分实现与高效,无一致结构
1.5.3 分层式OS结构:通过软件到硬件的逐级分层,实现双层文件夹似的结构
三课合一:
1.操作系统
2.UNIX基础
3.UNIX编程
要求学完要做到什么?
从系统级上掌握分析和设计计算机操作系统的基本思路,对内核、进程、线程等核心概念具有系统级的认识与理解
理解操作系统的设计原理、框架、目标、各部分的工作原理,能够从系统级上应用内核、进程、线程等核心概念对操作系统进行设计并改进等
能够理解各类操作系统中的经典问题和典型应用,并搭建Linux环境Centos 6.0,开展相应的实验,实现这些经典问题及应用
理解计算机操作系统的关键功能,并搭建Linux环境Centos 6.0,开展相应的实验,实现这些关键功能, 培养系统能力和解决复杂工程问题的能力
教材
计算机操作系统,汤小丹、汤子瀛等,西安电子科技大学出版社(第四版)
Linux操作系统应用编程,刘玓、陈佳、肖堃、丁熠,人民邮电出版社
目录
第一章 操作系统引论
第二章 进程管理
第三章 处理器调度与死锁
第四章 存储器管理
第五章 输入输出系统
第六章 文件及文件系统
第七章 UNIX/Linux系统入门
第八章 文件操作与权限管理
第九章 进程运行与监控
第十章 Shell的交互功能与Shell程序设计
第十一章 操作系统接口与应用开发
第十二章 线程与线程控制
第一章操作系统引论
引例:操作系统在做什么?
- 用户执行程序,告诉OS执行hello程序
- OS找到hello.exe
- OS检查程序首部,找到正文和数据的地址
- 文件系统找到第一个磁盘块
- 父进程创建一个新的子进程,执行hello程序
- OS需要将执行文件映射到进程结构
- OS设置CPU上下文环境,跳转到程序开始处
- 程序的第一条指令执行,失败—缺页中断
- OS分配一页内存,将程序代码从磁盘读入内存,继续执行后续的缺页中断程序
- 程序执行系统调用,在文件描述符中写一字符串
- OS检查字符串位置是否正确
- OS找到字符串被送往的设备
- OS将字符串送给终端进程(设备是一个伪终端,由一个进程控制)
- 进程告诉窗口系统它要显示字符串
- 窗口系统确定这是一个合法的操作,然后将字符串转换成像素
- 窗口系统将像素写入存储映像区
- 视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
- 显示器发射电子束(CRT显示器)
- 用户在屏幕看到“hello world”
你知道哪些操作系统的名字?
什么是OS操作系统?
操作系统定义:操作系统是一组控制和管理计算机软硬件资源、合理地对各类作业进行调度以及方便用户使用的程序集合
1.1 操作系统的目标和作用
目标:方便性、有效性、可扩展性、开放性
方便性:操作系统使计算机更易于使用。
有效性:操作系统允许以更有效的方式使用计算机系统资源。
提高系统资源利用率
提高系统的吞吐量
可扩展性:在操作系统中,允许有效地开发,测试和引进新的系统功能。
开放性:实现应用程序的可移植性和互操作性,要求具有统一的开放的环境。
作用:用户命令调用和软件调用,以及管理计算机资源,以及扩充机器
OS作为用户与计算机硬件系统之间的接口
●计算机用户需要的用户命令 :由OS实现的所有用户命令所构成的集合常被人们称为OS的Interface(用户接口);有时也称为命令接口。
命令的表示形式:
字符形式:较灵活但因繁琐而难记;
菜单形式:试图在字符终端上提供友好的用户界面
图形形式:因直观而易记但不灵活。
●应用软件需要的System Call(系统调用):由OS实现的所有系统调用所构成的集合被人们称为程序接口或应用编程接口(Application Programming Interface,API)。
OS作为计算机系统资源的管理者(软硬件资源)
① 处理机管理, 用于分配和控制处理机;
② 存储器管理,主要负责内存的分配与回收;
③ I/O设备管理,负责I/O设备的分配与操纵;
④ 文件管理,负责文件的存取、共享和保护。
对于多用户系统,需要管理共享资源,避免发生冲突
操作系统的任务在相互竞争的程序之间有序地控制对硬件设备的分配
资源管理包括用以下两种不同的方式实现多路复用(共享)资源
在时间上复用:当一种资源在时间上复用时,不同的程序“轮流”实用它;例如CPU、打印机等
在空间上复用:每个客户都得到资源的一部分;例如内存、磁盘等
OS用作扩充机器
裸机:完全无软件的计算机系统。
操作系统用作扩充机器功能,使其便于使用
在裸机上覆盖管理软件,实现对设备的操作,并向上提供一组操作命令。
隐藏对设备操作的具体细节,实现对硬件操作的多个层次的抽象。
通常把覆盖了软件的机器称为扩充机器或虚机器。
1.2 操作系统的发展过程
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1、人工操作方式:穿孔卡片
一台计算机的所有资源由用户独占,降低了计算机资源利用率,人操作慢,出现了严重的人机矛盾。
缺点:
(1)用户独占全机
(2)CPU等待人工操作
输入输出:穿孔卡片
2、脱机输入输出方式
在外围计算机的控制下,实现输入输出。
主要解决了CPU与设备之间不匹配的矛盾,提高了I/O速度
1.2.2 单道批处理系统:顺序进行单个任务的计算和IO,依次顺延任务
系统对作业的处理都是成批进行的,且在内存中始终仅存一道作业运行,
运行结束或出错,才自动调另一道作业运行,故称为单道批处理系统。
1、单道批处理系统主要特征:自动性、顺序性、单道性。
2、单道批处理系统主要优点:减少人工操作,解决了作业的自动接续。
3、单道批处理系统主要缺点:平均周转时间长,没有交互能力。
1.2.3 多道批处理系统:在任务A进行IO时,任务B进行计算
一、多道程序的概念: 在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行。
多道程序带来的好处:
1、提高CPU的利用率。
2、提高内存和I/O设备利用率。
3、增加系统吞吐率。
二、多道批处理系统主要特征:
多道性、无序性、调度性(进程调度和作业调度)
三、多道批处理的主要优点:提高了资源利用率和吞吐能力
多道批处理的主要缺点:平均周转时间长,没有交互能力
四、多道批处理系统需要解决的5个问题
1、处理机管理:分配和控制CPU
2、存储器管理:内存分配与回收
3、I/O设备管理:I/O设备的分配与操纵
4、文件管理:文件的存取、共享和保护
5、作业管理:如何组织作业运行
举例:
设内存中有三道程序A、B和C,它们按A、B、C的优先次序执行。它们的计算和I/O操作时间如下表所示。
假设三道程序使用能够相同的设备进行I/O操作,即程序以串行方式使用设备,试画出单道运行和多道运行的时间关系图(调度程序的执行时间忽略不计)。在两种情况下,完成这三道程序各要花多少时间?
1.2.4 分时操作系统
一、分时系统的产生
用户需要:人机交互、共享主机、便于用户上机
二、分时系统实现中的关键问题:
及时接收:实现多个用户的信息及时接收。
及时处理:及时控制作业的运行。
三、分时系统实现的方法
简单分时系统
具有“前台”和“后台”的分时系统
多道分时系统
特点:
多路性:一个主机与多个终端相连;
独立性:彼此独立操作,互不干扰;
及时性:系统能在很短的时间得到回答;
交互性:能实现人机对话(区别于批处理系统);
典型系统:
Multics (MIT)
UNIX
Linux
1.2.5 实时系统:实时控制设备和任务一致
所谓实时系统:是计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行。
1、实时控制系统:工业控制,军事控制,医疗控制,…….
2、实时信息处理系统:航班定票,联机情报检索,…….
特点:
(1)响应及时(prompt response)
(2)可靠性高(high reliability)
二、实时任务的类型
三、实时系统的特征
1、多路性:能对多个对象进行控制。
2、独立性:独立运行,不混淆,不破坏。
3、交互性:仅限于访问系统中某些特定的专用服务程序。
4、可靠性:高可靠性,应具有多级容错防护能力。
5、及时性:不同的系统要求不一样,控制对象必须在截止时间内完成。
1.3 操作系统的基本特征
现代OS的四个基本特征:并发、共享、虚拟、异步
1、并发性(最重要的特征)
2、共享性
3、虚拟性
4、异步性
并发是最重要的特征,其它特征都以并发为前提。
考研题目:现代操作系统的两个基本特征是 ( C ) 和资源共享。
A.多道程序设计 B.中断处理
C.程序的并发执行 D.实现分时与实时处理
1.3.1 并发:相同时间间隔内多个事件发生
1. 并发——并行性和并发性,并发执行的过程。
- 并行性:是指两个或多个事件在同一时刻发生。
- 并发性:是指两个或多个事件在同一时间间隔内发生。
任务共行
- 从宏观上看,任务共行是指系统中有多个任务同时运行
- 从微观上看,任务共行是指单处理机系统中的任务并发(Task Concurrency:即多个任务在单个处理机上交替运行)
或多处理机系统中的任务并行(Task Parallelism:即多个任务在多个处理机上同时运行)。
2.引入进程
程序:静态实体
进程:系统中能独立运行并作为资源分配的基本单位,由一组机器指令、数据和堆栈等组成的独立运行的活动实体。
3.引入线程
进程作为资源分配的基本单位
线程作为独立运行和调度的基本单位
1.3.2 共享:多个进程同时调用相同资源
共享:是指系统中的资源可供内存中多个并发执行的进程共同使用。
1、互斥共享方式:
- 把在一段时间内只允许一个进程访问的资源,称为临界资源。如打印机、栈、表格等
- 系统中的临界资源可以提供给多个进程使用,但一段时间内仅允许一个进程使用,称为互斥共享方式。
2、同时访问方式:
从宏观上看,资源共享是指多个任务可以同时使用系统中的软硬件资源。
- 从微观上看,多个进程交替互斥地使用系统中的某个资源。例如磁盘。
并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件
1.3.3 虚拟性:将硬件逻辑化,例如各种牌子的鼠标都抽象为鼠标
虚拟:是指通过某种技术把一个物理实体变为(映射为)若干个逻辑上的对应物。
1.时分复用技术
虚拟处理机:分时实现
虚拟设备:SPOOLING技术
2.空分复用技术
虚拟磁盘技术:逻辑分区
虚拟存储器:虚拟存储管理实现
1.3.4 异步性:争先恐后的进程
异步性,多道程序环境下程序(进程)以异步的方式执行,每道程序在何时执行、各自执行的顺序、完成时间都是不确定的,也是不可预知的。
导致执行结果不确定,程序不可再现。
1.4 操作系统的主要功能
操作系统的主要任务:管好处理器、存储器、设备、文件、用户
为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。
操作系统应具有五方面的功能:
1、处理机管理(CPU)
2、存储器管理
3、设备管理
4、文件管理
5、用户接口。
1.4.1 处理机管理功能:管理什么时候分配计算资源给不同进程
主要功能 :按照一定的算法把处理机分配给进程(线程),并对其进行有效的管理和控制。
(1) 进程控制
(2) 进程同步和互斥
①进程互斥方式
②进程同步方式
(3) 进程通信
(4) 进程调度
1.4.2 存储器管理功能:合理分配内存,提高利用率
为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。
(1)内存分配
(2)内存保护
(3)地址映射
(4)内存扩充
1.4.3 设备管理功能:为进程配置IO设备
完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。
(1)缓冲管理:有效地缓和CPU和I/O设备速度不匹配的矛盾 ,提高CPU的利用率。
(2)设备分配:根据I/O请求,分配其所需的设备。
(3)设备处理:设备处理程序又称为设备驱动程序。
1.4.4 文件管理功能:管理文件存储空间,建立目录
对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
(1)文件存储空间的管理
(2)目录管理
(3)文件的读/写管理和保护
1.4.5 用户接口:提供接口给用户和软件
计算机用户需要的用户命令
由OS实现的所有用户命令所构成的集合常被人们称为OS的Interface(用户接口);有时也称为命令接口。
应用软件需要的System Call(系统调用)
由OS实现的所有系统调用所构成的集合被人们称为程序接口或应用编程接口(Application Programming Interface,API)。
1.5 操作系统的结构设计
操作系统是一个大型系统软件,其结构已经历了四代的变革:
第一代的OS是无结构的;
第二代OS采用了模块式结构;
第三代是层次式结构
现代OS结构是微内核结构;
传统的操作系统结构
操作系统中增加了越来越多的功能,并且随着底层硬件更高的性能,更加通用,操作系统的大小和复杂性也随着增加。
为了控制该软件的复杂性,在开发OS时,先后引入了分解、模块化、抽象和隐蔽等方法。开发方法的不断发展,促进了OS结构的更新换代。
1.5.1 无结构操作系统:只注重部分实现与高效,无一致结构
在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。
OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构,因此,有人把它称为整体系统结构。
缺陷:
设计出的操作系统既庞大又杂乱,缺乏清晰的程序结构。
编制出的程序错误很多,给调试工作带来很多困难;增加了维护人员的负担。
1.5.2 模块化OS结构:分不同模块掌管不同功能
(1)模块化结构(模块-接口法)
使用分块结构的系统包含若干module(模块);其中,每一块实现一组基本概念以及与其相关的基本属性。
块与块之间的相互关系:
- 所有各块的实现均可以任意引用其它各块所提供的概念及属性。
(2)模块化OS的优缺点
优点:
①提高了OS设计的正确性、可理解性和可维护性。
②增强了OS的可适应性。
③加速了OS的开发过程。
缺点:
① 对模块的划分及对接口的规定要精确描述很困难。
②从功能观点来划分模块时,未能将共享资源和独占资源加以区别。
1.5.3 分层式OS结构:通过软件到硬件的逐级分层,实现双层文件夹似的结构
使用分层系统结构包含若干layer(层);其中,每一层实现一组基本概念以及与其相关的基本属性。
层与层之间的相互关系:
- 所有各层的实现不依赖其以上各层所提供的概念及其属性,只依赖其直接下层所提供的概念及属性;
- 每一层均对其上各层隐藏其下各层的存在。
层次的设置时应考虑的几个因素
(1)程序嵌套。通常OS的每个功能的实现,并非是只用一个程序便能完成的,而是要经由若干个软件层才有可能完成,因此在考虑实现OS时,每个功能可能形成的程序嵌套。
(2)运行频率。将那些经常活跃的模块放在最接近硬件的层。
(3)公用模块。把供多种资源管理程序调用的公用模块,设置在最低层, 以便调用。
(4)用户接口。命令接口、程序接口以及图形用户接口。这些接口应设置在OS的最高层,直接提供给用户使用。
1、客户/服务器模式
(Client-Server Model)
优点
提高了系统的可扩展性
增强了系统的可靠性
可移植性好
提供了对分布式系统的支持
缺点
运行效率有所降低:
消息传递开销+模式切换开销
2、面向对象的程序设计技术
(Object-Orientated Programming)
1) 面向对象技术的基本概念
所谓对象,是指在现实世界中具有相同属性、服从相同规则的一系列事物的抽象,而把其中的具体事物称为对象的实例。
OS中的各类实体如进程、线程、消息、存储器等,都使用了对象这一概念,相应地,便有进程对象线程对象、 存储器对象等。
2) 面向对象技术的优点
(1) 可修改性和可扩充性。由于隐蔽了表示实体的数据和操作,因而可以改变对象的表示而不会影响其它部分, 从而可以方便地改变老的对象和增加新的对象
(2) 继承性。继承性是面向对象技术所具有的重要特性。继承性是指子对象可以继承父对象的属性,这样,在创建一个新的对象时, 便可减少大量的时空开销
(3) 正确性和可靠性。由于对象是构成操作系统的基本单元,可以独立地对它进行测试,这样,比较易于保证其正确性和可靠性,从而比较容易保证整个系统的正确性和可靠性
1.5.5 微内核OS结构:麻雀虽小、五脏俱全,小型OS
所谓微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核,它与一般的OS(程序)不同, 它更小更精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。
当前比较流行的、能支持多处理机运行的OS几乎全部都采用了微内核结构,如Mac OS,windows 2000
微内核所提供的功能
通常都是一些最基本的功能,如进程管理、低级存储器管理、中断和陷入处理、进程间通信、 低级I/O功能
微内核特点
足够小的内核。
基于客户/服务器模式
应用“机制与策略分离”原理
采用面向对象技术
作业
1、6、8、10、11、15、16、17、18
更多推荐
所有评论(0)