第一章:操作系统引论(汤小丹版操作系统笔记) 超全超详细!!!

文章目录

    • 第一章:操作系统引论
      • 1.1操作系统目标和作用
        • 1.1.1操作系统目标
        • 1.1.2操作系统的作用
        • 1.1.3推动操作系统的主要动力
      • 1.2操作系统的发展过程
        • 1.2.1未配置操作系统的计算级系统
        • 1.2.2单道批处理系统
        • 1.2.3多批道处理系统
        • 1.2.4分时系统
        • 1.2.5实时系统
        • 1.2.6微机操作系统的发展
      • 1.3操作系统的基本特性
        • 1.3.1 并发
        • 1.3.2 共享
        • 1.3.3 虚拟
        • 1.3.4 异步
      • 1.4操作系统的主要功能
        • 1.4.1处理机管理功能
        • 1.4.2存储器管理功能
        • 1.4.3设备管理功能
        • 1.4.4文件管理功能
        • 1.4.5操作系统与用户之间的接口
        • 1.4.6现代操作系统的新功能
      • 1.5 OS结构设计
        • 1.5.1 传统操作系统结构
          • 1.5.1.1 无结构操作系统
          • 1.5.1.2模块化结构OS
          • 1.5.1.3分层式结构OS
        • 1.5.2微内核OS结构

第一章:操作系统引论

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

1.1操作系统目标和作用

1.1.1操作系统目标

1.方便性 2.有效性 3.可扩充性 4.开放性

1.1.2操作系统的作用

  1. OS作为用户和计算机硬件系统之间的接口。
  2. OS作为计算机系统资源文件、处理机、存储器、I\0设备的管理者。
  3. OS实现了对计算机资源的抽象

1.1.3推动操作系统的主要动力

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

1.2操作系统的发展过程

OS的发展和计算机硬件技术、体系结构相关。
第1代(1946-1955年):电子管时代
第2代(1955年-1965年):晶体管时代
第3代(1965-1970年):中小规模集成电路时代
第4代(1970年-至今):大规模和超大规模集成电路时代

1.2.1未配置操作系统的计算级系统

1.人工操作方式

早期的操作方式是由程序员将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机运行。仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。

  • 缺点:1. 用户独占系统 2. CPU 等待人工操作

2.脱机输入\输出方式

程序员将穿孔的纸带通过外围机将纸带上的数据输入到磁盘里,再从磁盘上把数据高速调入内存,输出的结果再通过外围机到相应的输出设备输出。

这样可以解决人机矛盾以及CPU与I/O设备速度不匹配的矛盾。

1.2.2单道批处理系统

单道批处理系统的处理过程

为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。

  • 目的:提高利用率和吞吐量

  • 特点:1.单道性 2.顺序性 3.自动性

  • 缺点:资源得不到充分利用

1.2.3多批道处理系统

多道程序设计的基本概念

在多道程序设计系统中,用户提交的作业先放在外存上,并排成一个队列,称为后备队列

然后由作业调度程序按照一定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源

  • 特点:1.多道性 2.无序性 3.调度性

  • 优点:1.资源利用率高 2.资源吞吐量大

  • 缺点:1.平均周转时间长 2.无交互能力

多道批处理系统需要解决的问题

  • 处理机争用问题

  • 内存分配和保护问题

  • I/o设备分配问题

  • 文件的组织和管理问题

  • 作业管理问题

  • 用户与系统的接口问题

1.2.4分时系统

分时系统的引入

分时系统的产生主义在于用户的需求

  • 用户的需求:人–机交互,共享主机,便于用户上机

分时系统的关键问题

主机以很短的时间片为单位,把CPU轮流分配给每个终端使用;直到所有作业被运行完。若某个作业在分配给 它的时间片内未完成计算,则该作业暂停运行,把处理器让给其他作业使用,等待下一轮再继续使用。若终端数量不多 ,每个终端很快就能重新获得CPU,使得每个终端得到及时响应。

  • (1)及时接收 配置多路卡和缓冲区
  • (2)及时处理 作业直接进入内存和采用轮转运行方式。

