F_JustWei's Studio.

操作系统基本原理

字数统计: 1.8k阅读时长: 6 min
2021/05/19 Share

操作系统基本原理

概述

  • 管理系统的硬件、软件、数据资源
  • 控制程序运行
  • 人机之间的接口
  • 应用软件与硬件之间的接口

  • 进程管理

  • 存储管理
  • 文件管理
  • 作业管理
  • 设备管理

进程管理

进程的状态

image-20210307175129642

前趋图

image-20210307175819171

进程的同步与互斥

image-20210307180512377

image-20210307180522431

PV操作

临界资源:进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:是一种特殊的变量

image-20210307181744284

image-20210307185105151

P(Sn) 指的就是每当有一个人进入就对信号量进行 P 操作(-)
V(Sn) 就是指购书成功离开书店进行V操作
首先我先猜测一下付款的流程,就是先排队,再付款,因为收银员只有一人,一次只能接一单,所以得先排队,再付款,排队其实就是用 V 操作 V(S1) 而付款则是P(S2),这里大家可能有一个问题就是没有 V(S2) 怎么 P(S2) 呢,其实 V(S2) 的操作是在收银员处执行的,因此第一题答案就是选A

第二题收银员则是先将正在排队的人进行 P 操作也就是 P(S1) 付款完成再将可进行付款的人进行 V 操作,那么就可以有新的人进来付款也就是 V(S2)
答案选 C

PV操作与前趋图

image-20210308125616868

image-20210308130220694

image-20210308130253544

死锁问题

进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。

例题:系统有3个进程: A、B、C。这3个进程都需要5个系统资源。如果系统至少有多少个资源,则不可能发生死锁。

不可能发生死锁的最小资源数(K为进程的数量,n为进程需要的资源数)
$$
\begin{aligned}
X&=K(n-1)+1\
&=3
(5-1)+1\
&=13
\end{aligned}
$$
故系统至少需要13个资源,则不可能发生死锁。

image-20210308131403991

银行家算法:分配资源的原则

  • 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
  • 进程可以分期请求资源,但请求的总数不能超过最大需求量
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源

image-20210308132506093

首先求剩下的资源数:
R1 = 9-(1+2+2+1+1) = 2
R2 = 8-(2+1+1+2+1) = 1
R3 = 5-(1+1+3) = 0

image-20210308133129229

image-20210308133149119

存储管理

分区存储组织

某计算机系统的内存大小为 128k ,采用可变分区分配方式进行内存分配,当前系统的内存分块情况如下图所示,现有作业 4 申请内存 9k,几种不同的存储分配算法在分配中,会产生什么样的结果呢?

image-20210308133549794

页式存储组织

高级程序语言使用逻辑地址。
运行状态,内存中使用物理地址。

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

image-20210308134441531

image-20210308134435297

image-20210308134923998

image-20210308144209811

页面大小为4K = 212,故页内位移占12位。

逻辑地址位5A29H,故页号为5,页内位移为A29。

页号为5对应的页帧号为6。

故选D

淘汰页号:只有状态位为1,访问位为0的才能被淘汰。

故选B

段式存储组织

image-20210308144659663

image-20210308144713097

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

段页式存储组织

image-20210308144926132

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

快表

快表是一块小容量的相联存储器(Associative Memory),由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。

页面置换算法

  • 最优(Optimal,OPT)算法
  • 随机(RAND)算法
  • 先进先出(FIF0)算法:有可能产生“抖动”。例如,432143543215序列,用3个页面,比4个缺页要少
  • 最近最少使用(LRU)算法:不会“抖动”

FIFO

image-20210308145641505

image-20210308150017521

image-20210308150502200

8位计算机,16位的指令,16位的操作数。

没有使用快表,故每一个块需要进行俩次内存的访问。

进程在执行时,首先查找页表,然后再取指令或者取数据。可见执行16位的swap指令时,首先需要取指令,即先访问页表,取指令的高字节,接着再一次访问页表,取指令的低字节,共需访问主存4次。然后取操作数A,访问页表,取操作数A的高字节,再访问页表,取操作数A的低字节,共需访问主存4次。同理,取操作数B也需要访问主存4次。

共有6个块,所以需要访问12次内存。

==指令产生1次缺页中断,操作数产生2次缺页中断。==

有1条指令,2个操作数,所以将产生5次缺页中断。

索引文件结构

image-20210308151932811

设一个索引节点为 4K,每个间接索引的地址为 4 字节

直接索引:直接存储物理盘块(0-9:10*4K = 40K)

一级间接索引:可间接存储物理盘块(10:(4K/4)*4K = 4096K)

二级间接索引:可间接存储物理盘块(11:(4K/4)*(4K/4)* 4K)

三级间接索引:可间接存储物理盘块(12:(4K/4)*(4K/4)*(4K/4)* 4K)

image-20210308153435677

image-20210308153420275

注意点:逻辑块号的序号从0开始。

文件和树形目录结构

文件属性

  • R 只读文件属性
  • A 存档属性
  • S 系统文件
  • H 隐藏文件

文件名的组成

  • 驱动器号
  • 路径
  • 主文件名
  • 扩展名

绝对路径:是从盘符开始的路径。
相对路径:是从当前路径开始的路径。
若当前目前为:D1,要求F2路径

则绝对路径:/D1/W2/F2 ,相对路径:W2/F2

空闲存储空间的管理

  • 空闲区表法(空闲文件目录)
  • 空闲链表法
  • 位示图法

image-20210308181820036

(1)物理块编号从0开始,故4195号是第4195+1个物理块,字长为32位
$$
\begin{align}
X & = 第几个物理块/字长 \
& =(4195+1)/32\
&= 131.125
\end{align
}
$$
​ 故选择D

(2)商的小数位为0.125,字长为32位(位置从0开始)
$$
\begin{aligned}
X &= 商的小数位字长-1\
&=0.125
32-1\
&=3
\end{aligned}
$$
​ 故选择B

  • 成组链接法

设备管理

数据传输控制方式

image-20210308183651454

虚设备与SPOOLING技术

image-20210308184007581

微内核操作系统

image-20210308184346995

CATALOG
  1. 1. 操作系统基本原理
    1. 1.0.1. 概述
    2. 1.0.2. 进程管理
      1. 1.0.2.1. 进程的状态
      2. 1.0.2.2. 前趋图
      3. 1.0.2.3. 进程的同步与互斥
      4. 1.0.2.4. PV操作
      5. 1.0.2.5. PV操作与前趋图
      6. 1.0.2.6. 死锁问题
    3. 1.0.3. 存储管理
      1. 1.0.3.1. 分区存储组织
      2. 1.0.3.2. 页式存储组织
      3. 1.0.3.3. 段式存储组织
      4. 1.0.3.4. 段页式存储组织
      5. 1.0.3.5. 快表
      6. 1.0.3.6. 页面置换算法
      7. 1.0.3.7. 索引文件结构
      8. 1.0.3.8. 文件和树形目录结构
      9. 1.0.3.9. 空闲存储空间的管理
    4. 1.0.4. 设备管理
      1. 1.0.4.1. 数据传输控制方式
      2. 1.0.4.2. 虚设备与SPOOLING技术
    5. 1.0.5. 微内核操作系统