王道操作系统笔记(一)———— 计算机系统概述

news2024/12/23 22:13:40

文章目录

  • 一、操作系统基本概念
    • 1.1 基本概念
    • 1.2 四大特征
    • 1.3 目标和功能
  • 二、操作系统的分类与发展
  • 三、操作系统的运行环境
    • 3.1 运行机制
    • 3.2 中断和异常
    • 3.3 系统调用
  • 四、操作系统的体系结构
    • 4.1 宏内核与微内核
    • 4.2 分层结构
    • 4.3 模块化
    • 4.4 外核
  • 五、操作系统引导
  • 六、虚拟机


一、操作系统基本概念

1.1 基本概念

  操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件

1.2 四大特征

并发、共享、虚拟、异步。

1. 并发只在同时发生,微观上是交替发生。
2. 并发 是指 同一时间间隔 内发生,并行 是指 同一时刻 发生。
3. 单核cpu同一时刻只能执行一个程序,各程序只能并发执行。
 多核cpu同一时刻可同时执行多个程序,多个程序可并行执行。
4. 并发与共享是两个 最基本的特征,二者互为存在条件。

1. 共享分为:互斥共享方式和同时共享方式:
互斥共享方式:在一段时间内只允许一个进程访问该资源。
同时共享方式:允许在一段时间内有多个进程同时访问。
2. 虚拟技术分为:空分复用技术(如虚拟存储器技术)和时分复用技术(如虚拟处理器技术)


1.3 目标和功能

  1. 作为系统资源的管理者

    提供功能:处理机管理、存储器管理、文件管理、设备管理
    目标:安全、高效

  2. 向上层提供方便易用的服务

    一般用户 直接 使用的接口:
       图形接口:如 GUI
       命令接口:联机命令接口、脱机命令接口(区别在于一行和一堆)

    应用程序/编程人员 使用的接口:
       程序接口(系统调用),即通过程序 间接 使用。

  3. 最接近硬件的软件

    在这里插入图片描述


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

单道批处理与多道批处理的区别:
在这里插入图片描述
注:多道批处理的并行,对于单核cpu指的是I/O与CPU并行。


三、操作系统的运行环境

3.1 运行机制

  1. 两种指令特权指令 和 非特权指令
    操作系统内核作为 “管理者”,有时会让CPU执行一些特权指令,这些指令只允许 “管理者” 来执行。

    常见的特权指令:
    ① 开中断指令、关中断指令
     ② 写时钟指令(置时钟指令)
     ③ 写入/输出指令(I/O指令)
     ④ 写 PSW 寄存器指令(访问程序状态指令)
     ⑤ 内存清零指令

  2. 两种处理器状态内核态 和 用户态
    处于内核态时,说明正在运行的是内核程序,即可执行特权指令,又可执行非特权指令
    处于用户态时,说明正在运行的是应用程序,只能执行非特权指令
    其中,内核态又称目态,内核态又称管态。

    内核态→用户态: 一条修改 PSW 的特权指令。
    用户态→内核态: 由中断引起,硬件自动完成。触发中断信号意味着 OS 将强行夺回CPU的使用权。
       如:① 请求系统内核服务,CPU在用户态下执行陷入指令,引发中断,意味着应用程序主动将 CPU 控制权还给操作系统。
         ② 试图在用户态下执行特权指令,引发 OS 变成内核态,夺回 CPU 使用权等

    注:陷入指令 = 访管指令 = trap指令

  3. 两种程序内核程序 和 应用程序

  4. 三者关系:操作系统的内核程序,即可运行特权指令,又可运行非特权指令,程序运行在核心态。普通应用程序只能运行非特权指令,运行在用户态。

    注:中断处理程序一定是内核程序,其运行在内核态。


3.2 中断和异常

