diff --git a/archetypes/408.md b/archetypes/408.md deleted file mode 100644 index 3021163..0000000 --- a/archetypes/408.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "<操作系统>{{ replace .Name "-" " " | title }}" -date: {{ .Date }} - ---- -## 知识框架 - diff --git a/content/408/《操作系统》大题总结.md b/content/408/《操作系统》大题总结.md new file mode 100644 index 0000000..608db02 --- /dev/null +++ b/content/408/《操作系统》大题总结.md @@ -0,0 +1,937 @@ +--- +title: "《操作系统》大题总结" +date: 2023-07-06T11:24:18+08:00 + +--- + +## 第二章大题考察同步互斥,PV问题 + +### 生产者消费者问题 + +* 特点 + * 进程与进程之间是生产资源-消费资源的关系 +* 解决步骤 + * 确定有几类进程,每个进程对应一个函数 + * 在函数内部用中文描述动作 + * 只做一次(不加while) + * 不断重复(加while) + * 在每一个动作之前确定需要什么(注意隐含的互斥条件,如对缓冲区的访问),如有P操作,则必定有V操作 + * 所有PV写完之后再定义信号量 + * 检查多个P操作连续出现的地方,是否有死锁产生可能 + * 某个信号量的PV连续出现(中间没有夹杂着其他的P),不可能产生死锁,连续多个P导致死锁时,可尝试调整P顺序 + +---- + +![](../../images/《操作系统》大题总结/生产者消费者问题一.png) +``` C + +Semaphore mutex1 = 1 //互斥访问F1 +Semaphore mutex2 = 1//互斥访问F2 +Semaphore empty1 = 10//F1上有几个空位 +Semaphore full1 = 0//F1上有几个A +Semaphore empty2 = 10//F2上有几个空位 +Semaphore full2 = 0 //F2上有几个B + +//A车间 +F_A(){ + while(1){ + 生产一个产品A + P(empty1) + P(mutex1) + 把A放到货架F1上 + V(mutex1) + V(full1) + } +} + +//B车间 +F_B(){ + while(1){ + 生产一个产品B + P(empty2) + P(mutex2) + 把A放到货架F2上 + V(mutex2) + V(full2) + } +} + +//装配车间的工作描述 +F_C(){ + while(1){ + P(full1) + P(mutex1) + 从F1取一个A + V(mutex1) + V(empty1) + P(full2) + P(mutex2) + 从F2区一个B + V(mutex2) + V(empty2) + 将AB组装成产品 + } +} + +``` + +![](../../images/《操作系统》大题总结/生产者消费者问题三.png) + +```C + +Semaphore well = 1;//用于互斥地访问水井 +Semaphore vat = 1;//用于互斥地访问水缸 +Semaphore empty = 10;//用于表示水缸中剩余空间能容纳的水的桶数 +Semaphore full = 0;//表示水缸中的水的桶数 +Semaphore pail = 3;//表示有多少个水桶可以用,初值为3 + +//老和尚 +while(1){ + P(full); + P(pail); + P(vat); + 从水缸中打一桶水; + V(vat); + V(empty); + 喝水 + V(pail) + +} + +//小和尚 +while(1){ + P(empty); + P(pail); + P(well); + 从井中打一桶水 + V(well); + P(vat); + 将水倒入水缸中 + V(vat); + v(full); + v(pail); +} + +``` + +### 理发师问题 + +* 特点 + * 进程之间是服务与被服务的关系 +* 主要解法 +```C + int num = 0; //有几个顾客等待服务 + Semaphore Lock = 1;//互斥访问num + Semaphore rest = 0;//同步信号量,用于实现若没顾客,服务人员休息等待,本质为服务人员排队队列 + Seamphore wait = 0;//同步信号量,用于实现,若服务人员都在忙,顾客休息等待,本质为一个让顾客排队的队列 + + Sever(){ + while(1){ + P(Lock); + if(num > 0){//有顾客 + V(Lock); + V(wait);//唤醒一个顾客 + 为顾客服务; + }else{ //没顾客 + V(Lock); + P(rest);//服务人员休息 + } + } + } + + Customer(){ + P(Lock); + if(num > 等待人数上限(存在无规定人数上限可能)){ + V(Lock); + 离开这家店; + }else{ + num ++; + V(Lock); + V(rest);//唤醒一个正在休息的服务人员 + P(wait);//等待被服务 + 被服务; + } + } + +``` + + +![](../../images/《操作系统》大题总结/理发师问题一.png) + +```C +Semaphore empty = 10;//空座位的数目 +Semaphore mutex = 1;//互斥使用取号机 +Semaphore full = 0;//无占用的座位 +Semaphore service = 0;//等待叫号 + +cobegin +{ + porcess 顾客i + { + P(empty);//等空位 + P(mutex);//申请使用取号机 + 从取号机获取一个号码; + V(mutex);//取号完毕 + V(full);//通知营业员有新顾客 + P(service);//等待营业员叫号 + 接受服务; + } + + process 营业员 + { + while(1){ + P(full);//没有顾客则休息 + V(empty);//离开座位 + V(service);//叫号 + 为顾客服务; + } + } +} + + +``` + + +### 哲学家问题 +* 特点 + * 只有一类进程,要占用多种资源才能运行 +* 关键点 + * 限制申请资源的顺序(不通用,不建议使用) + * 如规定单号哲学家先取左筷子,双号先取右筷子 + * 限制并发进程数(通用,但并发度不高,不建议使用) + * 如规定同一时间只能有一个哲学家就餐(禁止并行) + * 让进程一口气取得所有资源,再开始运行(很通用且并发度高,建议使用) + * 如哲学家只有能够取得两个筷子的时候才会就餐 +* 解法 + * 定义大锁 + * 定义资源数 + * 一口气拿所有资源 + * 做进程该做的事 + * 一口气归还所有资源 +```C +Semaphore Lock = 1;//互斥信号量,定义大锁 +int a = 9; +int b = 3; +int c = 6; + +process(){ + while(1) + { + P(Lock); + if(所有资源都拿够){ + 所有资源int值减少;//题目会告知,每种资源所需量 + 取xxx资源//一口气拿走所有资源 + V(Lock);//拿完资源,解锁 + break;//跳出while循环 + } + V(Lock);//资源不足,解锁,再次循环尝试获取 + } + 做进程该做的事(如哲学家进食) + + P(Lock); + 归还所有资源,所有资源int值增减 + V(Lock); +} + + +``` + +![](../../images/《操作系统》大题总结/哲学家问题一.png) + +通常解 + +```C +Semaphore bowl;//协调哲学家对碗的使用 +Semaphore chopsticks[n];//协调哲学家对筷子的使用 + +for(int i = 0; i < n ;i++) +{ + chopsticks[i] = 1;//设置两名哲学家之间筷子的数量 +} +bowl = min(n-1,m);//bowl 小于等于 n-1,确保不产生死锁 + +cobegin +{ + while(1){ //哲学家i的程序 + 思考; + P(bowl);//取碗 + P(chopsticks[i]);//取左边筷子 + P(chopsticks[(i+1)%n]);//取右边筷子 + 就餐; + V(chopsticks[i]); + V(chopsticks[(i+1)%n]); + V(bowl); + } +} + +``` + + +暴力解(考试建议解法) + +```C +Semaphore Lock = 1; +int bowl = m; +int chopstick[n]; +for(int i = 0;i < n ; i++) +{ + chopstick[i] = 1; +} +philopher() +{ + while(1){//一次性拿下所有资源 + P(Lock); + if(bowl <= 0) + { + V(Lock); + continue; + } + if(!(chopstick[i] == 1 && chopstick[(i+1)%n]==1)) + { + V(Lock); + continue; + } + bowl --; + chopstick[i] = 0; + chopstick[(i+1)%n] = 0; + V(Lock); + } + 进餐 + P(Lock);//归还所有拿的资源 + bowl ++; + chopstick[i] = 1; + chopstick[(i+1)%n] = 1; + V(Lock); +} + +``` + + +### 读者写者问题 + +* 特点 + * 同类进程不互斥,异类进程互斥 +* 避免写者饥饿 + * 读写公平法 + * 写者优先法 +* 如何实现 + * 第一进程用之前负责上锁,最后一个进程用完之后负责解锁 + +```C +Semaphore Lock = 1;//资源锁 +int count = 0;//同类进程计数器 +Semaphore mutex = 1;//对count 互斥访问 +homie(){ + P(mutex); + if(count ==0) + { + P(Lock); + } + count ++; + V(mutex); + 使用资源; + if(count == 1) + { + V(Lock); + } + count --; + V(mutex); +} + +``` + +实现同类互斥,异类也互斥 + +```C +solo(){ + P(Lock);//使用前上锁 + 使用资源; + V(Lock);//用完了解锁 +} + +``` + + +![](../../images/《操作系统》大题总结/读者写者问题一.png) + +(1) +```C +Semaphore bridge = 1; +NtoS(){ + P(bridge); + 通过桥; + V(bridge); +} +StoN(){ + P(bridge); + 通过桥; + V(bridge); +} + +``` +(2) +```C +int countSN = 0;//表示从S到N的汽车数量 +int countNS = 0;//表示从N到S的汽车数量 +Semaphore mutexSN = 1;//保护countSN +Semaphore mutexNS = 1;//保护countNS +Semaphore bridge = 1;//互斥地访问桥 +StoN(){//南到北 + P(mutexSN); + //第一个进程上锁 + if(countSN==0) + P(bridge); + count ++; + V(mutexSN); + 过桥; + P(mutexSN); + //最后一个进程解锁 + countSN--; + if(countSN==0) + V(bridge); + V(mutexSN); +} + +NtoS(){//北到南 + P(mutexNS); + if(countNS==0) + P(bridge); + countNS++; + V(mutexNS); + 过桥; + P(mutexNS); + countNS--; + if(countNS ==0) + V(bridge); + V(mutexNS); +} + +``` +![](../../images/《操作系统》大题总结/读者写者问题二.png) + +```C +Semaphore room = 1; +Semaphore mutex1 = 1; +Semaphore mutex2 = 1; +Semaphore mutex3 = 1; +int count1 = 0; +int count2 = 0; +int count3 = 0; + +P1(){ + P(mutex1); + count1 ++; + //第一个上锁 + if(count1 == 1) + { + P(room); + } + V(mutex1); + 看影片1; + P(mutex1); + count1 --; + //最后一个解锁 + if(count1 == 0) + { + V(room); + } + V(mutex1); +} + +P2(){ + P(mutex2); + count2 ++; + //第一个上锁 + if(count2 == 1) + { + P(room); + } + V(mutex2); + 看影片2; + P(mutex2); + count2 --; + //最后一个解锁 + if(count2 == 0) + { + V(room); + } + V(mutex2); +} + +P3(){ + P(mutex3); + count3 ++; + //第一个上锁 + if(count3 == 1) + { + P(room); + } + V(mutex3); + 看影片3; + P(mutex3); + count3 --; + //最后一个解锁 + if(count3 == 0) + { + V(room); + } + V(mutex3); +} + + +``` + +## 第三章大题,考察请求分页,基本分页,页面置换问题 + +* 各概念间的推导计算 + * 一级页表+TLB+请求分页 + * 二级页表+请求分页+TLB + * 页目录号的位数表示的大小(表示有多少个目录项)* 每个目录项的大小 = 页目录表的大小 + * 页目录表的起始地址 + 页目录号 * 页目录项的长度 = 页目录项的物理地址 +* 示例图中挖掘隐藏信息 + * 熟悉各类常见图示 + * 注意:TLB组相联映射、全相联映射的图示画法 + * 深入理解组相联映射,全相联映射方式下查询TLB的原理区别 +* 基于地址转化过程的分析 + * 熟悉各种状况下地址转化的过程 + * 一级页表+虚拟内存+TLB + * 二级页表+虚拟内存+TLB + +![](../../images/《操作系统》大题总结/内存管理知识体系.jpg) + +TLB+二级页表+Cache(全相联映射) + +![](../../images/《操作系统》大题总结/TLB全相联映射.jpg) + +TLB+二级页表+Cache(2路组相联映射) +![](../../images/《操作系统》大题总结/TLB2路组相联映射.jpg) + +TLB + 二级页表 + Cache(直接映射) +![](../../images/《操作系统》大题总结/TLB直接映射.jpg) + +--- + +![](../../images/《操作系统》大题总结/内存管理真题一.png) + +(1) +
+页的大小 = 块的大小 = $2^{12}$ = 4 KB +
+页表的大小 = $2^{20} \times 4B$ = 4 MB +
+(2) +
+页目录号 = (((unsigned int)(LA))>>22) & 0x3FF +
+页表索引 = (((unsigned int)(LA))>>12) & 0x3FF +
+(3) +
+00008000H其页号为0008 $\rightarrow$ 页号为8 $\rightarrow$ 对应页表第8个页表项 +
+第8个页表项物理地址 = 00200000H + 8 $\times$ 页表项的字节数 +
+= 00200000H + 8 $\times$ 4 = 00200020H +
+第9个页表项及其物理地址 = 00200000H + 8 $\times$ = 00200024H +
+页框号1 = 00900000H,页框号2 = 00900000H + 8KB = 00901000H +
+代码2起始物理地址 = 00901000H + +![](../../images/《操作系统》大题总结/内存管理真题二.png) + +页的大小 = 4KB = $2^{12}$B,页面位移比虚拟地址低12位 + +访问2362H即 0010 0011 0110 0010 其对应页号为2 + +访问快表10ns $\rightarrow$初始快表空$\rightarrow$访问页表100ns得到页框号$\rightarrow$ 合成物理地址后访问主存100ns + +共 10 + 100 + 100 = 210 ns + +访问1565H即 0001 0101 0110 0101 其对应页号为2 + +访问快表10ns ,空$\rightarrow$访问页表100ns,空$\rightarrow$ 缺页中断处理$10^8$ns $\rightarrow$访问快表10ns$\rightarrow$合成物理地址后访问主存100ns + +共 10 + 100 + $10^8$ + 10 + 100 = 100000220 ns + +访问25A5H即 0010 0101 1010 0101 其对应页号为2 +访问快表10ns $\rightarrow$合成物理地址后访问主存100ns + +共 10 + 100 = 110 ns + +(2) + +1565H = 0001 0101 0110 0101 + +页号为1,产生缺页中断,驻留集 = 2,从页表淘汰1个页面 + +使用LRU淘汰页号0 $\rightarrow$ 1565H对应页框号为101H +物理地址 = 101565H + + +![](../../images/《操作系统》大题总结/内存管理真题三.png) + +(1) + +页的大小 = 1KB = $2^{10}$B + +逻辑地址低10位为页偏移 + +17CAH $\rightarrow$ 0001 0111 1100 1010 + +页号为 000101 = 5 + +(2) + +根据FIFO,置换页号0,对应页框号7 + +物理地址为 0001 1111 1100 1010 = 1FCAH + +(3) + +根据clock 置换页号2,对应页框号2 + +物理地址为 0000 1011 1100 1010 = 0BCAH + +![](../../images/《操作系统》大题总结/内存管理真题四.png) + +(1) + +0页对应空闲页第3个,即页框号 = 1 + +(2) + +11>10,说明此时发生第三轮扫描 + +第二轮中32,15,41,均未被访问,处于空闲页表中 + +此时重新访问第一页,则页框号32被重新放回驻留集 + +(3) + +2页从未被访问,此时空闲链为41,15,取其头41,即页框号41 + +(4) + +适合,程序的时间局部性越好,从空闲页框链表中重新取回的机会越大,该策略优势越明显 + + +![](../../images/《操作系统》大题总结/内存管理真题五.png) + +(1) + +页的大小 = $2^{12}$B + +页框大小 = $2^{12}$B + +虚拟地址空间大小 = $2^{10} \times 2^{10}$ = $2^{20}$页 + +(2) + +页目录所占页数 = $\frac{2^{10} \times 4B}{2^{12}} = 1$ + +页表所占页数 = $\frac{2^{10} \times 2^{10} \times 4B}{2^{12}} = 2^{10}$ + +共占 $2^{10} + 1 = 1025$页 + +(3) + +0100 0000H对应页目录号 0000 0001 00 = 4 + +0111 2048H对应页目录号 0000 0001 00 = 4 + +访问的是同一个二级页表,即供访问一个二级页表 + + +![](../../images/《操作系统》大题总结/内存管理真题六.png) + +(1) + +页目录号 = 6(10位) 页内索引 = 6(10位)偏移 = 8(12位) + +所以十六进制为 0000 0001 1000 0000 0110 0000 0000 1000 + += 01806008H + +(2) + +物理地址 + +进程切换时,地址空间发生了改变,对应页目录块及始址也改变 $\rightarrow$ PDBR改变 + +同一进程线程切换时,地址空间不变,线程的页目录不变$\rightarrow$ PDBR不改变 + +(3) + +使用位$\rightarrow$访问字段 + +修改位$\rightarrow$修改字段 + +![](../../images/《操作系统》大题总结/内存管理真题七.png) + +(1) + +页面大小 = $2^{12} = 4KB$ + +一个页可以存$\frac{4KB}{4} = 1024$个数组 = a数组的一行 + +a按行优先方式存放,10800000H,虚页号为10800H + +a[0]行存放在10800H的页面中 a[1]行存放在10801H的页面中 + +a[1][2]的虚拟地址为 10801000H + 4 $\times$ 2 = 10801008H + +10801008H = 0001 0000 1000 0000 0001 0000 0000 1000 + +页目录号 = 0001000010 = 042H + +页号 = 0000000001 = 001H + +页目录项物理地址 = 00201000H + 4 $\times 42$H = 00201108H + +物理地址 003010000 + 001H $\times 4$ = 00301004H + +(2) + +必须连续,不一定连续 + +(3) + +按行遍历局部性更好。每个页面正好放一整行的元素 + +按行存放说明一行元素存放在同一页面中,局部性也就更好 + +## 第四章大题:混合文件索引 + +显式链表分配法(FAT文件系统,即DOS) + +![](../../images/《操作系统》大题总结/FAT文件系统示意图.png) + +混合索引法(Unix文件系统) + +![](../../images/《操作系统》大题总结/UFS文件系统示意图.png) + + +### 考题 + +![](../../images/《操作系统》大题总结/文件管理真题一.png) + +(1) + +连续存放更合适,磁盘寻道时间更短,文件随机访问效率更高 + +加入字段<起始块号,块数> + +(2) + +FCB集中存放,文件数据集中存放 + +这样在随机查找文件名时,只需访问FCB对应的块,可减少磁头移动和磁盘IO访问次数 + +![](../../images/《操作系统》大题总结/文件管理真题二.png) + +(1) + +磁盘块总数 = $\frac{4TB}{1KB} = \frac{4 \times 2^40}{2^10} = 2^32$ + +块号至少占 $\frac{32}{8} = 4B$ + +512B的索引区能够容纳$\frac{512B}{4B} = 128$个索引项 + +文件最大长度 = 1KB $\times$ 128 = 128KB + +(2) + +索引项 = $\frac{504B}{6B} = 84$个 + +单个文件最大长度 = $2^{16} \times 1KB + 84 \times 1KB = 84KB + 2^{26}B$ + +起始块号占4B,块数占4B + +起始块号可寻址$2^{32}$个块,共4TB即整个系统空间 + +块数可表示$2^{32}$个块,共4TB + +![](../../images/《操作系统》大题总结/文件管理真题三.png) + +(1) + +dir目录文件 + +|文件名|簇号| +|---|---| +|dir1|48| + + +dir1 目录文件 + +|文件名|簇号| +|---|---| +|file1|100| +|file2|200| + +(2) + +簇号2B = 16位 $\rightarrow$ FAT表允许$2^{15}$个表项 + +FAT最大长度 = $2^{16} \times 2B = 128KB$ + +文件最大长度 = $2^{16} \times 4KB = 256MB$ + +(3) + +106存放在100号表项中 + +108存放在106号表项中 + +(4) + +先访问dir1,即第48个簇 + +得到file1的第一个簇号,在FAT中查找file1的第5000个字节所在簇号,最后访问该簇号(4KB = 4096B < 5000B) + +即访问48号簇,106号簇 + + +![](../../images/《操作系统》大题总结/文件管理真题四.png) + +(1) + +把文件前29条前移,移动一条记录读出和存回磁盘各一次访盘 + +共访盘 $29 \times 2 +1 = 59$次 + +F的文件控制区的起始块号和文件长度内容会发生改变 + +(2) + +找到系统第29块,访盘29次 + +把29的下块地址给新块,把新块存回磁盘,访盘一次, + +修改内存第29块的下块地址字段,再存回磁盘,访盘一次 + +共29 + 1 + 1 = 31 次 + +4B即32位,可寻址$2^{32} = 4G$块存储块,每块大小1KB = 1024B + +其中4B为指针,1020B为数据 + +文件长度为$1020B \times 4G = 4080GB$ + +![](../../images/《操作系统》大题总结/文件管理真题五.png) + +(1) + +1个簇最多有$\frac{4KB}{4B} = 1024$个地址项 + +直接地址8个:$8 \times 4KB$ 二级地址1个:$2^{20}\times4KB$ + +一级地址1个:$2^{10} \times 4KB$ 三级地址1个:$2^{30} \times 4KB$ + +最大文件长度 = 32KB + 4MB + 4GB + 4TB + +(2) + +最多索引结点数 = $\frac{2^20 \times 4KB}{64B} = 2^{26} = 64M$个 + +$\frac{5600B}{4KB} > 1 \rightarrow $ 一个图像占两个簇 + +$\frac{512M}{2} = 256M \rightarrow $可存放256M个文件 + +但索引结点数64M < 256M + +所以最多存放64M个图像文件 + +(3) + +$6KB < 8\times 4KB$ + +$F_1$采用直接索引$\rightarrow$只要访问索引结点的直接地址项 + +$32KB < 40KB < 32KB + 4MB$ + +$F_2$采用一级索引$\rightarrow$ 还需读一级索引表 + +所以两者不相同 + +## 第五章 + +### 大题 + +![](../../images/《操作系统》大题总结/磁盘管理真题一.png) + +(1) + +用位图表示磁盘的空闲空间,每位表示一个磁盘块的空闲状态 + +共需$\frac{16384}{32} = 512$个字$=512 \times 4B = 2KB$,正好可以放在系统提供的内存中 + +(2) + +磁盘访问序列为$120 \rightarrow 30 \rightarrow 50 \rightarrow 90$ + +移动磁道数分别为 20,90,20,40 + +移动磁道时间 = $1ms \times (20 + 90 + 20 + 40) = 170ms$ + +一次旋转时间 = $\frac{60}{6000} = 0.01s = 10ms$ + +总的旋转延迟 = $4 \times \frac{1}{2} \times(一次旋转时间) = 4\times 5ms = 20ms$ + +总读取时间 = $4 \times \frac{10ms}{100} = 4 \times 0.1ms = 0.4ms$ + +总时间 = 170ms+20ms+0.4ms = 190.4ms + +(3) + +FCFS(先来先服务调度算法)更高效 + +Flash半导体存储器不需要考虑寻道时间和旋转延迟 + +可直接按IO请求的先后顺序服务 + + +![](../../images/《操作系统》大题总结/磁盘管理真题二.png) + +(1) + +容量 = $300 \times 10 \times 200 \times 512B = 3 \times 10^5KB$ + +(2) + +85号柱面对应簇号 85000~85999(一个簇有2个扇区) + +访问次序为 $100260 \rightarrow 101660 \rightarrow 110560 \rightarrow 60005$ + +(3) + +$\frac{200 \times 10}{2} = 1000$ + +$100 \times 1000 = 100000$ + +$100530 - 100000 = 530$ + +$\frac{530}{100} = 5$ + +$30 \times 2 = 60$ + +柱面号1000,磁头号5,扇区号60 + +将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成 + + +![](../../images/《操作系统》大题总结/磁盘管理真题三.png) + +(1) + +ROM中的引导程序$\rightarrow$磁盘引导程序$\rightarrow$分区引导程序$\rightarrow$OS的初始化程序 + +(2) + +磁盘的物理格式化$\rightarrow$对磁盘分区$\rightarrow$逻辑格式化$\rightarrow$OS的安装 + +(3) + +磁盘扇区的划分$\rightarrow$磁盘的物理格式化$\rightarrow$文件根目录的建立$\rightarrow$逻辑格式化操作 \ No newline at end of file diff --git a/static/images/《操作系统》大题总结/FAT文件系统示意图.png b/static/images/《操作系统》大题总结/FAT文件系统示意图.png new file mode 100644 index 0000000..c4783c8 Binary files /dev/null and b/static/images/《操作系统》大题总结/FAT文件系统示意图.png differ diff --git a/static/images/《操作系统》大题总结/TLB2路组相联映射.jpg b/static/images/《操作系统》大题总结/TLB2路组相联映射.jpg new file mode 100644 index 0000000..0607746 Binary files /dev/null and b/static/images/《操作系统》大题总结/TLB2路组相联映射.jpg differ diff --git a/static/images/《操作系统》大题总结/TLB全相联映射.jpg b/static/images/《操作系统》大题总结/TLB全相联映射.jpg new file mode 100644 index 0000000..d488917 Binary files /dev/null and b/static/images/《操作系统》大题总结/TLB全相联映射.jpg differ diff --git a/static/images/《操作系统》大题总结/TLB直接映射.jpg b/static/images/《操作系统》大题总结/TLB直接映射.jpg new file mode 100644 index 0000000..4ce6dad Binary files /dev/null and b/static/images/《操作系统》大题总结/TLB直接映射.jpg differ diff --git a/static/images/《操作系统》大题总结/UFS文件系统示意图.png b/static/images/《操作系统》大题总结/UFS文件系统示意图.png new file mode 100644 index 0000000..b19e50b Binary files /dev/null and b/static/images/《操作系统》大题总结/UFS文件系统示意图.png differ diff --git a/static/images/《操作系统》大题总结/内存管理真题一.png b/static/images/《操作系统》大题总结/内存管理真题一.png new file mode 100644 index 0000000..114762b Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理真题一.png differ diff --git a/static/images/《操作系统》大题总结/内存管理真题七.png b/static/images/《操作系统》大题总结/内存管理真题七.png new file mode 100644 index 0000000..a2046a1 Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理真题七.png differ diff --git a/static/images/《操作系统》大题总结/内存管理真题三.png b/static/images/《操作系统》大题总结/内存管理真题三.png new file mode 100644 index 0000000..ffd07d0 Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理真题三.png differ diff --git a/static/images/《操作系统》大题总结/内存管理真题二.png b/static/images/《操作系统》大题总结/内存管理真题二.png new file mode 100644 index 0000000..0bd9127 Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理真题二.png differ diff --git a/static/images/《操作系统》大题总结/内存管理真题五.png b/static/images/《操作系统》大题总结/内存管理真题五.png new file mode 100644 index 0000000..049a16d Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理真题五.png differ diff --git a/static/images/《操作系统》大题总结/内存管理真题六.png b/static/images/《操作系统》大题总结/内存管理真题六.png new file mode 100644 index 0000000..910af78 Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理真题六.png differ diff --git a/static/images/《操作系统》大题总结/内存管理真题四.png b/static/images/《操作系统》大题总结/内存管理真题四.png new file mode 100644 index 0000000..5c9269b Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理真题四.png differ diff --git a/static/images/《操作系统》大题总结/内存管理知识体系.jpg b/static/images/《操作系统》大题总结/内存管理知识体系.jpg new file mode 100644 index 0000000..760e13d Binary files /dev/null and b/static/images/《操作系统》大题总结/内存管理知识体系.jpg differ diff --git a/static/images/《操作系统》大题总结/哲学家问题一.png b/static/images/《操作系统》大题总结/哲学家问题一.png new file mode 100644 index 0000000..196cbc5 Binary files /dev/null and b/static/images/《操作系统》大题总结/哲学家问题一.png differ diff --git a/static/images/《操作系统》大题总结/文件管理真题一.png b/static/images/《操作系统》大题总结/文件管理真题一.png new file mode 100644 index 0000000..ff646be Binary files /dev/null and b/static/images/《操作系统》大题总结/文件管理真题一.png differ diff --git a/static/images/《操作系统》大题总结/文件管理真题三.png b/static/images/《操作系统》大题总结/文件管理真题三.png new file mode 100644 index 0000000..293a17b Binary files /dev/null and b/static/images/《操作系统》大题总结/文件管理真题三.png differ diff --git a/static/images/《操作系统》大题总结/文件管理真题二.png b/static/images/《操作系统》大题总结/文件管理真题二.png new file mode 100644 index 0000000..581e2af Binary files /dev/null and b/static/images/《操作系统》大题总结/文件管理真题二.png differ diff --git a/static/images/《操作系统》大题总结/文件管理真题五.png b/static/images/《操作系统》大题总结/文件管理真题五.png new file mode 100644 index 0000000..e706cbf Binary files /dev/null and b/static/images/《操作系统》大题总结/文件管理真题五.png differ diff --git a/static/images/《操作系统》大题总结/文件管理真题四.png b/static/images/《操作系统》大题总结/文件管理真题四.png new file mode 100644 index 0000000..41924d6 Binary files /dev/null and b/static/images/《操作系统》大题总结/文件管理真题四.png differ diff --git a/static/images/《操作系统》大题总结/理发师问题一.png b/static/images/《操作系统》大题总结/理发师问题一.png new file mode 100644 index 0000000..50812b0 Binary files /dev/null and b/static/images/《操作系统》大题总结/理发师问题一.png differ diff --git a/static/images/《操作系统》大题总结/生产者消费者问题一.png b/static/images/《操作系统》大题总结/生产者消费者问题一.png new file mode 100644 index 0000000..86f1ec9 Binary files /dev/null and b/static/images/《操作系统》大题总结/生产者消费者问题一.png differ diff --git a/static/images/《操作系统》大题总结/生产者消费者问题三.png b/static/images/《操作系统》大题总结/生产者消费者问题三.png new file mode 100644 index 0000000..b446eb7 Binary files /dev/null and b/static/images/《操作系统》大题总结/生产者消费者问题三.png differ diff --git a/static/images/《操作系统》大题总结/生产者消费者问题二.png b/static/images/《操作系统》大题总结/生产者消费者问题二.png new file mode 100644 index 0000000..ad7a6ff Binary files /dev/null and b/static/images/《操作系统》大题总结/生产者消费者问题二.png differ diff --git a/static/images/《操作系统》大题总结/磁盘管理真题一.png b/static/images/《操作系统》大题总结/磁盘管理真题一.png new file mode 100644 index 0000000..ce73fcc Binary files /dev/null and b/static/images/《操作系统》大题总结/磁盘管理真题一.png differ diff --git a/static/images/《操作系统》大题总结/磁盘管理真题三.png b/static/images/《操作系统》大题总结/磁盘管理真题三.png new file mode 100644 index 0000000..c66e76b Binary files /dev/null and b/static/images/《操作系统》大题总结/磁盘管理真题三.png differ diff --git a/static/images/《操作系统》大题总结/磁盘管理真题二.png b/static/images/《操作系统》大题总结/磁盘管理真题二.png new file mode 100644 index 0000000..472e7a2 Binary files /dev/null and b/static/images/《操作系统》大题总结/磁盘管理真题二.png differ diff --git a/static/images/《操作系统》大题总结/读者写者问题一.png b/static/images/《操作系统》大题总结/读者写者问题一.png new file mode 100644 index 0000000..3c1fe92 Binary files /dev/null and b/static/images/《操作系统》大题总结/读者写者问题一.png differ diff --git a/static/images/《操作系统》大题总结/读者写者问题二.png b/static/images/《操作系统》大题总结/读者写者问题二.png new file mode 100644 index 0000000..e688c7c Binary files /dev/null and b/static/images/《操作系统》大题总结/读者写者问题二.png differ