操作系统复习 一、二章
操作系统复习 一、二章
文章目录
- 操作系统复习 一、二章
- 第一章 计算机系统概述
- 处理器中各寄存器的作用
- 指令的执行过程
- 中断
- 存储器层次结构和Cache
- I/O 通信技术
- 第二章 操作系统概述
- 大内核微内核
- 大内核
- 微内核
- 操作系统的定义、目标和功能
- 定义
- 目标和功能
- 操作系统的发展过程
- 现代操作系统的特征
第一章 计算机系统概述
处理器中各寄存器的作用
处理器中有多个寄存器,每个寄存器都有特定的作用,用于存储不同类型的数据或执行不同的任务。以下是一些常见的处理器寄存器及其作用:
-
程序计数器(Program Counter,PC):
- 作用:存储下一条将要执行的指令的内存地址。在执行完一条指令后,PC会自动递增,以指向下一条指令。
-
指令寄存器(Instruction Register,IR):
- 作用:存储当前正在执行的指令,供解码和执行单元使用。
-
累加器(Accumulator,ACC):
- 作用:在算术逻辑运算中用于存储操作数和结果,特别是在一些简单的指令集架构中,累加器是主要的数据操作寄存器。
-
状态寄存器(Flag Register):
- 作用:存储有关处理器状态的信息,如零标志、进位标志、溢出标志等。这些标志在条件分支和指令执行时用于判断和控制程序流。
-
数据寄存器(Data Register,DR):
- 作用:用于存储当前指令中的数据,供执行单元进行运算。它可以是通用的数据寄存器,也可能是指令中特定的寄存器。
-
地址寄存器(Address Register,AR):
- 作用:存储内存地址,用于指向将要读取或写入的内存单元的地址。
-
栈指针寄存器(Stack Pointer,SP):
- 作用:用于指示栈的顶部,即最近压入栈的数据的位置。在函数调用和返回、中断处理等情况下,栈指针被用于管理栈上的数据。
-
基址寄存器(Base Register,BR)和变址寄存器(Index Register,IR):
- 作用:在一些指令中,用于计算内存地址,通过将基址寄存器的值与变址寄存器的值相加得到最终的地址。
这些寄存器在处理器中共同协作,用于执行各种计算和控制任务。寄存器的数量和作用可能会因处理器的架构而异,不同的架构可能具有不同的寄存器集。
PSW记录操作系统是出于用户态还是内核态
0是用户态
1是内核态
指令的执行过程
指令执行的过程可以简要地分为以下几个步骤:
-
取指(Instruction Fetch): 计算机从内存中读取下一条要执行的指令,将其加载到指令寄存器中。
-
解码指令(Instruction Decode): CPU 解码指令,确定指令的操作类型和所涉及的寄存器或内存位置。
-
执行指令(Execute): CPU 执行指令中包含的操作,可能涉及算术运算、逻辑运算、数据传输等。
-
访存(Memory Access): 如果指令需要读取或写入内存位置,CPU 将执行相应的内存访问操作。
-
写回(Write Back): 如果指令执行的结果需要写回到寄存器文件中,CPU 将把结果写回到相应的寄存器。
这个过程被称为取指执行周期(Fetch-Execute Cycle)或指令周期,是计算机执行指令的基本流程。不同的指令集架构和CPU设计可能有一些细微的差异,但这是一个基本的执行过程。
中断
中断是计算机操作系统中的一种机制,用于打破正常的程序执行流程,转而处理某种特殊事件或请求。当系统发生某些预定义的事件时,会触发中断,操作系统会停止当前正在执行的程序,保存其状态,然后转而执行与中断相关的处理程序。一旦中断处理完成,系统会返回到被中断的程序继续执行。
中断可以分为外部中断和内部中断:
-
外部中断(硬件中断): 由外部设备或其他外部事件触发,如硬件故障、定时器到期、输入/输出完成等。
-
内部中断(软件中断): 是由程序执行指令产生的中断,通常通过软件中断指令(例如,系统调用)触发。
中断处理的基本步骤如下:
-
保存当前状态: 当中断发生时,操作系统首先保存被中断程序的状态,包括寄存器内容、程序计数器和其他相关信息。
-
切换上下文: 操作系统可能需要切换上下文,即将中断处理程序的上下文装入CPU,以便继续执行中断服务程序。
-
执行中断服务程序: 中断服务程序是为了处理特定中断而设计的一段代码。它负责完成与中断相关的任务,可能包括处理硬件事件、更新数据结构、响应用户输入等。
-
恢复状态: 中断服务程序执行完毕后,操作系统会恢复被中断程序的状态,使其能够继续执行。
-
继续执行: 最后,被中断的程序将继续执行,从中断发生的地方或者中断返回指令之后的位置继续执行。
中断机制使操作系统能够有效地处理异步事件,提高系统的响应性和可靠性。
存储器层次结构和Cache
存储器层次结构是计算机系统中不同速度和容量的存储器层次的组合,目的是提供对数据的快速访问和存储。这个层次结构通常包括寄存器、高速缓存、主存(RAM)和辅助存储器(如硬盘)等。
其中,高速缓存(Cache)是存储器层次结构中的关键组成部分,用于提高计算机系统的性能。高速缓存是一种小而快速的存储器,位于CPU 和主存(RAM)之间。它存储了最近被访问过的指令和数据,以减少对主存的频繁访问,提高数据访问的速度。
Cache 的工作原理基于局部性原理,包括以下两种局部性:
-
时间局部性(Temporal Locality): 如果一个数据被访问,那么在不久的将来它可能再次被访问。
-
空间局部性(Spatial Locality): 如果一个数据被访问,附近的数据也可能会被访问。
Cache 通常分为多级(L1、L2、L3):
-
L1 Cache(一级缓存): 通常集成在CPU内部,速度最快,但容量较小。它直接与CPU核心相连,用于存储指令和数据。
-
L2 Cache(二级缓存): 位于CPU 和主存之间,容量较大一些,速度次于L1 Cache。一些系统拥有每个CPU 核心私有的 L2 Cache,而另一些系统共享一个 L2 Cache。
-
L3 Cache(三级缓存): 通常位于CPU 和内存控制器之间,是一种更大容量的共享缓存,为多个CPU核心提供服务。
Cache 的命中和未命中是关键概念:
-
Cache 命中(Cache Hit): 如果需要访问的数据或指令在高速缓存中找到,则发生命中,数据可以直接从缓存中读取,而不必从主存中获取。
-
Cache 未命中(Cache Miss): 如果需要的数据或指令未在高速缓存中找到,则发生未命中,系统必须从主存中加载相应的数据块到缓存中,然后再访问。
Cache 的设计需要平衡容量、速度和成本等因素,以提供最佳性能。
I/O 通信技术
I/O(输入/输出)通信技术涉及计算机系统与外部设备之间的数据传输和交互。这是计算机系统与外部环境进行信息交流的关键部分。以下是一些常见的 I/O 通信技术:
-
串行通信和并行通信:
- 串行通信: 位逐位地传输数据,一次只传输一个比特。串行通信可以通过单根线缆进行,因此适用于长距离传输。
- 并行通信: 多个比特同时传输,通常使用多根线缆。尽管速度较快,但可能会受到干扰,适用于较短距离的高带宽需求。
-
USB(Universal Serial Bus):
- USB 是一种通用的串行总线标准,用于连接计算机与外部设备,如打印机、键盘、鼠标、摄像头等。它支持热插拔,提供了不同速度和电源规格的版本。
-
Thunderbolt:
- Thunderbolt 是一种高速串行接口技术,支持数据传输、视频输出和电源传递。它采用光纤或电缆,提供高带宽的数据传输速度。
-
PCI Express(PCIe):
- PCIe 是一种高性能的并行总线标准,用于连接计算机的主板和扩展卡,如图形卡、存储卡等。它提供了高带宽和低延迟的数据传输。
-
SATA(Serial ATA):
- SATA 是一种用于连接存储设备(如硬盘驱动器和光盘驱动器)的串行接口标准。它取代了并行ATA标准,提供了更高的数据传输速度。
-
Ethernet:
- 用于局域网(LAN)的标准网络通信技术。它支持TCP/IP协议,常见的速度包括1Gbps、10Gbps、100Gbps等。
-
Wireless Communication:
- 无线通信技术,如Wi-Fi和蓝牙,用于实现无线连接。Wi-Fi适用于局域网络,而蓝牙通常用于连接低功耗设备,如耳机、键盘等。
-
NFC(Near Field Communication):
- 一种短距离无线通信技术,用于近距离设备之间的数据传输。常见应用包括移动支付和智能标签。
这些 I/O 通信技术在不同场景中都有广泛的应用,取决于数据传输速度、距离、设备类型等需求。
第二章 操作系统概述
大内核微内核
大内核
将操作系统的主要功能模块进行集中,从而用以提供高性能的系统服务
优点:各个管理模块之间共享信息,能够有效利用相互之间的有效特性,所有有着巨大的性能优势
缺点:层次交互关系复杂,层次接口难以定义,层次之间界限模糊
微内核
背景:随着计算机体系结构的不断发展,操作系统提供的服务越来越多,接口形式越来越复杂
将内核中最基本的功能(如:进程管理)保留在内核,将不需要在核心态执行的功能转移到用户态执行,降低内核设计的复杂性
优点:
- 有效的分离内核与服务、服务与服务、使得他们之间的接口更加的清晰,维护的代价大大降低
- 各部分可以独立的优化和演进
缺点:性能问题,需要频繁的在核心态和用户态之间进行切换
操作系统的定义、目标和功能
定义
控制和管理整个计算机系统的硬件与软件资源
合理的组织、调度计算机的工作与原理
为用户和其他软件提供方便接口与环境的程序集合
目标和功能
- 管理功能
- 处理机管理
- 管理处理机的分配与运行,解决冲突问题,可以理解为对进程的管理
- 进程管理、进程控制、进程同步、进程通信、死锁处理、处理机调度
- 存储器管理
- 为了提高多道程序运行效率,方便用户使用
- 内存分配、地址映射、内存保护、共享和内存扩充
- 文件管理
- 操作系统负责管理文件的系统称为文件系统
- 文件存储空间的管理、目录管理、文件读写管理和保护
- 设备管理
- 完成用户的IO请求,方便用户使用设备,提高设备的利用率
- 缓冲管理、设备分配、设备处理、虚拟设备
- 处理机管理
- 接口功能
- 命令接口
- 联机控制方式 交互式命令接口,适用于分时或者实时系统,就像人与机器对话一样
- 脱机控制方式 又称批处理系统,提交一组作业,系统进行处理,用户不能干预作业的运行
- 程序接口
- 由一组系统调用命令组成(也称作系统调用或者广义指令)
- 例如:图形用户界面
- 命令接口
- 操作系统用作扩充机器
- 操作系统提供了资源管理功能和方便用户使用的各种服务功能,将机器改造为功能更强的机器
- 覆盖了软件的机器为扩充机器,又称为虚拟机
- 封装思想
- 操作系统把一些丑陋的硬件功能封装称简单易用的服务,使用户能更方便地使用计算机,用户无需关系底层硬件的原理,只需要对操作系统发出命令即可
操作系统的发展过程
- 手工操作阶段
- 批处理阶段
- 为了解决人机摩艾顿以及CPU和I/O设备之间速度不匹配的矛盾
- 单道批处理系统
- 内存中始终保存一道作业,作业成批进行
- 特点
- 自动行:一批作业自动执行不需要人工干预
- 顺序性:各道作业一次执行
- 单道行:仅有一道程序执行
- 优点:缓解了一定程度的人机速度矛盾,资源利用率有所有提高
- 缺点
- 告诉CPU等待I/O设别的完成
- 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序
- 多道批处理系统
- 允许多个程序在CPU中交替运行,程序共享各种硬件和软件资源
- 特点:
- 多道:计算机中同时存放躲到相互独立的程序
- 宏观上并行:多道程序都会开始运行,但都没有运行完毕
- 微观上串行:多道程序轮流占有CPU,交替执行
- 优点
- 资源利用率高
- 多道程序并发执行,共享计算机资源
- CPU和其他资源更能保持忙碌状态, 系统吞吐量大
- 缺点
- 设计复杂,要考虑各种资源调度问题
- 响应事件过程,没有人机交互功能
- 分时操作系统
- 将处理器运行时间划分为时间片,将时间片分配给不同作业/用户从而占用处理机
- 特点
- 同时性:允许多个终端用户使用同一台计算机
- 交互性:方便进行人机对话,用户采用人机对话方式控制程序运行
- 独立性:多个用户彼此,之间独立的操作,互不干扰
- 及时性:用户请求能在很短时间内获得响应
- 实时操作系统
- 保证在规定时间内完成某项任务
- 特点
- 及时性:规定时间内完成规足任务
- 可靠性:输出的结果正确,系统运行时确保稳定
- 分布式计算机系统
- 网络操作系统将多个计算机有机的结合在一起
- 任意两台计算机之间没有主从之分,互相交换信息,并行工作、协同完成
- 个人计算机操作系统
- 广泛应用于文字处理,电子表格,游戏
现代操作系统的特征
基本特征:并发、共享、虚拟、异步
- 并发
- 两个或者多个事件在同一时间间隔内发生,十分的系统具有处理和调度多个程序同时执行的能力
- 操作系统的并发是通过分时实现的
- 注意:并发是指在一个时间段,并行是指在同一时刻 并行是指操作系统具有同时执行或操作(硬件支持:多流水线或者多处理机) 对于单处理机来说,宏观上程序十并发的,微观上程序是交替进行的
- 重要考点
- 单核CPU同一时刻只能执行一个程序,各个程序只能并发的执行
- 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行的执行。
- 共享
- 互斥共享方式
- 例如打印机、此地啊、同一时刻只能供一个进程对资源进行访问
- 这种资源称作:临界资源或者独占资源
- 同时访问方式
- 一段时间内允许多个进程对资源进行访问
- 典型代表:磁盘设备 冲入编码编写的文件
- 互斥共享方式
- 虚拟
- 一个物理上的实体变为若干逻辑上的对应物,这种技术也被称为虚拟技术
- 虚拟处理器:采用多道程序并发的方式,让每个终端用户感觉到有多个处理器 时分复用技术
- 虚拟存储器:将物理存储变为虚拟存储器,逻辑上扩充存储器用量 空分复用技术
- 也可以将一台IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备
- 异步
- 多道程序走走停停,进程以不可预知的速度向前进
大家好,我是xwhking,一名技术爱好者,目前正在全力学习 Java,前端也会一点,如果你有任何疑问请你评论,或者可以加我QQ(2837468248)说明来意!希望能够与你共同进步
相关文章:

