OS
MIMOCH
桃李春风一杯酒,江湖夜雨十年灯,未来可期....
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BIOS启动并加载OS
回顾CPU加电的第一条指令 在0xfffffff0处是存放着一条长跳转指令,直接跳到bios可执行代码区,而这些代码都是固化在主板上的rom区里的。0xF0000~0xFFFFF被映射到Bios ROM。 BIOS 初始化过程 BIOS首先会进行POST(power on self test) 上电自检, 检查硬件的好坏 内存地址为0fff:0000 查找并检查显卡等接口卡的BIOS...原创 2019-04-11 18:28:50 · 2071 阅读 · 0 评论 -
操作系统存储管理-非连续内存分配
非连续分配: 允许程序使用非连续的的地址空间 允许共享代码和数据 支持动态加载和动态链接 实现物理地址和虚拟地址的转换 段式存储管理 目的:更精细的粒度和灵活的分离与共享 程序: 堆 堆栈 数据段 代码段 段 : - 表示访问方式和存储数据属性相同的一段地址空间 每个段对应一个连续的内存"块" 进程的地址空间由若干个段组成 段地址空间 :段地址+段地址偏移 访问 先查询段表 存储了基址...原创 2019-04-16 16:42:15 · 693 阅读 · 0 评论 -
CPU加电执行的第一条指令
参考了member82的这篇博客 当按下开关时,刚开始电压不稳定,主板会给cpu发出并保持RESET信号,rangCPU自动恢复到初 始状态,当芯片组检测到稳定供电时,便撤去了RESET信号,CPU开始执行第一条指令. 2.第一条指令在哪? 首先可以肯定的是刚加电是RAM是没有内容的,所以第一条指令一定是在ROM上. cpu想要执行ROM中的代码,靠的就是地址映射,硬件会把EPROM映射在两个...原创 2019-04-10 01:16:14 · 3598 阅读 · 0 评论 -
开机加电的内存分布
常规内存:首先DOS下的"常规内存"只有640KB,640KB指的就是从0~A0000H 上位内存区指的就是20位地址线所能寻址到的1M地址空间的上面384K空间,就是从A0001H–100000H这段地址空间 ...原创 2019-04-10 02:04:43 · 338 阅读 · 0 评论 -
操作系统存储管理-连续内存管理
操作系统存储管理 内存最小访问单位字节 总线32位,需要进行对齐 1. 内存层次 2. 操作系统采取的内存管理方式 重定位 分段 分页(最小单位) -*** 3.地址空间 物理地址(32位 0~4G-1) 逻辑地址-在CPU运行的进程的地址 4.逻辑地址生成时机 编译时 假设起始地址已知 如果起始地址未知,必须重新编译(类似于功能机原创 2019-04-17 09:26:12 · 532 阅读 · 0 评论 -
虚拟页式存储(非连续存储延续)
计算机内存空间不够用 覆盖(overlay):应用程序手动把需要的指令和数据保存在内存中 交换(swapping):操作系统自动把暂时不能执行的程序存储到外存中 虚拟存储:在有限的内存中,以页为单位自动装入更大的内存中 覆盖: 将程序划分成若干功能相对独立的模块,将不会同时执行的模块共享同一块内存区域 时间换空间 交换: 将暂时不能运行的程序放到外存 换入换出的基本单位: 整个进程的地址空间...原创 2019-04-26 18:23:31 · 1404 阅读 · 1 评论 -
页面置换算法 1 -常用置换算法
置换算法: 指的是当出现缺页异常,需调入新页面而内存已满是,置换算法选择被置换的物理页面. 实现要求: 尽可能地减少页面的调入调出次数. 局部页面置换算法 最优页面置换算法(OPT) 缺页时,计算内存中每个逻辑页面的下一次访问时间,选择未来最长时间不访问的页面 实际中无法实现,作为置换算法的性能评价依据 先进先出算法(FIFO) 选择在内存驻留时间最长的页面进行置换 会出现belady...原创 2019-05-05 12:04:01 · 583 阅读 · 0 评论 -
页面置换算法 2-Belady现象与全局页面置换算法
Belady现象 采用FIFO等算法时,可能出现分配的物理页面数增加,缺页次数反而升高的现象 原因: FIFO算法的置换特征与进程访问内存的动态特征矛盾 被它置换出去的页面并不一定是进程近期不会访问的 FIFO算法开销小 有Belady现象 LRU没有Belady现象 性能好 但是系统开销大 Clock算法是它们的折中 全局置换算法 给进程分配可变数目的物理页面 CPU利用率与并发进...原创 2019-05-05 13:37:11 · 1401 阅读 · 0 评论 -
Java实现LRU
Java实现LRU 简介 LRU(Least Recent Used) 最近最少使用,是经常用在内存的调度算法,在内存不够的情况下,为了载入新内容,不断淘汰旧内容. 实现原理 使用HashMap 和 双向链表实现 LRU HashMap的 put 和 get 都是接近O(1),用HashMap的vlaue指向双向链表的Node节点的Index. 双向链表在这里用来实现LRU存储,head代表头部,...原创 2019-07-29 21:00:37 · 316 阅读 · 0 评论
分享