一、操作系统概述

操作系统定义:

能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。

操作系统有三个重要的作用:

第一,管理计算机中运行的程序和分配各种软硬件资源;第二,为用户提供友善的人机界面。第三,为应用程序的开发和运行提供一个高效率的平台。

操作系统的4个特征是并发性、共享性、虚拟性和不确定性。

操作系统的功能:

(1)进程管理。实质上是对处理机执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度
(2)文件管理。主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。
(3)存储管理。存储管理是对主存储器“空间”进行管理,主要包括存储分配与回收存储保护地址映射(变换)主存扩充
(4)设备管理。实质是对硬件设备管理,包括对输入/输出设备的分配、启动、完成和回收
(5)作业管理。包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

操作系统的分类:

  • 批处理操作系统单道批处理和多道批处理(主机与外设可并行)。
  • 分时操作系统:一个计算机系统与多个终端设备连接。分时操作系统是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务
  • 实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。为了提高系统的响应时间,对随机发生的外部事件及时做出响应并对其进行处理。
  • 网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。                                                                                                                                                                                                                                                                    --功能主要包括:1.高效、可靠的网络通信;2.对网络中共享资源的有效管理;3.提供电子邮件、文件传输、共享硬盘和打印机等服务;4.网络安全管理;5.提供互操作能力。                                                                                                                                                                       --三种模式:集中模式、客户端/服务器模式、对等模式(PPP)。                                                             
  • 分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。通常,为分布式计算机系统配置的操作系统称为分布式操作系统。是网络操作系统的更高级形式。
  • 微型计算机操作系统:简称微机操作系统,常用的有Windows、Mac OS、Linux。

嵌入式操作系统:

运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制

主要特点如下:
  • (1)微型化。从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。
  • (2)可定制。从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。
  • (3)实时性。嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。
  • (4)可靠性系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施
  • (5)易移植性。为了提高系统的易移植性,通常采用硬件抽象层(Hardware Abstraction Level,
  • HAL)和板级支撑包(Board Support Package,BSP)的底层设计技术。                                                                                                                                                                                            嵌入式系统初始化过程按照自底向上、从硬件到软件的次序依次为片级初始化→板级初始化→系统初始化芯片级是微处理器的初始化,板卡级是其他硬件设备初始化,系统级初始化就是软件及操作系统初始化

微内核操作系统:

微内核,顾名思义,就是尽可能的将内核做的很小,只将最为核心必要的东西放入内核中,其他能独立的东西都放入用户进程中,这样,系统就被分为了用户态和内核态,如下图所示:

二、 操作系统知识(考点篇)_服务器

二、进程管理

进程的组成和状态

进程的组成:进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)。
进程基础的状态是下左图中的三态图。需要熟练掌握左下图中的进程三态之间的转换。

二、 操作系统知识(考点篇)_运维_02

新建态对应于进程刚刚被创建时没有被提交的状态,并等待系统完成创建进程的所有必要信息。终止态等待操作系统进行善后处理,释放主存。

阻塞:除了缺少CPU还有缺少别的。就绪:除了CPU其他资源都齐了。

运行-->阻塞:比如外设传输数据;外设完成了,重新进入就绪。五态图不考。

真题:

二、 操作系统知识(考点篇)_物理地址_03

先来先服务,p1时间片到,进入就绪,p2运行,p3和p4还是阻塞

前驱图和进程资源图

二、 操作系统知识(考点篇)_运维_04

二、 操作系统知识(考点篇)_服务器_05

P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。

阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。

非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。

当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。

进程资源图的化简方法:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞的,接着把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来,这样,系统剩余的空闲资源便多了起来,接着又去看看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。最后,所有的资源和进程都变成孤立的点。

二、 操作系统知识(考点篇)_物理地址_06

进程间同步与互斥

互斥和同步并非反义词,互斥表示一个资源在同一时间内只能由一个任务单独使用,需要加锁,使用完后解锁才能被其他任务使用;
同步表示两个任务可以同时执行,只不过有速度上的差异,需要速度上匹配,不存在资源是否单独或共享的问题。

