您的当前位置:首页正文

【操作系统】第一章 绪论

2024-11-25 来源:个人技术集锦


1.0 导语

        操作系统是计算机系统的核心和灵魂,是硬件的首次扩充,又是最重要的系统软件,该课程具有承上启下的重要作用。

(1)对前导课程进行总结和提高

计算系统基础、计算机组成原理、数据结构、软件工程

(2)为后继专业课程的学习打下良好基础

嵌入式系统、服务计算、分布式计算、网格计算、云计算等


1.1 操作系统做什么?

【计算机系统】

  • 系统软件

(1)实现应用软件与计算机硬件的相互通信;

(2)管理计算机各种硬件资源。

  • 应用软件

(1)创建、处理、分析信息;

(2)为终端用户提供服务。

  • 计算机硬件

(1)各种计算机硬件设备;

(2)负责接受输入、处理数据、提供输出。

  • 终端用户

(1)计算机的最终使用者;

(2)应用软件的服务对象。

【计算机系统分层和观点】

【操作系统的定义】

  • 注:没有公认的标准定义
  • 操作系统是计算机系统中的一个系统软件,一些程序模块的集合
  • 管理和控制计算机系统中的软件和硬件资源
  • 合理地组织计算机工作流程
  • 在计算机与其用户之间起到接口的作用。

1.2 计算机硬件系统的组成

【计算机系统的运行】

  • 一个或多个CPU和若干设备控制器、通过公用总线相连(总线提供了对共享内存的访问)
  • CPU和设备并发执行竞争访问内存

(1)每种设备控制器负责一种特定的设备类型;

(2)每个设备控制器有一个local缓冲寄存器;

(3)CPU在主存和缓冲寄存器之间移动数据;

  • 设备通过发出中断通知CPU已完成操作
  • 开机时运行引导程序

(1)位于ROM或者EEPROM(电可擦可编程只读内存);

(2)初始化系统各个组件,从CPU寄存器、设备控制器到内存内容;

(3)定位外存硬盘上的操作系统内核并且加载到内存。

  • 内核加载到内存开始运行

(1)设置和初始化数据结构与表格、建立各种控制系统内核运行的系统进程和系统后台进程;

(2)等待事件发生;

  • 事件发生通过硬件和软件中断来通知

(1)硬件中断的触发:硬件随时通过系统总线发送信号到CPU;

(2)软件中断的触发:程序中发出系统调用;

【中断机制的功能】

  • 控制转移给中断服务程序
  • 保存中断指令的地址

(1)在系统堆栈上;

  • 操作系统是中断驱动

【存储定义与符号】

(1)bit(比特、位)存储的基本单位,所有其他计算机存储都是由位组合而成。位数足够,计算机能够表示各种信息:数字、字母、图像、视频、音频、文档和程序。

(2)Byte(字节)8位、大多数计算机的常用的最小存储。

(3)Word(字)给定计算机架构的常用存储单位,每个字由多个字节组成。计算机的许多操作通常以字为单位。

如:一个具有64位寄存器和64位内存寻址的计算机通常采用64位的字(8字节)

210 bytes = 1KB = 103字节

220 bytes = 1MB = 106字节

230 bytes = 1GB

240 bytes = 1TB

250 bytes = 1PB

【存储结构】

  • 内存、高速缓存

计算机系统结构的一部分,由硬件实现,对操作系统不可见(透明)

  • 主存

(1)CPU能直接访问

(2)易失性

  • 二级存储

(1)主存的扩充、容量大且不易失

(2)硬盘、磁盘

(3)固态硬盘:低功耗、无噪音、体积小、发热量小,读写速度远高于传统硬盘。

  • 注意:

(1)CPU只能从内存中加载命令

(2)固态硬盘与U盘一样,依靠的是闪存芯片存储数据,所以不会出现噪音。机械硬盘用久了经常能听到响声,特别是笔记本。

(3)固态与机械硬盘相比体积小了很多,重量特别轻,比如在一些迷你主机或者轻薄本上

(4)达到机械硬盘读写速度的十几倍甚至更高

(5)功耗远远小于机械硬盘,所以发热量更低,至于省电确实能省但是并不多,不过在笔记本上,发热量小就是最好的有点

(6)固态硬盘容量越大价格涨幅越大,如果是移动固态硬盘,那就更加昂贵了。

(7)寿命短于机械硬盘,但是平时无需考虑这个问题,五六年绝对可以。

(8)固态硬盘在丢失数据后更几乎无法恢复,这点确实是比较大的缺点

【存储设备的层次】

  • 层次结构成功的关键:低层访问频率递减。
  • 存储器的三个特性

(1)容量存取速度价格

(2)存取速度越快,每个“位”的价格越高;