操作系统复习 一、二章
操作系统复习 一、二章 文章目录 操作系统复习 一、二章第一章 计算机系统概述处理器中各寄存器的作用指令的执行过程中断存储器层次结构和CacheI/O 通信技术 第二章 操作系统概述大内核微内核大内核微内核 操作系统的定义、目标和功能定义目标和功能 操作系统的发展过程现代操…...

【国内访问github不稳定】可以尝试fastgithub解决这个问题
1、下载 https://github.com/dotnetcore/FastGithub https://github.com/dotnetcore/FastGithub/releases 官网下载即可,比如,我用的是这个:fastgithub_osx-x64.zip(点这里下载) 2、安装 如下图双击启动即可 3、…...

android:clickable=“false“无效,依然能被点击
android:clickable“false”依然能被点击,该属性意义何在? 在Android中,android:clickable 属性用于指定一个视图(View)是否可以被点击。当你设置 android:clickable"true" 时,表示该视图可以接…...

Springboot WebFlux项目结合mongodb进行crud
第一步:创建项目 第二步:给mongodb插入数据 第三步:创建实体类 package org.cyl.test02.entity;// Task.java import lombok.Data;Data public class Task {private String id;private String description; }第四步:创建Reposito…...

超维空间M1无人机使用说明书——61、ROS无人机物体识别与精准投放
引言:基于空中物流的项目背景。我们提供了使用基于诗句的物体识别和精准投放、降落。实现原理如下: 1、在ROS下使用机载电脑实现物体识别 2、记载电脑根据反馈的位置发布运动控制指令 3、PX4解析机载电脑发布的命令,作出运动控制 4、设置…...