信号量操作

二、 操作系统知识(考点篇)_死锁_07

二、 操作系统知识(考点篇)_物理地址_08

互斥信号量是针对临界资源的,初值为1;同步信号量是针对共享资源的,初值为共享资源数。

二、 操作系统知识(考点篇)_死锁_09

二、 操作系统知识(考点篇)_死锁_10

生产者:关心的是仓库S0的使用权和仓库里空闲位置的个数S1

消费者:关心的是仓库的使用权S0和仓库里商品的个数S1

生产者:生产了商品,先获得仓库使用权P(S0)、然后仓库空闲个数有没有P(S1),没有阻塞,有就放入,放入后是商品个数增加了(空位减少也就是商品数增加)V(S2),同时释放仓库使用权V(S0);

消费者:取出商品,首先获得仓库使用权P(S0)、然后看看仓库产品数有没有P(S2),没有阻塞,有取出,取出后空闲位置增加了(商品少了空闲位置增加了)V(S1),同时释放仓库使用权V(S0);

真题:

二、 操作系统知识(考点篇)_运维_11

二、 操作系统知识(考点篇)_死锁_12

二、 操作系统知识(考点篇)_物理地址_13

二、 操作系统知识(考点篇)_运维_14

进程调度

进程调度方式是指当有更高优先级的进程到来时如何分配CPU。分为可剥夺不可剥夺两种,可剥夺指当有更高优先级进程到来时,强行将正在运行进程的CPU分配给高优先级进程;不可剥夺是指高优先级进程必须等待当前进程自动释放CPU。
在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
(1)高级调度。高级调度又称“长调度”“作业调度”或“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度-----作业与进程的区别:作业是一组进程。
(2)中级调度。中级调度又称“中程调度”或“对换调度”,它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争
(3)低级调度。低级调度又称“短程调度”或“进程调度”,它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大。

调度算法:

先来先服务FCFS:先到达的进程优先分配CPU。用于宏观调度。

时间片轮转:分配给每个进程CPU时间片,轮流使用CPU,每个进程时间片大小相同,很公平,用于微观调度。

优先级调度:每个进程都拥有一个优先级,优先级大的先分配CPU。

多级反馈调度时间片轮转优先级调度结合而成,设置多个就绪队列1,2,3...n,每个队列分别赋予不同的优先级分配不同的时间片长度新进程先进入队列1的末尾,按FCFS原则,执行队列1的时间片;若未能执行完进程,则转入队列2的末尾,如此重复。

二、 操作系统知识(考点篇)_网络_15

死锁

当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁。
死锁产生的四个必要条件资源互斥、每个进程占有资源并等待其他资源、系统不能剥夺进程资源、进程资源图是一个环路
死锁产生后,解决措施是打破四大条件,有下列方法:
死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。
死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。
死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。
死锁资源计算:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为
n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1

 

真题:

二、 操作系统知识(考点篇)_服务器_16

n*(R-1)是死锁的极限资源数,再加上1就是不死锁的最小资源数 3*(5-1)+1=12+1=13

二、 操作系统知识(考点篇)_物理地址_17

线程

传统的进程有两个属性可拥有资源的独立单位;可独立调度和分配的基本单位

引入线程的原因是进程在创建、撤销和切换中,系统必须为之付出较大的时空开销,故在系统中设置的进程数目不宜过多,进程切换的频率不宜太高,这就限制了并发程度的提高。引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。
线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源,例如进程的公共数据、全局变量、代码、文件等资源,但不能共享线程独有的资源,如线程的栈指针等标识数据。
 

三、存储管理

分区存储管理

存储器的结构:寄存器——高速缓存Cache——主存——外存。
地址重定位:将逻辑地址转换为实际主存物理地址的过程,分为静态重定位(在程序装入主存时就完成了转换)动态重定位(边运行边转换)

