参照B站上面的操作系统视频所写的笔记
我看这门课程的视频是为了补充自己在基础知识上的不足,所以并没有做实验。
另外,在写笔记的过程中,也搬运了一些其他博客的内容,有些地方没有标注来源,如果原创作者觉得有任何问题都可以联系我,侵删。

CPU:程序和软件上的控制
内存: 主要放置程序的代码和数据
外设:满足一些功能,把数据保存在硬盘中…
运行内存(主存) / 磁盘等外存(虚拟内存).
主存是在运行程序时所需要保存的数据空间,而磁盘是用于持久化数据保存的数据空间.
CPU可以访问的内存包括两大类 : 寄存器 / cache高速缓存(L1缓存 / L2缓存)

CPU内部:寄存器->cache
资源很有限
CPU外部:主存->物理硬盘
速度稍慢,但是硬盘可以掉电保存数据,等再启动时CPU读入到内存
内存最小访问单位:8bit即一字节

操作系统的目标(抽象,保护,共享,虚拟化):(红色字里面写的是操作系统内核)



逻辑地址:比如说C语言的变量名就是逻辑地址
物理地址:硬件的地址

编译、汇编、链接、载入(重定位)


1、当CPU需要执行某个指令的时候他的ALU部件需要指令的内容,发送请求,带着逻辑地址;
2、CPU中的MMU查找带有逻辑地址的映射表中是否存在对应的物理地址,
3、如果有就找到;如果没有就会去内存中找,如果找到了控制器就会给主存发送物理地址的内容(就是指令的内容);
4、主存会把内存的内容通过总线传给CPU,CPU拿到内容后就可以执行这条指令了;

检查起始地址和地址空间长度,一旦请求的逻辑地址超出区域限制,就会发生内存访问异常












把内存中分布不连续的地址空间,重新排序使得连续,从而减少内存碎片。但是会系统的内存拷贝开销会非常大