Flask 小程序菜品搜索
mina/pages/food/index.wxml <!--index.wxml--> <!--1px 750/320 2.34rpx;--> <view class"container"><!--轮播图--><view class"swiper-container"><swiper class"swiper_box" autoplay"{{autoplay}…...

Excel·VBA按指定顺序排序函数
与之前写过的《ExcelVBA数组冒泡排序函数》不同,不是按照数值大小的升序/降序对数组进行排序,而是按照指定数组的顺序,对另一个数组进行排序 以下代码调用了《ExcelVBA数组冒泡排序函数》bubble_sort_arr函数(如需使用代码需复制…...

数据结构学习笔记——查找算法中的树形查找(红黑树)
目录 一、红黑树的定义(一)黑/红结点、叶子节点(二)黑色完美平衡 二、红黑树的性质(一)黑高和高度(二)叶子结点个数 三、红黑树与AVL对比 一、红黑树的定义 红黑树是一棵二叉排序树…...

Debezium发布历史66
原文地址: https://debezium.io/blog/2019/07/25/debezium-0-10-0-beta3-released/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Debezium 0.10.0.Beta3 发布 七月 25, 2019 作者: Jir…...

Redis系列之使用Lua脚本
什么是lua脚本? lua语言是一个轻量级的脚本语言,可以嵌入其他语言中使用,调用宿主语言的功能。lua语法简单,小巧,源码一共才200多K,本身不会有太强的功能,很多的语言也支持lua语言,…...

Wargames与bash知识16
Wargames与bash知识16 Bandit24 关卡提示: 一个守护进程正在端口30002上侦听,如果给定bandit24的密码和一个4位数的密码,它将为您提供bandit25的密码。没有办法检索pincode,除非遍历所有10000个组合,称为暴力强制。您…...

关于运维·关于数据库面试题
目录 一、数据库类型 二、数据库引擎 三、mysql数据库类型 四、mysql的约束添加 五、主从复制原理 六、主从方式有几种 七、mysql主从数据不一致的原因 八、mysql的优化 九、什么是事务的特征 十、数据库读写分离的好处 十一、怎样优化sql语句 十二、mysql的同步方…...

MySQL题目示例
文章目录 1.题目示例 1.题目示例 09)查询学过「张三」老师授课的同学的信息 SELECT s.*, c.cname, t.tname, sc.score FROM t_mysql_teacher t, t_mysql_course c, t_mysql_student s, t_mysql_score sc WHERE t.tid c.tid AND c.cid sc.cid AND sc.sid s.sid …...