所谓分区存储组织,就是整存,将某进程运行所需的内存整体一起分配给它,然后再执行。有三种分区方式:
固定分区静态分区方法,将主存分为若干个固定的分区,将要运行的作业装配进去,由于分区固定,大小和作业需要的大小不同,会产生内部碎片
可变分区动态分区方法,主存空间的分区是在作业转入时划分,正好划分为作业需要的大小,这样就不存在内部碎片,但容易将整片主存空间切割成许多块,会产生外部碎片

可变分区的算法如下:
系统分配内存的算法有很多,如下图所示,根据分配前的内存情况,还需要分配9K空间,对不同算法的结果介绍如下:

  • 首次适应法:按内存地址顺序从头查找,找到第一个>=9K(符合的)空间的空闲块,即切割9K空间分配给进程。
  • 最佳适应法:将内存中所有空闲内存块按从小到大排序,找到第一个>=9K(符合的)空间的空闲块,切割分配,这个将会找到与9K空间大小最相近的空闲块。
  • 最差适应法:和最佳适应法相反,将内存中空闲块空间最大的切割9K空间分配给进程,这是为了预防系统中产生过多的细小空闲块
  • 循环首次适应法:按内存地址顺序查找,找到第一个>=9K空间的空闲块,而后若还需分配,则找下一个,不用每次都从头查找,这是与首次适应法不同的地方。---首次适应+接着查找

二、 操作系统知识(考点篇)_网络_18

  • 可重定位分区可以解决碎片问题,移动所有已经分配好的区域,使其成为一个连续的区域,这样其他外部细小的分区碎片可以合并为大的分区,满足作业要求。只在外部作业请求空间得不到满足时进行。

分页存储管理

如果采用分区存储,都是整存,会出现一个问题,即当进程运行所需的内存大于系统内存时,就无法将整个进程一起调入内存,因此无法运行,若要解决此问题,就要采用段页式存储组织,页式存储是基于可变分区而提出的


二、 操作系统知识(考点篇)_网络_19



页面的划分完全是一种系统硬件的行为,一个逻辑地址放到这种地址结构中,自然就分成了页号和页内单元号两部分。页一般是1-4kb大小,都是2的幂次。

内存页的大小分好, 程序页大小同内存分页大小。

二、 操作系统知识(考点篇)_死锁_20

在分页系统中,允许将作业(进程)的任一页装入到内存中的任一可用的物理块中,但进程的地址空间本来是连续的,若把他分页后装入到不相邻的物理块中,要保证系统仍能正确运行,就要实现从进程的逻辑地址变换为内存的物理地址。

所以,系统为每个进程建立一张页面映射表,简称页表。

页号告诉我们有多少个页,业内地址告诉我们每个页的大小,这个很重要在做题中很有用。

二、 操作系统知识(考点篇)_运维_21

1.一个进程对应一张页表

2.进程的每一页对应一个页表项

3.每个页表项由"页号"和"块号"组成

4.页表记录进程页面和实际存放的内存块之间的对应关系.

5.每个页表项的长度是相同的,页号是"隐含"的。--这个记住

如下图所示,逻辑页分为页号页内地址页内地址就是物理偏移地址,而页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号加上偏移地址才得出了真正运行时的物理地址

二、 操作系统知识(考点篇)_死锁_22

优点:利用率高,碎片小,分配及管理简单。
缺点:增加了系统开销,可能产生抖动现象

地址表示和转换

地址组成:页地址+页内偏移地址;(页地址在高位,页内偏移地址在低位)
物理地址:物理块号+页内偏移地址;
逻辑地址:页号+页内偏移地址;
物理地址和逻辑地址的页内偏移地址是一样的,只需要求出页号和物理块号之间的对应关系,首先需要求出页号的位数,得出页号,再去页表里查询其对应的物理块号,使用此物理块号和页内偏移地址组合,就能得到物理地址。

页面置换算法

有时候,进程空间分为100个页面,而系统内存只有10个物理块,无法全部满足分配,就需要将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100个页面能够按执行顺序调入物理块中执行完。
缺页表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间,因此,缺页数越多,系统效率越低。

二、 操作系统知识(考点篇)_死锁_23

变换过程:

二、 操作系统知识(考点篇)_运维_24