(3)容量越大,每个“位”的价格越低;

(4)容量越大,存取速度越慢。


1.3 计算机系统的体系结构

系统分类:单处理器系统、多处理器系统、集群系统(Clustered Systems)。

【单处理器系统】

  • 特点:只有一个处理器

【多处理器系统】

  • 优点:增加吞吐量、规模经济、增加可靠性
  • 非对称多处理器

(1)主处理器(一个、只运行OS、管理整个系统的资源、为从处理器分配任务);

(2)从处理器(可有多个、执行应用程序或I/O处理)不同性质任务的负载不均,可靠性不够高。

  • 对称多处理器

(1)每个处理器都参与完成OS的所有任务,没有主从关系

(2)任务负载分布较为均匀,性能调节容易;

(3)几乎所有现代OS支持,如Mac OSX、Linux、Windows等。

【集群系统】

  • 由两个或多个独立的系统(或节点)组成

(1)每个节点为单核系统或多核系统

(2)集群计算机共享存储

  • 高可用性

集群中的一个或多个系统出错,仍可继续提供服务。

  • 对称的

(1)两个或多个主机都运行应用程序、并互相监视

(2)充分使用现有硬件、当多个应用程序可供执行时,更有效

  • 非对称的

一台处于热备份模式,另一台运行应用程序。

  • 应用

(1)高性能计算(High-Performance Computing):并行计算(parallelization),将一个程序分成多个部分,并行运行在各个核上

(2)分布锁管理器(Distributed Lock Manager):多个主机访问共享存储的同一数据。

  • 1.4 OS的执行

【OS执行的内容】

  • 现代操作系统是中断驱动的
  • 硬件中断设备发出的
  • 软件中断(陷阱或异常)

(1)软件出错(如除数为0、无效的存储访问)、进程试图修改别的进程或OS等

(2)进程发出系统调用,需要OS服务

  • OS和多个进程共享计算机系统的软硬件资源,为保证OS的正确运行,区分OS代码和用户代码的运行。
  • 多数系统将处理器状态划分为管态目态

【双重模式与多重模式的执行】

根据运行程序对资源的机器指令的使用权限划分为:管态、目态。

【管态】

  • 特权态、系统态、内核态
  • 操作系统程序运行时的状态,较高的特权级别。

可以执行所有的指令(包括特权指令)、使用所有的资源,并具有改变处理器状态的能力。

  • 通常,OS在管态下运行。

【目态】

  • 普通态、普态、用户态
  • 用户程序运行时的状态,较低的特权级别。
  • 禁止使用特权指令不能直接使用系统资源与改变CPU状态,只能访问用户程序所在的存储空间。

【受保护的指令/特权指令】

特权指令:只有操作系统才有权使用的指令。

  • 访问某些硬件资源的指令(如,对I/O设备直接访问的指令)
  • 对内存管理状态进行操作的指令;
  • 某些特殊的状态位的设置指令
  • 停机指令

问:CPU如何来判断当前运行的程序是系统程序还是用户程序呢?

答:通过程序状态字PSW

【程序状态字PSW】Program Status Word

  • 状态码:管态还是目态,决定是否可以用特权指令或拥有其他的特殊权利。
  • 条件码:指令执行后的结果特征值。
  • 中断屏蔽码:是否允许中断。

问:CPU工作状态之间如何进行转换?

  • 管态——>目态(设置PSW)
  • 目态——>管态(系统调用)用户程序无法直接修改程序状态字,通过系统调用实现。

【系统调用】System Call

  • OS的内核函数,用户程序通过访管指令,请求OS提供某种服务。
  • 当CPU执行访管指令时,引起访管指令;
  • 处理器保存中断点的程序执行上下文环境(PSW、PC、其它寄存器),CPU切换到管态(硬件自动完成);
  • 中断处理程序开始工作,调用相应的系统服务;
  • 结束后,恢复被中断程序的上下文环境,CPU恢复为目态,回到中断点继续执行。

【用户模式到内核模式的转换】

1.5 OS的功能

【五大功能】

  • 设备管理:设备分类、设备独立性、I/O软件组成、设备分配、虚设备技术、缓冲技术、通道技术、磁盘调度。
  • 文件管理:文件基本概念、磁盘结构、文件目录、文件系统使用、文件系统安全、外存空间管理。
  • 存储管理:存储结构概述、磁盘结构、空闲空间管理、存储空间分配、磁盘调度。
  • 内存管理:地址变换、内存分配和回收、内外存数据的传输、内存保护和共享、虚拟内存。
  • 进程管理:多道程序设计、进程基本概念、进程控制、同步互斥、进程调度、进程通信、进程死锁。

1.6 OS的发展

