软考笔记(三)高级系统架构师/分析师:操作系统基础
目录
- 软考官网 报名通道
- 软考架构师笔记(一):计算机系统基础
- 软考架构师笔记(二):计算机网络基础与信息安全
- 软考架构师笔记(三):操作系统基础
- 软考架构师笔记(四):企业信息化与系统规划
- 软考架构师笔记(五):系统需求工程 需求分析
- 软考架构师笔记(六):数据库
- 软考架构师笔记(七):系统分析 系统设计
- 软考架构师笔记(八):系统架构
- 软考架构师笔记(九):软件工程与项目管理
- 软考架构师笔记(十):系统测试 维护 稳定性
进程管理
进程状态转换图
前驱图
前驱图是一个有向无循环图,记为DAG。用于这种图可以描述多个程序或进程之间的执行顺序关系。
- 〇 表示一个程序、进程或是语句的结点。
- → 表示结点间的执行顺序。
PV操作
临界资源:进程间需要互斥方式对其进行共享的资源
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:是一种特殊的变量
死锁问题
互斥,保持等待,不剥夺,环路等待
避免死锁的方法:
有序分配资源, 银行家算法
存储管理
分区存储组织,页式存储,段式存储,段页式存储
页面淘汰算法
最优(Optimal,OPT)算法
随机(RAND)算法
先进先出(FIFO)算法:有可能产生“抖动”与Belady奇异现象。
最近最少使用(LRU)算法:LRU的理论依据是“局部性原理”。要求较多硬件支持,成本高。
CLOCK算法:LRU近似算法。
简单CLOCK算法:循环队列,每页有访问位,淘汰访问位为0的页。
改进型CLOCK算法:同时考虑访问位与修改位。
时间局部性:刚被访问的内容,立即又被访问。
空间局部性:刚被访问的内容,临近的空间很快被访问。
程序访问具有时间局部性,即最近将要用的信息很可能是正在使用的信息
程序访问具有空间局部性,即最近将要用的信息很可能与正在使用的信息在存储空间上是相邻的
程序访问局部性是构成层次结构的存储系统的主要依据
存取方式
存储器中数据常用的存取方式有顺序存取、直接存取、随机存取和相联存取等4种。
(1)顺序存取:存储器的数据以记录的形式进行组织。对数据的访问必须按特定的线性顺序进行。磁带存储器采用顺序存取的方式。
(2)直接存取:与顺序存取相似,直接存取也使用一个共享的读写装置对所有的数据进行访问。但是,每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块的所在位置进行访问。存取时间也是可变的。磁盘存储器采用直接存取的方式。
(3)随机存取:存储器的每一个可寻址单元都具有自己唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。主存储器采用随机存取的方式。
(4)相联存取:相联存取也是一种随机存取的形式,但是选择某一单元进行读写是取决于其内容而不是其地址。与普通的随机存取方式一样,每个单元都有自己的读写装置,读写时间也是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问。为了提高地址映射的速度,Cache采取相联存取的方式。
文件管理
索引文件结构
位示图法
某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。
若磁盘上物理块的编号依次为:0、1、2、…;系统中的字长为32位,字的编号依次为:0、1、2、…,
字中的一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用,
如下图所示。假设操作系统将2053号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为 64 ,系统应该将该字的位号5的位置“1"
2053号物理块对应字的编号是64号,前面的0-2047位已经占满,因此第64号字的第0位是2048,第1位是2049,第2位是2050,第3位2051,第4位2052,第5位2053。
设备管理
IO层级划分
嵌入式系统
系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:
片级初始化、板级初始化和系统级初始化。
系统初始化:该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。
在嵌入式开发过程中有主机和目标机的角色之分。
主机是执行编译、链接和定址过程的计算机;
目标机是指运行嵌入式软件的硬件平台。首先须把应用程序转换成可以在目标机上运行的二进制代码。
这一过程包含3个步骤,分别为编译、链接和定址。
①编译过程由交叉编译器实现。所谓交叉编译器就是运行在一个计算机平台上并为另一个平台产生代码的编译器。
②编译过程产生的所有目标文件被链接成一个目标文件,称为链接过程。
③定址过程会把物理存储器地址指定给目标文件的每个相对偏移处。该过程生成的文件就是可以在嵌入式平台上执行的二进制文件。
微内核OS
在设计微内核OS时,采用了面向对象的技术,其中的“封装”,“继承”,“对象类”和“多态性”,以及在对象之间采用消息传递机制等,都十分有利于提高系统的“正确性”、“可靠性”、”易修改性”、“易扩展性”等,而且还能显著地减少开发系统所付出的开销。采用微内核结构的操作系统与传统的操作系统相比,其优点是提高了系统的灵活性、可扩充性,增强了系统的可靠性,提供了对分布式系统的支持。其原因如下。
①灵活性和可扩展性:由于微内核OS的许多功能是由相对独立的服务器软件来实现的,当开发了新的硬件和软件时,微内核OS只需在相应的服务器中增加新的功能,或再增加一个专门的服务器。与此同时,也必然改善系统的灵活性,不仅可在操作系统中增加新的功能,还可修改原有功能,以及删除已过时的功能,以形成一个更为精干有效的操作系统。
②增强了系统的可靠性和可移植性:由于微内核是出于精心设计和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(APl),为微内核外部的程序编制高质量的代码创造了条件。此外,由于所有服务器都是运行在用户态,服务器与服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其他服务器。另外,由于在微内核结构的操作系统中,所有与特定CPU和I/O设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其他绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。
③提供了对分布式系统的支持:由于在微内核OS中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息传递通信机制进行的,致使微内核OS能很好地支持分布式系统和网络系统。事实上,只要在分布式系统中赋予所有进程和服务器唯一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在进行客户与服务器通信时,只需在所发送的消息中标上发送进程和接收进程的标识符,微内核便可利用系统映射表将消息发往目标,而无论目标是驻留在哪台机器上。
嵌入式系统特点:
嵌入式系统具备以下7个特点:
(1)系统专用性强。
(2)系统实时性强。
(3)软硬件依赖性强。
(4)处理器专用。
(5)多种技术紧密结合。
(6)系统透明性。
(7)系统资源受限。