虚拟存储概念

1. 需求背景对内存的需求越来越高,内存不够用 比如游戏:黑白——>彩色——>3D 理想中存储器: 容量大 速度快 价格便宜 现实中: 金字塔型 寄存器 高速缓存 内存 磁盘 磁带 从上到下,速度越来越慢,容量越来越大,价格越来越便宜 操作系统对存储空间的抽象:地址空间 1.1 解决办法 覆盖 (手动) 交换 (自动) 虚拟存储 2. 覆盖与交换2.1 覆盖目标:较小的...

段式与页式存储

段式分块大,页式分块小。 1. 段式存储由 主代码段 子模块、公用库 堆栈段 stack 堆数据 heap 初始化数据段 符号表等 几个部分组成(1-4由下到上) 目的:更细粒度和灵活的分离与共享 逻辑上连续,物理上可以不连续 每一个段是访问方式或储存数据等属性相同的一段地址空间 1.1 段访问逻辑地址由二元祖(s, addr)表示 s - 段号addr - 段内偏移 段基址 + ...

Redis的RDB和AOF持久化

1. RDB持久化 RDB持久化是保存文件内容,生成一个.rdb二进制文件 1.1 SAVE命令SAVE命令运行时,redis服务器会阻塞。 1.2 BGSAVE命令创建一个子进程来保存,redis服务器可以继续处理客户端请求。 1.3 reb文件结构redis | db_version | databases | EOF | check_num 如: “redis” | 0 0 0 6...

伙伴系统(Buddy System)

Linux / Unix 中的内存分配常用方式 —— 伙伴系统 Buddy System 1. 伙伴系统中的内存分配 2. 伙伴系统的实现 3. ucore 内存管理的实现

连续内存分配 & 碎片整理

1.连续内存分配连续内存分配的三大方式: 最先分配 最佳分配 最差分配 1.1 最先分配 1.2 最佳分配 1.3 最差分配 2. 碎片整理2.1 紧凑 2.2 分区对换

大端序和小端序

端序(Endianness),又称字节序、尾序、位序。在计算机领域是指机器存放多字节数据的字节顺序。在涉及到低层数据存储和网络数据传输研究中都会涉及端序。 大端序(Big-Endian,大尾序):高位字节放在内存的低地址,低位字节放在内存的高地址。 小端序(Little-Endian,小尾序):低位字节放在内存的低地址,高位字节放在内存的高地址。 端序是与硬件的体系结构相关而与所使用的操...

macOS安装boch环境并测试Hello World输出

1. bochs所需环境安装sdl库 1brew install sdl 2. 安装bochs用brew默认安装最新版,我这里是Bochs x86 Emulator 2.6.9 1brew install bochs 3. 终端测试终端输入1bochs 若看到1234567891011121314151617181920212223242526272829303132333435363738...

Emacs入门到放弃

前提:一旦不会,使用C - h调出help;比如,C - h t调用tutorial入门文档 1. 初始Emacs(全局键)C = CtrlM = Meta (win: alt macOS: option)s = super (macOS: left command)S = Shift 2. 全局操作 C - x是响应Emacs的前缀命令 C - x C - c 退出emacs ...

LeetCode提高Runtime Distribution的骚操作

在class Solution这行前,粘贴下面这句: 1static int x = []{ios::sync_with_stdio(false);cin.tie(nullptr);return 0;}(); 或者 12345static const auto ____ = [] { std::ios::sync_with_stdio(false); ...

LeetCode题解:9. Palindrome Number

link: 9. Palindrome Number Solution 1: 1234567891011121314class Solution {public: bool isPalindrome(int x) { int a = 0, b = x; while(b > 0) { a = a *...