前言
本篇不介绍代码,主要是理解计算机的一些核心工作机制。想了解更多请跳转-->【【计算机科学速成课】[40集全/精校] - Crash Course Computer Science】
冯诺依曼体系结构
由计算机之父之一冯诺依曼提出的计算机内部构造的基本组成,而现在大多数仍是如此。
CPU:包含运算器和控制器两部分,进⾏算术运算和逻辑判断。
存储器:分为外存(硬盘、U盘等)和内存,⽤于存储数据(使⽤⼆进制⽅式存储)。
输入设备:对计算机进行输入信号的设备。
输出设备:计算机执行信号后用于输出结果的设备。
注意:(1)针对存储空间 硬盘>内存>>CPU
(2) 针对数据访问速度 CPU>>内存>硬盘。
CPU的核心参数
右键点击任务栏,选择“任务管理器”,然后切换到“性能”标签页,在这里就可以看到CPU的参数
(1)核心数
顾名思义,就是CPU里有多少个核心,毕竟多个核心就能同时处理多条信号,效率会大大提升~
(2)频率
可以理解成CPU的运算速度,但会根据任务量进行动态变化的~
CPU工作的流程
首先给一张指令表,RAM的意思是内存
还有一张不同地址对应的数据
程序计数器的概念:保存了接下来从哪个位置执行指令,同时伴随着执行指令成功,自身+1.
(1)取指令
假设接收到的指令是00101110 (假设程序技术器=0,便从0号地址开始)
(2)解析指令
对半分开,前半部分(称为操作码)0010去查指令表,便知指令是LOAD_A。
而后半部分(操作数)1110就是被操作的数对应的地址。
就比如这条指令就是把1110地址对应的数据存到A寄存器里面去,1110对应的十进制是14。
(3)执行指令
把地址是14的数据读出来放入A寄存器中,同时程序计数器+1,以此类推,开始从地址是1接收指令......
操作系统
定位
其中最大的作用便是管理:
(1)管理不用的硬件设备。
(2) 给软件提供稳定的运行环境。
主流的操作系统:
1. Microsoft Windows:
由微软公司开发,Windows 是最广泛使用的个人电脑操作系统之一。它有多个版本,包括 Windows 10、Windows 11 以及针对服务器市场的 Windows Server 系列。
2. macOS:
由苹果公司开发,专为苹果的Macintosh系列电脑设计。macOS 提供了一个图形用户界面、集成应用程序和强大的性能,是苹果生态系统的重要组成部分。
3.Linux:
一个开源的操作系统内核,由林纳斯·托瓦兹(Linus Torvalds)创建。Linux 有许多不同的发行版(Distributions),如 Ubuntu、Fedora、Debian、Red Hat Enterprise Linux 等,它们针对不同的用户和用途进行了优化。Linux 在服务器、嵌入式系统和个人电脑上都有广泛的应用。
4. Android:
由谷歌公司开发的基于Linux内核的移动操作系统,主要用于智能手机和平板电脑。Android 是一个高度定制化的系统,允许设备制造商和开发者创建独特的用户体验。
5. iOS:
由苹果公司开发的移动操作系统,专为iPhone、iPad和iPod Touch设计。iOS 以其安全性、稳定性和流畅的用户体验而闻名。
6. Chrome OS:
由谷歌公司开发的基于Linux的操作系统,主要用于Chromebook笔记本电脑。Chrome OS 以Chrome浏览器为核心,强调云服务和网络应用。
等等
什么是进程?
顾名思义,进程就是正在执行的应用程序。
右键点击任务栏,选择“任务管理器”,这里就可以看到电脑上的进程信息。
而对一个应用程序而言,无非就两种状态
(1)没有运行时就是.exe文件,放在硬盘上的。
(2)运行的时候,.exe就会被加载到内存里,CPU执行里面包含的指令。
进程管理
对于大量的不同程序的进程,首先通过 结构体/类 将进程的属性给描述出来。
一般使用结构体,同时也把描述进程信息的结构体叫做 进程控制块 (PCB)。
而将不同的PCB串到一起,可以简单认为用链表去实现基本的增删改查。
进程的调度
关键在于四个字-> “分时复用”
通俗点讲就是,CPU运行进程1,一会子后,又跑去运行进程2,又一会,跑去运行进程3,又一会,跑去继续执行进程1等等。但是CPU的运行速度很快,快到肉眼无法察觉,所以就觉得在同时运行啦~
当然了这是对于单核来讲是这样---在宏观的角度,也叫做“并发执行”,但现在都是多核了,每个核心都可以这样,于是在微观角度这叫做“并行执行”。
进程状态
就绪状态:随时都可以被调度到CPU上执行指令的状态。
阻塞状态:无法随时都可以被调度到CPU上执行指令的状态,因为其他一些工作。
其实在之前的编程语言中早就见识过了,在等待控制台输入时,进程就处于阻塞状态。比如C语言的scanf、Java里面的Scanner等等。
进程优先级
这个也好理解,就是不同的进程执行顺序的不同,就要看进程之间的优先级了。
进程的上下文
前面讲到分时复用的时候就提到,再次执行进程1的时候就不再重新执行进程1,而是沿着上次执行的结果继续往后执行。而每个进程上次执行的中间结果保存到CPU的寄存器(属于控制器的一种)中,那些中间结果就称为上下文。
通俗点就是,写作业(进程1)的时候写了一会,但突然肚子疼,在计算题的时候(写作业时的中间结果)停住了上厕所(进程2)去,回来的时候便是直接从计算题开始继续写,而不是从头开始。
进程的记账信息
首先因为进程的优先级不同,会使得不同的进程占用的资源差距会越来越大,于是操作系统为了更好地性能优化,于是对每个进程所占资源,在CPU上执行的时间等信息进行统计,这就是记账信息。
看到最后,如果觉得文章写得还不错,希望可以给我点个小小的赞,您的支持是我更新的最大动力