【发展】

  • 发展动力:需求推动
  • 设备角度:资源利用率、系统性能
  • 用户角度:方便用户
  • 技术角度:物理器件发展

【历史】

真空管(1945-1955)→

晶体管和批处理系统(1955-1965)→

集成电路和多道程序设计(1965-1980)→

PC(1980-1995)→

后PC(1955-至今)

【真空管】

  • 没有程序设计语言、没有OS(如:ENIAC计算机)
  • 程序员提前预约一段时间,然后到机房将他的插件板插到计算机里。
  • 祈祷几万个真空管不会烧断,这样才能设计自己的题目。

【晶体管和批处理系统】

  • 晶体管计算机,操作系统的雏形——监督程序
  • 把若干个作业合成一批,调入计算机执行,完成后再调入下一批作业。
  • 计算机的应用从数值计算扩大到数据处理、工业过程控制等领域。

【多道程序系统】

  • 定义:在内存中放多道程序,在管理程序的控制下相互穿插地运行。
  • 形成动力:提高资源利用率系统吞吐量
  • 硬件基础:60年代通道技术、中断技术。
  • 特点:

(1)多道:计算机内存中同时存放几道相互独立的程序

(2)宏观上并行:同时有多道程序在内存运行;某一时间段内,各道程序不同程度向前推进

(3)微观上串行:任一时刻最多只有一道作业占用CPU(单CPU),多道程序交替使用CPU。

  • 优点

(1)资源利用率高

(2)系统吞吐量大(吞吐量:系统单位时间完成的工作总量)

  • 缺点

(1)平均周转时间长(作业周转时间:作业进入系统到完成并退出所用时间)

(2)无交互能力

【分时操作系统】

  • 定义:在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘,以交互的方式使用计算机,共享主机中的资源。
  • 动力:用户需求,交互、共享主机、方便上机。
  • 特点:

(1)多路性允许同一主机连接多台终端。

(2)独立性每一个用户独占一个终端。

(3)及时性用户请求能够及时响应。

(4)交互性可进行广泛的人机对话。

【PC】Personal Computers

  • 单用户单任务OS:DOS
  • 支持16个任务并发执行:IBM
  • 最广泛应用的OS:Windows

【OS的现状】

  • 桌面操作系统

Windows、Linux、MacOS等

  • 服务器操作系统

Unix/类Unix系列、Windows等

  • 智能手机操作系统和平板电脑操作系统

Android、Apple iOS

1.7 OS对一个程序的处理过程

“hello world”在Linux上运行

【程序代码】

【处理过程】

1.用户输入命令,shell进程被唤醒,对命令解析;

·用户敲击键盘后,键入的信息记录在终端设备文件(tty0)上。

·产生键盘中断信号,系统对键盘中断信号进行处理。

·中断服务程序开始执行后,唤醒shell进程,通过进程调度机制,由进程0切换到shell进程去执行。

·shell进程从tty0终端设备文件上读取用户键入的指令信息,解析该指令,并准备进行相应的处理。

2.调用fork创建一个用户进程,对程序进行控制;

创建进程控制块(task_struct),包括:

(1)进程状态、进程对应的文件

(2)进程调度信息

(3)内存管理信息

(4)文件管理信息

3.加载hello world文件对应的程序;

注:文件和内存是所有进程可以共用的资源,它们之间还存在着更为复杂的管理关系。

如:两个进程加载同一个hello world文件时,涉及要不要共享,如何共享,共享后页面的引用计数如何计算,读写属性如何确定等。

4.程序开始执行,将“hello world”显示在屏幕上。

设备管理:直接与显示器的底层交互。

步骤:

(1)确定操作合法,然后将字符串转换成像素

(2)将像素写入存储映像区

(3)视频硬件将像素表示转换成一组模拟信号控制显示器

(4)在屏幕上看到“hello world”

问:如果没有操作系统,会怎样?

1.即使是在屏幕上显示一行“hello world”,都要写大量复杂的、具有操作系统所具备的功能的程序

2.甚至无法把程序加载到计算机中,更谈不上得到运行结果了。

【OS在应用程序运行时的作用】

即,OS对应用程序的运行做了什么?

1.提供了对外设的支持

2.支持多个程序同时运行(对运行的多个程序进行有效的组织、管理和协调,防止某个程序独占CPU、内存、外设等资源;防止正在运行的程序之间相互读写和相互覆盖,确保所有程序正确运行)

注意:操作系统不能被应用程序直接读写,更不能被应用程序覆盖。

1.8 写在最后

        本文是操作系统系列的第一篇,主要概述绪论部分的内容;也是初九2022年的第一篇文,希望你新年快乐( •̀ ω •́ )✧

显示全文