【王道·操作系统】第一章计算机系统概述

操作系统是控制和管理计算机硬件及软件资源的系统软件,提供用户和程序接口。其主要特征包括并发、共享、虚拟和异步。并发指的是多个程序宏观上同时运行,微观上交替执行。共享则允许资源被多个进程同时使用。操作系统经历了从手工操作到批处理、分时系统、实时系统以及网络和分布式操作系统的演进,满足不同场景的需求。
摘要由CSDN通过智能技术生成

一、 操作系统的基本概念

1.1 概念(定义):什么是操作系统

  • 操作系统operating system,OS:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;是计算机系统中最基本的系统软件:
    1. os是系统资源的管理者
    2. 向上提供方便易用的服务
    3. 是最接近硬件的一层软件
  • 执行一个程序前需要将该程序放到内存中,才能被CPU处理
  • 封装思想:os将一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机;用户无需关心底层硬件的原理,只需对操作系统发出命令

1.2 功能和目标:操作系统要做什么

  • 资源的管理者:处理机管理、存储器管理、文件管理、设备管理
  • 向上提供方便易用的服务:
    1. 给普通用户的:GUI图形化用户接口(graphical user interface); 命令接口(联机命令接口 = 交互式命令接口、脱机命令接口 = 批处理命令接口)
    2. 程序接口(程序代码间接的进行系统调用 = 广义指令使用程序接口)
    3. 其中:命令接口与程序接口又称为用户接口
  • 对硬件机器的拓展:没有任何软件支持的计算机称为裸机;覆盖了软件的机器称为扩充机器/虚拟机

1.3 操作系统的特征:并发、共享、虚拟、异步

  • 并发与共享是两个最基本的特征,二者互为存在条件
    1. 并发性:计算机系统中同时存在着多个运行着的程序
    2. 共享性:系统中的资源可供内存中多个并发程序的进程共同使用
  • 没有并发和共享就谈不上虚拟和异步

1.3.1 并发

  • 并发:两个或多个事件在同一时间间隔内发生;宏观上是同时发生的,微观上是交替发生
  • 并行:两个或多个事物在同一个时刻同时发生
  • 操作系统是伴随着“多道程序技术”而出现的,因此操作系统和程序并发是一起诞生的
  • 并发性是操作系统一个最基本的特性
    1. 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
    2. 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

1.3.2 共享

  • 共享:资源共享,系统中的资源可供内存中多个并发执行的进程同时使用
  • 共享方式:
    1. 互斥共享方式:一个时间段内只允许一个进程访问该资源,如硬件设备摄像头等
    2. 同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问,如文件读取等

1.3.3 虚拟

  • 虚拟:把一个物理上的实体变为若干个逻辑上的对应物
  • 物理实体是实际存在的,逻辑上的对应物是用户感受到的
  • 虚拟存储器技术,是虚拟技术的“空分复用技术”;虚拟处理器,是虚拟技术的“时空复用技术”

1.3.4 异步

  • 异步:在多道程序环境下,允许多个进程并发执行;但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,即进程的异步性

二、操作系统的发展与分类

在这里插入图片描述

  1. 手工操作阶段

    • 主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低
  2. 批处理阶段——单道批处理系统

    • 引入脱机输入/输出技术,并由**监督程序(操作系统的雏形)**负责控制作业的输入、输出
    • 主要优点:缓解了一定程度人机速度矛盾,资源利用率有所提升
    • 主要缺点:内存中仅能有一道程序运行;CPU有大量的时间是在空闲等待I/O完成;资源利用率依然很低
  3. 批处理阶段——多道批处理系统

    • 操作系统正式诞生,用于支持多道程序并发运行,每次往内存中读入多道程序
    • 主要优点:多道程序并发执行,共享计算机资源;资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐率增大
    • 主要缺点:用户响应时间长,没有人机交互功能
  4. 分时操作系统

    • 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
    • 主要优点:用户请求可以被即时响应,解决了人机交互问题;允许多个用户同时使用一台计算机,且对计算机的操作相互独立,感受不到别人的存在
    • 主要缺点:不能处理紧急任务(操作系统对各个用户/作业完全公平,循环地为其服务一个时间片)
  5. 实时操作系统在这里插入图片描述

    • 计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完成事件
    • 主要优点:能优先响应一些紧急任务,保证及时性和可靠性
    • 分类:硬实时操作系统(必须在绝对严格的规定时间内完成处理,如导弹控制系统)、软实时操作系统(能接受偶尔违反时间规定,如订票系统)
  6. 网络操作系统:伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享 (如文件共享)和各台计算机之间的通信 (如: windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)

  7. 分布式操作系统:主要特点是分布性和并行性,系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务

  8. 个人计算机操作系统:如Windows XP、MacoS,方便个人使用。

三、操作系统的运行机制

  • 指令:处理器CPU能识别、执行的最基本命令

3.1 运行机制

在这里插入图片描述

3.1.1 两种程序:内核程序、应用程序

  • 应用程序:跑在操作系统之上的程序,只能使用“非特权指令”
  • 内核程序:实现操作系统的程序,简称内核kernel;内核是操作系统最重要最核心的部分,也是最接近硬件的部分
  • CPU设计和生产时就划分了特权指令和非特权指令

3.1.2 两种指令:特权指令、非特权指令