页面置换算法如下:

最优算法OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的
先进先出算法FIFO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多,缺页率可能越多(即效率越低).
最近最少使用LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象,使用大量计数器,但是没有LFU多。

淘汰原则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面。

最不经常使用淘汰算法(LFU):LFU是淘汰一段时间内,使用次数最少的数据。

LRU和LFU区别:

LRU关键是看最后一次被使用到发生替换的时间长短,时间越长,就会被淘汰;而LFU关键是看一定时间段内被使用的频率(次数),使用频率越低,就会被淘汰。

使用场景:

LRU算法适合:较大的文件比如游戏客户端(最近加载的地图文件)

LFU算法适合:较小的文件和教零碎的文件比如系统文件、应用程序文件

LRU消耗CPU资源较少,LFU消耗CPU资源较多

计算

如果题目中给的是十进制数表示逻辑地址,则:

页号   =   逻辑地址  /   页面长度(取除法的整数部分)

页内偏移量   =    逻辑地址  %    页面长度(取除法的余数部分)

理解方式:

这个程序按照4kb(假如页大小是4kb)大小分页,假如能分10个正好的4kb页,另外还有多出来2kb单独占用一页,加入占用页是从内存的低160页开始的,那么页号就是160+10=170(整数部分),多余的部分是业内偏移量(余数部分)

例题:

的题1、有一条统采用页式仔储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将虚地址7145,3412转换成内存地址。

页号

块号

0

7

1

9

2

10

3

5

...

...

7145

这是个逻辑地址,是用十进制表示的第几个逻辑地址空间。8kb/2kb=4这个程序能分成4个页。

虽然计算是4页,但逻辑地址地址空间是从0开始的,每个空间1b(默认一般为b),0,1,2,3,4,5,6,7,8,9..........8*1024但是物理地址可不是从0开始的,也不可能是连续的

题目给出了一页2kb。

错误做法:7145/2=3572----1,物理地址页号是3572,页内偏移是1-----错误算法2kb不是就2个地址空间,而是1024*2个地址空间,

正确做法:7145 / 2048 = 3----1001,所以这个地址空间的逻辑页号是3,页内偏移是1001(这个在逻辑页4号上)

由上表可知,逻辑页号是3,对应的物理页号是5,那么物理地址:5*2048+1001=11241

同理3412的计算方式也是这样

3412 / 2048 = 1-----1364  逻辑页号是1,业内偏移是1364,逻辑页号1对应物理页号9,所以物理地址是:9*2048 + 1364=19796.

具体图解:

二、 操作系统知识(考点篇)_物理地址_25

二、 操作系统知识(考点篇)_运维_26

解题思路:

1.首先确定页号和页内地址多少位:页的大小是4k=2^12 ,业内地址就是12位。

4kb=4096b,从0开始一直到4095,共4096个空间,要表示0---4095这4096个数需要二进制位12位的才能表示出来。

2.1D16H是十六进制,每一位对应4位二进制,所以:

1

D

1

6

页号

12位业内地址

3.所以页号是1H 换成十进制是,用8421法,结果是1.

0

0

0

1

8

4

2

1

          8 + 4  + 2  + 1  =   1

4. 十进制1号逻辑页,对应物理页3号,所以3号转十六进制是还是3,拼上业内偏移,3D16H

注意:1.十六进制最后以为H代表的是进制。2.4位二进制对应十六进制1位,进制转换8421法。

2.这里有个计算机二进制位数能表示的十进制数据的范围:

在计算机中要用二进制表示数,若你有n位,那只能表示2^n个数。
如我有3个二进制位,那我能表示的数为:2^3=8

000---0
001---1
010---2
100---4
011---3
101---5
110---6
111---7

二、 操作系统知识(考点篇)_死锁_27

代价最小淘汰规则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面

1号不在内存要调入,其他的都访问过,但是3号最近未修改,所以淘汰3号。

快表

是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
快表是将页表存于Cache中慢表是将页表存于内存上慢表需要访问两次内存才能取出页,而快表是访问一次Cache和一次内存,因此更快

