操作系统原理(汤小丹版)笔记第一章 操作系统引论

操作系统引论

操作系统的目标与作用

操作系统的目标

在计算机系统上配置操作系统,其主要目标是:方便性有效性可扩充性开放性

  • 方便性
    OS所提供的各种命令操纵计算机系统,极大地方便了用户
  • 有效性
    有效性所包含的含义是:1.提高系统资源的利用率 2.提高系统的吞吐量
  • 可扩充性
    无结构–>模块化结构–> 层次化结构
  • 开放性
    系统能遵循世界标准规范

操作系统的作用

操作系统在计算机系统中所起到的作用,可以从用户资源管理资源抽象等多个不同的角度来进行分析和讨论。

  • OS作为用户和软硬件系统之间的接口
    OS处于用户和软硬件之间,用户通过OS来使用计算机系统。
    用户可通过命令方式系统调用方式图标—窗口方式来实现与操作系统的通信。

  • OS作为计算机系统资源的管理者
    计算机系统资源可分为:处理机存储器I/O设备以及文件

  • OS实现了对计算机资源的抽象
    随着抽象系统层次的提高,抽象接口所提供的功能就越强,用户使用也越方便。

推动操作系统发展的主要动力

  • 不断提高计算机资源利用率
  • 方便用户
  • 器件的不断更新换代
  • 计算机体系结构的不断发展
  • 不断提出新的应用需求

操作系统的发展过程

195?中期,第一个简单的批处理OS出现
196?开发出多道程序批处理,不久又推出分时系统
197?-199?VLSI和计算机体系结构大发展的年代,导致了微型机、多处理系统和计算机网络的诞生和发展,相继开发出了微机OS、多处理机OS和网络OS

未配置操作系统的计算机系统

  • 人工操作方式
    用户独占全机
    CPU等待人工操作
  • 脱机输入/输出方式
    减少了CPU的空闲时间
    提高了I/O速度

单道批处理系统

  • 处理过程
    一个接一个的连续处理
    成批进行,但在内存中始终只保持一道作业,故称为单道批处理系统
  • 缺点
    系统中资源得不到充分的利用

多道批处理系统

  • 多道程序设计的基本概念
    多道程序交替地运行,提高资源利用率和系统吞吐量。
  • 多道批处理系统的优缺点
    资源利用率高
    系统吞吐量大
    平均周转时间长
    无交互能力
  • 多道批处理系统需要解决的问题
    处理机争用问题
    内存分配和保护问题
    I/O分配问题
    文件的组织和管理问题
    作业管理问题
    用户与系统的接口问题

操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

分时系统

  • 分时系统的引入
    为了满足用户对人机交互的需求。
    人机交互
    共享主机
    -分时系统实现中的关键问题
  1. 及时接收
    分时多路复用
  2. 及时处理
    作业直接进入内存
    采用轮转运行方式
  • 分时系统的特征
    多路性
    独立性
    及时性
    交互性

实时操作系统

系统的正确性,不仅由计算的逻辑结果决定,而且还取决于产生结果的时间。

  • 实时系统的类型
    工业武器控制系统
    信息查询系统
    多媒体系统
    嵌入式系统
  • 实时任务的类型
    周期性实时任务:周期性反馈激励信号
    非周期性实时任务:必须联系一个截止时间,可分为开始截止时间和完成截止时间。
    硬实时任务:系统必须满足任务对截止时间的要求
    软实时任务:也联系着一个截止时间,但是并不严格
  • 实时系统与分时系统特征的比较
    多路性
    独立性
    及时性
    交互性
    可靠性

微机操作系统的发展

最早的微机系统是配置在8位微机上的CP/M

  • 单用户单任务操作系统
    CP/M:8位操作系统、具有较好的
    MS-DOS:支持硬盘设备、采用树形目录
  • 单用户多任务操作系统
    支持多任务和扩展内存的功能。
  • 多用户多任务操作系统
    允许多个用户通过各自的终端,使用同一台机器。

操作系统的基本特性

多道批处理系统、分时系统、实时系统这三种基本操作系统都具有不同的特征,除此之外,它们还有并发共享虚拟异步四个基本特征。

并发

  • 并行性:两个或多个事件在同一时刻发生。
  • 并发性:两个或多个事件在同一时间间隔内发生。
  • 进程:在系统中能独立运行并当做资源分配的基本单位,是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。