HTML基本语法
HTML基本语法 1.介绍: 1.1超文本: 指的是网页中可以显示的内容(图片,超链接,视频…) 1.2标记:标签(通过标记符号来告诉浏览器网页内容该如何显示) 标记语言中,提供了许多的标签,不同的标签…...

二分图最大匹配——匈牙利算法详解
文章目录 零、前言一、红娘牵线二、二分图最大匹配2.1概念2.2交替路2.3增广路2.4匈牙利算法2.4.1算法原理2.4.2算法示例2.4.3代码实现 3.OJ练习3.1模板3.2棋盘覆盖3.3車的放置 零、前言 关于二分图的基本知识见:二分图及染色法判定 一、红娘牵线 一位红娘近日遇到一…...

【AI视野·今日Robot 机器人论文速览 第七十一期】Fri, 5 Jan 2024
AI视野今日CS.Robotics 机器人学论文速览 Fri, 5 Jan 2024 Totally 11 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Machine Learning in Robotic Ultrasound Imaging: Challenges and Perspectives Authors Yuan Bi, Zhongliang Jiang, Felix D…...

xtu oj 1334 Least Common Multiple
题目描述 一个集合,任取3个不同的元素,求其最小公倍数中最小的值是多少? 输入 第一行是样例数T(1≤T≤100)。 每个样例的第一行是一个整数n(3≤n≤50),表示集合元素的个数。 每个样例的第二行是n个整数a1,a2,…,an,1≤ai≤106。…...

