诸论

成绩分布

  • 作业 10%
  • 实验 20%
  • 期末考试 70%

目录

  • 处理器管理
  • 进程管理
  • 处理与调度
  • 内存
  • 文件系统
  • 外设管理
  • 操作系统体系结构

操作系统概念

任何计算机系统都是由两个部分组成

裸机python 裸机有没有操作系统_裸机python

  • 硬件
  • 软件
  • 应用软件
  • 工具软件
  • 多媒体软件
  • 系统软件
  • 编辑软件/编译软件
  • 操作系统

什么是裸机?

没有任何软件支持的计算称为裸机,它仅仅是构成了计算机的物质基础,实际呈现在人们眼前的计算机是进过多层软件改造的计算机。

裸机python 裸机有没有操作系统_寄存器_02

定义

是什么?

  1. 系统软件
  2. 程序模块的集合

干什么?

  1. 管理和控制硬件和软件资源
  2. 合理的组织计算机的工作流程
  3. 有效利用资源为用户提供一个工作环境,在计算机与用户之间起到一个接口的作用

操作系统历史

时代

操作系统

1.电子管时代

无软件,手工操作、独占计算机资源

2.集成电路时代

多道程序设计

3.晶体管时代

批处理系统

4.大规模和超大规模集成电路

分时系统

5.移动、分布、网络计算

实时系统、通用操作系统、网络操作系统、分布式系统

手工操作阶段

第一代计算机时期,构成计算机的主要元器件是电子管,计算机运算速度慢,没有操作系统,甚至没有任何软件。
用户直接用机器语言编制程序,并在上机时独占全部计算机资源。

缺点

  1. 用户独占全机,整个机器的全部资源被一个用户所占
  2. cpu等待人操作,在等待的过程中cpu是空闲的

早期批处理

作业

理解为一个较大的工程

问题

一个比较大的工程,存在多个作业步,任何一步错误都得重新再来

解决途径

  1. 配备计算机操作员,程序员不在直接操作机器,减少机器的错误
  2. 进行批处理,把作业分类,将类似的作业分为一类,每一批作业都有专门的监督程序自动依次处理,监督程序就是操作系统原型

早期的批处理的两种方式

机是cpu,是与cpu是否连接上了

cpu速度与IO不匹配问题

早期批处理的两种方式

联机批处理

是什么
慢速的输入输出(I/O)设备和主机直接相连。

过程

  1. 用户提交作业
  2. 作业做成穿孔纸带或者卡片
  3. 操作员把若干作业合成一批,写入磁带
  4. 监督程序读入一个作业
  5. 从磁带调入汇编程序或者编译程序,将用户作业源程序编译成代码
  6. 连接装配程序把编译后的目标代码及所需的子程序装配成一个可执行程序
  7. 启动执行
  8. 执行完毕,由善后处理程序输出计算结果
  9. 再读入一个作业,重复(5)—(9)各步;

这种联机批处理方式解决了作业自动转接,从而减少作业建立和人工操作时间。但是在作业的输入和执行结果的输出过程中,主机CPU仍处在停止等待状态慢速的输入输出设备和快速主机之间仍处于串行工作CPU的时间仍有很大的浪费

脱机批处理

加入了一个卫星机,专职作为与输入输出的设备打交道,把数据读取到磁带上去
主机不和慢速的纸袋打交道,和较快的磁带打交道,所以速度更快

裸机python 裸机有没有操作系统_寄存器_03

  1. 输入设备通过卫星机把作业输入到磁带
  2. 输出磁带通过卫星机把结果输出到输出设备

特点

  1. 主机不与速度较慢的IO设备直接打交道而是与速度相对较快的磁带打交道
  2. 主机与卫星机并行工作,其二者分工明确,可以充分的发挥计算的能力
  3. 脱机批处理比联机批处理更能提高系统的处理能力
总结
  1. 脱机批处理相比早期联机批处理大大提高了系统的处理能力
  2. 批处理方式的出现促进了软件的发展,最重要的是监督程序

执行系统阶段

通道

IO设备和内存之间直接打交道

中断

一旦有中断信号,先做发出中断请求的另外一段代码,之后再返回做原来的事情

