软考:操作系统

嵌入式操作系统特点:运行在智能芯片环境中

微型化、可定制(针对硬件变化配置)、实时性、可靠性(尽可能容错)、易移植性(HAL和BSP支持、跨平台)

实时操作系统特点:规定时间内响应并处理

线程

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成

进程可独立拥有资源

进程与程序区别:进程是程序的一次执行过程,没有程序就没有进程。

线程不可共享:程序计数器、寄存器、栈

线程可共享:内存地址空间、代码、数据、文件等

进程的状态

  • 运行:当一个进程在CPU运行时(单处理机处于运行态的进程只有一个

  • 就绪:一个进程获得了除CPU外的一切所需资源,一旦得到处理机即可运行

  • 阻塞(等待/睡眠):一个进程正在等待某一事件发生(例如请求I/O等待I/O完成等)而暂时停止运行,此时即使把CPU分配给进程也无法运行。

等待 -> 就绪:等待某一事件发生

运行 -> 等待:等待某个事件

就绪 -> 运行:调度

运行 -> 就绪:时间片到

进程调度模型

临界资源:诸进程间需要互斥方式对其进行共享的资源(进程中访问临界资源的那段代码称为临界区)

互斥:千军万马过独木桥 间接制约关系

同步:速度有差异,在一定情况停下等待 直接制约关系

PV操作

信号量:是一种特殊的变量。(全局变量)

信号量可以表示资源数量

信号量为负数时还可以表示排队进程数

P操作:S=S-1 表示申请/锁定资源 S<0 表示检查资源是否足够 非CPU资源不足会进入阻塞队列 只有资源足够才会进入就绪队列

V操作:S=S+1 表示释放/解锁资源 S<=0 表示是否有进程排队

PV操作实现资源的互斥使用

银行家算法保证系统不发生死锁

互斥模型

多个进程共享一台打印机

P(S);->使用打印机->V(S);->后续代码;互斥信号量S的初值为1

同步模型

单缓冲区生产者、消费者问题

生产者:生产一个产品;P(S1);送产品到缓冲区;V(S2)

消费者:P(S2);从缓冲区取产品;V(S1);消费产品

S1初值为1,S2初值为0 都是同步信号量

互斥-同步模型

单缓冲区生产者、消费者问题

生产者:生产一个产品;P(S1);P(S);送产品到缓冲区;V(S);V(S2)

消费者:P(S2);P(S);从缓冲区取产品;V(S);V(S1);消费产品

S1初值为1,S2初值为0 都是同步信号量

S初值为1 为互斥信号量 访问权

死锁四大条件

  1. 互斥

  2. 保持和等待

  3. 不剥夺

  4. 环路等待

    打破任一条件即可避免死锁 有序资源分配法和静态资源分配法

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

n<4 肯定死锁 4<=n<=15 可能避免死锁也可能死锁 n>15 肯定避免死锁

5用x表示 4用y表示

则 n>=(y-1)*x+1 即可得到系统不可能发生死锁的最小资源数

进程资源图

R1->P 资源R1已经分配给进程P,1个箭头即分配了1个R1

R1<- P 进程P申请1个资源R1,1个箭头即申请了1个R1,等待R1分配R

R1<-->P 先分析资源分配情况,列出剩余可用资源:此时已分配1个R1给进程P,剩余1个R1可用。

再判断申请后进程是否能够执行:P进程申请1个R1,系统有1个R1可用,P进程可成功执行,执行后释放占用的2个R1

可以完成进程叫做非阻塞节点 不可以完成进程叫做阻塞节点

只要有情况可以让每个线程都可以执行,就叫做可化简

页式存储

定义:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。

这个过程由操作系统完成

页表分为页号和物理块号(页帧号)

用户程序页叫做逻辑页号

逻辑地址=页号+页内地址

物理地址=页帧号+页内地址

例题:页式存储系统中,每个页的大小为4KB。逻辑地址为:10 1100 1101 1110

转换为物理地址得出:110 1100 1101 1110

总容量4KB=存储个数*编址内容 默认是按字节编址 1B 得出存储个数4K个

4KB表示12位 4K个用地址编号(0~4095)上面的数后12位表示页内地址保持不变

已知页表中页号2对应的块号为6,转换为二进制:10对应110

优点:利用率高,碎片小,分配及管理简单

缺点:增加了系统开销;可能产生抖动现象

缺页中断淘汰原则:

  1. 访问位为0

  2. 如果多个访问位为0,则修改位为0

存储管理-页面置换算法

  • 最优算法

  • 随机算法

  • 先进先出算法:有可能产生抖动现象

  • 最近最少使用算法:不会抖动

时间局部性:刚被访问过的内容,立即又被访问

空间局部性:刚被访问的内容,临近的空间很快被访问

段式存储

定义:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。

段表=段号+段长+基址

优点:多道程序共享内存,各段程序修改互不影响

缺点:内存利用率低,内存碎片浪费大

逻辑地址可以转换为对应的物理地址(根据段长范围以内进行判断)

磁盘管理

存取时间=寻道时间+等待时间,寻道时间是指磁头移动到磁道所需的时间,等待时间为等待读写的扇区转到磁头下方所用的时间

读取磁盘数据时间包括以下三个部分:

  • 找磁道的时间

  • 找块(扇区)的时间,即旋转延迟时间

  • 传输时间

例题:某磁盘磁头从一个磁道移至另一个磁道需要10ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和2ms,则读取一个100块的文件需要多少ms时间

(10×10ms+100ms+2ms)×100=20200ms

先来先服务(FCFS)

最短寻道时间优先(SSTF):找最近的柱面号

扫描算法(SCAN)双向 电梯算法

循环扫描(CSCAN)算法 单向

磁道就是柱面

例题:假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为15us,由缓冲区送至用户区的时间是5us,在用户区内系统对每块数据的处理时间为1us,若用户需要将大小为10个磁盘块的Doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为201us,采用双缓冲区需要花费的时间为156us

第一步:缓冲区(进入+使用):15us+5us

第二步:用户区处理:1us

构成流水线则:(15+5+1)+(10-1)*(15+5)=201us


第一步:使用缓冲区1 15us

第二步:使用缓冲区2 5us

第三步:处理过程:1us

构成流水线则:(15+5+1)+(10-1)*15=156us


假设某磁盘的每个磁道划分成11个物理块,每块存放1个逻辑记录。逻辑记录R0,R1,....R10存放在同一个磁道上。如果磁盘的旋转周期为33ms磁头当前处在R0开始处。若系统使用单缓冲区顺序处理这些记录,每个记录处理时间3ms,则处理这11个记录的最长时间为366ms;若对信息存储进行优化分布后,处理11个记录的最少时间为66ms

解析:R0旋转周期3ms,处理时间3ms,最后磁头处在R1末尾处

所以下次处理R1,有旋转延迟时间,得重新回到R1起始点,环绕一周减去3ms,即30ms

处理R1总时间:30ms+3ms+3ms=36ms(R2一直到R10都需要36ms)

只有R0需要6ms 所以这11个记录处理总时间为:36*10+6=366ms

I/O请求分层次:用户进程->设备无关程序->设备驱动程序->中断处理程序->硬件

各个层次的功能

  • 硬件:完成具体的I/O操作

  • 中断处理程序:I/O完成后唤醒设备驱动程序

  • 设备驱动程序:设置寄存器,检查设备状态

  • 设备无关I/O层:设备名解析、阻塞进程、分配缓冲区

  • 用户级I/O层:发出I/O调用

文件

文件目录:

  • 文件目录项/文件的说明/文件控制块FCB

    • 基本信息类:文件名、文件的物理地址、文件长度和文件块数

    • 存储控制信息类:文件的存储权限:读写、执行权限

  • 目录结构

树型目录结构

绝对路径:是从盘符开始的路径

相对路径:是从当前目录开始的路径

若当前目录为:D1,要求写出F2路径:则

绝对路径:/D1/W2/F2

相对路径:W2/F2

全文件名:绝对路径+文件名

位示图

某字长为32位的计算机的文件管理系统采用位示图记录磁盘的使用情况。若磁盘的容量为300GB,物理块的大小为1MB,那么位示图的大小为多少个字

解析:有多少物理块需要管理 300GB/1MB=300*2^10

300*2^10/32=9600个字

索引文件

单个文件最大长度:5(直接索引)+1024/4(一级间接索引)+256*256(二级间接索引)

作业管理

响应比=(作业等待时间+作业执行时间)/作业执行时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值