分时系统的特征

1、多路性。 允许一台主机上联接多台终端,系统按分时原则为每个用户服务;

2、独立性。 每个用户各占一个终端,独立操作,互不干扰;

3、及时性。 用户的请求能在很短的时间内获得响应;

4、交互性。 用户可通过终端与系统进行广泛的人机对话。

  • 缺点:不能有效处理紧急任务操作系统对各个用户 / 作业都是完全公平的,循环地为每个用户 /

    作业服务一个时间片,不区分任务的紧急性。

1.2.5实时系统

所谓“实时”,是表示“及时”,而实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

  • 应用需求:1.实时控制 2.实时信息处理

  • 实时系统的类型:1.工业(武器)控制系统 2.信息查询系统 3. 多媒体系统 4. 嵌入式系统

    实时任务类型

(1)周期性实时任务和非周期性实时任务

(2)硬实时任务和软实时任务

  • 硬实时系统:必须在绝对严格的规定时间内完成处理。

  • 软实时系统:能接受偶尔违反时间规定。

    实时系统的特征

  1. 多路性
  2. 独立性
  3. 及时性
  4. 交互性
  5. 可靠性(实时性系统比分时性系统高)
  • 优点: 能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

1.2.6微机操作系统的发展

按照字长分

字长:在同一时间中处理二进制数的位数

  • 8位 16位 32位 64位

按照运行方式分

1. 单用户单任务操作系统: CP/M、MS-DOS

2.单用户多任务操作系统
  单用户多任务操作系统的含义是,只允许一个用户上机,但允许用户把程序分成若干个任务,使他们并行执行,从而有效改善系统的性能
​ 代表性:早期的WIN

3.多用户多任务操作系统

允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。
  在大、中和小型机中所配置的大多是多用户多任务操作系统,而在32位微机上,也有不少配置的是多用户多任务操作系统,其中最有代表性的是UNIX OS。

1.3操作系统的基本特性

并发,共享,虚拟,异步

1.3.1 并发

并行与并发

  • 并行: 两个或多个事件在同一时刻发生
  • 并发: 两个或多个事件在同一时间间隔内发生 (宏观)微观某一时间点内不是同时发生

并发是提高系统资源利用率,增加系统的吞吐量的主要手段单处理机并发执行和多处理机的并发/并行执行

引入进程

  • 进程是指 是计算机中的程序关于某数据集合上的一次运行活动,没引入线程之前是系统进行资源分配和调度的基本单位

​ 引入进程可实现并发执行

1.3.2 共享

资源共享也称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。

互斥共享方式

  • 临界资源:一段时间内只允许一个进程访问的资源

​ 例如:打印机,系统表格

同时访问方式

系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。

​ 磁盘、共享代码、共享库等

1.3.3 虚拟

在os中,通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为虚拟。

  • 时分复用:虚拟处理机(多道程序)技术、虚拟设备技术

  • 空分复用:多道程序共享内存,多文件共享磁盘, 用以提高存储空间的利用率

1.3.4 异步

在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。

可见,由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以"停停走走”的方式运行。

1.4操作系统的主要功能

1.4.1处理机管理功能

  • 主要功能: 创建和撤销进程,对进程的运行进行协调,实现进程之间的信息交换,以及按照一定算法把处理机分配给进程。
  1. 进程控制
  2. 进程同步
  3. 进程通信
  4. 调度

1.4.2存储器管理功能

  • 主要任务: 是为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并才能够逻辑上扩充内存。
  1. 内存分配

  2. 内存保护

  3. 地址映射

  4. 内存扩充

1.4.3设备管理功能

  • 主要任务: 完成用户进程提出的IO请求,为用户进程分配所需的I/O设备,并完成指定的IO操作;提高CPU和IO设备的利用率,提高IO速度,方便用户使用I/O设备。
  1. 缓冲管理
  2. 设备分配
  3. 设备处理

