计算机体系结构与内存层次

  • 内存最小的访问单位是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(清华大学慕课)计算机体系结构与内存层次相关推荐

  1. 《操作系统》OS学习(四):计算机体系结构、内存层次和地址生成

    计算机除了计算能力之外还有存储能力,存储能力即计算机拥有一系列的存储介质,我们可以在存储介质上存储我们的代码和数据.计算机体系结构中约定了哪些地方可以用来存储数据:CPU内的寄存器.内存和外存.不同的 ...

  2. 【OS学习笔记】四十 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务二代码

    本文是以下几篇文章对应的微型动态加载的用户程序/任务二代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十 ...

  3. 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码

    本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...

  4. 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码

    本文是以下几篇文章对应的微型内核代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式十 ...

  5. 【OS学习笔记】三十七 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----主引导扇区代码

    本文是以下几篇文章对应的主引导扇区代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式 ...

  6. 【OS学习笔记】三十六 保护模式十:通过中断发起任务切换----中断任务

    上一篇文章学习了:OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 本篇文章接着上一篇文章学习中断任务. 我们在前面文章中一直在说通过中断发起任务切换,本文就是将之前没有说明白的内容:通 ...

  7. 【OS学习笔记】三十五 保护模式十:中断描述符表、中断门和陷阱门

    上一篇文章学习了中断与异常的概念:[OS学习笔记]三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断门 陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位 ...

  8. 【OS学习笔记】三十四 保护模式十:中断和异常区别

    上几篇文章学习了分页机制的一些原理: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 今天继续学习保护模式下的关于中断与异 ...

  9. 【OS学习笔记】三十三 保护模式九:分页机制对应的汇编代码之---用户程序代码

    本片文章是以下两篇文章: [OS学习笔记]三十 保护模式九:段页式内存管理机制概述 [OS学习笔记]三十一 保护模式九:页目录.页表和页三者的关系详解 对应的用户程序汇编代码. ;代码清单16-2;文 ...

最新文章

  1. 26岁想转嵌入式软件开发来得及吗?参加嵌入式培训好不好?
  2. Android Handler主线程和一般线程通信的应用分析
  3. Groovy简介和一点资源
  4. QT如何让窗口放置在屏幕正中间
  5. 任务调度之Quartz1
  6. 基于超级账本Fabric的供应链跟踪解决方案【开源】
  7. MSSQL → 02:数据库结构
  8. [react-router] react的路由和普通路由有什么区别?
  9. C++ 堆栈结构(超详解)
  10. js中的相等与不等运算
  11. 算法导论第三版习题及答案
  12. radon变换的原理-通过直线方程式的计算来检测出直线
  13. Windows内核原理与实现之Windows设备驱动程序
  14. Visual Studio Code 官方护眼主题绿豆沙颜色修改,让你的眼睛远离疲劳!
  15. cocos 安卓打包相关
  16. 人员管理系统+报销系统
  17. 穷人思维」过渡到「富人思维」
  18. C# register
  19. 为什么高频交易被俄罗斯人垄断?
  20. Exception in thread main java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less

热门文章

  1. 一个图形数据维护工具架构设计
  2. cαr怎么发音_【英语拼读发音规则】连读、略读、重读、断句、语调……
  3. android开发 app消息提醒功能,Android中利用App实现消息推送机制的代码
  4. 创意CSS写字本选择器
  5. 2017服务器cpu性能排行,2017年手机处理器排名_CPU排行榜名单
  6. 今日头条阅读量怎么刷_今日头条阅读量怎么刷 今日头条怎么增加阅读量
  7. 使用certbot自动续签ssl证书
  8. linux uac 设备,USB Audio Class (UAC) 分析
  9. Android 和 iOS 实现录屏推流的方案整理
  10. 5.4 塑造IT人的专业核心能力——《逆袭大学》连载