共享

在OS环境下的资源共享或资源复用,是指系统中的资源可供内存中多个并发执行的进程所共同使用。

  • 互斥共享方式
    虽然可以提供给多个线程(进程)使用,但规定在一段时间内,只允许一个进程访问该资源。eg:打印机,磁带机
    临界资源独占资源在一段时间内只允许一个进程访问的资源。
  • 同时访问方式
    允许在一段时间内由多个进程“同时”对它们进行访问。
    并发和共享是多用户OS的两个最基本的特征。
    系统需要对资源共享实施有效管理。

虚拟

通过时分复用空分复用技术,将一条物理信道变为若干逻辑信道,使原来只能供一对用户通话的物理信道,变为能供多个用户同时通话的逻辑信道。

  • 时分复用技术
    利用某一设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。
    虚拟处理机技术
    利用多道程序设计技术,为每道程序建立至少一个进程,让多道用户并发执行。将一台物理上的处理机虚拟为多台逻辑上的处理机。
    虚拟设备技术
    将一台物理I/O设备虚拟为多台逻辑上的I/O设备。

  • 空分复用技术
    空分复用技术利用存储器的空闲分区来存放和运行其他的多道程序,以此来提高内存的利用率。

设n是某物理设备对应的虚拟逻辑设备数,分时使用情况下,每台虚拟设备的平均速度必然等于或低于物理设备速度的1/n,空分,内每台虚拟设备平均占用空间必然也等于或低于物理设备所拥有的空间的1/n。

异步

进程是以人们不可预知的速度向前推进的,此即进程的异步性。
但只要在OS中配置有完善的进程同步机制,那么即便作业经过多次运行,也都会获得相同的结果。因此异步运行方式是允许的。

操作系统的功能

引入OS的主要目的是,为多道程序的运行提供良好的运行环境,最大程度提高系统中各种资源的利用率,方便用户的使用。
在传统的OS中应具有处理机管理,存储器管理,设备管理和文件管理等基本功能,还需要向用户提供方便的用户接口。

处理机管理功能

传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位的。对处理机的管理可以归结为对进程的管理。
处理机管理的主要功能有创建和撤销进程对诸进程的运行进行协调实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程

  • 进程控制
    在多道程序环境下,为使作业能并发执行,必须每道作业创建一个或几个进程,并为之分配必要的资源。
    进程运行结束时,应立即撤销该进程,以便及时回收该进程所占用的各类资源。
    在设置有线程的OS中,进程控制还应包括一个进程创建若干个线程,以便提高系统的并发性。
    进程控制的主要功能:为作业创建进程撤销(终止)已结束的进程,以及控制进程在运行过程中的状态转换
  • 进程同步
    进程互斥方式:诸进程对临界资源进行访问时,应采用互斥方式。
    进程同步方式:相互合作完成任务的诸进程间,由同步机制对它们的执行次序加以协调。
    实现进程同步的时候,最常用的机制是信号量机制
  • 进程通信
    当一组相互合作的进程去完成一个共同的任务时,在它们之间往往需要交换信息。
    当它们处于同一计算机系统中时,通常采用直接通信方式:源程序利用发送命令直接将消息挂到目标进程的消息队列上,以后由目标检测利用接收命令从其消息队列里取出信息。
  • 调度
    作业调度
    进程调度

存储器管理功能

存储器管理的主要任务:为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用。
存储器管理功能:内存分配和回收内存保护地址映射内存扩充

  • 内存分配
    主要任务:为每道程序分配内存空间、
    提高存储器的利用率、
    适应程序和数据动态增长的需要。
    静态分配方式:作业的内存空间在装入作业时确定,在作业运行期间不允许作 业申请新的内存空间及在内存中“移动”。
    动态分配方式:允许作业在运行过程中继续申请新的附加内存空间及在内存中“移动”。

  • 内存保护
    主要任务:确保每道用户程序都仅在自己的内存空间内运行。
    不允许用户程序访问操作系统的程序和数据。
    不允许用户程序转移到非共享的其他用户程序中运行。
    设置内存保护机制,eg:设置两个界限寄存器,分别用来存放正在执行程序的上界和下界。

  • 地址映射
    地址空间内的逻辑地址与其在内存空间内的物理地址不一致。
    该功能在硬件的支持下完成。

  • 内存扩充
    借助于虚拟存储技术,从逻辑上扩充内存容量。
    内存扩充机制:请求调入功能,在仅装入部分用户程序和数据的情况下,便能启动程序运行,若发现继续运行时需要的程序和内存未装入内存,可发送请求到OS,OS将从磁盘中将所需部分调入内存。
    置换功能:内存中空间不够装入需要调用的程序和数据时,可将一部分暂时不用的程序和数据调至硬盘。