因为页表是存放在内存中的,(CPU要存取一个数据,需访问主存两次。

  • 第一次:访内存中的页表,找到该页的的物理块号,将此块号与页内地址拼结形成物理地址;
  • 第二次:真正访问该物理地址,存取其中的内容,这样就把程序的执行速度降低一倍。

为了提高存取速度,在地址变换机构中增设一组寄存器,用来存放访问的那些页表。

二、 操作系统知识(考点篇)_服务器_28

例题:

快表命中率98%,访问时间是10ns,内存访问时间是100ns,平均访问时间?

若命中:

1.先访问一次块表10ns,然后找到了对应的物理页号并拼接上业内偏移,就得到了物理地址。

2.根据物理地址访问内存取出数据100ns

时间是: 10+100=110ns

若未命中:

1.先访问一次快表10ns,发现页表不在这里,未命中。

2.再去访问内存中的页表,找到物理页号并拼接上页内偏移,得到物理地址,100ns。

3.再次访问内存,存取物理地址中的内容,100ns。

时间是:10+100+100=210ns

平均时间是:

平均访问时间  =   98%  *  (10  +  100)  +  (1  -  98%)  *  (10  +  100  +  100)

 参考:

段式存储管理

将进程的地址空间按照程序的自身逻辑分为一个个段,每段也有段号和段内地址,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址。与页式存储不同的是,每段物理大小不同分段是根据逻辑整体分段的,因此,段表也与页表的内容不同,页表中直接是逻辑页号对应物理块号,而下图所示,段表有段长和基址两个属性,才能确定一个逻辑段在物理段中的位置。

内存分配规则:

以段为单位进行分配,每个段在内存中占连续空间,但各段之间可以不相邻

二、 操作系统知识(考点篇)_网络_29

二、 操作系统知识(考点篇)_物理地址_30

分段系统的逻辑地址结构由段号(段名)段内地址(段内偏移量)所组成。

二、 操作系统知识(考点篇)_死锁_31

优点:多道程序共享内存,各段程序修改互不影响。
缺点:内存利用率低,内存碎片浪费大。

综上:分页是根据物理空间划分,每页大小相同;分段是根据逻辑空间划分,每段是一个完整的
功能,便于共享,但是大小不同。

段表:

段表组成:段号(可隐含)、段长、基质。

  • 段长:这段程序的大小;
  • 基址:这个段从内存的哪个地址开始的。因为内存早就从头开始顺序编好了地址了,但是并不是所有区域空闲的,别的程序正在占用着,那就从空闲的那个位置开始盛放这个段,这个空闲的开始位置就是基址(相对应内存0地址)。

二、 操作系统知识(考点篇)_运维_32

1.每个段对应一个段表项,其中记录了该段在内存中的起始位置(又称“基址”)和段的长度。
2.各个段表项的长度是相同的。

例如:某系统按字节寻址,采用分段存储管理,逻辑地址结构为(段号16位,段内地址16位),因此用16位即可表示最大段长。物理内存大小为4GB(可用32位表示整个物理内存地址空间)。因此,可以让每个段表项占16+32=48位,即6B。由于段表项长度相同,因此段号可以是隐含的,不占存储空间。若段表存放的起始地址为 M,则 K号段对应的段表项存放的地址为 M +K*6。

理解:

  • 按照字节寻址意味着最小的单位是字节(b)
  • 分段采用16位段号和16位段内地址,可表示2 ^16 = 64K个段,2 ^16 = 64KB每个段的最大长度是64KB。
  • 4GB(用32位表示整个物理内存地址空间),这是告诉你用32位就能把整台电脑的内存地址完成从0,1,2,3,4,5,6,7,8,9.........2 ^ 32编址(有肯能到不了2 ^ 32最大值)。
  • 段表项的大小 16+32=48位,6B:这里的段表项是段号、段长、基质整条的大小,16就是(最大)段长,32是基质(因为内存编址是32位的),段号可以隐藏不占空间。所以才有M+K*6。


补充:1个字节是8个bit位,

地址变换

二、 操作系统知识(考点篇)_死锁_33

二、 操作系统知识(考点篇)_运维_34

段页比较

二、 操作系统知识(考点篇)_服务器_35

补充:
段长是可变的,页的大小是固定的。
分段存储:段内地址W字段溢出将产生越界中断。
分页存储:段内地址W字段溢出会自动加入到页号中,

真题:

二、 操作系统知识(考点篇)_服务器_36

段页式存储管理

对进程空间先分段,后分页,具体原理图和优缺点如下:

二、 操作系统知识(考点篇)_运维_37

优点:空间浪费小、存储共享容易、存储保护容易、能动态链接。
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。

考的不那么深,想了解的参考以下:

参考:

四、设备管理

概述

设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作,所以常称为外部设备(简称外设)

在计算机系统中,将负责管理设备和输入/输出的机构称为1/0系统。因此,I/0系统由设备、控制器、通道(具有通道的计算机系统)、总线和I/0软件组成。

设备的分类:

按数据组织分类:块设备、字符设备。

按照设备功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备等等。
资源分配角度分类:独占设备、共享设备和虚拟设备。
数据传输速率分类:低速设备、中速设备、高速设备。

设备管理的任务是:保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成1/0设备与主存之间的数据交换。

设备管理的主要功能是:动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口及设备的访问和控制。

I/O软件

I/O设备管理软件的所有层次及每一层功能如下图:
当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。

1.与设备无关软件检查高速缓存中有无要读的数据块

2.若没有,则调用设备驱动程序,向I/0硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。

3.当磁盘操作完成时,硬件产生一个中断,转入中断处理程序

4.中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/0请求

5.用户进程在得到了所需的硬盘文件内容之,后继续运行。

读取文件操作:用户进程调用设备无关程序,设备无关程序先检查是否在缓存中有(有可能已经读取过了),有就直接给用户程序;没有设备无关程序调用设备驱动程序,它向I/O硬件发出读取文件的请求(仅仅是经过中断处理程序层无特殊操作),硬件开始操作读取硬盘上的文件;读取硬盘文件完成后,硬件产生一个中断,并转入中断处理程序,中断处理程序根据中断类型做出判断,比如本次是读取硬盘文件完成了,那么中断处理程序就唤醒用户进程告诉用户进程可以取文件数据了(也是仅仅通过设备无关软件层)。层之间不是跨层访问的。

二、 操作系统知识(考点篇)_服务器_38


虚设备和SPOOLING技术

一台实际的物理设备,例如打印机,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。
引入SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化。如下图所示:

二、 操作系统知识(考点篇)_服务器_39


真题:

二、 操作系统知识(考点篇)_死锁_40

五、文件管理

概述

◆文件(File)是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。
◆信息项是构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。一个文件包括文件体和文件说明。

  • 文件体是文件真实的内容。
  • 文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。

◆文件管理系统,就是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。

文件系统的功能

  • 按名存取
  • 统一的用户接口;
  • 并发访问和控制;
  • 安全性控制;
  • 优化性能;
  • 差错恢复。

◆文件的类型:

(1)按文件性质和用途可将文件分为系统文件库文件用户文件
(2)按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
(3)按文件的保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。
(4)UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)。

