计算机底层知识.docx
《计算机底层知识.docx》由会员分享,可在线阅读,更多相关《计算机底层知识.docx(11页珍藏版)》请在冰豆网上搜索。
计算机底层知识
计算机底层知识
————————————————————————————————作者:
———————————————————————————————— 日期:
计算机底层知识
1.虚拟内存virtualmemory
1.1虚拟地址和物理地址virtualaddressand physicaladdress
⏹虚拟地址
大小:
LEN=
BIT=计算机位数
构成:
虚拟地址=内核地址(
)+应用地址(
)
⏹物理地址
实际内存地址。
⏹虚拟地址到物理地址
虚拟地址(VA)
物理地址(PA)
物理地址(PA)
缓存行(BL)
⏹虚拟页和物理页
虚拟页(VIRTUALPAGE):
虚拟内存由虚拟页构成
物理页(PHYSICALPAGE):
物理内存由物理页构成
虚拟页大小=物理页大小
⏹操作的真实指向
Cpu操作的真实指向是物理内存,用高速缓存作物理内存的缓存。
APP操作的真实指向是硬盘空间,用物理内存作缓存。
⏹页的三种类型
NO
类型
虚拟页
物理页
1
没分配页
X
X
2
未缓存
V
X
3
已缓存
V
V
1.2页表 pagetable
⏹目的:
管理虚拟内存页、物理内存页、缓存状态。
⏹记录结构:
数组=索引+值(有效位+物理页号)
ﻩ索引:
虚拟页号;有效位:
是否缓存;物理页号:
物理页号。
⏹缺页异常:
ﻩ缺页异常:
标志位为零的页。
ﻩ缺页异常得处理:
重新加载缓存
⏹页面调度:
主存页-------→缓存区--------→磁盘页
⏹页表层级:
为节约页表空间,页表分级创建。
1.3地址转换addresstranslate
⏹转换过程中使用的符号:
类别
NO
项目
说明
参数
1
N=
虚拟地址数量
2
M=
物理地址数量
3
P=
页面大小
虚拟地址
1
VPO
虚拟地址偏移
2
VPN
虚拟页号
3
TLB
TLB索引
4
TLBT
TLBT索引标专
物理地址
1
PPO
物理地址偏移
2
PPN
物理页号
3
CO
高速缓存偏移
4
CI
高速缓存索引
5
CT
高速缓存标记
⏹转换过程
ﻩ[页表寄存器结构]
[页面命中示意图]
[页面命中示意图]
[转换过程]
step1.CPU拿到一个虚拟地址,分为两步,先通过页表机制确定该地址所在虚拟页的内容是否从磁盘加载到物理内存页中,然后通过高速缓存机制从该物理地址中取到数据。
step2. 地址翻译硬件要把这个虚拟地址翻译成一个物理地址,从而可以再根据高速缓存的映射关系,把这个物理地址对应的值找到。
step3. 地址翻译硬件利用页表数据结构,TLB硬件缓存等技术,目的只是把一个虚拟地址映射到一个物理地址。
要记住DRAM缓存是全相联的,所以一个虚拟地址和一个物理地址是动态关联的,不能直接根据虚拟地址推导出物理地址,必须根据DRAM从磁盘把数据缓存到DRAM时存到页表时存的实际物理页才能得到实际的物理地址,用物理页PPN +VPO就能算出实际的物理地址(VPO =PPO,所以直接用VPO即可)。
PPN的值是存在页表条目PTE中的。
地址翻译做了一堆工作,就是为了找到物理页PPN,然后根据VPO页面偏移量,就能定位到实际的物理地址。
step4.得到实际物理地址后,根据高速缓存的原理,把一个物理地址映射到高速缓存具体的组,行,块中,找到实际存储的数据。
1.4 内存映射virtual map
⏹内存映射示意图
2.进程和线程processandthread
2.1进程
⏹概念:
进程系统分配存储资源最小单位.
⏹进程假象:
一直占居CPU
一直独占存储资源
⏹复制与共享
复制:
物理内存块在写的时候内存真实复制.
共享:
共享指针指向同一物理内存块.
⏹管理打开的文件资源
⏹父进程和子进程之资源分配
⏹进程间通讯:
通过管道等方式在不同进程间进行通讯.
2.2线程
⏹概念:
功能调度的最小单位.
⏹并发本质和难点
本质:
同一时间点,不同逻辑流同时运行.
难点:
解决资源共享问题.(共享内存方式解决)
3.硬盘知识 disc
3.1磁盘的基本结构和工作原理
⏹基本结构
⏹工作原理:
⏹硬盘结构:
⏹硬盘结构:
8个盘片,16个盘面(1盘片上下两个盘面)
1个盘面有2^16个磁道;
1个磁道有256个扇区;
1个扇区有4KB字节;
总字节数=16X2^16X256X4KB=1TB
⏹读取时间=寻道时间+旋转延时+传输时间
3.2磁盘和主存之间数据交换
4.文件系统:
4.1文件系统构成:
磁盘文件系统;
网络文件系统;
虚拟文件系统;
4.2虚拟文件系统 VIRTUAL
4.3VFS核心对象
超级对象:
mount 文件系统;
INODE对象:
一个具体文件;
目录对象:
文件路径(目录);
打开文件对象:
文件句柄;
4.4对象之间关系说明
4.5超级块:
supperblock
⏹每个物理扇区的结构:
启动块
块组1
块组2
……
块组N
⏹块组结构:
超级块(真实)
块1
块2
……
块N
超级块(备份)
块1
块2
……
块N
…..
……
……
……
……
⏹块组数据结构:
示意图
超级块
组描述
数据位图
INODE
INODE|TABLE
DATA
1
K
1
1
N
M
4.6文件节点:
INODE
⏹INODE和文件一一对应
⏹INODE重要属性
NO
属性
说明
NO
属性
说明
NO
属性
说明
1
i_ino
编号
4
I_count
引次
7
I_mode
权限
2
I_size
大小
5
I_dentry
8
I_mapping
映射
3
I_atime
访问
6
I_sb
超块
9
……
……
⏹INODE状态
无引用,无修改。
已引用,无修改。
已引用,已修改。
4.7目录项DIRECTORY
⏹关键属性:
D_INODE:
文件INODE
D_SB:
超级块
D_PARENT:
父路径
D_NAME:
名称
4.8打开文件OPENFILE
⏹关键属性:
F_DENTRY:
目录
F_POS:
位置
F_COUNT:
引用计数
F_LOCK:
文件锁定