计算机操作系统学习笔记(1)——硬件结构

简介: 计算机操作系统学习笔记(1)——硬件结构

一、冯诺依曼模型

冯诺依曼模型分为5个组成部分:

  1. 中央处理器(CPU)
  2. 内存
  3. 输⼊设备
  4. 输出设备
  5. 总线

CPU可以分为:控制单元,逻辑运算单元和寄存器。

其中,控制单元负责控制 CPU ⼯作,逻辑运算单元负责计算,⽽寄存器可以分为多种类,每种寄存器的功能⼜不尽相同。

寄存器又可以分为:指令寄存器,通用寄存器和程序计数器等


总线可以分为:控制总线,地址总线和数据总线。

地址总线传的是内存中的地址,数据总线传的是对应地址的内存数据,控制总线传的是控制信号,例如:中断。

3cc163c9c7e44f57bf15ea48ad4f250b.png



二、CPU

32 位和 64 位 CPU 最主要区别在于⼀次能计算多少字节数据: 32位一次4字节。64位一次8字节,称为CPU位宽

CPU 的位宽越高,一次能读取的内存指令越多

CPU Cache 也在CPU里,分为L1,L2和L3。L1体积最小,离CPU最近


为什么CPU里有了内存还需要寄存器?


因很简单,因为内存离 CPU 太远了,⽽寄存器就在 CPU ⾥,还紧挨着控制单元和逻辑运算单元,⾃然计算时速度会很快。

说白了就是就近原则,离得近,办事效率快

二、寄存器

寄存器的分类的?

通⽤寄存器 ,⽤来存放需要进⾏运算的数据,⽐如需要进⾏加和运算的两个数据。

程序计数器 ,⽤来存储 CPU 要执⾏下⼀条指令「所在的内存地址」,注意不是存储了下⼀条要执⾏的指令,此时指令还在内存中,程序计数器只是存储了下⼀条指令的地址。


指令寄存器 ,⽤来存放程序计数器指向的指令,也就是指令本身,指令被执⾏完成之前,指令都存储在这⾥。

三、总线

总线的分类?

地址总线 ,⽤于指定 CPU 将要操作的内存地址;

数据总线 ,⽤于读写内存的数据;

控制总线 ,⽤于发送和接收信号,⽐如中断、设备复位等信号,CPU 收到信号后⾃然进⾏响应,这时也需要控制总线;


当 CPU 要读写内存数据的时候,⼀般需要通过两个总线,⾸先要通过「地址总线」来指定内存的地址;再通过「数据总线」来传输数据;一来一回


地址总线并不是只有一条,有多少条,线路就有多少位宽,如果地址总线只有 1 条,那⼀次只能操作 2 个内存地址,如果想要 CPU 操作 4G 的内存,那么就需要 32 条地址总线,因为 2 ^ 32 = 4G 。线路位宽就是32


CPU 的位宽最好不要⼩于线路位宽,因为 32位 CPU ⼀次最多只能操作 32 位宽的地址总线和数据总线。所以32 位 CPU 最⼤只能操作 4GB 内存,就算你装了 8 GB 内存条,也没⽤。地址总线传的慢,你CPU处理的再快也没用啊,数据跟不上


并不是说CPU的位宽,越高越好。如果计算的数额不超过 32 位数字的情况下,32 位和 64 位 CPU 之间没什么区别的,只有当计算超过 32 位数字的情况下,64 位的优势才能体现出来。

四、执行过程

第⼀步,CPU 读取「程序计数器」的值,这个值是指令的内存地址,然后 CPU 的「控
制单元」操作「地址总线」指定需要访问的内存地址,接着通知内存设备准备数据,数据
准备好后通过「数据总线」将指令数据传给 CPU,CPU 收到内存传来的数据后,将这个
指令数据存⼊到「指令寄存器」。
第⼆步,CPU 分析「指令寄存器」中的指令,确定指令的类型和参数,如果是计算类型
的指令,就把指令交给「逻辑运算单元」运算;如果是存储类型的指令,则交由「控制单
元」执⾏;
第三步,CPU 执⾏完指令后,「程序计数器」的值⾃增,表示指向下⼀条指令。这个⾃
增的⼤⼩,由 CPU 的位宽决定,⽐如 32 位的 CPU,指令是 4 个字节,需要 4 个内存地
址存放,因此「程序计数器」的值会⾃增 4;
相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
6月前
|
存储 Unix Linux
手写操作系统(4)——计算机是如何启动的?BIOS、GRUB、文件系统......
手写操作系统(4)——计算机是如何启动的?BIOS、GRUB、文件系统......
101 1
|
3月前
|
存储 算法 网络协议
了解操作系统的基本原理和常见操作,提高计算机使用效率
了解操作系统的基本原理和常见操作,提高计算机使用效率
45 4
|
3月前
|
机器学习/深度学习 Linux PyTorch
跨平台 DataLoader 实现:支持多种操作系统和硬件架构
【8月更文第29天】在深度学习项目中,数据加载和预处理是非常重要的步骤之一。一个良好的数据加载器(DataLoader)能够显著提升模型训练的速度和效率。随着深度学习应用的不断扩展,对于能够在不同操作系统和硬件架构上无缝运行的数据加载器的需求也日益增长。本文将探讨如何设计和实现一个跨平台的 DataLoader,确保其兼容性和可移植性。
64 0
|
4月前
|
Python
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
|
4月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
6月前
|
存储 缓存 安全
操作系统(14)----文件系统的结构
操作系统(14)----文件系统的结构
120 1
|
5月前
|
运维 安全 Linux
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
|
6月前
|
存储 算法 Linux
【计算机操作系统】深入探究CPU,PCB和进程工作原理
【计算机操作系统】深入探究CPU,PCB和进程工作原理
178 1
|
6月前
|
运维 Linux Shell
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
|
6月前
|
监控 Linux 调度
操作系统学习笔记(一)
在Linux中,使用`ps -aux | grep PID`来查看特定进程的状态,或者用`top`指令监控进程和内存。通过`cat 文件名 | grep 关键词`或`grep -i 关键词 文件名`搜索日志文件。`grep`是一个强大的文本搜索工具,支持多种参数,如`-i`忽略大小写,`-c`计数,`-f`从文件读取关键词。要临时更改主机名用`hostname 新主机名`,永久更改则用`hostnamectl set-hostname 新主机名`
43 0