操作系统基本原理

第二章、操作系统基本原理

1、操作系统概述

在这里插入图片描述
在这里插入图片描述

2、进程管理

2.1、进程的状态

在这里插入图片描述

运行状态:这个进程,它所需要的所有资源都已经配足了,并且给它了cpu资源,这个时候它处于运行态
就绪状态:其他所有资源都已经配足了,只缺cpu资源
等待状态:除了没有cpu资源,还缺其它资源(等待用户的一些指令)

时间片轮转算法分配cpu资源:一个进程从就绪到运行,只能够运行了一个时间片,等时间片用完了,即使你的任务还没完成,仍然退出运行态,进入到就绪态,等下一次调度,等下一个时间片轮到你的时候,你才能够进入运行态。

5态模型多了:

静止就绪态:当你是运行态并且挂起,会进入静止就绪态,这个时候是人为的想把这一个进程先搁置在这里不处理
静止阻塞态

2.2、前趋图

在这里插入图片描述
A:绞肉B:切葱末C:切姜末D:搅拌E:包饺子
前驱图:表达的是要完成一系列活动,它的先后约束关系

2.3、进程的同步与互斥

在这里插入图片描述

互斥:指在同一时刻,只允许某一进程去使用这一个资源(同一个资源,不能同时服务于多个进程)

在这里插入图片描述
同步:有速度匹配的要求,当差距比较大的时候,要求速度快的停下来等一等

在这里插入图片描述

2.4、PV操作

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

在这里插入图片描述
P(S)
P操作,将信号量S做自减一的操作
如果S<0,会阻塞当前进程的这个继续执行的状态,把这个进程放到一个进程的队列里,这个进程就属于一个等待状态
如果S>0,会继续执行当前程序

V操作,是一个反向的操作,将信号量S做自加一的操作
如果S<=0,会在系统的进程队列里面,拿出一个进程来唤醒它,让它继续执行

单缓冲区生产者、消费者问题PV原语描述:

在这里插入图片描述

没有PV操作:
1️⃣假设生产者先执行,生产一个产品,送到缓冲区,因为是单缓冲区,所以只能放一个产品,在生产一个产品,就不能放到缓冲区了,因为会溢出。
2️⃣假设消费者先执行,从缓冲区取产品,这时缓冲区内还没有产品,所以取不到产品,出现问题。