执行系统执行的是联机操作

裸机python 裸机有没有操作系统_裸机python_04

裸机python 裸机有没有操作系统_裸机python_05

在引入通道和中断两个技术之后,原来的监督程序的功能范围扩大,不仅要涉及作业运行的自动调度,还要涉及输入输出的控制功能

进而发展了监督程序常驻内存,称为执行系统

执行系统完成的也是输入输出的联机操作,但是和早期的批处理系统不同的是:

  1. 输入输出是在主机控制下的通道内完成的
  2. 主机和通道、主机和输入输出设备可以并行操作

多道程序的处理

单道程序

裸机python 裸机有没有操作系统_裸机python_06

批处理中,每次只能调用一个用户作业程序进入内存并进行操作,称为单道程序

缺点:
系统资源得不到充分的利用

缺点原因:
由于内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待状态,必须在其I/O完成后才继续运行。又因I/O设备的低速性,更使CPU的利用率显著降低。

多道程序

多道程序,每次调用多个程序进入内存

裸机python 裸机有没有操作系统_多道程序_07

解释

  • 多道:计算机内存中存放多个独立程序
  • 宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。
  • 微观上串行:实际上,各道程序轮流使用CPU,交替执行。

多道程序系统
在批处理系统中采用多道程序设计技术,就形成了多道批处理系统。

特点:

  1. 内存中有多个的独立的程序
  2. 微观上是轮流使用cpu,串行的情况
  3. 要处理的作业放在外部存储器,形成作业队列
  4. 由操作系统中的作业调度程序对外存中的一批作业,根据其对资源的要求和一定的调度原则,调几个作业进入内存,让它们交替运行。

优点

  1. 资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌状态;在内存中装入多道程序可提高内存的利用率;此外还可以提高I/O设备的利用率
  2. 系统吞吐量大。
  • CPU和其它资源保持“忙碌”
  • 仅当作业完成时或运行不下去时才进行切换,系统开销小。

缺点

  1. 平均的周转时间长。由于作业排队进行依次处理,因而作业周转时间长
  2. 无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,修改和调试程序极不方便。

多道系统需要解决的问题

  1. 处理机征用的问题,既要满足各道程序的运行需要,又要提高处理机的利用率
  2. 内存分配和保护问题。为每道程序分配必要的内存空间,使它们“各得其所”,且不会因某道程序出现异常情况而破坏其它程序。
  3. I/O设备分配问题。采取适当的策略来分配系统中的I/O设备,以达到既能方便用户对设备的使用,又能提高设备利用率的目的。
  4. 文件的组织和管理问题。有效地组织存放在系统中的大量程序和数据,使它们既便于用户使用,又能保证数据的安全性。
  5. 作业管理问题。对系统中所有的作业进行合理的组织,以满足这些作业用户的不同要求。
  6. 用户与系统的接口问题。提供用户与OS之间的接口,使用户能方便的使用操作系统。

分时操作系统

  • 针对无交互对操作系统进行改进,用户可以及时的交互,共享主机
  • 所谓分时技术,就是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。
  • 若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。
  • 多用户分时操作系统是当今计算机操作系统中最普遍使用的一类操作系统。
  • 每个用户可以通过自己终端向系统发出各种操作控制命令,完成作业的运行。

分时系统与多道批处理系统相比,具有非常明显的不同特性: 

  • 多路性  
  • 独立性
  • 及时性
  • 交互性

裸机python 裸机有没有操作系统_寄存器_08

内部实现

分时技术,对时间进行切分,对cpu的运行时间进行切分把时间轮流的分配给多个用户,如果在分时内用户的工作没有完成,暂时中断,下一个周期来继续处理

特点

  1. 多个用户同时使用
  2. 交互性强

实时操作系统

  • 针对实时处理的实时操作系统以在允许时间范围之内做出响应为特征。
  • 要求计算机快速做出反应

特点

  • 多路性
  • 独立性
  • 及时性
  • 交互性
  • 可靠性

通用操作系统

