计算机的核心工作机制

news2024/9/22 13:31:31

前言

本篇不介绍代码,主要是理解计算机的一些核心工作机制。想了解更多请跳转-->【【计算机科学速成课】[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上执行的时间等信息进行统计,这就是记账信息。

看到最后,如果觉得文章写得还不错,希望可以给我点个小小的赞,您的支持是我更新的最大动力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1911112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端使用Vue和Element实现可拖动弹框效果,且不影响底层元素操作(可拖拽的视频实时播放弹框,底层元素可以正常操作)

简述:在前端开发中,弹框和实时视频播放是常见的需求。这里来简单记录一下,如何使用Vue.js和Element UI实现一个可拖动的弹框,并在其中播放实时视频。同时,确保在拖拽弹框时,底层元素仍然可以操作。 一、项目…

用python生成词频云图(python实例二十一)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.词频云图 3.1 代码构思 3.2 代码实例 3.3 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性&a…

B站启用adblock插件导致无法看到评论

1 进入adblock插件的设置页面 2 进入自定义规则页面,编辑过滤规则 删除掉这一项 www.bilibili.com##P 然后,点击保存; 刷新页面就可以看到B站评论区的评论了。

可以拖拽的富文本编辑器(VueDragResize,quill-editor)

该功能实现一个帮助文档的展示和编辑功能,默认进去只能查看帮助文档的内容,点击编辑可以进行富文本编辑器的编辑功能。 出现的问题1.如何隐藏富文本编辑的工具栏并且禁止编辑 //隐藏工具栏this.toolbar this.$refs.myTextEditor.quill.getModule(toolb…

化妆品3D虚拟三维数字化营销展示更加生动、真实、高效!

随着人们越来越追求高速便捷的生活工作方式,企业在营销市场也偏国际化,借助VR全景制作技术,将企业1:1复刻到云端数字化世界,能带来高沉浸式的逼真、震撼效果。 通过我们独特的漫游点自然场景过渡技术,您将置身于一个真…

开发个人Go-ChatGPT--5 模型管理 (一)

开发个人Go-ChatGPT–5 模型管理 (一) 背景 开发一个chatGPT的网站,后端服务如何实现与大模型的对话?是整个项目中开发困难较大的点。 如何实现上图的聊天对话功能?在开发后端的时候,如何实现stream的响应呢?本文就…

JRE、JVM、JDK分别是什么。

JDK JDK的英文全称是Java Development Kit。JDK是用于制作程序和Java应用程序的软件开发环境。JDK 是 Java 开发工具包,它是 Java 开发者用来编写、编译、调试和运行 Java 程序的集合。JDK 包括了 Java 编译器(javac)、Java 运行时环境&…

SLAM相关知识

目前在SLAM上的传感器主要分为两大类:激光雷达和摄像头 激光雷达:单线、多线 摄像头:单目相机(普通USB相机)、双目相机(2个普通的USB相机)、单目结构光(深度相机)、双目…

编辑器 goland 和 visual studio code

goland 编辑器做的真是太好了,面向 go 代码的定制设计,但它是收费软件,价格还贵的超出了自己的经济能力范围。有时候想打几行代码,却没有趁手的兵器,真是难受。但求助免费破解版吧,又需要关注公众号&#x…

用流式数据库解决「自动化检测服务器性能异常」难题

对 DevOps 团队来说,检测大量服务器的性能异常并尽快响应一直是个挑战。他们设置了各种指标来监控服务器性能,但诊断性能问题复杂且耗时,因为诊断数据的量可能非常大。越来越多的人认为这个过程应该自动化。但怎么做呢? 流式系统…

@Slf4j idea标红Cannot resolve symbol ‘log‘

一、背景 时间久了没有应用idea,打开工程后项目 log 提示报红,未能解析,Cannot resolve symbol log ,Slf4j 注解正常,应用的lombok插件。 检查lombok插件安装情况,发现未安装,重新安装重启idea后正常。 二…

pdf容量大小怎么改,pdf容量太大怎么变小

在数字化时代,pdf文件因其稳定性和跨平台兼容性而成为工作、学习和生活中不可或缺的文件格式。然而,随着文件内容的丰富,pdf文件的体积也日益增大,给存储和传输带来了不少困扰。本文将为你详细介绍多种实用的pdf文件压缩方法&…

怎样在 PostgreSQL 中优化对 UUID 数据类型的索引和查询?

文章目录 一、UUID 数据类型概述二、UUID 索引和查询的性能问题三、优化方案(一)选择合适的索引类型(二)压缩 UUID(三)拆分 UUID(四)使用覆盖索引(五)优化查询…

AutoHotKey自动热键(五)添加WINDOWS秘笈指令-输入瞬间启动功能

在AUTOHOTKEY的使用中,不仅仅可以监听组合热键,还可以监听正常文本击键录入,这是另一种监听方式,比如依次击键jsq之后直接弹出<计算器>工具,或者依次击键sj之后直接输出135****5564的手机号码,等等,这就是autohotkey的录入击键监听,以双冒号为开头:: 因这种录入监听像极了…

Vue3使用ref绑定组件获取valueRef.value为null的解决

问题&#xff1a; onMounted(() > {nextTick(()>{console.log(treeselectRef, treeselectRef.value);console.log(treeselectRef.value, treeselectRef.value);}); });输出&#xff1a; 查看绑定和定义都没有问题&#xff0c;还是获取不到 解决&#xff1a;使用getCur…

transformer网络学习

Transformer encoder-decoder模型之间共享的是Encoder最后一层输出的hidden-state。 GitHub - huggingface/transformers: &#x1f917; Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX. Bert2Bert中&#xff0c;Encoder的hidden-state同…

变阻器的分类

变阻器作为用于调节电路中电阻值的电子元件&#xff0c;在电子电路中具有广泛的应用。根据不同的工作原理和结构形式&#xff0c;变阻器可以分为多种类型。以下是对变阻器分类的详细阐述&#xff1a; 一、按工作原理分类 电位器是一种通过滑动端位置调节电阻值的变阻器&#x…

移动公厕有无人显示屏为何多采用RS485、IO信号通讯方式

在户外活动、临时集会或是应急情况下&#xff0c;移动公厕作为解决人们生理需求的重要设施&#xff0c;发挥着不可替代的作用。然而&#xff0c;随着人口密度的增加和对公共卫生要求的提高&#xff0c;如何确保移动公厕的高效利用和良好维护&#xff0c;成为了组织者和管理者面…

大模型2024的问题在哪里?

自从大模型吹响新一轮技术革命的号角后&#xff0c;整个行业各个层次都面临大模型带来的范式转换。我今年在 4 月份上海举办的全球机器学习技术大会上演讲时曾提出&#xff0c;大模型为计算产业带来了计算范式、开发范式、交互范式的三大范式改变。今天是软件研发技术大会&…