当前位置: 首页 > news >正文

软件设计师备考-(三)操作系统基本原理

三、操作系统基本原理

(一)操作系统的概述

(二)进程管理

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模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据通过输出缓冲区(内存中一块区域)传送到输出设备上。

(六)微内核操作系统

把内核做的更小的操作系统

文档说明:希赛教育王勇老师软件设计师教学课程,这里学习整理后进行分享

http://www.dtcms.com/a/354268.html

相关文章:

  • leetcode28. 找出字符串中第一个匹配项的下标
  • VR党建工作站-红色教育基地
  • 路由基础(三):静态路由、动态路由、默认路由
  • Linux系统 -- 线程(pthread)核心知识整理
  • 【golang长途旅行第33站】常量------补充知识点
  • 学习游戏制作记录(数据加密以及主菜单和画面优化)8.27
  • 运算电源抑制比(PSRR)测量及设计注意事项
  • 去哪里学AI?2025年AI培训机构推荐!
  • 部署k8s-efk日志收集服务(小白的“升级打怪”成长之路)
  • 数据库:缓冲池和磁盘I/O
  • 让组件“活”起来:使用 `useState` Hook 管理组件状态
  • 【苍穹外卖项目】Day12
  • Android中的SELinux
  • vue3 字符 居中显示
  • HyperMesh许可证过期?
  • 北京国标:专业高效的数据采集和分析服务
  • 【深入理解 Linux 网络】配置调优与性能优化
  • 官宣,2026第二届郑州国际台球产业展览会,展位开启招商
  • 解决网站图片加载慢:从架构原理到实践
  • Ubuntu系统中查看内存、CPU、GPU的使用情况以及它们之间的连接情况
  • TypeScript实战:轻松实现数字序号转中文大写数字
  • 什么是宏观和微观仿真
  • Wed 自动化测试常用函数实践(二)
  • 嵌入式开发学习 C++:day01
  • 【SystemUI】启动屏幕录制会自动开启投屏
  • 主流配置中心对比
  • 百度测试岗位--面试真题分析
  • JS逆向-反调试绕过事件检测无限Debug篡改猴Hook替换指向匹配修改条件断点
  • 泊松分布知识点讲解
  • Android WPS Office 18.20