将实时处理和批处理相结合构成实时批处理系统。在这样的系统中,它首先保证优先处理任务,插空进行批作业处理。通常把实时任务称为前台作业,批作业称为后台作业。

  • 分时
  • 批处理
  • 多道批处理

UNIX是一个通用的多用户分时交互型的操作系统。

windows和linux都是以UNIX为基础的

进一步的发展

  • 个人计算机操作系统。
  • 嵌入式操作系统。
  • 网络操作系统。
  • 分布式操作系统。
  • 智能化操作系统。

操作系统基本类型

根据环境和作业处理方式

  1. 批处理
  2. 分时
  3. 实时
  4. 个人计算机系统
  5. 网络
  6. 分布式

批处理操作系统

裸机python 裸机有没有操作系统_裸机python_09

脱机无交互、成批处理、多道程序运行

分时系统

分时系统一般采用时间片轮转的方式,使一台计算机为多个终端用户服务。对每个用户能保证足够快的响应时间,并提供交互会话能力

裸机python 裸机有没有操作系统_多道程序_10

特点

  • 联机交互、轮换共享资源、用户感觉独立使用
  • UNIX是最流行的一种多用户分时操作系统

实时操作系统

实时操作系统主要为了实时控制与实时信息处理

实时系统主要提供的是实时控制高可靠性

系统必须保证分析和处理的速度足够块,并且系统要稳定可靠

实时操作系统的缺点:

其具有专用性,和批处理和分时系统相比其系统利用率低

实时系统需要满足的是:

  1. 实时时钟管理
  2. 连续人机对话
  3. 作业过载保护
  4. 保证高度可靠性和安全性的冗余措施

通用操作系统

在批处理、分时操作系统、实时操作系统三种操作系统的基础上,发展出来了具有多种类型操作特征的操作系统,称为通用操作系统

通用操作系统同时兼有批处理分时实时处理或其中两种以上的功能。

个人操作系统

联机交互、单用户的操作系统,通用的有windows、linux

网络操作系统

通过联网将多个自治的计算机连接起来

具有信息交换、资源共享、可互操作和协作处理

分布式操作系统

通过通信网络将物理上分布的具有自治功能的数据处理系统或计算机系统互连起来,实现信息交换和资源共享,协作完成任务。

裸机python 裸机有没有操作系统_寄存器_11

分布式系统与网络操作系统的区别

  1. 计算机网络系统遵循协议,分布式不遵循协议
  2. 分布式系统要求统一操作系统,实现系统的同一性
  3. 分布式系统对用户透明,但是计算机网络系统,必须指定一台计算机才可以使用其资源
  4. 分布式系统的基础是网络,物理上是一个松散的系统,但是逻辑上是一个紧密的系统

操作系统功能

裸机python 裸机有没有操作系统_寄存器_12

  1. 和底层硬件打交道,调度硬件的资源,如处理机管理、存储管理、设备管理
  2. 为用户提供接口
  3. 对软件的资源进行管理,比如文件的管理

处理机管理

处理机管理的功能
面对情况:多个用户或者多道程序的情况下
解决问题:解决组织多个作业同时运行,导致的处理机分配调度分配实施资源回收的问题

存储的管理

  1. 内存的分配,怎么分配内存,使得用户的程序和系统程序使用的内存之间不冲突
  2. 存储保护:
  1. 保证一道程序在执行的过程中不会干扰或者破坏另外一个程序
  2. 保证用户不会破坏系统程序
  1. 内存扩充:当用户的程序需要的内存超过计算机系统所能提供的内存容量的时候,把内部存储器和外部存储器联合起来为用户提供一个比实际容量大的多的虚拟存储器

设备管理

  1. 通道、控制器、输入输出设备的控制和管理

对于请求输入和输出的程序,按照一定的策略,把通道、控制器、输入输出设备分配给对应的程序,并启动设备完成对应的输入和输出

为了尽可能发挥主机和设备并行的能力,通常采用虚拟技术缓冲技术

  1. 设备独立性

输入输出设备种类很多,使用方法各不相同。设备管理应为用户提供一个良好的界面,以使用户在不考虑具体设备特性的前提下方便、灵活地使用这些设备。(了解)

信息管理

对系统的资源进行管理

  1. 文件管理

