《深入理解计算机系统》—— 存储器、链接和内存管理

news/2024/7/20 13:03:10 标签: 缓存, 内存管理, 链接, 操作系统

《深入理解计算机系统》—— 存储器、链接内存管理

  • 一、存储器层次结构
    • 1、存储器层次结构中的缓存
    • 2、高速缓存存储器
      • (1)通用的高速缓存存储器组织结构
      • (2)直接映射高速缓存
        • a. 组选择
        • b. 行匹配
        • c. 字选择
        • d. 不命中时的行替换
        • e. 冲突不命中
      • (3)组相连高速缓存
        • a. 组选择
        • b. 行匹配和字选择
        • c. 不命中时的行替换
      • (4)全相连告诉缓存
        • a. 组选择
        • b. 行匹配和字选择
      • (5)有关写的问题
  • 二、链接
    • 1、静态链接
    • 2、目标文件
    • 3、可重定位目标文件
    • 4、符号和符号表
    • 5、符号解析
      • (1) 链接器如何解析多重定义的全局符号
      • (2)与静态库链接
      • (3)链接器如何使用静态库来解析引用
    • 6、重定位
    • 7、动态链接共享库
    • 8、位置无关代码
      • (1)PIC 数据引用
      • (2)PIC 函数调用
  • 三、动态内存分配和垃圾回收
    • 1、动态内存分配
    • 2、分配器的要求和目标
    • 3、碎片
    • 4、实现问题
    • 5、隐式空闲链表
    • 6、放置已分配的快
    • 7、分割空闲块
    • 8、获取额外的堆内存
    • 9、合并空闲块
    • 10、带边界标记的合并
    • 11、显式空闲链表
    • 12、分离的空闲链表
      • (1)简单分离存储
      • (2)分离适配
      • (3)伙伴系统
    • 13、垃圾收集
      • (1)基本知识
      • (2)Mark & Sweep 垃圾收集器
      • (3)C 程序的保守 Mark & Sweep

一、存储器层次结构

在这里插入图片描述

1、存储器层次结构中的缓存

在这里插入图片描述

(1)缓存不命中

在这里插入图片描述

(2)缓存不命中的种类

在这里插入图片描述

2、高速缓存存储器

(1)通用的高速缓存存储器组织结构

在这里插入图片描述

(2)直接映射高速缓存

在这里插入图片描述

a. 组选择

在这里插入图片描述

b. 行匹配

在这里插入图片描述

c. 字选择

在这里插入图片描述

d. 不命中时的行替换

在这里插入图片描述

e. 冲突不命中

在这里插入图片描述

(3)组相连高速缓存

在这里插入图片描述

a. 组选择

同直接相连高速缓存

b. 行匹配和字选择

在这里插入图片描述

c. 不命中时的行替换

在这里插入图片描述

(4)全相连告诉缓存

在这里插入图片描述

a. 组选择

在这里插入图片描述

b. 行匹配和字选择

在这里插入图片描述

(5)有关写的问题

在这里插入图片描述

二、链接

1、静态链接

在这里插入图片描述

2、目标文件

在这里插入图片描述

3、可重定位目标文件

在这里插入图片描述

4、符号和符号表

在这里插入图片描述

5、符号解析

在这里插入图片描述

(1) 链接器如何解析多重定义的全局符号

在这里插入图片描述

(2)与静态库链接

在这里插入图片描述

(3)链接器如何使用静态库来解析引用

在这里插入图片描述

6、重定位

在这里插入图片描述
在这里插入图片描述

7、动态链接共享库

在这里插入图片描述

8、位置无关代码

在这里插入图片描述

(1)PIC 数据引用

在这里插入图片描述

(2)PIC 函数调用

在这里插入图片描述

三、动态内存分配和垃圾回收

1、动态内存分配

在这里插入图片描述

2、分配器的要求和目标

在这里插入图片描述

3、碎片

在这里插入图片描述

4、实现问题

在这里插入图片描述

5、隐式空闲链表

在这里插入图片描述

6、放置已分配的快

在这里插入图片描述

7、分割空闲块

在这里插入图片描述

8、获取额外的堆内存

在这里插入图片描述

9、合并空闲块

在这里插入图片描述

10、带边界标记的合并

在这里插入图片描述

11、显式空闲链表

在这里插入图片描述

12、分离的空闲链表

在这里插入图片描述

(1)简单分离存储

在这里插入图片描述

(2)分离适配

在这里插入图片描述

(3)伙伴系统

在这里插入图片描述

13、垃圾收集

(1)基本知识

在这里插入图片描述

(2)Mark & Sweep 垃圾收集器

在这里插入图片描述

(3)C 程序的保守 Mark & Sweep

在这里插入图片描述


http://www.niftyadmin.cn/n/1340241.html

相关文章

leetcode 2227 — 加密解密字符串

leetcode 2227 — 加密解密字符串一、题目描述二、算法1、字典树2、实现一、题目描述 二、算法 这道题使用逆向分析比较简单,我们这里主要是学习下字典树的使用。 1、字典树 字典树(trie),其实就是一个有限状态自动机。一个由 …

js-QuickStart-base.js

// 1.变量(Variables)var myVariable;myVariable Bob;// 数据类型string numberbooleanarrayobject// 2.注释/*Everything in between is a comment.*/// 3.运算符-*/!! // 4.语句var iceCream chocolate;if (iceCream chocolate) {alert(Yay, I lov…

leetcode 2157 — 字符串分组

leetcode 2157 — 字符串分组一、题目描述二、思路分析三、实现1、并查集(1)等价类(2)在线等价类问题(3)实现2、题解一、题目描述 二、思路分析 这里需要注意题目里给出的要求:在任意一个子串中…

Graylog安装配置

ES集群健康检测:curl -sXGET http://localhost:9200/_cluster/health?prettytrue | grep "status" | awk -F [ "] {print $4} | grep -c "green" ES节点健康检测:curl -sXGET localhost:9200/_cat/health |awk -F {print $4…

leetcode 6103 — 从树中删除边的最小分数

leetcode 6103 — 从树中删除边的最小分数一、题目描述二、思路三、实现1、节点时间戳2、实现一、题目描述 二、思路 如果我们删除两条边,那么可以分为两种情况讨论: 1、四个节点在从根节点到某个叶节点的一条路径上; 2、四个节点分别在从…

Android 开发获取手机运行内存工具类

2019独角兽企业重金招聘Python工程师标准>>> package com.zaizai.safty.utils;import android.app.ActivityManager; import android.content.Context; import android.content.pm.PackageManager;import java.io.BufferedReader; import java.io.File; import java…

leetcode 2097 — 合法重新排列数对

leetcode 2097 — 合法重新排列数对一、题目描述二、分析三、算法1、欧拉通路(1)实现(2)优化2、实现一、题目描述 二、分析 不难发现,这个问题其实就是将不同的数字作为图中的顶点,将所有 pair 的头尾相连…

java系列之jvm结构简介

2019独角兽企业重金招聘Python工程师标准>>> ‍JVM简介 ‍ 一.介绍: JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算…