3.1.3 两种处理器状态:核心态、用户态

  • CPU有两种状态:核心态、用户态
    1. 处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
    2. 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令
  • CPU中有一个PSW程序状态字寄存器,通过其中的二进制位区分内核态还是用户态
  • 状态切换:
    1. 内核态 → 用户态: 执行一条特权指令–修改PSW的标志位为“用户态”,意味着操作系统将主动让出CPU使用权
    2. 用户态 → 内核态:由**“中断”引发,硬件自动完成变态过程**,触发中断信号意味着操作系统将强行夺回CPU的使用权
    3. 凡是需要操作系统介入的地方,都会触发中断信号,如非法使用特权指令

3.2 中断和异常

在这里插入图片描述

3.2.1 中断的作用

  • CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序
  • “中断”是让操作系统内核夺回CPU使用权的唯一途径
  • “中断”会使CPU由用户态变为内核态,使操作系统重新夺回对CPU的控制权

3.2.2 中断的类型

  • 内中断
    1. 与当前指令有关,中断信号来源于CPU内部
    2. 例子:特权指令、非法指令、陷入指令(如系统调用,不是特权指令)
    3. 陷阱、陷入trap:由陷入指令引发,是应用程序故意引发的
    4. 故障fault:由错误条件引起的,可能被内核程序修复;修复后把 CPU使用权还给应用程序,以继续执行,如:缺页故障
    5. 终止abort:由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终
  • 外中断:与当前指令无关,中断信号来源于CPU外部
    1. 时钟中断
    2. I/O中断

3.2.3 中断机制的基本原理

  • 不同的中断信号,需要用不同的中断处理程序来处理
  • 当CPU检测到中断信号后,会根据中断信号的类型去查询**“中断向量表”**,以此来找到相应的中断处理程序在内存中的存放位置
  • 中断程序一定是内核程序,需要运行在“内核态”

3.3 系统调用

  • 系统调用:操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
  • 系统调用与库函数的区别:
    1. 普通应用程序:可直接进行系统调用,可使用库函数(有的库函数涉及系统调用,有的不涉及)
    2. 编程语言:向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便
    3. 操作系统:向上提供系统调用,使得上层程序能请求内核的服务
    4. 裸机
  • 系统调用按功能分类
    1. 设备管理:设备的请求/释放/启动等
    2. 文件管理:文件的读/写/创建/删除等
    3. 进程控制:进程的创建/撤销/阻塞/唤醒等
    4. 进程通信:进程之间的消息传递/信号传递等
    5. 内存管理:内存的分配/回收等
  • 什么功能用系统调用?
    1. 应用程序通过系统调用请求操作系统的服务
    2. 凡是与共享资源有关的操作(存储分配、I/O操作、文件管理等),必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成
    3. 保证系统的稳定性和安全性,防止用户进行非法操作
  • 系统调用的过程:传递系统调用的参数 → 执行陷入指令【用户态】 → 执行相应的内请求,核程序处理系统调用 【核心态】 → 返回应用程序
    1. 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
    2. 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
    3. 陷入指令 = trap 指令 = 访管指令

四、操作系统体系结构

在这里插入图片描述

  • 内核:操作系统最基本、最核心的部分
  • 内核程序:实现操作系统内核功能的程序
    在这里插入图片描述

4.1 大内核(宏内核/单内核)与 微内核

在这里插入图片描述

  • 操作系统内核需要运行在内核态,非内核功能运行在用户态
  • 变态的过程是有成本的,需要耗费时间,频繁地变态会降低系统性能
  • 微内核:使用消息传递进行间接通信
    在这里插入图片描述

4.2 分层结构、模块化、外核

  1. 分层结构
    • 最底层是硬件,最高层是用户接口
    • 每层可调用更低一层
  2. 模块化
    • 模块化将操作系统按功能划分为若干个具有一定独立性的模块
    • 内核 = 主模块 + 可加载内核模块
  3. 外核exokernel
    • 内核负责进程调度、进程通信
    • 外核负责为用户进程分配未经抽象的硬件资源,负责保证资源使用安全
    • 未经抽象的硬件资源:根据用户进程分配连续空间,减少磁头不停转换、减少虚拟硬件资源的映射
      在这里插入图片描述

4.3 系统结构的比较

在这里插入图片描述

五、操作系统引导boot

在这里插入图片描述

  1. CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序 (先进行硬件自检,再开机)
  2. 将磁盘的第一块——主引导记录 读入内存,执行磁盘引导程序,扫描分区表
  3. 从活动分区 (又称主分区,即安装了操作系统的分区) 读入分区引导记录,执行其中的程序
  4. 从根目录下找到完整的操作系统初始化程序(即 启动管理器) 并执行,完成“开机”的一系列动作

六、虚拟机

  • 虚拟机virtual machine,VM:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每个虚拟机器都独立运行一个操作系统
  • 虚拟机管理程序VMM = 虚拟机监控程序: virtual machine monitor/hypervisor
  • VMM分类:
    1. 第一类:直接运行在硬件上
    2. 第二类:运行在宿主操作系统上
  • 支持虚拟化的CPU通常分更多指令等级:最高权限Ring 0 — 最低权限Ring 3
  • 两类虚拟机管理程序VMM对比
    在这里插入图片描述
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊有礼貌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值