文件的逻辑结构可分为两大类:一是有结构的记录式文件,它是由一个以上的记录构成的文件,故又称为记录式文件;二是无结构的流式文件,它是由一串顺序字符流构成的文件。

文件的物理结构是指文件的内部组织形式,即文件在物理存储设备上的存放方法,包括:

  • (1)连续结构。连续结构也称顺序结构,它将逻辑上连续的文件信息(如记录)依次存放在连续编号的物理块上。只要知道文件的起始物理块号和文件的长度,就可以很方便地进行文件的存取。
  • (2)链接结构。链接结构也称串联结构,它是将逻辑上连续的文件信息(如记录)存放在不连续物理块上,每个物理块设有一个指针指向下一个物理块。因此,只要知道文件的第一个物理块号,就可以按链指针查找整个文件。
  • (3)索引结构。在采用索引结构时,将逻辑上连续的文件信息(如记录)存放在不连续物理块中,系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
  • (4)多个物理块的索引表索引表是在文件创建时由系统自动建立的并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。多个物理块的索引表可有两种组织方式:链接文件和多重索引方式。链接文件即多个索引表链接在一起,多重索引即一层索引嵌套另一层索引。---这种其实也是索引结构,不过地址项换成了一个索引表。

索引文件结构

二、 操作系统知识(考点篇)_运维_41