中断是让操作系统夺回CPU使用权的唯一途径。

  1. 中断的分类:
    在这里插入图片描述
    注:故障(Fault)和自陷(Trap)统称为 软件中断,终止(Abort)是 硬件中断

  2. 中断机制的基本实现原理:

    1. 检查中断信号:
       内中断:CPU在执行指令时,会检查是否有异常发生。
       外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需处理。
    2. 找到相应的中断处理程序:
       硬件向量法(中断向量法)、软件查询法

  3. 中断处理时保存的数据:

    1. 硬件负责:PC、PSW
    2. OS负责:其他有 “必要” 保存的数据(如:通用寄存器)、中断屏蔽字
          若此类寄存器在中断处理中不使用,则不用保存。

  4. 中断处理完整流程:

    ① 当 CPU 检测到中断信号后,由硬件自动保存被中断程序的断点(即程序计数器 PC)。
    ② 硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址(各中断向量统一存放在中断向量表中,该表由操作系统初始化)。
    ③ 开始执行中断服务程序,保存 PSW、中断屏蔽字、各通用寄存器的值,并提供与中断信号对应的中断服务,中断服务程序属于操作系统的内核。

    操作系统完成: 提供中断服务、初始化中断向量表、保存中断屏蔽字(来源:20年408第25题)


