笔记 计算机组成原理 操作系统

计算机组成原理
问自己一个问题串起来这门课?
计算机能做什么?
科学的力量取决于大众对它的了解。–培根
在这里插入图片描述
在这里插入图片描述

运算器+控制器+存储器+总线+输入输出设备

底层-》指令-》指令系统-》操作系统-》汇编-》高级程序
指令系统介于硬件和软件之间,常用的ARM指令系统、X86指令系统。

计算机里常用补码作为数据表示方式,因为补码直观易于求解和运算,电路容易实现;
在这里插入图片描述

从高级语言介绍到汇编语言,然后由汇编语言介绍到机器码机器语言里面需要有一个数据的表示怎么表示的,一般以补码的形式进行数据表示因为有利于硬件的计算,然后既然介绍到了数据,那么就应该有数据的纠错,然后涉及到数据的运算,数据运算就是需要用到运算器,然后就介绍了运算器的基本功能以及运算器的组成,那么我们也可以用vhdl硬件描述语言设计自己的运算器这个部件儿。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FPGA 基于SRAM 的架构,一个FPGA可以集成2000万个门。
在这里插入图片描述
任何数字电路=组合逻辑电路+时序逻辑电路
基于查找表的FPGA想当与RAM,一个输入对应一个确定输出。
在这里插入图片描述

控制器 是负责调度计算机内部工作的,分为11讲来讲这个东西。
在这里插入图片描述
多周期CPU是为了速度
指令流水也是为了速度

操作系统
https://github.com/chyyuu/os_course_info

操作系统的启动过程:先由BIOS检测自身硬件,然后把BootLoader(512KB)加载到内存里执行起来,然后BootLoader的作用就是读取OS的内存起始和终止,把磁盘里的OS加载到内存里去,接下来OS就开始从0地址执行起来,一切控制交由OS执行。OS就开始从0地址开始工作起来。
在这里插入图片描述

那接着就是操作系统怎么工作。
三个点:
在这里插入图片描述
应用程序不能直接访问外设,得通过OS。因为我们必须无条件信任OS,但是我们绝对不能信任应用程序。同时,操作系统为外设提供了一个统一的接口,不用考虑底层。
这三点的区别:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
程序看到的是一维的逻辑地址空间,最终落到物理地址空间。

逻辑地址如何生成?
比如我们写一段C程序,这个程序(.c)经过编译(成为.s)、汇编(成为.0)、链接(成为.exe)、载入(程序重定位)才能到内存里成为逻辑地址。
CPU执行程序过程:查找逻辑地址,然后计算机里的MMU查找映射表里是否有逻辑地址对应的物理地址,找不到再到内存里去找,找到后通过总线传给CPU执行。
逻辑地址和物理地址映射由OS事先建立好。
OS需要管理程序的地址空间范围,不能越过区域限制,不能内存异常。

在这里插入图片描述
需要一些数据结构与算法来完成内存分配。
内存回收会把空闲块合成大的空闲块。
第一适配算法足够简单,但容易产生空闲块。
这些算法都太简单,不好处理碎片问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分段是为了更好地分离和共享。
在这里插入图片描述
在这里插入图片描述
用硬件实现段机制
在这里插入图片描述
段机制现代计算机用得少,都用页机制了。2者区别在于,段机制里段偏移地址可变,页机制里偏移地址固定不可变。

逻辑页映射到物理地址页:页表、MMU/TLB
在这里插入图片描述

(页帧号,偏移)=(3,6)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
TLB是一种缓存办法,经常浏览的东西可以放这里面来提高命中率。
这是以空间换时间的方式。
在这里插入图片描述
多级列表可以节省内存空间,在树的顶找不到对应,那么子树就没存在的必要。这是以时间换空间的方式,计算开销大,但存储空间减少了。
在这里插入图片描述

发布了105 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/x1131230123/article/details/104291355