【JavaEE】-- 计算机是如何工作的
文章目录
- 1. 冯诺依曼体系(VonNeumann Architecture)
- 2. CPU 基本工作流程
- 2.1 寄存器(Register)和 内存(RAM)
- 2.2 控制单元 CU(ControlUnit)
- 2.3 指令(Instruction)
- 3. 操作系统(OperatingSystem)
- 3.1 操作系统的定位
- 3.2 什么是进程/任务(Process/Task)
- 3.3 进程控制块抽象(PCB Process Control Block)
- 3.4 内存分配-内存管理(Memory Manage)
- 3.5 进程间通信(InterProcessCommunication)
话不多说,我们就不扯什么计算机发展史了,感兴趣的可以自行百度。我们直接进入正题了。
1. 冯诺依曼体系(VonNeumann Architecture)

• CPU(中央处理器):由运算器和控制器组成,CPU是电脑最核心的部分。
- 运算器:执行指令完成计算工作。
- 控制器:协调指令执行顺序。
在这里插入图片描述
• 存储器:分为外存和内存,用于存储数据(使用二进制方式存储)
• 输入设备:用户给计算机发号施令的设备(键盘、鼠标、扫描仪…)
• 输出设备:计算机个用户汇报结果的设备(显示器、音响、打印机).
针对存储空间:硬盘>内存>CPU
针对数据访问速度:CPU>内存>硬盘
拜见两位计算机祖师爷–冯诺依曼 && 图灵
2. CPU 基本工作流程
当今两大CPU巨头:英特尔公司和AMD公司。
现代CPU的主要指标:
这是我的电脑CPU,以我的电脑为例。
我们主要看下面这些部分:
- 基准速度(也叫基频):2.40GHz(G相当于10^9 10亿)表示此时这个CPU每秒进行24亿次计算。
- 速度(加速频率):2.42GHz 。
- 内核(核心数):CPU 中实际的物理处理单元。每个内核都可以独立地执行指令和处理数据。
- 逻辑处理器:辑处理器是操作系统和应用程序所看到的处理单元。在现代 CPU 中,通过超线程(Hyper - Threading)技术可以将一个物理核心模拟成两个逻辑处理器。
逻辑处理器数量 = 内核数量 × 每个内核通过超线程模拟出的逻辑处理器数量。
我的笔记本电脑中的核心数有14个,但是显示我的逻辑处理器不是28个,而是20个。这代表着并不是所有的内核都开启了超线程技术或者超线程技术没有完全将每个内核模拟成两个逻辑处理器。
频率和核心数都是影响CPU性能的重要指标。
2.1 寄存器(Register)和 内存(RAM)
寄存器属于存储器的一部分,只不过是封装到了CPU里面。CPU中使用比较频繁的值,或者运算过程中生成的中间值,都会存放在寄存器中。
| 硬盘 | 内存 | 寄存器 | |
|---|---|---|---|
| 容量 | 最大 | 最小 | |
| 速度 | 最慢 | 最快 | |
| 造价 | 最低 | 最高 |
CPU 中寄存器的数量因架构、性能需求和应用场景等因素而异,从十几个到几十个不等。
2.2 控制单元 CU(ControlUnit)
控制单元负责指令的调度,哪些应该让CPU执行。负责指挥和协调计算机各个部件之间的工作,确保计算机能够有条不紊地执行指令。
2.3 指令(Instruction)
计算机的主要任务就是执行命令。
电脑中我们安装好的App,其实就是编译好的一堆指令。
指令本身也是一个数字,用二进制的形式保存在内存的某个区域中。
3. 操作系统(OperatingSystem)
操作系统是⼀组做计算机资源管理的软件的统称。⽬前常⻅的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。
3.1 操作系统的定位

操作系统有两个基本功能:
1.防止硬件被时空的应用程序滥用。
2.向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。
操作系统如何管理进行中的程序?
- 对下(硬件)管理各种计算机设备。
- 对上(软件)为软件提供一个稳定的运行环境。
3.2 什么是进程/任务(Process/Task)
进程是操作系统对⼀个正在运⾏的程序的⼀种抽象,换⾔之,可以把进程看做程序的⼀次运⾏过程;同时,在操作系统内部,进程⼜是操作系统进行资源分配的基本单位。