用PV操作:
1️⃣生产者生产一个产品,P操作P(s1) s1=s1-1=0,判断不满足s1<0继续执行,送产品到缓冲区,V操作V(s2) s2=s2+1=1,判断不满足s2<=0继续执行。生产者生产一个产品,P操作P(s1) s1=s1-1=-1,判断满足s1<0阻塞当前进程
2️⃣消费者,P操作P(s2) s2=s2-1=0,判断不满足s2<0继续执行,从缓冲区取出产品,V操作V(s1) s1=s1+1=0,判断满足s1<=0,在系统的进程队列里面,拿出一个进程来唤醒它(唤醒生产者进程
3️⃣消费者先执行,P操作P(s2) s2=s2-1=-1,判断满足s2<0,直接阻塞,可以避免取空问题

PV操作所解决的问题,其实是并发进程之间某些约束关系的一些问题的解决

2.5、PV操作题目

在这里插入图片描述
个人见解:

  1. 假设没有约束,a1,a2,b1,b2,收银员会不断重复收费的过程,然而购书者没有只有提出付款请求时,才会有收费操作,所以这样会出现问题。
  2. P(sn) V(sn)目的就是最多允许n个购书者进入,假设n=10,P(sn) sn=sn-1
    直到执行10次就会阻塞,书店只能同时有10个人(也就是缓冲区最多存储量),只有当有人离开书店时,才能继续有人进入(也就是激活)
  3. 只有当购书者提出付款申请时,收银员才能进行收费,所以购书者a1激活b1,所以a1=V(s1) b1=P(s1)
  4. 只有当收银员收费完成后,购书者才算付款完成,所以收银员b2激活a2,所以b2=V(s2) a2=P(s2)

2.6、PV操作与前驱图

在这里插入图片描述
前驱图:主要用来表达进行活动,它们间的一种依赖关系

把前驱图转成pv操作的形式,把前驱图的每一个活动,都转成相应的进程,然后为了让这些进程在并发执行的时候,依然按前驱图的约束关系的先后顺序去执行

请添加图片描述

2.7、死锁问题

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

死锁:系统当中有一系列的资源,有一系列需要用到这些资源的进程,这些进程需要系统给他分配资源才能够运行,如果系统在某一时刻发现,所有可用的资源都已经分配出去了,所有进程都没有办法完成它本身职责的任务,从而释放以占有的资源,就会产生死锁。

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

在这里插入图片描述
n个进程,k个资源
共需要n×(k-1)+1个资源就不会发生死锁

2.8、死锁的预防与避免(银行家算法)

在这里插入图片描述

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

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

3、存储管理

3.1、分区存储组织

某计算机系统的内存大小为128k,采用可变分区分配方式进行内存分配,当前系统的内存分块情况如下图所示,现有作业4申请内存9k,几种不同的存储分配算法在分配中,会产生什么样的结果呢?
在这里插入图片描述
25k空间可能是作业运行完释放后的

3.2、页式存储组织

在这里插入图片描述
高级程序语言使用逻辑地址;运行状态,内存中使用物理地址。

页式存储,把用户程序,分成等分大小的页
我们把用户程序等分为4k一个块的这种区域,每一个4k的块成为一个页,把内存当中的这个存储区也分成4k一个,然后调入程序到内存里面来运行的时候,不再是把整个的用户程序一次性的调入,采取的机制是要运行那些块,就把那些块调入,那些页调入。

页表:记录它们之间的映射关系用户程序多少页,对应内存当中多少号块,
在这里插入图片描述
在这里插入图片描述

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

逻辑地址转换为物理地址,业内地址=物理地址,页号对应的块号
物理地址=块号+业内地址
在这里插入图片描述
(1)解题:

  1. 逻辑地址=页号+页内地址
  2. 页面大小4K=212(一个页的页内地址是12位,高于12位的就是页号)
  3. 每个十六进制对应四个二进制位,所以A29H为业内地址,5为页号
  4. 5对应的块号(也叫页帧号)为6
  5. 物理地址为6A29H

(2)解题

  1. 4对应的状态位为0,不在内存,考虑进行页面淘汰
  2. 淘汰只能在内存里的,从 0 1 2 5 中淘汰
  3. 刚刚被访问的访问位为1 不能被淘汰,只有1号页能被淘汰

3.3、段式存储组织和段页式存储

在这里插入图片描述
在这里插入图片描述
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大

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

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

3.4、页面置换算法

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

在这里插入图片描述
算法过程
  FIFO先进先出,第一行4 3 2 ……我们需要访问页面的序列,第一列1 2 3 我们要访问内存的三个页面。访问调用到的第一个程序是编号为4的程序页,内存里没有这一个编号为4的程序,所以会调入编号为4的程序页,产生一次缺页。 3 2程序页也是如此,产生缺页,当1号页调入,因为4号页首先调入,所以先被淘汰,依次类推。产生9次缺页。然而多加了一个页面却产生10次缺页,产生了抖动。

   例题1:在一个虚存系统中,进程的内存空间为3页,开始内存为空,有以下访问页序列:5 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 5 0 1,分别计算缺页次数。
(1)使用先进先出的页面淘汰算法。
(2)使用最佳适应算法。
(3)使用最近最少使用算法。
在这里插入图片描述
算法过程
  LRU最近最少使用,到2号页访问时,内存被5 0 1三个页面占用了,考虑把其中一个页面淘汰,FIFO会把先进的5号页淘汰,LRU会把最久没有被访问到的,最近没有被访问到的5号淘汰。到0号页访问时,内存中有0号页命中,不存在缺页。到3号页访问时,FIFO会把先进的0号页淘汰而LRU会把最久没有被访问到的1号页淘汰。

请添加图片描述

3.5、索引文件结构

在这里插入图片描述
索引文件结构:一般索引文件结构有13个结点(编号0~12号),在索引节点的文件结构当中分成了直接索引,一级间接索引,二级间接索引,三级间接索引,主要考虑到文件本身容量的扩展问题。

假如:一个物理盘块是4k,13块都是直接索引,那么这个文件最大多大 4k×13=52k。进行扩展,我们规定0~99个地址对应的是直接索引。
一级间接索引前10个容量40k,第十个结点指向的物理盘块,不在存索引文件的直接内容,存地址,物理盘块的地址,每个地址假设占4个字节,10号索引结点对应的物理盘块可以存4k÷4=1024个物理盘块的地址
二级间接索引 4k×1024×1024

请添加图片描述

4、操作系统

4.1、文件和树形目录结构

文件属性

  1. R只读文件属性
  2. A存档属性
  3. S系统文件
  4. H隐藏文件

文件名的组成

  1. 驱动器号
  2. 路径
  3. 主文件名
  4. 扩展名

绝对路径∶是从盘符开始的路径。
相对路径∶是从当前路径开始的路径。
若当前目前为:D1,要求F2路径,则:绝对路径:/D1/W2/F2,相对路径∶W2/F2
在这里插入图片描述

5、文件管理

5.1、空闲存储空间的管理

在这里插入图片描述
空闲存储空间管理:指在磁盘上会有大量的空间,需要把这些空闲的空间管理起来,以便在某一个文件要申请相应的存储空间时,能够有依据的去分配给它相应的空间

请添加图片描述

在这里插入图片描述

6、设备管理

6.1、数据传输控制方式

在这里插入图片描述
程序控制方式(程序查询方式):最低级的,也是cpu介入最多的一种机制,外设处于一种非常被动的方式,不会主动的反馈信息。

程序中断方式:有中断机制,外设完成了相应程序数据的传输,会发一个中断出来
DMA直接存取控制方式:会有专门的DMA控制器,外设和内存之间的数据交换过程中,有这个控制器管控。

6.2、虚设备与SPOOLING技术

在这里插入图片描述
思考题:A,B,C,D共用一台打印机X,要进行资料打印时,很容易出现“打印机正在使用!”如何处理该问题?
在这里插入图片描述

7、微内核操作系统

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑伴你而行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值