1.4.4文件管理功能

  • 主要任务: 对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。
  1. 文件存储空间的管理
  2. 目录管理
  3. 文件的读/写管理和保护

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

用户接口

(1)联机用户接口

(2)脱机用户接口

(3)图形用户接口

程序接口

程序接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。

1.4.6现代操作系统的新功能

系统安全

  • 认证技术
  • 密码技术
  • 访问控制技术
  • 反病毒技术

网络的功能和服务

  • 网络通信

  • 资源管理

  • 应用互操作

支持多媒体

  • 接纳控制功能。

  • 实时调度。

  • 多媒体文件的存储

1.5 OS结构设计

OS结构
传统结构OS
现代结构OS
无结构OS
模块化结构OS
分层次结构OS

1.5.1 传统操作系统结构

1.5.1.1 无结构操作系统

在早期开发操作系统时,设计者只把注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。

此时的OS是为数众多的一组过程的集合,每个过程可以任意地相互调用其它过程,致使OS内部既复杂又混乱,因此这种OS是无结构的。

1.5.1.2模块化结构OS

模块化程序设计技术的基本概念

该技术是20世纪60年代出现的一种结构化程序设计技术。该技术基于“分解”和“模块化”的原则来控制大型软件的复杂度。

为使OS具有较清晰的结构,OS是按其功能精心地划分为若干个具有一定独立性和大小的模块。

模块独立性

​ 在模块-接口法中,关键问题是模块的划分和规定好模块之间的接口。

​ 注意:

  •   在划分模块时不能将模块划分得太小或过大。
    
  •   划分模块时注意模块的独立性问题。
    

衡量模块独立性的两个标准:内聚性和耦合度

  • 优点:

    ​ (1)提高OS设计的正确性、可理解性和可维护性。

    ​ (2)增强OS的可适应性。

    ​ (3)加速OS的开发过程。

  • 缺点:
    ​ (1)在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。
    ​ (2)模块化结构设计中,各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的“无序性”,这将使程序人员很难做到“设计中的每一步决定”都是建立在可靠的基础上。

1.5.1.3分层式结构OS

分层式结构基本概念

​ 在用这种方法构建OS时,已将一个OS分为若干层次,每层又由若干模块组成,各层之间只存在着单向的依赖关系。

  • 优点:

​ (1)易保证系统的正确性。

​ (2)易扩充和易维护性。

  • 缺点: 效率降低

1.5.2微内核OS结构

微内核:提供OS核心功能的内核的精简版本。

微内核OS特点:集各种技术优点之大成。
举例:Mach、Minix、Windows NT、鸿蒙OS

目前从内核架构来划分可分为:微内核和宏内核

  • 宏内核

宏内核一般是将系统的主要核心组件全部在内核实现。可以想象,这样设计的内核各组件之间的关联很大,也就是常说的耦合性很大,不利于模块化设计。

优点也显而易见,就是速度快。各组件之间的通信全部在内核模式下完成,没有进程间的切换,也没有从用户模式到内核模式的切换。

典型代表是Linux操作系统和UNIX系统。

微内核OS基本概念
1. 总够小的内核
2. 基于客户\服务器模式
3. 应用“机制与策略分离”原理
4. 采用面向对象技术

微内核基本功能

​ 现在一般都采用“机制与策略分离”的原理,将机制部分以及与硬件紧密相关的部分放入微内核中。

​ 1)进程(线程)管理

​ 2)低级存储器管理

​ 3)中断和陷入处理

微内核操作系统优点

微内核OS结构建立在模块化、层次化结构的基础上的并采用了客户/服务器模式和面向对象的程序设计技术。

​ (1)提高了系统的可扩展性

​ (2)增强了系统的可靠性

​ (3)可移植性强

​ (4)提供了对分布式系统的支持

​ (5)融入了面向对象技术
微内核操作系统存在的问题

​ 较之早期的操作系统,微内核操作系统的运行效率有所降低。

​ 原因:在完成一次客户对OS提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换。


  • 参考:计算机操作系统(第四版)(汤小丹)

你可能感兴趣的:(操作系统,java)