OS学习笔记-5(清华大学慕课)计算机体系结构与内存层次
计算机体系结构与内存层次
- 内存最小的访问单位是1B=8bit,每个字节都有自己的物理地址
- 总线一般是一次读取4B=32bit
- cpu里面有高速缓存cache和寄存器作为存储帮手
- 访问速度最快的是几纳秒,最慢的几毫秒,相差百万级
- 进程会共享所需要的内核资源
- 进程和内核的逻辑地址会经过中间的存储管理单元转换成物理地址,实现抽象、保护、共享、虚拟化
- 操作系统内核放在内存的前面一部分,进程有一部分放在内存里面,有一部分放在外存里面,如图
- 进程的逻辑地址空间可能会大于物理内存总量
操作系统采用的内存管理方式
- 重定位:段地址+偏移
- 分段:分成代码、数据、堆栈
- 分页:把内存分成最基本的单位
- 虚拟存储:把数据存到硬盘上,使得逻辑地址空间大于物理内存空间
逻辑地址生成
- 静态重定位是指装入时把逻辑地址转换成物理地址,装入后不变
- 动态重定位指装入后地址在执行中,模块地址会改变
- 编译:生成若干模块
- 链接:将模块和库函数链接到一起,形成一个完整的装入模块,此时生成逻辑地址
- 运行:将完整的模块装入内存
- 编译和链接后每个目标模块都以0号单元开始编址,不同进程有相同的逻辑地址
- MMU地址转换模块
连续内存分配
- 连续内存分配有两种实现方式:固定分区分配,动态分区分配
- 进程内部无法利用的碎片叫内碎片,分配单元之间无法利用的碎片叫外碎片
- 动态分配下,进程大小可变,由操作系统确定那些是可用的那些是不可用的区域
- 分配策略有三个:First-fit,Best-fit,Worst-fit
- First-fit:找到第一个合适的分区就装进去,简单,但有外碎片,高地址有大块内存空间,但大块内存空间分配就要找比较久,较慢
- Best-fit:找到比它大,而且大得最小的分区,相对简单,大的分区不会被拆开,但还是有外碎片,释放分区较慢
- Worst-fit:找到比它大,而且大得最多的分区,不喜欢,不记
碎片整理
- 将进程间的外碎片整理起来
- 只有可动态重定位的程序可以移动整理
- 一般在进程等待状态下时移动
- 小个的外碎片会选择跳过,避免开销
分区兑换
- 内存不够用时,会把等待状态的进程先放到外存
伙伴系统
- 不断将分区分成两个小的部分,直到装不下进程的前一次大小,最多空2^i-1内碎片
- 外碎片合并时如果不能合成空间大小2的整数幂,将不合并
- 目前unix和linux都有对伙伴系统的相关实现
OS学习笔记-5(清华大学慕课)计算机体系结构与内存层次相关推荐
- 《操作系统》OS学习(四):计算机体系结构、内存层次和地址生成
计算机除了计算能力之外还有存储能力,存储能力即计算机拥有一系列的存储介质,我们可以在存储介质上存储我们的代码和数据.计算机体系结构中约定了哪些地方可以用来存储数据:CPU内的寄存器.内存和外存.不同的 ...
- 【OS学习笔记】四十 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务二代码
本文是以下几篇文章对应的微型动态加载的用户程序/任务二代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十 ...
- 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码
本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...
- 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码
本文是以下几篇文章对应的微型内核代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式十 ...
- 【OS学习笔记】三十七 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----主引导扇区代码
本文是以下几篇文章对应的主引导扇区代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式 ...
- 【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中断任务
上一篇文章学习了:OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 本篇文章接着上一篇文章学习中断任务. 我们在前面文章中一直在说通过中断发起任务切换,本文就是将之前没有说明白的内容:通 ...
- 【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门
上一篇文章学习了中断与异常的概念:[OS学习笔记]三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断门 陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位 ...
- 【OS学习笔记】三十四 保护模式十:中断和异常区别
上几篇文章学习了分页机制的一些原理: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 今天继续学习保护模式下的关于中断与异 ...
- 【OS学习笔记】三十三 保护模式九:分页机制对应的汇编代码之---用户程序代码
本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的用户程序汇编代码. ;代码清单16-2;文 ...
最新文章
- 26岁想转嵌入式软件开发来得及吗?参加嵌入式培训好不好?
- Android Handler主线程和一般线程通信的应用分析
- Groovy简介和一点资源
- QT如何让窗口放置在屏幕正中间
- 任务调度之Quartz1
- 基于超级账本Fabric的供应链跟踪解决方案【开源】
- MSSQL → 02:数据库结构
- [react-router] react的路由和普通路由有什么区别?
- C++ 堆栈结构(超详解)
- js中的相等与不等运算
- 算法导论第三版习题及答案
- radon变换的原理-通过直线方程式的计算来检测出直线
- Windows内核原理与实现之Windows设备驱动程序
- Visual Studio Code 官方护眼主题绿豆沙颜色修改,让你的眼睛远离疲劳!
- cocos 安卓打包相关
- 人员管理系统+报销系统
- 穷人思维」过渡到「富人思维」
- C# register
- 为什么高频交易被俄罗斯人垄断?
- Exception in thread main java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less
热门文章
- 一个图形数据维护工具架构设计
- cαr怎么发音_【英语拼读发音规则】连读、略读、重读、断句、语调……
- android开发 app消息提醒功能,Android中利用App实现消息推送机制的代码
- 创意CSS写字本选择器
- 2017服务器cpu性能排行,2017年手机处理器排名_CPU排行榜名单
- 今日头条阅读量怎么刷_今日头条阅读量怎么刷 今日头条怎么增加阅读量
- 使用certbot自动续签ssl证书
- linux uac 设备,USB Audio Class (UAC) 分析
- Android 和 iOS 实现录屏推流的方案整理
- 5.4 塑造IT人的专业核心能力——《逆袭大学》连载