设备管理功能

主要任务:完成用户进程提出的I/O请求。
提高CPU和I/O设备的利用率,提高I/O速度。
设备管理应具有缓冲管理设备分配设备处理以及虚拟设备等功能。

  • 缓冲管理
    常见的缓冲区机制:单缓冲机制、双缓冲机制、公用缓冲池机制。
    上述缓冲区都由OS的缓冲管理机制将他们管理起来。

  • 设备分配
    根据用户进程的I/O请求,系统将现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。
    为分配出去的设备分配相应的控制器和通道。
    针对不同的设备类型而采用不同的设备分配方式。

  • 设备处理
    又称设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信。
    设备处理过程:1.检查I/O请求的合法性,了解设备状态是否是空闲的,读取有关的传递参数及设置设备的工作方式。
    2.向设备发出I/O命令,启动I/O设备完成对应操作。
    3.驱动程序能够及时响应由控制器发来的终端请求,并根据中断请求的类型,调用相应的中断处理程序进行处理。

文件管理功能

文件管理的主要任务:对用户文件和系统文件进行管理以方便用户使用,保证文件的安全性。
文件管理功能:文件空间的存储管理目录管理文件的读/写管理文件的共享与保护

  • 文件存储空间的管理
    主要任务:为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存取速度。
    数据结构用于记录文件存储空间的使用情况。
    应具有对存储空间的分配和回收功能。
  • 目录管理
    主要任务:为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名存取。
    还能实现文件共享:在外存上保留一份副本即可。
    快速的目录查询手段:提高对文件检索的速度。
  • 文件的读/写管理和保护
    文件的读写管理:
    根据用户的要求,从外存中读取数据或者将数据写入外存。
    文件保护:为了防止系统中的文件被非法窃取和破坏,在文件系统中提供有效的存取控制功能:防止未经核准的用户存取文件;防止冒名顶替存取文件;防止以不正确的方式使用文件。

操作系统与用户之间的接口

  • 用户接口
    为了便于用户直接或间接控制自己的作业,操作系统向用户提供了命令接口。
    用户可以通过该接口向作业发出命令以控制作业的运行。该接口又进一步分为联机用户接口脱机用户接口图形用户接口三种。

  • 程序接口
    为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径,程序接口由一组系统调用组成。
    每一个系统调用都是一个能完成特定功能的小程序。
    早期的系统调用由汇编语言提供,近期大部分由C提供。

现代操作系统的新功能

现代操作系统除了传统操作系统的功能外,还增加了面向安全、面向网络、面向多媒体等功能。

  • 系统安全
    保障系统安全的几个技术问题:认证技术、密码技术、访问控制技术、反病毒技术。
  • 网络的功能和服务
    OS中为支持用户联网所提供的服务:电子邮件服务、web服务等。
    应在操作系统中增加面向网络的功能,用于实现网络通信的资源管理,以及提供用户取得网络服务的手段。
    应具有:网络通信功能、资源管理功能、应用互操作功能。
  • 支持多媒体
    现代操作系统增加了处理多媒体的功能:
    接纳控制功能、实时调度、多媒体文件的传输。

OS结构设计

早期OS很小,可以由个人编写,后来需要采用工程化的方法进行编写。
软件工程方法所开发出的软件产品,应具有良好的软件质量和合理的费用,整个费用应该为用户所接受。
软件质量评价指标:功能性、有效性、可靠性、易使用性、可维护性、易移植性。
先后产生的多种操作系统的开发方法如:模块化方法、结构化方法和面向对象的方法等。
利用不同方法开发的操作系统具有不同的结构。

