目录
[频率(Clock Speed 或时钟频率)](#频率(Clock Speed 或时钟频率))
[5.写回结果(Write Back):](#5.写回结果(Write Back):)
一.冯诺依曼体系结构
什么是冯诺依曼体系结构?先来了解一下计算机祖师爷--冯诺依曼
冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是布达佩斯大学数学博士,在现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为"现代计算机之父"、"博弈论之父"。
冯诺依曼体系结构,又称为"普林斯顿结构",是一种计算机体系结构的设计思想,是由冯诺依曼在1945年提出。以下是该结构的核心思想和特点:
核心思想:将程序指令和数据存储在同一个读写存储器中,从而实现程序指令的存储和执行。
特点:
- 二进制表示:数据和指令都是使用二进制形式(0和1)表示,这使得计算机内部的数据处理和传输更为简单和高效。
- 统一的存储器:数据和侄子存储在同一个存储器上,通过地址来区分。这种设计简化了存储器的管理,并允许程序指令和数据之间的灵活转换。
- 顺序执行 :计算机按照存储器中的程序指令顺序执行,每条指令执行完毕之后,程序计数器会自动指向下一条指令。
- 五大组成部分:冯诺依曼体系结构下的计算有五大基本部分组成。
1.中央处理器(CPU) :CPU是由控制器和运算器共同构成的。
**控制器:**相当于指挥官,根据内存中的指令来指挥完成各种操作。
**运算器:**用来处理算术运算和逻辑运算。
2.存储器(memory):用来存储数据和指令。分为主存储器(如RAM)和辅助存储器(如硬盘、u盘、光盘等)。主存储器提供了快速的读写能力,辅助存储器则提供了大容量的存储空间。
**3.输入设备(Input Devices):**输入设备允许用户或其他系统向计算机输入数据。常见的输入设备包括键盘、鼠标、扫描仪、摄像头等。
**4.输出设备(Ouput Devices):**输出设备用于将计算机处理后的数据以人可以理解的形式展示出来。如扬声器、耳机、显示器、打印机等。
5.指令和数据同一存储:在冯诺依曼体系结构中,指令和数据通过同一条总线传输到运算器,这种设计简化了计算机内部的结构。
**6.指令的执行是顺序的:**除非程序指令中包含跳转指令,否则指令是按照它们在存储器中的顺序执行的。
二.CPU的核心概念
CPU(中央处理单元)是计算机硬件的核心部件,负责执行计算机程序中的指令,处理数据控制其他硬件设备的操作。
- 指令集:CPU执行指令的基础集合,这些指令定义了CPU可以执行的操作,如算术运算、数据传输、控制操作等。
- **控制单元(Control Unit,CU):**负责指令的解码和执行流程的控制,确保指令按正确的时序执行。
- **运算单元(Arithmetic Logic Unit,ALU):**负责协调和控制CPU内核的操作,包括指令的解码和执行。
- 缓存:提供快速的数据存取,减少CPU和主内存之间的数据传输延迟。
- 并行处理:现代CPU通常具有多个核心,每个核心可以独立执行指令。这种多核设计允许CPU并行处理任务,从而提高整体性能。
核心数
定义:核心数是指在CPU中独立的处理单元数量。每个核心都是一个完整的处理单元,能够执行指令、进行计算和处理数据。
在任务管理器中,可以查看计算机的核心数
优势:多核心CPU能够同时处理多个线程或进程,对多任务处理和并行计算非常重要。核心数的增加可以提高CPU的多任务处理能力和并行计算能力,尤其是在运行多线程应用程序时。
适用场景:视频编辑、3D渲染、科学计算等需要大量并行处理的应用。
频率(Clock Speed 或时钟频率)
定义:CPU中的频率通常指的是时钟频率,即CPU的时钟速度,它表示CPU内部的时钟振荡器产生周期性信号的速率,单位是赫兹(Hz)。时钟频率是衡量CPU性能的一个重要指标,它决定了CPU每秒可以执行多少个时钟周期,从而影响CPU执行指令的速度。(1GHz【千兆赫兹】=10^9Hz)
性能:更高的时钟频率通常意味着更好的性能,因为CPU可以在单位时间内执行更多的操作。
如何选择合适的CPU
在选择CPU时,需要考虑预算、使用场景、性能要求等。
**办公或者家庭使用:**通常选择中低端的CPU即可;
游戏使用:如果有游戏需求的话,不仅要牢牢CPU,还要考虑GPU,大多数游戏对CPU的要求并不高,但对于一些3A大作,需要比较高的性能。
专业工作负载:如视频编辑、3D渲染、工程模拟等,这些任务通常需要强大的多线程性能。因此,考虑购买具有更多核心和更高线程数的CPU。
三.指令的执行
1.什么是指令
指令(instruction)是指示计算机执行特定操作的命令。它是计算机程序的基本构建块,由计算机的中央处理器(CPU)解释和执行。每条指令都代表了一种操作,比如数据传输、算术运算、逻辑判断、控制转移等。
由编程语言编写的程序,最终都要被翻译成"CPU上执行的二进制指令"。
指令执行过程为:
取指令--->分析指令--->执行指令
1.取指令
- 程序计数器(Program Counter,即PC):计算机中央处理器(CPU)中的一个特殊寄存器,存储着当前正在执行指令的地址或者下一条要执行的指令的内存地址。
- 内存读取:根据程序计数器PC中的值从程序存储器读取出指令,送到指令寄存器。
- PC更新:当指令被读取之后,PC会自动递增,执行下一个指令的地址。
2.解析指令
解析指令:指令寄存器中的指令被解码,确定操作码(Opcode)和操作数(Operand)。
操作数寻址:根据操作数寻找操作的地址。
3.执行指令
- 读取数据:把操作数的内存数据读取出来,并存放到寄存器中。
- CPU执行解码阶段确定的操作,这可能包括算术运算、逻辑运算、数据传输或控制操作。
- 执行阶段可能涉及ALU(算术逻辑单元)进行计算,或者访问寄存器和内存进行数据读取或写入。
4.访问内存(Memory):
- 如果指令需要访问内存(例如,加载或存储数据),这个阶段会进行内存读写操作。
5.写回结果(Write Back):
- 执行结果写回到CPU寄存器或内存中,以便后续指令可以使用这些结果。
当完成上述步骤之后,CPU会重复这一过程,开始取下一条指令,直到最后一条指令结束。
遇到跳转指令、电源或硬件故障、遇到异常或错误等,会使CPU停止或中断。
示例:
四.进程
进程是操作系统中的一个核心概念,用于描述系统中正在运行的程序及其相关状态。操作系统负责进程的创建、调度、同步、通信和终止等任务,以确保系统的高效和稳定运行。
1.进程的概念
进程是程序程序的一次运行,是系统进行资源分配和调度的基本单位。每个进程都有一系列的属性,包括进程ID(Process ID)、状态、程序计数器(Program Counter)、寄存器集合、堆栈、内存限制、打开的文件列表、访问权限和安全属性等。
2.特点
- 动态性:进程是程序的一次执行过程,它随着时间的推移而创建、运行和终止。
- 并发性:计算机系统允许同时存在多个进程,它们可以并发执行,共享计算机的资源。
- 独立性:每个进程都拥有自己的地址空间,一个进程的执行通常不会影响到其他进程。
- 异步性:进程的执行顺序和速度可能不同于程序代码的顺序和速度,因为进程可能会被中断和恢复。
- 结构特征:进程通常由正文段(代码)、数据段(静态数据)、堆(动态分配的内存)和栈(局部变量和函数调用信息)等组成。
3.进程的三种基本状态
进程在其运行的过程中会经历多种状态,以下是进程的三种基本状态:
- 就绪状态(Ready):进程已经准备好执行,等待CPU调用。
- 运行状态(Running):进程正在CPU中执行。
- 阻塞状态(Blocked或Waiting):当进程因为等待某些事件(如I/O完成、获取特定的资源或信号量)而无法执行时,它处于阻塞状态。在等待的事件发生之前,进程不会被执行。
4.创建与终止
除了上述的三种基本状态,进程还有另外的两种状态:
- 创建(Created或New) :当进程正在被创建,还没有准备好执行时,它处于创建状态 。在这个状态下,操作系统正在为进程分配所需的资源,初始化进程控制块(PCB)。
- 终止(Terminated或Exit) :当进程已经完成执行或被强制终止时,它处于终止状态。在这个状态下,操作系统会释放进程占用的资源,并从系统中移除进程。
5.进程通信
**进程通信(Inter-Process Communication,简称IPC)**是指在不同进程之间传送数据或信号的一些技术和方法。以下是几种常见的进程通信方式:
- 管道(Pipes) :半双工(即双方可以相互通信,但一方传送时另一方不能传送)的通信方式。可以在父子进程间或兄弟进程间建立通信,分为匿名管道和命名管道**。**
- 消息队列(Message Queues):允许一个或多个进程向队列中写入消息,其他进程则可以读取队列中的消息。提供了一种异步的通信机制。
- 共享内存(Shared Memory) :允许多个进程访问同一块内存空间,是最快的IPC方式,因为它不需要数据复制。但是,需要同步机制来防止多个进程同时写入同一内存区域。
- 信息量(Semaphores):用于控制对共享资源的访问,可以实现进程的同步或互斥。
- 套接字(Sockets):用于不同主机上的进程进行网络通信,也可以用于同一主机上的进行间的通信。
- 文件:进程可以读取文件来交换数据,是一种简单但并不是最高效的IPC。
6.进程管理
一个操作系统上的进程比较多,所以需要管理
1.描述: 通过结构体或类(主流系统c/c++实现的),把进程的各种属性表示出来。对于Linux操作系统,使用"PCB"这样的结构体来描述进程信息,PCB称为进程控制块。
**2.组织:**通过数据结构把上面的多个结果体串起来,并进一步进行各种增删查改。
创建新的进程(双击exe,运行起程序),就相当于创建了一个PCB结构体,并且插入链表中。当结束进程时,就是把PCB从链表上删除掉,并且释放这个PCB结构体。在查看进程列表时,就是在遍历这个链表,依次显示出对应的信息。
7.进程控制块(PCB)
PCB是操作系统用于管理进程的一种数据结构。PCB通常由操作系统内核维护,用于存储和管理进程的状态信息、资源信息和其他与进程相关的信息。PCB通常会包含以下几种信息:
- 进程标识符(PID) :唯一的标识一个进程。同一时刻,一个机器上的多个进程之间的PID是唯一的,不会重复,系统内部许多操作都是通过PID找到对应的进程的。
- 内存指针(一组) :用来描述进程依赖度指令和数据在内存的哪个区域内。在操作系统运行exe时,就会读取exe中的指令和数据,加载到内存中。(说明进程的执行需要一定的内存资源)
- 文件描述符表:描述进程打开了哪些文件,对应硬盘上的数据,在进程中,打开了某个文件,就会在顺序表中添加一项。(说明进程的执行也需要一定的硬盘资源)
8.进程调度*
定义:进程调度是操作系统中的核心功能之一,它负责决定哪个进程将获得CPU时间以及它们将获得多长时间 。进程调度的目标是在多任务环境中实现高效和公平的CPU时间分配,以提高系统的吞吐量、响应时间、资源利用率和用户体验。
在操作系统中,进程调度的关键就是:分时复用
分时复用
定义 :分时复用是进程调度的一种重要的特性,允许多个用户或任务共享同一台计算机的资源,每个用户或任务都感觉像是独占整个计算机系统,通过快速切换CPU在多个用户或任务之前进行分配,给每个用户或任务分配一小段连续的时间片,从而实现分时复用。
并发/并行都是由系统内核统一调度的,统称为"并发"
在进程调度,主要与以下几个属性有关:
进程状态、进程的优先级、进程的上下文、进程的记账信息。
在前面,已经把进程的状态详细说明,这里就不展开写。
进程的优先级:优先级高的进程先执行,低的后执行。
进程的上下文:一般CPU会同时执行多个进程,即分时复用,一个进行执行一会就要从CPU上调走,过一段时间之后还会调度到CPU上沿着上次执行的结果,继续往后执行
进程的记账信息:能记录和跟踪进程使用系统资源的情况,以便于操作系统能过进行资源管理和性能评估。还可以用于实施公平的资源分配策略,合理的利用系统资源。
总结
冯诺依曼体系结构 :现代计算机的基础,定义了计算机的基本组成部分(输入设备、输出设备、控制器、运算器、存储器)和它们的交互方式。
CPU的两个重要指标 :核心数、频率
CPU执行命令的流程:取指令-->解析指令-->执行指令。
进程控制块(PCB):是管理进程的一种数据结构,用于存储进程的各种信息。
进程管理:当运行exe程序时,相当于创建了一个PCB结构体,并且将这个结构体串到链表中。
进程调度 :决定了哪个线程获得CPU的时间以及时长,能够合理地分配系统资源,进程调度与进程的状态、进程的上下文、进程的优先级以及进程的记账信息有关。