【论文笔记】End-to-End Diffusion Latent Optimization Improves Classifier Guidance
Abstract Classifier guidance为图像生成带来了控制,但是需要训练新的噪声感知模型(noise-aware models)来获得准确的梯度,或使用最终生成的一步去噪近似,这会导致梯度错位(misaligned gradients)和次优控制(sub-optimal control)。 梯度错位…...

【HarmonyOS4.0】第四篇-ArkUI基础实战
一、ArkUI框架简介 ArkUI开发框架是方舟开发框架的简称,它是一套构建 HarmonyOS / OpenHarmony 应用界面的声明式UI开发框架,它使用极简的UI信息语法、丰富的UI组件以及实时界面语言工具,帮助开发者提升应用界面开发效率 30%,开发…...

每日一题——LeetCode1128.等价多米诺骨牌对的数量
先尝试暴力解法: var numEquivDominoPairs function(dominoes) {var count0for(let i0;i<dominoes.length-1;i){for(let ji1;j<dominoes.length;j){if((dominoes[i][0]dominoes[j][0] && dominoes[i][1]dominoes[j][1]) || (dominoes[i][0]dominoes…...

关联规则分析(Apriori算法2
目录 1.核心术语:2.强关联规则:小结: 1.核心术语: 支持度(Support):指项集出现的频繁程度(相当于项集出现的概率) 最小支持度有绝对值和占比两种表示方式 置信度&#…...

数据仓库(2)-认识数仓
1、数据仓库是什么 数据仓库 ,由数据仓库之父比尔恩门(Bill Inmon)于1990年提出,主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,做…...

C#编程-实现委托
实现委托 委托是可以存储对方法的引用的对象。在C#中,委托允许您动态地改变类中方法的引用。 考虑咖啡售货机的示例,它配置不同口味的咖啡,例如卡布奇诺咖啡和黑咖啡。在选择所需口味的咖啡时,售货机决定混合各种成分,例如奶粉、咖啡粉、热水、卡布奇诺咖啡粉。所有的材…...

Ubuntu18.04 Qt 实现MQTT
什么是MQTT? 作用是什么(适用场景)? 与其他通讯协议相比,优缺点在那里? 一.安装 MQTT 服务器 使用 EMQ X(开源且可视化管理) 下载 EMQX 下载的是 emqx-5.0.26-ubuntu18.04-…...

【软件测试】学习笔记-不同视角的软件性能与性能指标
本篇文章探讨新的测试主题:性能测试,因为性能测试的专业性很强,所以我会以从0到1的入门者视角,系统性地阐述性能测试的方法以及应用领域,用实例去诠释各种性能指标。 本篇文章站在全局的视角,帮你梳理软件性…...

Spring MVC组件
1.DispatcherServlet前端控制器 用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。 2.HandlerMappin…...

vue文件在<template>中使用多个<el-main>报错(已解决)
目录 1.原理 2. 根据你的需求,自定义每个 组件的内容。你可以在 标签内部插入文本、其他组件、样式等。 3. 根据需要添加样式或其他属性到每个 组件。你可以使用 class、style 或其他属性来自定义每个组件的外观和行为。 4.一个可以运行的总代码如下 5.我的一…...

【PlantUML】- 时序图
写在前面 本篇文章,我们来介绍一下PlantUML的时序图。这个相对类图来讲,比较简单,也不需要布局。读完文章,相信你就能实际操作了。 目录 写在前面一、基本概念二、具体步骤1.环境说明2.元素3.语法4.示例 三、参考资料写在后面系列…...

openai自定义API操作 API (openai.custom):OpenAI API 实现电商平台的智能库存管理
在电商行业中,库存管理是至关重要的环节之一。一个高效的库存管理系统可以确保商品的正常供应,避免缺货或积压现象,从而提高销售效率和客户满意度。然而,传统的库存管理方式往往存在一些问题,如数据不准确、响应不及时…...

宠物服务新篇章:预约小程序带来的变革
随着科技的进步和互联网的普及,小程序已经成为了一种非常受欢迎的应用形式。对于宠物门店来说,开发一个预约小程序可以大大提高客户体验和管理效率。下面是一份宠物门店预约小程序的开发指南。 浏览器搜索乔拓云,登录乔拓云网后台,…...