3.3 系统调用

  系统调用是操作系统给 编程人员/应用程序 使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。

  1. 系统调用与库函数的区别:
    库函数有时会对系统调用进行封装,以隐藏系统调用的一些细节,如“创建一个新文件”的函数。但也存在不涉及系统调用的库函数,如“取绝对值”的函数。编程人员调用库函数,会使得编程更加方便。

  2. 涉及系统调用的功能:
    应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

  3. 系统调用过程:
    在这里插入图片描述

    过程: 传递系统调用参数 执行陷入指令(用户态 执行相应的内请求核程序处理系统调用(内核态 返回应用程序
    注意:陷入指令 是在 用户态 执行的,执行陷入指令之后立即引发一个 内中断,使CPU进入 核心态
        ② 发出系统调用请求是在 用户态,而对系统调用的相应处理在 核心态 下进行
        ③ 陷入指令 = 访管指令 = trap指令


四、操作系统的体系结构

4.1 宏内核与微内核

  1. 操作系统的内核
    在这里插入图片描述

    注:① 宏内核,又名:大内核、单内核
      ② 操作系统内核需要运行在内核态
      ③ 操作系统的非内核功能运行在用户态

  2. 操作系统内核功能
    在这里插入图片描述

    1. 宏内核与微内核对比
      若应用程序的一个服务处理同时涉及进程管理、存储管理、设备管理,宏内核需要 2 次 “变态”,而微内核需要 6 次 “变态”。
      在这里插入图片描述
      注:处理器两种状态之间的转换是有成本的。
      在这里插入图片描述

4.2 分层结构

分层法是将操作系统分为若干层,最底层是硬件,最高层是用户接口,煤层智能调用紧邻它的低层的功能和服务(单向依赖)。

在这里插入图片描述

优点:便于调试和验证,自底向上逐层调试验证。
    ② 易扩充和易维护,各层之间调用接口清晰固定。
缺点: ① 仅可调用相邻低层,难以合理定义各层的边界。
    ② 效率低,不可跨层调用,系统调用执行时间长。


4.3 模块化

模块化是将操作系统按功能划分为若干个具有 一定独立性的模块,各模块之间相互协作。

内核 = 主模块 + 可加载内核模块
主模块:只负责核心功能,如:进程调度、内存管理等
可加载内核模块:可以动态加载新模块到内核而无需重新编译整个内核,如:设备驱动程序

在这里插入图片描述

优点: ① 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发。
    ② 支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性。
    ③ 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高。
缺点: ① 模块间的接口定义未必合理、实用。
    ② 模块间相互依赖,更难调试和验证。


4.4 外核

内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全

优点:外核可直接给用户进程分配 “不虚拟、不抽象” 的硬件资源,使用户进程可以更灵活的使用硬件资源。
    ② 减少了虚拟硬件资源的 “映射层”,提升效率。
缺点: ① 降低了系统的一致性。
    ② 使系统变得更加复杂。


五、操作系统引导

在这里插入图片描述

引导流程:
① 激活的 CPU 读取 ROM 中的自举程序,开始执行 BIOS 程序中的指令,并开始进行硬件自检。
② 将磁盘的第一块,主引导记录 MBR 读入内存,执行磁盘引导程序,其会扫描分区表,得知活动分区位置。
③ 从活动分区(又称主分区,即安装了操作系统的分区 C盘)读入分区引导记录 PBR,执行其中的程序,负责找到 “启动管理器”。
④ 从根目录下找到完整的操作系统初始化程序(即 启动管理器)并执行,完成开机的一系列动作。

注:操作系统最终被加载到 RAM 中。


六、虚拟机

在这里插入图片描述
理解: 第一类操作系统直接运行在硬件之上,第二类操作系统类似在 win 系统下安装的 VMware 软件。

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/157810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nacos2.x集群版搭建

1. 预备环境准备 请确保是在环境中安装使用: 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。--这里使用linux系统64 bit JDK 1.8;下载. 配置。Maven 3.2.x;下载. 配置。3个或3个以上Nacos节点才能构成集群。官网地址:集群部署说明 2、服务器…

Android 深入系统完全讲解(12)

11 跟踪一个服务,直接找到驱动实现 如果说我自己学习整个系统,直到底层驱动的方法,我想说的就是我常用的就是跟踪震动这个模块,而为什么是这个,主要是简单,但是又是从上到下都具备,对于学习系统…

【OpenCV】拾遗

前言 本篇博客主要是总结OpenCV使用过程中遇到的一些问题,便于以后参考。 以下所有内容均基于VS2015 OpenCV_v4.5.1 及 VS Code MinGW_v4.3.5 CMake_v3.20.0 OpenCV_v4.5.1,前者的配置教程可以参考这个链接,后者的配置教程可以参考这个链…

2022年衣物清洁行业市场报告:洗衣液等四大高增长类目分析

随着人们经济水平的提高以及消费观念的升级,当前个护家清用品逐渐朝品质化、精细化、个性化的方向发展,类目衍生更替更频繁、迭代速度更快。 得益于庞大的人口规模,个护家清产品规模巨大,衣物清洁行业虽增速放缓但仍在个护家清行…

OpenFoam收缩扩张喷管(拉瓦尔喷管)边界条件的设置

简介 收缩扩张喷管(也成拉瓦尔喷管)广泛应用于火箭推进。将其流动特性定性描述如下: (1)当入口流量较小时,不出现雍塞,流速先增大后减小,全程为亚声速。出口压力即为大气压&#x…

金融数学建模——2022年大湾区杯金融数学建模B题(解题思路及部分python代码)

目录 一、概述 二、赛题及解读 1.赛题详情 2.赛题解读 三、解题方法 1.第一问 第一问部分代码 2.第二问 第二问部分代码 3.第三问: 第三问部分代码 4.第四问 三、总结 一、概述 这次比赛是我们队伍第一次参加金融数学建模,尽管在比赛前用2020年…

数据结构与算法4—队列

队列 队列的定义 队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。队列的修改是依先进先出的原则进行的。队列的基本操作 1.初始化队…

Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务

Vue前后端页面下载功能实现效果图后台下载服务实现前台简单实现[ 文章推荐 ] Python 地图篇 - 使用 pyecharts 绘制世界地图、中国地图、省级地图、市级地图实例详解 效果图 首先看下演示效果。 点文档的话是 html 文档,跳转的预览,点下载的话是压缩包…

pycharm python 程序打包相关

前言 终于入门了python打包这个大话题,将目前学到的技能分享一下。 pycharm启动虚拟环境pipenv 缩小打包 和很多博客说的一样,打包那么大是因为打包了多余的库,因此想要缩小就需要一个干净的,没有多余的库的环境进行打包。也就是…

一文读懂内容生态驱动的“菌落式”增长

健康的内容生态对文娱行业极为重要。本文详细介绍了用内容生态建设驱动用户“菌落式”增长的路径。点击文末“阅读原文”立即观看完整直播回放,并下载演讲文档。内容生态与用户增长内容生态建设与用户增长互为因果。一方面,出圈的内容直接带来用户增长。…

《2022大数据产业年度创新服务企业》榜重磅发布丨金猿奖

‍年度金猿榜单/奖项本届“数据猿年度金猿策划活动——2021大数据产业创新服务企业榜单/奖项”由金猿&数据猿&上海大数据联盟共同推出。‍数据智能产业创新服务媒体——聚焦数智 改变商业2022年下半年度,由数据猿、金猿组委会共同推出的第五届 “年度金猿季…

通过usb利用adb实现android手机和pc机通信

1、 adb forward 原理概述 adb forward 的功能是建立一个转发 如:adb forward tcp:8000 tcp:9000 的意思是,将PC端的 8000 端口收到的数据,转发给手机中的 9000 端口。 但是光执行这个命令还不能转发数据,还需要完成下面两个步骤才…

【主色提取】HSV 颜色空间与 RGB 颜色空间互相转化的公式和代码

系列文章目录 第二章 主色提取之颜色空间转化 目录 系列文章目录 文章目录 前言 一、HSV 和 RGB 颜色空间 二、颜色转化 1. RGB to HSV 2. HSV to RGB 三、 完整代码 前言 HSV 颜色空间和 RGB 颜色空间的转化。 一、HSV 和 RGB 颜色空间 RGB颜色使用的最多&#xff0…

C语言详解【通讯录的实现】

前言: 在之前的学习中我们已经了解了结构体的一些知识,有了之前的知识的储备,在这里我们就可以尝试通讯录的实现。 目录问题描述基本流程前期的准备工作实现过程第一阶段第二阶段第三阶段1.增加联系人2.删除联系人3.打印通讯录4.查找指定联系…

高等数学(第七版)同济大学 习题11-7 个人解答

高等数学(第七版)同济大学 习题11-7 函数作图软件:Mathematica 1.试对曲面Σ:zx2y2,x2y2≤1,Py2,Qx,Rz2验证斯托克斯公式.\begin{aligned}&1. \ 试对曲面\Sigma:zx^…

yolov5+车道线检测

目标检测与车道线检测在自动驾驶以及车辆定位中起着重要的辅助作用,是环境感知中不可缺少的一个部分。基于深度学习的车道线检测方法近年来也在不断的提升,比如论文:Ultra Fast Deep Lane Detection with HybridAnchor Driven Ordinal Classi…

Allegro如何Wavie DRC操作指导

Allegro如何Wavie DRC操作指导 在做PCB设计的时候,会因为规则设置的原因,导致出现很多DRC,不方便检查,Allegro支持直接Waive掉正常DRC,方便检查,如下图 芯片中心需要打过孔方便散热,但是这些过孔的DRC是不需要显示的 具体操作如下 选择Display选择 Waive DRCs

数据结构与算法3—栈

1. 栈的定义 栈,也叫堆栈,是最常用也是最重要的数据结构之一。栈(Stack)是限定仅在表的一端进行插入或删除操作的线性表,通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)。当表中没有元素时称为空栈。栈操作的特点&am…

【服务器数据恢复】StorNext文件系统数据恢复案例

服务器数据恢复环境: 昆腾系列存储,9个磁盘柜,每个磁盘柜配置24块硬盘。其中8个磁盘柜用于存储数据,1个磁盘柜用于存储元数据。上层使用的是StorNext文件系统。 存储元数据的磁盘柜中24块磁盘的分配情况:8组RAID1阵列1…

1361. 验证二叉树

目录题目思路代码题目 二叉树上有 n 个节点,按从 0 到 n - 1 编号,其中节点 i 的两个子节点分别是 leftChild[i] 和 rightChild[i]。 只有 所有 节点能够形成且 只 形成 一颗 有效的二叉树时,返回 true;否则返回 false。 如果节点…