信息共享、保密、保护

了解
如果系统允许多个用户协同工作,那么就应该允许用户共享信息文件。但这种共享应该是受控制的,应该有授权和保密机制。还要有一定的保护机制以免文件被非授权用户调用和修改,即使在意外情况下,如系统失效、用户对文件使用不当,也能尽量保护信息免遭破坏。
也就是说,系统是安全可靠的

用户接口

提供两种接口为用户服务

程序一级接口:提供一组广义的指令来供用户调用

  • 系统调用
  • 程序请求

当这些程序进行数据传输、文件操作或其他资源要求时,通过这些广义指令向操作系统提出申请,并由操作系统代为完成。

作业一级的接口:提供一组控制操作命令(或称作业控制语言,或像UNIX中的Shell命令语言)供用户组织和控制自己作业的运行

计算机硬件

操作系统管理和控制计算机系统中所有软硬件资源。操作系统是一个运行于硬件之上的系统软件。

构成计算机的基本硬件:
CPU、IO、存储、总线、外部设备

计算机基本硬件

裸机python 裸机有没有操作系统_批处理_13

与操作系统相关的寄存器

裸机python 裸机有没有操作系统_裸机python_14

用户可编程寄存器

  • 数据寄存器-对数据操作访问的寄存器
  • 地址寄存器-存放某段数据或者地址的入口指令,或者用来复杂地址运算
  • 地址标识位寄存器
  • 内存管理用各种始地址寄存器;
  • 堆栈指针;
  • 设备地址寄存器等。
  • 条件码寄存器-也称标志寄存器。条件码寄存器的比特位由处理机硬件设置

控制与状态寄存器

  • 程序计数器-PC 装有下一周期被执行指令的地址。
  • 指令寄存器IR 装有待执行指令
  • 程序状态字PSW 各比特位代表系统中当前的各种不同状态与信息。如执行模式是否允许中断等。
  • 中断现场保护寄存器 如果系统允许不同类型的中断存在,则会设置一组中断现场保护寄存器,用于保存被中断程序的现场以便链接中断恢复处。
  • 过程调用堆栈 存放过程调用时的调用名、调用参数、以及返回地址等。

存储器的访问速度

裸机python 裸机有没有操作系统_批处理_15

指令的执行与中断

计算机提供的最基本功能是执行指令。任何应用程序都只有通过指令的执行才能得以完成。
执行指令的基本过程分为两步,即处理机从内存把指令读入的过程和执行的过程。
读指令是根据程序计数器PC所指的地址读入,执行的指令则是指令寄存器IR中的指令。
指令的读入和执行过程称为一个执行周期

裸机python 裸机有没有操作系统_多道程序_16

指令的执行过程中或一条指令执行结束时,尽管指令地址计数器中已指明了下一条被访问指令的地址,但是,外部设备或计算机内部可能会发来亟须处理的数据或其他紧急事件处理信号。这就需要处理机暂停正在执行的程序,转去处理相应的紧急事件,待处理完毕后再返回原处继续执行,这一过程称为中断

中断的好处

首先,实时处理紧急事件成为可能;
再者,增加处理机的执行效率;
另外,简化操作系统的程序设计。

裸机python 裸机有没有操作系统_寄存器_17

系统发生中断时,处理机收到中断信号,不再继续执行程序计数器中所指的原程序。
处理机保存当前执行现场(即各寄存器中的值)并调用新的程序到处理机上执行。

裸机python 裸机有没有操作系统_裸机python_18

算法描述

begin、end 分别表示算法的开始和结束。

Repeat...Until 条件
表示当“条件”未被满足时重复所描述的“操作”。

While 条件
			do
				操作
				…
			od

表示当“条件”满足时,进行相应的“操作”。关键词“ do” 和“od”分别表示“操作”的开始和结束。

if 条件
		then
			操作
		else
			操作
		fi

表示满足“if”所指的“条件”时,进行“then”后的相关“操作”,否则完成“else”后的相关操作。关键词“fi”表示条件判断的结束

研究操作系统的几种观点

  • 计算机资源管理者
  • 提供用户交互界面
  • 进程管理者