什么是操作系统:

管理计算机硬件和软件资源,是人和硬件之间的一种接口

进程管理、存储管理、文件管理、作业管理、设备管理、微内核操系统

 

 

 

 

进程的管理:

 

运行态:正在运行,占用CPU

就绪态:万事俱备,只欠东风(CPU)

等待状态:缺多种资源

 

进程与程序的区别(考查点)

 

 

前趋图:描述哪些程序或者步骤可以并行,哪些程序或者步骤有先后关系

 

进程的同步与互斥:(同步和互斥可不是反义词啊)、

同步:同步不是同时运行,是程序运行的先后顺序。

互斥:一个程序运行完以后、另一个才能运行,程序之间存在的唯一关系就是我运行你就不可以运行。

 

同步:每次只有生产者或者消费者进入市场,进程的同步好比火车上的厕所

互斥:临界资源是有限的,每次只能一个消费者使用

 

为什么会有PV操作?

防止两个进程同时执行时发生错误

 

p操作:申请操作,资源减一

v操作:释放资源,资源加一、

PV是成对出现的

S代表资源,如果有资源S>=1

 

S1 为市场中的产品

 

经典题型

 

首先刚进来的时候,

对于收银员:收银员什么都没有做,它需要申请一个资源,给一个人结账,申请S1(第一个人)当第一个人结束以后,释放V(S2):告诉S2我这有资源了。

对于购书者:缴费结束后需要释放资源即V(S1),然后第二个消费者需要申请该资源。

a1和b1是一对PV操作

a2和b2是一对PV操作

 

 

前趋图讲的是一种依赖关系

 

解析;我觉得前趋势就好比拓扑关系一样,每个字母代表一个进程

当ABC三个进程完成以后才可以完成D进程 D进程完成以后才可以执行E进程

有几个进来(入度)有几个P操作,有几个出去(出度)有几个V操作

ABC没有入度,只能释放资源,所以是V(Sa)V(Sb)V(Sc)

D 既有入度,也有出度,入度就是要申请该资源,P(Sa)P(Sb)P(Sc),出度的就要释放资源(V(Sd))

E 只有入度,则需要申请资源P(Sd)

 

 

死锁的学习

死锁的原因:竞争共享资源,且分配资源顺序不当。

死锁的产生条件(四个条件同时满足是才会发生死锁),死锁的预防 死锁的的避免

 

求至少资源的问题

 

资源分配的问题

每个进程需要的资源减一,乘以进程数目,最后在加一

如果每个进程需要四个资源,我分配任何一个进程最多三个资源(如果给你四个就不是最少了),还剩余一个资源。然后将这个资源给任何一个进程。任何一个就可以执行完成,释放资源后给其他进程。

进程数目5乘以最多分配资源数目3个,加上一个资源数目

3*5+1=16,则至少需要16个资源

 

银行家算法:

 

解题步骤:

 

 

 

解析:首先算出目前还剩余的资源,以及每个进程还需要的资源,分配给可以满足的进程,当进程执行完成以后,可利用资源数目发生改变,然后继续将资源分配给进程,直到所有的进程执行完成。

注意:进程释放以后,可利用现有的资源,加上每个进程需要的最大量。

 

 

存储管理——分区存储组织

 

首次适应算法:挨个找,只要能放下我就进去

最佳适应算法:把大小不一致的空间按大小排列,找到最适宜的那个空间,但是会存在很多特别小的空间

最差适应算法:总是占用最大的那块空间

循环首次适应算法:循环找,例如第一次占用了25K,第二次就要考虑28K的那个空间,第三次就去找10K的空间,这样分配就会更加均匀

 

 

需要多大空间就给多大空间,如果我的一个程序是2GB,然而我的内存就1GB,显然无法运行,于是出现了页式存储的思想。

 

 

 

页式存储(逻辑地址转物理地址)

 

地址结构:页号P 和 业内偏移地址(业内偏移量W)

假如逻辑地址是m 页大小为2的n次方字节 低n位表示业内偏移量

m-n就是页号

 

例如地址是32位的

页大小为4KB,也就是2的12次方,则业内偏移量为12,页号为32-12=20

如果逻辑地址是A 页的大小是L 则页号为A/L取整

A Mod L取余,就是业内偏移量

根据页号,找到对应的页框号

物理地址=页框号×页框大小+业内偏移地址

 

逻辑地址转换为物理地址:例如逻辑地址 0x 0100 0001 转换为物理地址 0000 0001 0000 0000 0000 0000 0000 0001 每一个16进制的数都要转换为4个二进制的数 如果页号为20,业内偏移地址为12 页号为:0x 01000,假如 页号对应的页框号为0x 00110 (通常给你一个页表,根据页表让你找页框号)

高20位是页号则为 0x 01000

低12为的业内偏移地址为 0x 001

则物理地址:0x 00110 × 0x 01000 + 0x 001 =0x 00110001

 

 

 

 

 

段式存储:

 

 

 

 

段页式存储:

 

 

 

页面置换算法

(Cache里面的空间是有限的,如何对里面的页面进行置换呢?)

 

主要学习先进先出、最近最少使用算法

什么是抖动?

 

实例学习:(目前存在问题)

 

 

 

文件管理:

 

例题解析:

 

文件和树型目录结构

 

空闲存储空间的管理

 

位示图的学习:

例题:第几个位置,是从1开始的,多少个位置,说的是从0开始的

 

解析:

 

 

设备管理:——数据传输控制方式

 

 

 

 

 

 

 

更多文章请关注《万象专栏》