软件设计师备考-(三)操作系统基本原理
三、操作系统基本原理
(一)操作系统的概述
(二)进程管理
1、进程管理-进程状态转换图
三态模型—》五态模型
2、进程管理-前趋图
总之,前趋图是一种有向图,用于描述任务或操作之间的依赖关系,并帮助确定任务的执行顺序和优化执行效率。它在项目管理和调度算法中起着重要的作用。
3、进程管理-进程的同步与互斥
4、进程管理-PV操作
PV操作是一种用于同步多个线程的机制,其中P代表“申请资源”(也可以理解为“拿走资源”),V代表“释放资源”(也可以理解为“归还资源”)。
假设有一个资源(比如说一个共享变量或者一个临界区),多个线程需要使用这个资源。当一个线程想要使用这个资源时,它需要执行P操作,这就相当于向系统申请这个资源。如果此时资源可用,那么线程就可以继续执行。但是如果资源已经被其他线程占用,那么该线程就会被阻塞,直到资源被释放。
当一个线程使用完资源后,它需要执行V操作,这就相当于释放这个资源,以便其他线程可以使用。执行V操作后,系统会通知其他等待资源的线程,让它们可以继续执行。
简单来说,P操作就是申请资源,V操作就是释放资源。通过使用PV操作,可以确保多个线程之间对共享资源的访问是有序的,避免了竞争和冲突的问题。
注:(1)在p操作中,如果s>0,则阻塞该进程,把该进程放到进程队列中去,该进程就会处于等待状态;如果s<0则会继续执行当前程序。
(2)在v操作中,如果s<=0;则会在系统的进程队列中,拿出一个等待进程来,激活等待进程,让他继续去执行。
5、pv操作练习题
(p操作具有阻塞作用(阻塞就开始等待),V具有激活等待作用(激活P操作),p和v一般都是成对出现的)由题可知,这是一个书店购书流程,购书者购书付款,收银员收费。
(1)为什么在购书者进程中会首先出现一个p(sn)操作呢?
原因是,假如有n个购书者购书,那么每执行一次p操作,都会-1,直到Sn<0时,进入阻塞状态,这样做的好处是避免了,购书者不断进入,导致书店人员满员(假如书店同时只能容下100人,那么当第101人进入时,就会被阻塞,进入等待状态)。
(2)为什么b1是p操作呢?
因为收银员不能一直收款啊,当有客户时才进行收款,没客户时就进入等待状态,也就是被阻塞,只有p才有阻塞作用,所以b1为p操作。
(3)为什么a1不能是p操作呢?
因为b1是p操作,而购书者付款必须经过收银员收费操作,才能进行付款。当购书者进行付款时(a1),激活(v操作具有激活等待进程)正在等待的收银员(b1),进行收费操作。
(4)为什么a2是p操作呢?为什么b2是v操作呢?
因为购书者付款离开前,必须经过收银员的查看商品,进行收费,找零,给商品消磁,等一系列操作之后,才能离开。而这个时候,购书者就处于等待状态,即a2为p操作。而这时候收银员在b2时,经过消磁找零等操作后,激活购书者的等待状态(a2),告诉购书者可以离开。所以b2为v操作。
解,(1)答案选A (2)C
6、PV操作与前趋图
(1) 进程管理-PV操作
p是阻塞、v是通知,一般交替出现也就是成对出现
(1)p1执行,p2执行,执行完要通知,所以a是v(s1),b是v(s2)
(2)得到v(s1)和v(s2)的通知后,P3执行执行前要先阻塞,所以c是p(s1)和p(s2)。
(3)在执行p4和p5之前要先被通知,即d是v(s3)和v(s4)
(4)得到通知,要先阻塞,即e是p(s3),d是p(s4)
7、进程管理-死锁问题
解:(1)公式:设k为进程数,n为每个进程所需资源数,则由公式k*(n-1)+1=3*(5-1)+1=13,系统至少有13个资源时,则不可能发生死锁。
(2) 由题可知,每个进程都需要5个系统资源,那么想要不发生死锁,可以先给ABC个分配4个资源,共12个资源。这时系统还有第13个资源,那么ABC都还缺少一个资源,这时无论把第13个资源分配给ABC的谁,都不会发生死锁。即随便把这一个分配给某个进程,都会满足5个资源的条件,从而进行释放资源。
8、银行家算法
(1) 死锁问题
(2) 银行家算法
(3) 银行家算法例子
(三)存储管理
1、分区存储组织
(1) 分配前:空闲区的顺序是从小到大,即10k——25k——28k
(2) 首次适应法:即从上到下分配,25k——28k——10k
(3) 最佳适应法:优先分配最小的,10k——25k——28k
(4) 最差适应法:优先分配最大的,28k——25k——10k
(5) 循环首次适应法:25k——28k——10k的顺序,循环分配,首次分配在了25k,第二次在28k
2、页式存储、段式存储、段页式存储
(1) 页式存储组织
注:查找逻辑地址的物理地址,怎么查找?
答:先找到逻辑地址的页内地址,在通过页号找到块号,把块号与页内地址拼接起来就是所对应的物理地址。
例题:
(1) 由题可知页面大小为4k,(物理地址=块号和页内地址)则化成二进制就是2的12次方,说明大于12位的为页号,12位为页内地址,又因为逻辑地址为16进制,所以1位表示二进制的4位,即A29是页内地址,5为页号,则块号(页帧号)根据表格得为6,即6A29H,答案选D。
(2) 淘汰页号,只能淘汰在物理地址中的,即状态位(0表示不在,1表示在),那么只能选择0、1、2、5。又因为只能选择未被访问过得(1表示被访问,0表示未被访问),即只有页号为1的未被访问,所以答案选择B。
其实也就是指将十进制的4096转化为十六进制=1000H
(2)段式存储组织
(3)段页式存储组织
段表和页表被放在内存中,被称为慢表。
快表放在Cache中。
3、页面淘汰算法
(1)页面置换算法
LRU:最久没被使用的最先被淘汰
【1】先进先出(FIFO)
重复就不缺页:
【2】FIFO和LRU的区别
注:FIFO:先进来的先被淘汰
LRU:最久没被使用的最先被淘汰
没缺页就会保留,在下次被淘汰:例如FIFO,5、0、1进。2进淘汰5,还剩012。0进,没缺页,不淘汰,现在为0120。3进,淘汰0,还剩1203。0进,淘汰1,还剩2030.依次类推。·
(2)页面淘汰算法练习题
(1) 没有使用快表,说明我们每读一次块,需要在内存上查一下表,之后才能读取相应的内存块,所以每一个块需要进行2次内存的访问,总共有6个块,所以会进行访问12次内存。
(2) 由图可知指令与操作数都是各夸2个页。因为指令是一次性读入,所以指令swap只会产生1次缺页中断,而操作数AB各会产生2次。所以最终将会产生5次缺页中断。
(四)文件管理
1、索引文件结构
1k=1024B=1024字节
注:(1)一个物理盘块假设4k的大小,则13个盘块最大为4k*13=52k
(2)13个索引结点就是存的13个地址。
(3)规定前10个索引结点(0—9)为直接索引:地址直接对应物理盘块,盘块对应索引的内容。4k*10=40k
(4)第10个结点(一级间接索引),所对应的是物理盘块的地址,每一个地址,假设占4个字节,一个物理盘块假设4k大小。则一个物理盘块可以存(4k/4字节=1024)1024个地址,容量最多可以存4k*1024个字节。
(5)第11个结点(二级间接索引):容量最多可以存4k * 1024 * 1024
(6)第12个结点(三级间接索引):容量最多可以存4k * 1024 * 1024 * 1024
(7)间接级别越多,间接索引越大容量越大,效率越低
逻辑地址从0开始算。
(1) 由题可得,每个地址项占4个字节,磁盘索引和磁盘数据块大小均为1kb字节,则每个物理盘块可以存(1kb/4=256)256个地址。逻辑块号为5的物理块号,由图可知为58。因为每一个盘块可以存256个地址,而结点90的物理盘块的物理块号为58的逻辑地址为5,则最后一个地址逻辑块号为260(因为从5开始,包括5,总共存256个,则最后一个逻辑块号就为256+5-1=260),所以第261个逻辑块号所对应的物理块号为下一个结点的开始,即187号。
(2) 由题可知。101号物理块存的是二级间接索引表
2、文件和树型目录结构
3、空闲存储空间的管理(主要学习位示图法)
详细介绍:操作系统之文件系统:4、文件存储空间管理(空闲表法、空闲链表法、位示图法、成组链接法)空闲表法和空闲链表法千寻瀑༄的博客-CSDN博客
因为从0开始编号,所以4195号,其实是第4196个数
(1) 答案:D
(2) 答案:B(0代表空闲,1代表占用)
(五)设备管理
1、数据传输控制方式(内存和外设之间)
主要掌握前三种。后俩种一般直接有计算机控制
注:(1)程序控制方式(程序查询方式)
(2)DMA方式(直接存取控制方式)
2、虚设备与SPOOLING(假脱机)技术
注:在计算机科学中,假脱机技术是一种用于提高I/O效率的方法,它允许数据在输入/输出操作之前被缓冲。
- (1)同时联机外围操作技术,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术,通常又称假脱机技术。
-
- 在多道程序环境下,利用多道程序中的一道或者两道程序来模拟脱机输入/输出中的外围控制机的功能,以达到“脱机”输入/输出的目的。
- 利用这种技术可把独占设备转变成共享的虚拟设备,从而提高独占设备的利用率和进程的推进速度。
- (2)SPOOLING系统 是对脱机输入/输出工作的模拟,它必须有大容量的且可随机存取的存储器的支持。
-
- 其主要思想是在联机的条件下,进行两个方向的操作,在数据输入时,将数据从输入设备传送到磁盘或磁带(块设备),然后把这些块设备与主机相连;
- 反过来,在数据输出时,将输出数据传送到磁盘或磁带上,再从磁盘或磁带传送到输出设备。
- 这样,可以将一台独占的物理设备虚拟为并行使用的多态逻辑设备,从而使该物理设备被多个进程共享。
- (3)输入进程SPI是模拟脱机输入时的外围控制机,它将用户要求处理的数据从输入设备通过输入缓冲区再送到输入井(磁盘上开辟的一块区域),当CPU处理这些数据时,就直接从输入井读入内存。
-
- 输出进程SPO是模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据通过输出缓冲区(内存中一块区域)传送到输出设备上。
(六)微内核操作系统
把内核做的更小的操作系统
文档说明:希赛教育王勇老师软件设计师教学课程,这里学习整理后进行分享