深入理解操作系统
寻梦&之璐
这个作者很懒,什么都没留下…
展开
-
磁盘调度算法java代码
public class CSCAN { public int m=0; //用来存放磁头的初始位置 public boolean Run=true; public int sum=0; public void Check(int a[],int n,int position){ int temp; for (int i = n; i > 0; i--) { // 冒泡排序 f原创 2020-12-20 00:18:35 · 1166 阅读 · 4 评论 -
进程调度算法Java代码
import java.util.ArrayList;class Found { ArrayList<PCB> sequnce;//创建就绪队列 PCB pcb[] = new PCB[5]; int StartTime = 0; int SystemTime = (int) (Math.random() * 3) + 1;//随即产生系统时间 Found() { sequnce = new ArrayList<PCB>(原创 2020-12-20 00:17:35 · 2413 阅读 · 1 评论 -
银行家算法java代码
import java.util.Scanner;public class banker { private int Process = 0; // 定义最大进程数目 private int Resource = 0; // 定义最大资源类数 private int Work[]; // 定义系统可提供给进程继续运行所需的各类资源数目 private int MAX[][]; // 定义进程最大资源需求 private int Allocation[]原创 2020-12-20 00:16:30 · 609 阅读 · 1 评论 -
存储管理算法java代码
public class MemoryManage_Operation { private String[][] dataStrings = new String[33][4];//数据传递数组 private int[] Addstream = new int[320];//地址流 private int[] Addspage = new int[320];//页面流 private int[] phyBlock = new int[32];//物理块数 pr原创 2020-12-20 00:15:25 · 657 阅读 · 4 评论 -
2020-12-5(操作系统---设备管理)
文章目录I/O 系统I/O 设备设备与控制器之间的接口设备控制器I/O通道(I/O Channel)总线系统I/O 控制方式程序I/O(Programmed I/O)方式中断驱动(Interrupt Driven)I/O控制方式直接存储器访问(DMA) (Direct Memory Access)I/O控制方式I/O通道控制方式缓冲管理缓冲的引入单缓冲(Single Buffer)双缓冲(Double Buffer)循环缓冲缓冲池(Buffer Pool)I/O 软件I转载 2020-12-08 22:41:31 · 1146 阅读 · 0 评论 -
2020-12-3(详解虚拟地址如何转化为物理地址)
在支持PAE(物理地址扩展)的X86系统上,虚拟地址可以分为几个部分,作为偏移量索引到3个表中:a.PDPT(Page Directory Pointer Table页目录指针表)b.PD(Page Directory页目录)c.PT(Page Table页表)d.PTE(Page Table Entry页表项)解释:PDPT是一个4个元素的数组,每个元素8个字节,指向一个PD。PD是一个有512个元素的数组,每个元素8个字节,指向一个PT。PT也是一个有512个元素的数组,每个元素8个字节,指原创 2020-12-04 12:24:26 · 5617 阅读 · 1 评论 -
2020-12-1(带你理解32位二进制搜索范围是4GB)
昨天啥也没干,就看了一下 “熊猫烧香”,还没理解透,等我理解透了,我再发,所以呢,今天随便补发一点东西,谢谢各位假如只有一位二进制可以表示出几个地址数据呢?0 (1个地址数据)1 (1个地址数据)1+1=2(一位二进制可以表示出2个地址啦)总结一下2是不是2的1次方呀?(也就是2的 位数次方呀)假如只有2位二进制可以表示出几个地址数据呢?00 (1个地址数据)01 (1个地址数据) 10 (1个地址数据)11 (1个地址数据)1+1+原创 2020-12-02 15:19:29 · 5556 阅读 · 0 评论 -
2020-11-26((《深入理解计算机系统》多级页表详解)补充)
今日总结:今天主要把11-25(《深入理解操作系统》多级页表详解)第一部分看懂,并把它做了一个补充,让看博客的各位更能深刻理解,谢谢各位支持,一起加油明日目标:复习大学物理,线性代数,预习离散(没办法,要考试了)...原创 2020-11-26 20:01:14 · 234 阅读 · 0 评论 -
2020-11-25(多级页表的补充)
问题来了,为什么要用二级页表而不使用一级页表,或者说使用二级页表比一级页表的优势在哪里?(1)使用多级页表可以使得页表在内存中离散存储。多级页表实际上是增加了索引,有了索引就可以定位到具体的项。举个例子:比如虚拟地址空间大小为4G,每个页大小依然为4K,如果使用一级页表的话,共有2^20个页表项,如果每一个页表项占4B,那么存放所有页表项需要4M,为了能够随机访问,那么就需要连续4M的内存空间来存放所有的页表项。随着虚拟地址空间的增大,存放页表所需要的连续空间也会增大,在操作系统内存紧张或者内存碎片较多时原创 2020-11-25 23:03:18 · 495 阅读 · 0 评论 -
2020-11-25(《深入理解计算机系统》多级页表详解)
一、端到端地址翻译示例从图上看,TLBI占了t位,而TLBT占了n-p-t位。上节我们刚把TLB开了个头,多说无益,还是具体来玩个实际例子吧,具体来做一个端到端(虚拟地址到物理地址)的地址翻译示例,来统筹下之前讲的知识点。先来做如下约定:1、老规矩,存储器按字节寻址,访问也按一字节访问;2、虚拟地址14位长(n=14),物理地址12位长(m=12),位数少点玩起来方便;3、页面大小是64字节(P=64),也就是说(p=6)4、TLB是四路组相联,总共16个条目;5、L1 d-cache是物理转载 2020-11-25 22:17:48 · 3200 阅读 · 0 评论 -
2020-11-22(操作系统——页面置换算法)
当内存中的页面满了之后,需要的数据又在磁盘虚拟内存中,可以使用页面置换算法将需要的页置换到物理内存中。下面先介绍几种局部页面置换算法,其针对一个进程而言的页面置换。一、局部页面置换算法1、最优页面置换算法功能:当缺页中断发生时,需要调入新的页面而内存已满时,选择内存中哪个物理页面被置换。目标:尽可能地减少页面的换进换出次数(即缺页中断的次数)。具体地说,将未来不再使用或者短期不再使用的页面置换出去。页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键的应用程序转载 2020-11-22 13:44:28 · 1595 阅读 · 0 评论 -
2020-11-22(工作集与常驻集)
工作集:一个进程当前正在使用的逻辑页面集合,可以用一个二元函数(t,△)来表示:t是当前执行的时间;△称为工作集窗口,即一个定长的页面访问时间窗口。W(t,△)=在当前时刻t之前的△时间窗口当中的所有页面所组成的集合(随着t 的变化,该集合也在不断地变化)|W(t,△)|指工作集的大小,即页面数目常驻集是指在当前时刻,进程实际驻留在内存当中的页面集合。工作集是进程在运行过程中固有的性质,而常驻集取决于系统分配的进程的物理页面数目,以及采用的页面置换算法如果一个进程的整个工作集都在内存当中,即原创 2020-11-22 12:09:56 · 1460 阅读 · 0 评论