*每一个运行的程序在操作系统里都对应着一个进程。*程序安装完之后,在系统中都是静态文件存放在磁盘中,双击之后,从磁盘加载到内存,系统就会创建一个这个程序对应的进程,这时程序就运行起来了。
进程可以分为:前台进程(用户执行的进程);后台进程(系统创建的进程)。操作系统本身也是一个程序,它也创建了很多进程。
3.3 进程控制块抽象(PCB Process Control Block)

计算机同时可以跑很多个进程(几百个),这时就需要对进程进行管理。
描述
我们使用C语言中的结构体;Java中的类定义进程的核心属性。
-
PID

PID相当于数据表中的逐渐,也相当于人的身份证号,在操作系统中全局唯一。 -
内存指针
当程序运行时,操作系统从磁盘中加载程序文件到内存中,在程序运行之前就要在内存分配一片有效的空间。在内存中的数据宇指令最终被CPU执行和读取。 -
文件描述符表
当程序运行起来之后需要访问一些文件资源,这时操作系统就负责给程序分配这些资源,程序需要的每个文件就被称为文件描述符,多个文件母爱书复合在一起,就组成了文件描述符表,类似于一个集合。
默认每个程序运行时都会分配三个文件描述符:
- 标准输入:System.in
- 标准输出:System.out
- 标准错误:System.error
进程调度:
- 进程状态
- 运行状态:当前在CPU上,正在执行指令。
- 就绪状态:排队中,随叫随到,随时可以上CPU运行。
一般将运行状态和就绪状态理解为一个状态。
- 阻塞状态:当前不适合到CPU上执行。

当前电脑上有百十个进程,但是只有20个逻辑处理器,也就意味着可以通过是处理20个指令。
一个逻辑处理器,并不是一次把一个进程执行完再去执行另一个进程,而是一个进程执行一会就让它休息一会,再去执行另一个进程,这样不停的轮换着执行,由于CPU的频率很高,轮换的速度也很快,人察觉不到而已。
并发与并行
- 进程优先级
哪个进程有更多机会到CPU上运行,优先级就越高,机会就越大。 - 进程的上下文
进程调度的过程中,进程一会失去了CPU,一会又回到CPU上继续执行,回到CPU之后要沿着上次的状态继续执行,而不是从头开始。
失去CPU时,进程的中间值(当前执行的指令是什么,下一条指令是什么,中间产生的一些变量):从寄存器 —> 内存中。
回到CPU中时,从内存中 —> 寄存器。
保存上下文–读档, 回复上下文–存档。
7. 进程的记账信息
统计功能:统计每个进程在CPU上运行了多久,哪些进程多长时间没有上CPU运行了。
进程的组织方式:
通过一个双向链表组织PCB
- 创建一个进程—把PCB加入到链表中。
- 销毁一个进程—把PCB从链表中删除。
- 查看所有的进程—遍历双向链表。
3.4 内存分配-内存管理(Memory Manage)

操作系统为了防止野指针,使用了虚拟内存来规避这个现象,通过内存管理单元(MMU)的方式来实现。

3.5 进程间通信(InterProcessCommunication)

