Part2. 操作系统基本原理
一.操作系统基本概述
1.操作系统基本概述
操作系统的作用是管理系统的硬件、软件、数据资源,控制程序运行
人机之间的接口(例如windows系统,通过图形化界面,让人们直接操作图形化界面达到操作硬件的目的)
软件与硬件之间的接口
2.微内核操作系统
内核做得更小的操作系统。可靠性,稳定性,安全性都相对较高。
二.进程管理
1.进程状态转换图
由于cpu资源非常宝贵,系统是通过时间片轮转算法分配cpu资源,每个进程只能运行一个时间片,时间片到期,转为就绪状态,等待下一次时间片的到来。
进程的终止有两个阶段,1.等待操作系统进行善后处理 2.释放内存
进程的状态:三状态模型
运行状态:所有系统资源都给他配好
就绪状态:除了cpu资源以外,其他资源都给他配好。
等待(阻塞)状态:缺少cpu资源,和其他资源,等待操作系统分配资源和调度。
进程的状态:五状态模型
由于系统资源宝贵(包括cpu资源和内存资源),这时候必须将某些进程挂起,放到磁盘兑对换区,暂时不参加调度,以平衡系统负载,或者是系统故障,或者是用户调试程序人为挂起进程。所以出现了五状态模型,五状态模型是在三状态模型的基础上多了以下2种状态
静止就绪状态:就绪进程被对换到辅存时的状态,不能被直接调度,需要先回到活跃就绪状态才能被调度。
静止阻塞状态:阻塞进程被对换到辅存时的状态,不能被直接调度,需要先回到静止阻塞状态才能被调度。
2.前趋图
前趋图:表达要完成的一系列活动的先后的约束关系(哪些任务可以并行执行,哪些任务有先后顺序关系)
3.进程的同步与互斥
进程的同步和互斥:互斥(例如千军万马过独木桥,只能一个人过桥,独木桥可认为是共享资源)同步(速度有差异时,在一定情况停下等待,保证同时到达某个点)
同步与异步相反
共享与互斥相反
4.PV操作与前趋图
PV操作用于解决并发进程之间某些约束关系之间的问题。本质就是对信号量的判断来决定进程之间如何运行。
P:每执行一次,信号量S-1,当信号量S<0时(阻塞),V:每执行一次,信号量 S+1,当信号量S<=0时解锁(唤醒)P操作。
临界资源:进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等
临界区:每个进程中访问临界资源的那段代码
信号量:是一种特殊变量,可以用于表示资源的可用数量。
我们来结合上面2图来分析一下:
首先分析p(s1)和v(s1)这对pv操作
当生产者进程和消费者进程正常工作时(处于一个平衡状态)
生产者:
P操作:s1=s1-1=1-1=0,满足继续执行的条件,产品送到了缓冲区,
消费者:
V操作:s1=0+1=1,满足继续执行的条件,成功消费一个产品
但是当生产者进程和消费者进程不处于一个平衡状态,则需要依靠信号量来决定进程如何运行。
生产者:生产第1个产品时:
P操作:s1=s1-1=0,满足继续生产下一个产品的条件,所以开始继续生产第2个产品
这时,如果消费者并没有消费完产品,s1=s1-1=-1,进程开始阻塞,无法继续生产第2个产品
此时消费者才开始消费:
V操作:s1=-1+1=0,开始唤醒阻塞的进程,第2个产品得以继续完成。
接着生产者继续生产第3个产品,P操作后进程阻塞,然后消费者V操作后继续完成……以此达到一个平衡。
p(s2)和v(s2)的分析同理
解答:首先先判断出先后顺序为:a1–>b1–>b2–>a2,a1和b1是一对信号量(b1等待a1唤醒),a2和b2是一对信号量(a2等待b2唤醒),又因为S1和S2初始值为0,
则:
a1为V(S1),b1为P(S1),a2为P(S2),b2为V(S2)
或者 a1为V(S2),b1为P(S2) ,a2为P(S1),b2为V(S1)
所以答案可以选择 A和C
5.死锁问题和银行家算法
(1)死锁问题
如果一个进程在等待一件不可能发生的事,进程就死锁
死锁4大条件,同时满足4个条件就会出现死锁,
1.互斥:资源必须互斥,如果不互斥,就说明资源可以共享,就不存在死锁了。
2.保持和等待:进程会保持自己的资源并且等待其他进程释放资源
3.不剥夺:操作系统不会去剥夺进程的资源去重新分配
4.环路等待:例如:A等B,B等C,C等A
死锁的预防(打破四大条件)
所以:最少资源数=进程数*(所需资源数-1)+1
(2)银行家算法
银行家算法(避免死锁):分配资源的原则:
(1)首先,求出剩余的资源数:
R1剩余 9-1-2-2-1-1=2
R2剩余 8-2-1-1-2-1=1
R3剩余 8-2-1-1-2-1=0
(2)然后计算P1到P5的还需资源数
(3)所以,首先肯定必须先执行p2,—>执行完p2后会释放资源,得到新的剩余资源数,然后继续推理即可,答案为 B
三.存储管理
1.基本存储单位
在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。各种存储设备存储容量单位有KB、MB、GB和TB等几种。 [2]
位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。
字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。各种信息在计算机中存储、处理至少需要一个字节。例如,一个ASCII码用一个字节表示,一个汉字用两个字节表示。
字(Word):两个字节称为一个字。汉字的存储单位都是一个字。
计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示,它们之间的关系是:
8bit=1B
其他的都是1024倍数关系:1024B=1KB、、、以此类推
2.分区存储组织
3.页式存储系、段式存储、段页式存储
(1)页式存储系
例题:
解:页面大小4K,转化为二进制,为2^12,一个十六进制位等于 2^4,所以,4K刚好占了3个十六进制位,那么可以知道A29为页内地址,5为页号,根据页号5找到对应的页帧号为6,则物理地址为6A29H,选择 D
要访问的页面4的不再内存,它的访问位是0,和页号1相同,那么就应该淘汰页号1,把页号4放入内存中。选择 B
(2)段式存储
(3)段页式存储,优缺点介于段式和页式之间
(4)快表
4.页面淘汰算法
例题1
解:开始内存为空,内存空间为3页,
FIFO:当内存中已经存在需要的页,则不淘汰;当内存中不存在需要的页,按照先进先出的规则淘汰,先淘汰5–>0–>1–>2…。
LRU:当内存中已经存在需要的页,则不淘汰;当内存中不存在需要的页,按照最近最少使用的规则淘汰(根据上图来理解应该可以很好的理解)。
例题2
解:页面大小1KB,
0页号:内存单元0~1023
1页号:内存单元1024~2047
2页号:内存单元2048~3071
3页号:内存单元3072~4095
4页号:内存单元4096~5119
5页号:内存单元5120~6413
1b=8bit,指令swap,操作数A,操作数B都是16bit,肯定是跨页访问了,也就是说,一共需要6个页(而且题目也说了用户程序划分为6页,说明每个页都会用到)。在读取物理地址的时候,需要先去查页对应的页的块,再去找到真正的内存地址。所以,6x2=12次
注意,执行指令即使跨页访问,也只会出现1次缺页中断,访问操作数A跨2个页,2次缺页中断,访问操作数B跨2个页,2次缺页中断,所以一共出现 1+2+2=5次缺页中断,选 C
四.设备管理
1.数据传输控制方式
2.虚设备与Spooling技术
五.文件管理
1.索引文件结构
解:首先,磁盘数据块大小为1kb字节,内个地址4个字节,那么可以算出每个磁盘数据块可以有256个地址项。(下图解释的较为清楚了),最终答案为 C和D
2.树型目录结构
注意:图中斜杠画反了,小问题。。
3.位示图
空闲存储空间的管理办法之一。1代表已被占用,0表示空闲
解:如题,字长32位,一共32个物理块,因为物理块从0开始编号,所以 4195物理块应该是第4195+1个位,即 4196, 4196/32=131.125,所以选 D,0.125x32=4,说明是在第4个位置,但是物理块号的编号应该是3,所以选B(或者按照下图的思路也可以)
本文参考《软件设计师教程》及网络上的教程,如有侵权请联系删除