计算机基础知识
计算机是如何工作的
在本节内容中,介绍了计算机核心工作机制,计算机结构,框架等,计算机需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算的发展过程
文章目录
- 计算机基础知识
- 一、冯诺依曼体系结构
- 二、CPU
- CPU的核心参数
- CPU的寄存器
- CPU的缓存
- 比一比,==你学会了吗?==
- CPU执行指令的流程
- 三丶操作系统
- 操作系统内核
- PCB结构体
- 总结
一、冯诺依曼体系结构
什么是冯诺依曼结构,就是现代计算机中的内部构造分为了4大模块.
1. 输入设备:用户给设备发号施令的设备,例如,键盘,鼠标等
2. 存储器:又分为内存和**外存,**用于存储数据(二进制)
内存:存储空间小,运行速度快,成本高,关机后数据丢失
外存:分为多种,硬盘,软盘,U盘,光盘,以硬盘举例:存储空间大,运行速度慢,成本低,关 机后数据依然存在.
3.CPU :又称为中央处理器,是最计算机的核心,主要用于算数运算和逻辑运算
4.输出设备 :计算机用户汇报结果的设备.
二、CPU
CPU的核心参数
1)核心数量: 是衡量CPU性能的一个重要指标之一,它指的是CPU内部可以独立执行的指令的处理器单元的数量,每个核心都可以执行计算任务,因此核心数量越多,理论上CPU的计算能力越强,因此就有了后来的==“并发编程”==
上图就是本机的每个核心,具体查看任务管理即可
**2)频率:**又CPU的运算速度,通常指的是时钟频率,也是衡量CPU性能的重要指标,频率越高,在单位时间内可以执行的指令就越多,性能也更强
当然不至于这两个,只是这两个参数能作为衡量一个CPU的性能的主要因素,其他的因素根据各自需求了解即可,还有就是cpu具体的内部构造对于我也没有深刻,详细的能解释出来,还需大家自行探索~
CPU的寄存器
我们知道,计算机大部分数据都是存储在内存和硬盘里的,但实际上CPU在进行运算的时候,需要先把数据从内存中读取的CPU里,再进行运输,用于快速存取数据和指令,提高CPU的工作效率.寄存器是CPU内部最快速的存储单元,因为它们与执行单元非常接近,可以迅速响应CPU的操作,其存储空间非常小,往往是几个kb,例如,程序计数器,会在后面指令操作介绍
CPU的缓存
由于CPU的运算速度是内存的100多倍,所以CPU和内存再执行相关的指令时,内存就会显得格外的慢~,从而导致CPU在获取数据时的速度变慢,此时需要借助于缓存机制,每一次CPU在向内存读取数据的时候,就会把该数据放进缓存,便于CPU后续读取,从而大大的增加了效率
另外,缓存又分为L1,L2,L3分别为重复的数据进行了更好的读取,速度越来越慢,容量越来越大~
下图是多核CPU结构图
比一比,你学会了吗?
- 速度: 寄存器>缓存>内存>>硬盘
- 容量: 硬盘>内存>缓存>寄存器
- 成本: 寄存器>缓存>内存>硬盘
- 访问模式:寄存器用于快速存取,缓存用于减少对主内存的访问,提高了数据访问速度
- 数据一致性:寄存器通常不需要考虑数据一致性问题,而缓存需要与主内存保持数据一致
CPU执行指令的流程
首先介绍一个寄存器:程序计数器:这个寄存器存储下一个要执行的指令的地址,开始的时候默认为0,每当CPU执行完一条指令后,程序计数器就会自动更新为下一条指令的地址.
执行指令的三个主要阶段
1)获取指令: CPU会从内存中读取到指令内容后到CPU内部交给寄存器存储.
2)解析指令: 识别这个指令是干啥的以及对应的功能和操作数
3)执行指令:通过指令表执行相关操作
"简单"的指令表,实际上更加复杂
TIP:一个指令是一个二进制数据,共有8个bit,分成两部分,
前四个bit是操作码,表示指令是干啥的
后四个bit是操作数,表示运算的数据
举个栗子
下面给出一段内存空间和里面的数据
以上操作便是cpu执行指令的详细操作,完成了3+14的运算,但是对于cpu来说,这个操作是十分容易的!,由于cpu太快,一秒就能执行几十亿次这样的运算
三丶操作系统
是计算机系统最基本的系统软件,他控制和管理计算机硬件和软件资源,提供用户与计算机交互的接口.
每个系统运行的程序是不同的,你如果再windows里写了一个程序,这个程序是不能直接拿到Linux等其他系统上运行的,因此我们希望一套程序能兼容不同的系统,所以JAVA就有了跨平台的功能
一个操作系统要做很多事,但最重要的就是"管理"
1) 管理不同的硬件设备 eg: 能接入扫码枪,医疗设备,B超超声机等
2)给软件提供稳定的运行环境
操作系统管理的硬件设备是很多的,不是系统直接操作硬件,而是硬件厂商会提供对应的"驱动程序",操作系统就是提供驱动程序间接的来操作硬件设备的
明确三者的基本关系即可
操作系统内核
作为操作系统的核心部分,负责管理系统资源和控制硬件设备,内核提供了操作系统的基本功能,是操作系统中最接近硬件的部分
其中有一个功能与我们生活息息相关,一定要重点掌握
进程管理~
进程就是正在执行的应用程序 一个应用程序有两种状态 1)没有运行的时候,是一个exe文件,躺在硬盘上的
2)运行的时候,exe会被加载到内存中,并且执行cpu里面的指令了
由于一个系统上的进程比较多,所以需要管理
1)描述: 通过结构体或类(主流系统是c/c++实现的)把进程的各种属性表示出来,对于Linux操作系统来说,使用称为 “PCB” 这样的结构体来描述进程信息的也叫进程控制块
2)组织: 通过数据结构把上面多个结构体串起来,并进一步进行增删查改.
创建新的进程(双击exe可执行文件,运行起程序),就相当于创建了一个PCB结构体.并且插入到链表中.销毁进程就是把PCB从链表上删除掉,并且释放这个PCB结构体而查看进程列表,就是在遍历这个链表.依次显示出对于的信息~
PCB结构体
1.PID进程标识符: 同一时刻,一个机器上的多个进程之间,PID是唯一的,系统内的许多操作都是通过PID来找到对应的进程的
2.内存指针: 描述进程依赖的指令和数据都在内存的那个区域,操作系统运行exe时,就会读取exe中的指令和数据,加载到内存中,侧面表示出,进程的执行是需要一定的内存资源的~
**3.文件描述符表:**描述了进程打开了那些文件,对应到硬盘上的数据,在进程中,打开了某个文件,就会在顺序表中添加一项,侧面表示出,进程的执行,需要一定的硬盘资源的
以下的属性都和 进程的调度 相关
当前的操作系统,都是"多任务操作系统",同时可以运行多个进程~
以前的操作系统,都是"单任务操作系统"同一时刻只能运行一个进程
4.进程状态: 主要分为两种状态,
1).就绪状态:可以随时被调用到cpu上执行指令的
2).阻塞状态:无法调度到cpu上执行,因为要执行其他的工作,比如进行IO操作,在控制台进行读取输入的时候,cpu就不能执行后面的代码
5.进程的优先级: 根据进程的优先级来调度,优先级高的进程先执行.
6.进程的上下文: 分时复用,一个进程执行了一会就要从cpu上调度走,过一段时间还会调度cpu就要执行上次执行的结果,继续往后执行
**7.进程的记账信息:**操作系统,统计每个进程在CPU上执行的时间根据这个进一步的调整调度的策略~~
这几个属性相互配合共同构成了进程的核心逻辑~
以上的调度过程,都是系统内核负责完成的,虽然在系统内核完成,写程序的时候是会收到影响的,因此还是需要了解上诉的调度过程~
总而言之,进程的调度是对PCB结构体的每个属性的一个复杂且关键的操作,它直接影响到了系统的性能和用户体验,它决定了那个进程能够获得CPU的使用权.
总结
本节介绍了计算机结构冯诺依曼结构, cpu执行指令的过程,操作系统的管理功能,其中以操作核心为主,再就是再PCB结构体的各个属性的构成共同决定了一个进程对cpu的性能要求从而满足用户的需求.