本文主要是介绍操作系统复习 一、二章,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
操作系统复习 一、二章
文章目录
- 操作系统复习 一、二章
- 第一章 计算机系统概述
- 处理器中各寄存器的作用
- 指令的执行过程
- 中断
- 存储器层次结构和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)说明来意!希望能够与你共同进步
这篇关于操作系统复习 一、二章的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!