传统操作系统结构

  • 无结构的操作系统(第一代)
    众多的一组过程的集合。
    技巧:编制紧凑的程序,以便于有效地利用内存。
  • 模块化结构OS(第二代)
    模块化程序设计技术的基本概念
    基于分解模块化的原则来控制大型软件的复杂度。
    OS不再由众多过程构成,而是按功能精心划分为若干具有一定独立性和大小的模块。
    模块独立性
    在模块-接口法中,关键问题是模块的划分和规定好模块之间的接口。
    衡量模块独立性的标准:内聚性(模块内部各部分联系的紧密程度)、耦合性(模块间相互联系和影响的程度)。
    内聚性越高、耦合性越低,模块独立性越强。
    模块接口法的优缺点
    优点:提高OS设计的正确定、可理解性和可维护性;增强OS的可适应性;加速OS的开发过程
    缺点:模块间的接口规定很难满足实际对接口需求。
    在OS设计阶段,设计者必须做出一系列的决定,这些决定很难构成顺序,因此又称为“无序模块法”。
  • 分层式结构OS(第三代)
    将“模块-接口法”中决定顺序的无序性变成有序性。在目标系统和裸机系统之间,铺设若干层,最终能在裸机上运行,采用自底向上法来铺设这些中间层。
    优点:易保证系统的正确性;易扩充和易维护性。
    缺点:系统效率降低。

客户/服务器模式简介

客户/服务器模式可以简称C/S模式,在20世纪90年代风靡。应用于LAN、企业网、Internet提供的多种服务。

  • 客户/服务器,模式的由来、组成和类型
  1. 客户机:在一个LAN网络上连接有多台网络工作站(简称客户机)。
    每个客户机都是一个自主计算机,具有一定的处理能力,可以处理本地信息和向服务器请求服务。
  2. 服务器:通常为一台规模较大的及其,在其上驻留有网络文件系统或数据库系统等,能为网上所有用户提供一种或多种服务。
  3. 网络系统:用于连接所有的客户机和服务器,实现它们之间通信和网络资源共享的系统。
  • 客户/服务器之间的交互
    客户发送请求消息
    服务器接收消息
    服务器回送消息
    客户机接收消息
  • 客户/服务器模式的优点
    数据的分布处理和存储
    便于集中管理
    灵活性和可扩充性
    易于改编应用软件
    不足:存在着不可靠性,仅有一个服务器,配置多个服务器可改善。

面向对象的程序设计技术简介

  • 面向对象技术的基本概念
    在现实世界中具有相同属性,服从相同规则的一系列事物的抽象为对象,而把其中的具体事物称为对象的实例。
    1)对象
    在面向对象的技术中,是利用被封装的数据结构(变量)和一组对它进行操作的过程(方法)来表示系统中的某个对象的。
    对象中的变量(数据)是对外隐蔽的,因而外界不能对它直接进行访问,必须通过对象中的一组方法(操作函数)对它进行访问。
    2)对象类
    类是在对象上的抽象,对象是类的实例。对象类中定义的变量在实例中均具有具体的值。
    3)继承
    在面向对象的技术中,可以根据已有类来定义一个新的类,新类被称为子类,原来的类被称为父类。
    子类自动继承父类中定义的变量和方法,并允许子类再增加新的内容。继承特性可使定义子类变得容易。
    一个父类可以定义多个子类,也允许一个子类有两个父类或多个父类。
  • 面向对象技术的优点
    1)通过“重用”提高产品质量和生产率。
    2)使系统具有更好的易修改性和易扩展性。
    3)更易于保证系统的“正确性”和“可靠性”。

微内核OS结构# 进程的描述与控制

  • 微内核操作系统的基本概念
    1)足够小的内核
    2)基于客户/服务器模式
    3)应用“机制与策略分离”原理
    4)采用面向对象技术

  • 微内核的基本功能
    1)进程(线程)管理
    2)低级存储器管理
    3)中断和陷入处理

  • 微内核操作系统的优点
    1)提高了系统的可扩展性
    2)增强了系统的可靠性
    3)可移植性强
    4)提供了对分布式系统的支持
    5)融入了面向对象技术

  • 存在的问题
    运行效率有所降低。
    解决:可以重新把一些常用的操作系统基本功能由服务器移入微内核中。

猜你喜欢

转载自blog.csdn.net/qq_44005101/article/details/108782023