相关文章:
【JavaEE】-- 计算机是如何工作的
文章目录 1. 冯诺依曼体系(VonNeumann Architecture)2. CPU 基本工作流程2.1 寄存器(Register)和 内存(RAM)2.2 控制单元 CU(ControlUnit)2.3 指令(Instruction) 3. 操作系统(OperatingSystem)3.1 操作系统的定位3.2 什么是进程/任务(Process…...
政安晨的AI大模型训练实践三:熟悉一下LF训练模型的WebUI
政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 目录 启动WebUI 微调模型 LLaMA-Factory 支持通过 WebUI 零代码微调大语言模型。 启动Web…...
基于微信小程序的网上订餐管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
科技快讯 | 理想官宣:正式收费!WeChat 港币钱包拓宽商户网络;百川智能发布深度思考模型Baichuan-M1-preview
理想官宣:正式收费! 1月23日,理想汽车宣布,理想超充站超时占用费正式运营。触发超时占用费的条件为充电结束后15分钟内未将充电枪插回充电桩,收费标准为2元/分钟,单次封顶200元。理想汽车将在充电结束的四个…...
【java数据结构】map和set
【java数据结构】map和set 一、Map和Set的概念以及背景1.1 概念1.2 背景1.3 模型 二、Map2.1 Map说明2.2 Map的常用方法 三、Set3.1 Set说明3.2 Set的常用方法 四、Set和Map的关系 博客最后附有整篇博客的全部代码!!! 一、Map和Set的概念以及…...
飞牛NAS安装过程中的docker源问题
采用CloudFlare进行飞牛NAS的远程访问 【安全免费】无需公网IP、端口号,NAS外网访问新方法_网络存储_什么值得买 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF {"registry-mirrors": ["https://docker.1panel.dev&quo…...
Linux(Centos 7.6)命令详解:dos2unix
1.命令安装 dos2unix 命令默认情况下是没有安装的,如配置yum源,可通过yum安装命令如下: yum install dos2unix dos2unix 有一个对立的命令unix2dos,也需要yum安装,一般使用不到这里不做过多解释,具体参数…...
Linux MySQL离线安装
一、准备工作 1. 下载MySQL安装包 访问MySQL官方网站,选择适合您Linux系统的MySQL版本进行下载。通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包,例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz。将下载好的安装包拷贝到Linux服务器的某…...
声明,这些内容和我无关
声明,下面这些内容和我无关,不是我写的,买了我不负责答疑,也不负责其他相关。 一下内容都不是我写的,系统自己加上去的,和我无关,我不负责答疑也不负责其他。...
ISO:摄影中的光线敏感度密码
目录 一、ISO 究竟是什么 二、ISO 与光线的关系 (一)低 ISO 在充足光线下的表现 (二)高 ISO 在光线不足时的作用 三、ISO 对画质的影响 (一)低 ISO 带来的优质画质 (二)高 IS…...
长短期记忆网络LSTM
视频链接 1.LSTM与RNN的区别 RNN想把所有信息都记住,不管是有用的信息还是没用的信息,并且有梯度爆炸或者梯度消失的问题 而LSTM设计了一个记忆细胞,具备选择记忆功能,可以选择记忆重要信息,过滤掉噪声信息࿰…...
2. 握手问题python解法——2024年省赛蓝桥杯真题
原题传送门:1.握手问题 - 蓝桥云课 问题描述 小蓝组织了一场算法交流会议,总共有 50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7 个人,…...
poi在word中打开本地文件
poi版本 5.2.0 方法1:使用XWPFFieldRun(推荐) 比如打开当前相对路径的aaaaa.docx XWPFFieldRun run paragraph.createFieldRun();CTRPr ctrPr run.getCTR().addNewRPr();CTFonts font ctrPr.addNewRFonts();// 设置字体font.setAscii(&quo…...
国产编辑器EverEdit - 输出窗口
1 输出窗口 1.1 应用场景 输出窗口可以显示用户执行某些操作的结果,主要包括: 查找类:查找全部,筛选等待操作,可以把查找结果打印到输出窗口中; 程序类:在执行外部程序时(如:命令窗…...
整数的个数(信息学奥赛一本通-1067)
【题目描述】 给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。 【输入】 输入有两行:第一行包含一个正整数k,第二行包含k个正整数…...
ios swift画中画技术尝试
继上篇:iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画,起初是看到后台模式里有一个picture in picture,去了解了后发现这个就是小窗口视频播放,方便用户执行多任务。看小窗口视频的同时,可以作其他的事情…...
MyBatis 写法
MyBatis 高效使用技巧 常见 MyBatis 使用技巧,这些技巧有助于简化数据库操作,提高开发效率,并增强系统的性能。 1. 动态 SQL 动态 SQL 让开发者能够依据参数灵活地构建 SQL 语句,避免了手动拼接字符串带来的复杂性和错误风险。…...
Three城市引擎地图插件Geo-3d
一、简介 基于Three开发,为Three 3D场景提供GIS能力和城市底座渲染能力。支持Web墨卡托、WGS84、GCJ02等坐标系,支持坐标转换,支持影像、地形、geojson建筑、道路,植被等渲染。支持自定义主题。 二、效果 三、代码 //插件初始化…...
【贪心算法】洛谷P1106 - 删数问题
2025 - 01 - 22 - 第 46 篇 【洛谷】贪心算法题单 - 【贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 目录 文章目录 目录P1106 删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路代码 P1106 删数问题 题目描述 键盘输入一个高…...
WPS计算机二级•幻灯片的页面布局
听说这是目录哦 设置PPT页面尺寸🖼️PPT母版怎么用🎨巧用PPT母版统一修改 字体颜色与背景🎡如何快速更改应用 幻灯片中的不同母版👑能量站😚 设置PPT页面尺寸🖼️ 在制作PPT时,我们需要先选定一…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...








