系统架构设计-操作系统知识点
Posted 小毕超
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统架构设计-操作系统知识点相关的知识,希望对你有一定的参考价值。
一、操作系统的类型结构与定义
计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统的基本类型有:批处理操作系统、分时操作系统和实时操作系统。从资源管理的角度看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理。
操作系统为用户提供的接口表现形式一般为:命令、菜单、窗口之类
按照操作系统的功能划分,操作系统的基本类型有批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、微内核操作系统等。
操作系统的主要功能是进行处理机与进程管理、存储管理、设备管理、文件管理和作业管理的工作。
二、进程管理
处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。进程是处理机管理中最基本的、最重要的概念。进程是系统并发执行的体现。由于在多道程序系统中,众多的计算机用户都以各种各样的任务,随时随地争夺使用处理机。为了动态地看待操作系统,则以进程作为独立运行的基本单位,以进程作为分配资源的基本单位, 从进程的角度来研究操作系统。因此,处理机管理也被称为进程管理。
1. 进程的状态转换 ----- 三态模型
-
就绪状态。当进程已分配了除 CPU 以外的所有必要的资源后,只要能再获得处理机,便能立即执行,把这时的进程状态称为就绪状态。在一个系统中,可以有多个进程同时处于就绪状态,通常把它们排成一个队列,称为就绪队列。
-
执行状态指进程已获得处理机,其程序正在执行。在单处理机系统中,只能有一个进程处于执行状态。
-
阻塞状态指进程因发生某事件(如请求 I/O、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种暂停状态为阻塞状态,有时也称为“等待”状态,或“睡眠”状态。通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。
2. 进程的状态转换 ----- 五态模型
- 被挂起的进程,原来可能处于就绪状态,此时进程(被挂起)的状态称为挂起就绪;若被挂起的进程原来处于阻塞状态,此时的状态称为挂起阻塞。不论哪种状态,该进程都是不可能被调度而执行的。
- 处于挂起阻塞状态的进程,其阻塞条件与挂起条件无关;当进程所期待的事件出现后,进程虽不再被阻塞,但仍不能运行,这时,应将该进程从静止阻塞状态转换为挂起就绪状态。
- 进程可以由其自身挂起,也可由用户或操作系统等将之挂起。其目的都在于阻止进程继续运行,被挂起的进程只能用显式方式来激活,以便从挂起状态中解脱出来。
3. 互斥是资源的竞争关系,而同步是进程间的协作关系。
4. 系统中有些资源可以供多个进程同时使用,有些资源则一次仅允许一个进程使用,将一次仅允许一个进程使用的资源称为临界资源。很多物理设备如打印机、磁带机等都属于临界资源。把一个进程访问临界资源的那段程序代码称为临界区。
三、PV操作
为了保护共享资源(如公共变量),使它们不被多个进程同时访问,就要阻止这些进程同时执行访问这些资源(临界资源)的代码段(临界区);进程互斥不允许两个以上共享临界资源的并发进程同时进入临界区。利用 P、V 原语和信号量可以方便地解决并发进程对临界区的进程互斥问题。
P(S)操作的过程是将信号量 S 值减 l,若 S 的值成负数,则调用 P 操作的进程暂停执行,直到另一个进程对同一信号量做 V 操作。V(S )操作的过程是将信号量 S 值加 1,若 S 的值小于等于 0,从相应队列(与 S 有关的队列)中选一个进程,唤醒它。
一般 P 操作与 V 操作的定义如下所述。
四、前趋图
前趋图是一个由结点和有向边构成的有向无循环图。该图通常用于表现事务之间先后顺序的制约关系。图中的每个结点可以表示一个语句、一个程序段或是一个进程,结点间的有向边表示两个结点之间存在的前趋关系。
直接制约通常是指一个操作中,多个步骤之间的制约关系,也可以说是“同步的进程之间的制约关系”。如 A1、B1、C1 。
间接制约通常是指多个操作之间相同步骤的制约关系,也可以说是“互斥的进程之间的制约关系”。如 A1、A2、A3 。
五、进程调度与死锁
进程调度的方式有两类:剥夺方式与非剥夺方式。
-
剥夺方式是指,当就绪队列中有进程的优先级高于当前执行进程的优先级时,便立即发生进程调度,转让处理机。
-
非剥夺方式是指,一旦某个作业或进程占用了处理器,别的进程就不能把处理器从这个进程手中夺走,直到该进程自己因调用原语操作而进入阻塞状态,或时间片用完而让出处理机。
在进程管理的实现中,如果设计不当,会出现一种尴尬的局面——死锁。 死锁是系统的一种出错状态,它不仅会浪费大量的系统资源,甚至还会导致整个系统的崩溃,所以死锁是应该尽量预防和避免的。
死锁条件:
互斥条件、保持和等待条件、不剥夺条件和环路等待条件
解决死锁:
解决死锁有两种策略:一种是在死锁发生前采用的预防和避免策略;另一种是在死锁发生后采用的检测与恢复策略。
- 死锁的预防主要是通过打破死锁产生的 4 个必要条件之一来保证不会产生死锁。采用的死锁预防策略通常有资源的静态分配法或有序分配法,分别打破了资源动态分配条件和循环等待条件,因此不会发生死锁。但这样做会大大降低系统资源的利用率和进程之间的并行程度。
- 死锁避免策略,则是在系统进行资源分配时,先执行一个死锁避免算法(典型的如银行家算法),以保证本次分配不会导致死锁发生。由于资源分配很频繁,因此死锁避免策略要耗费大量的 CPU 和时间。
六、存储管理
存储器是计算机系统中最重要的资源之一。因为任何程序和数据以及各种控制用的数据结构都必须占有一定的存储空间,因此,存储管理直接影响系统性能。存储管理主要是指对内存储器的管理,负责对内存的分配和回收、内存的保护和内存的扩充。存储管理的目的是尽量提高内存的使用效率。
1. 页式存储管理
分页的基本思想是把程序的逻辑空间和内存的物理空间按照同样的大小划分成若干页面,并以页面为单位进行分配。
逻辑地址,或虚地址 (页号||页内地址)
物理地址 (页帧号(物理块号)||页内地址)
逻辑地址 ==> 物理地址: 页内地址相同,页号和块号的对应关系可查询页表
若欲访问的页面不在内存中,则产生一个“缺页中断” 由操作系统把当前所需的页面装入内存储器中。可用一个标志位指示对应页是否在内存储器,可假设标志位为 1 表示该页在内存,而标志位为 0 表示该页尚未装入内存。为了能方便地从磁盘上找到作业信息的副本,故在页表中还可指出每一页副本在磁盘上的位置。
优点: 利用率高、碎片小、分配及管理简单。
缺点:增加了系统开销;可能产生抖动现象
2. 段式存储管理
段式存储管理与页式存储管理相似。分段的基本思想是把用户作业按逻辑意义上有完整意义的段来划分,并以段为单位作为内外存交换的空间尺度。
段表包含: 段号/ 段长/ 基址
虚(逻辑)地址: (段号, 位移量)
物理地址: 基址+位移量
优点:多到程序共享内存,各段程序修改互不影响。
缺点:内存利用率低,内容碎片浪费大。
3. 段页式存储管理
段页式管理是段式和页式两种管理方法结合的产物,综合了段式组织与页式组织的特点,根据程序模块分段,段内再分页,内存被分划成定长的页。段页式系统中虚地址形式是(段号、页号、页内偏移)
系统为每个进程建立一个段表,为每个段建立一个页表。段页式管理采用段式分配、页式使用的方法,便于动态连接和存储的动态分配。这种存储管理能提高内存空间的利用率。
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接。
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内存也有所增加,使得执行速度大大下降。
4. 快表
快表是一块小容量的相联存储器,由高速缓存组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
快表将页表存于Cache上,慢表将页表存于内存上。
5.淘汰策略
当内存中无空闲块时,为了装入一个页面而必须按某种算法从已在内存的页中选择一页,将它暂时调出内存,让出内存空间以存放所需装入的页面,这个工作称为“页面调度”,常用的页面调度算法有:
-
最优(OPT)算法。选择不再使用或最远的将来才被使用的页,这是理 的算法,但是难以实现,常用于淘汰算法的比较。
-
随机(RAND)算法。随机地选择被淘汰的页,开销小,但是可能选中立即就要访问的页。
-
先进先出算法。选择在内存驻留时间最长的页似乎合理,但可能淘汰掉频繁使用的页。另外,使用 FIFO 算法时,在未给予进程分配足够的页面数时,有时会出现给予进程的页面数增多,缺页次数反而增加的异常现象。FIFO 算法简单,易实现。可以把装入内存储器的那些页的页号按进入的先后顺序排成队列,每次总是调出队首的页,当装入一个新页后,把新页的页号排到队尾。
-
最近最少使用(Least Recently Used,LRU)算法。选择离当前时间最近的一段时间内使用得最少的页。这个算法的主要出发点是,如果某个页被访问了,则它可能马上就要被访问;反之,如果某个页长时间未被访问,则它在最近一段时间也不会被访问。
七、索引文件结构
一般的索引文件有十三个索引,前十个为直接索引,10为一级间接索引,11为二级索引,12为三级索引。物理盘块存的索引文件内容。
假设一个物理盘块为4k的大小,直接索引存物理盘块的内容,则在直接索引可以存 10 X 4k = 40k 的容量,而在一级间接索引中 不再存物理盘块的直接内容,而是存物理盘块的地址,假设一个地址占4个字节,则在一级间接索引中可以存 4K / 4字节 = 1024个 物理盘快的地址,即可以存 1024 X 4k 的容量,同理二级间接索引中,第一层索引存的第二层的物理盘快地址,第二层又存的第三层的物理盘快地址,所以二级间接索引的容量是1024 * 1024 * 4k 的容量,以此类推三级间接索引。
可见间接的层级越高,索引文件存储的内容越大,同样效率也会越来越慢。
看上面这个题,从题中看出前五个为直接索引,5、6为一级索引,7为二级索引,一个物理盘快为1k的大小,一个地址项为4个字节,则一个物理盘块可以存1024 / 4 = 256 个地址项,题中问逻辑块号为5物理块号,逻辑块号是从0开始的,应该是第6个位置,即一级间接索引的第一个位置58,同理逻辑块号261,也是从0开始的,实际为262个位置,减去直接索引的5个等于257的位置,由于一个物理块可以存放256个地址项,257只能放到6号物理块的第一个位置,即187。
101号物理块从图中可以看出是处在二级索引的的索引表中的。
八、位示图
位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况,如图所示。当其 值为“0”时,表示对应的盘块空闲;为“1”时表示已分配。由所有盘块对应的位构成一个集合,称为位示图。
从题中可以看出,系统中字长为32位,每一位对应文件存储器的一个物理块,由于物理块是从0开始算的,即4195号物理块实际是第4196个物理块,即4196 / 32 = 131 余 4,即应该是位示图的第132个字中,既然要放入肯定该位为1,由于从0开始,就只能在第132个字中的第3个位置为“1”。
九、扩展:
直接存储访问(Direct Memory Access,DMA)方式。指外部设备和内存之间开辟直接的数据交换通路。
以上是关于系统架构设计-操作系统知识点的主要内容,如果未能解决你的问题,请参考以下文章
软考系统架构设计师复盘架构设计师真题知识点第六章---架构基础概念