◆如图所示,系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB*10=40KB数据;

◆10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存1024*4KB=4096KB数据。

二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为1024*1024*4KB数据。

真题:

二、 操作系统知识(考点篇)_网络_42

思路:

1.首先共有8个地址项,5个直接,2个一级,1个二级,地址项是大小4B,而且索引块和数据块大小均为1kb。

2.共有8个地址项,其中5个为直接索引,所以直接索引有 5 * 1kb = 5kb;

3.有2个地址项是一级间接,所以一级索引项指向的盘块有 1kb  /  4b = 1024  /  4  =  256个地址项,每个地址项指向了内容为1kb,所以一级的有 256个 * 1kb = 256kb

4.有1个间接,指向了下一级的盘块有1kb  /  4b = 1024  /  4  =  256个地址项,而这256个地址项每个地址项又指向了下一级的盘块,每个盘块里也是1kb  /  4b = 1024  /  4  =  256个地址项目,这时候地址项指向的是实际内容,所以二级有 256  *  256 * 1kb  =  2 ^ 16 = 65536

5.从0编址,直接索引是5个,是0~4,一级间接有2个,从5开始的有256+256个,所以X-5+1=512,X=516,1个二级间接,从517开始,X-517+1=65536,X = 66052

所以,逻辑5号在一级间接,逻辑518在二级间接,可表示的最大长度是66052+1 = 5+256*2+256*256=66053

文件目录

◆文件控制块中包含以下三类信息:基本信息类、存取控制信息类和使用信息类。

  • (1)基本信息类。例如文件名、文件的物理地址、文件长度和文件块数等。
  • (2)存取控制信息类。文件的存取权限,像UNIX用户分成文件主、同组用户和一般用户三类,这三类用户的读/写执行RWX权限。
  • (3)使用信息类。文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等。

◆文件控制块的有序集合称为文件目录。
相对路径:是从当前路径开始的路径。
绝对路径:是从根目录开始的路径。
◆全文件名=绝对路径+文件名。要注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。
 

二、 操作系统知识(考点篇)_运维_43

文件存储空间管理

◆文件的存取方法是指读/写文件存储器上的一个物理块的方法。通常有顺序存取和随机存取两种方法。顺序存取方法是指对文件中的信息按顺序依次进行读/写;随机存取方法是指对文件中的信息可以按任意的次序随机地读/写。
◆文件存储空间的管理:
(1)空闲区表。将外存空间上的一个连续的未分配区域称为“空闲区”。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,适用于连续文件结构。
 

二、 操作系统知识(考点篇)_服务器_44

(2)位示图。这种方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。

二、 操作系统知识(考点篇)_运维_45

(3)空闲块链每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间。
(4)成组链接法。例如,在实现时系统将空闲块分成若干组每100个空闲块为一组每组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数。假如某个组的第一个空闲块号等于0,意味着该组是最后一组,无下一组空闲块。
 

二、 操作系统知识(考点篇)_服务器_46

思路:

1.字长是32位,4个字节,4b,后面会用到。

2.位视图的每一位代表这个一个物理块是否使用,而每个物理块大小是4MB=4 * 2^20b,那么16385号,16385-0+1=16386个位置,也就是16386个bit位 16386 / 32 = 512---2,需要512个整字和1个未占满的字描述,也就是说需要513个字,但是在计算机中是从0开始的0~512正好513个,所以16385是在第512个字中描述。

3.磁盘1000G,每个物理块4M,1000*2^10 / 4 = 250*2^10 个位视图的位来表示,32位一个字,

250*2^10 / 32 = 8000个字