当前位置: 首页 > news >正文

【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是电脑最核心的部分。

  1. 运算器:执行指令完成计算工作。
  2. 控制器:协调指令执行顺序。

!
在这里插入图片描述

• 存储器:分为外存和内存,用于存储数据(使用二进制方式存储)

在这里插入图片描述

• 输入设备:用户给计算机发号施令的设备(键盘、鼠标、扫描仪…)

• 输出设备:计算机个用户汇报结果的设备(显示器、音响、打印机).

针对存储空间:硬盘>内存>CPU
针对数据访问速度:CPU>内存>硬盘

拜见两位计算机祖师爷–冯诺依曼 && 图灵

在这里插入图片描述
在这里插入图片描述

2. CPU 基本工作流程

当今两大CPU巨头:英特尔公司和AMD公司。

现代CPU的主要指标:

这是我的电脑CPU,以我的电脑为例。
在这里插入图片描述

我们主要看下面这些部分:

在这里插入图片描述

  1. 基准速度(也叫基频):2.40GHz(G相当于10^9 10亿)表示此时这个CPU每秒进行24亿次计算。
  2. 速度(加速频率):2.42GHz 。
  3. 内核(核心数):CPU 中实际的物理处理单元。每个内核都可以独立地执行指令和处理数据。
  4. 逻辑处理器:辑处理器是操作系统和应用程序所看到的处理单元。在现代 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.向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。

操作系统如何管理进行中的程序?

  1. 对下(硬件)管理各种计算机设备。
  2. 对上(软件)为软件提供一个稳定的运行环境。

3.2 什么是进程/任务(Process/Task)

进程是操作系统对⼀个正在运⾏的程序的⼀种抽象,换⾔之,可以把进程看做程序的⼀次运⾏过程;同时,在操作系统内部,进程⼜是操作系统进行资源分配的基本单位。

在这里插入图片描述
*每一个运行的程序在操作系统里都对应着一个进程。*程序安装完之后,在系统中都是静态文件存放在磁盘中,双击之后,从磁盘加载到内存,系统就会创建一个这个程序对应的进程,这时程序就运行起来了。

进程可以分为:前台进程(用户执行的进程);后台进程(系统创建的进程)。操作系统本身也是一个程序,它也创建了很多进程。

3.3 进程控制块抽象(PCB Process Control Block)

在这里插入图片描述
计算机同时可以跑很多个进程(几百个),这时就需要对进程进行管理。

描述
我们使用C语言中的结构体;Java中的类定义进程的核心属性。

  1. PID
    在这里插入图片描述
    PID相当于数据表中的逐渐,也相当于人的身份证号,在操作系统中全局唯一。

  2. 内存指针
    当程序运行时,操作系统从磁盘中加载程序文件到内存中,在程序运行之前就要在内存分配一片有效的空间。在内存中的数据宇指令最终被CPU执行和读取。

  3. 文件描述符表
    当程序运行起来之后需要访问一些文件资源,这时操作系统就负责给程序分配这些资源,程序需要的每个文件就被称为文件描述符,多个文件母爱书复合在一起,就组成了文件描述符表,类似于一个集合。

默认每个程序运行时都会分配三个文件描述符:

  1. 标准输入:System.in
  2. 标准输出:System.out
  3. 标准错误:System.error

进程调度:

  1. 进程状态
  • 运行状态:当前在CPU上,正在执行指令。
  • 就绪状态:排队中,随叫随到,随时可以上CPU运行。

一般将运行状态和就绪状态理解为一个状态。

  • 阻塞状态:当前不适合到CPU上执行。

在这里插入图片描述

在这里插入图片描述

  1. 当前电脑上有百十个进程,但是只有20个逻辑处理器,也就意味着可以通过是处理20个指令。

  2. 一个逻辑处理器,并不是一次把一个进程执行完再去执行另一个进程,而是一个进程执行一会就让它休息一会,再去执行另一个进程,这样不停的轮换着执行,由于CPU的频率很高,轮换的速度也很快,人察觉不到而已。

  3. 并发与并行
    在这里插入图片描述

  1. 进程优先级
    哪个进程有更多机会到CPU上运行,优先级就越高,机会就越大。
  2. 进程的上下文
    进程调度的过程中,进程一会失去了CPU,一会又回到CPU上继续执行,回到CPU之后要沿着上次的状态继续执行,而不是从头开始。

失去CPU时,进程的中间值(当前执行的指令是什么,下一条指令是什么,中间产生的一些变量):从寄存器 —> 内存中。
回到CPU中时,从内存中 —> 寄存器。

保存上下文–读档, 回复上下文–存档。
7. 进程的记账信息
统计功能:统计每个进程在CPU上运行了多久,哪些进程多长时间没有上CPU运行了。

进程的组织方式:
通过一个双向链表组织PCB

  1. 创建一个进程—把PCB加入到链表中。
  2. 销毁一个进程—把PCB从链表中删除。
  3. 查看所有的进程—遍历双向链表。

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、端口号&#xff0c;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 命令默认情况下是没有安装的&#xff0c;如配置yum源&#xff0c;可通过yum安装命令如下&#xff1a; yum install dos2unix dos2unix 有一个对立的命令unix2dos&#xff0c;也需要yum安装&#xff0c;一般使用不到这里不做过多解释&#xff0c;具体参数…...

Linux MySQL离线安装

一、准备工作 1. 下载MySQL安装包 访问MySQL官方网站&#xff0c;选择适合您Linux系统的MySQL版本进行下载。通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包&#xff0c;例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz。将下载好的安装包拷贝到Linux服务器的某…...

声明,这些内容和我无关

声明&#xff0c;下面这些内容和我无关&#xff0c;不是我写的&#xff0c;买了我不负责答疑&#xff0c;也不负责其他相关。 一下内容都不是我写的&#xff0c;系统自己加上去的&#xff0c;和我无关&#xff0c;我不负责答疑也不负责其他。...

ISO:摄影中的光线敏感度密码

目录 一、ISO 究竟是什么 二、ISO 与光线的关系 &#xff08;一&#xff09;低 ISO 在充足光线下的表现 &#xff08;二&#xff09;高 ISO 在光线不足时的作用 三、ISO 对画质的影响 &#xff08;一&#xff09;低 ISO 带来的优质画质 &#xff08;二&#xff09;高 IS…...

长短期记忆网络LSTM

视频链接 1.LSTM与RNN的区别 RNN想把所有信息都记住&#xff0c;不管是有用的信息还是没用的信息&#xff0c;并且有梯度爆炸或者梯度消失的问题 而LSTM设计了一个记忆细胞&#xff0c;具备选择记忆功能&#xff0c;可以选择记忆重要信息&#xff0c;过滤掉噪声信息&#xff0…...

2. 握手问题python解法——2024年省赛蓝桥杯真题

原题传送门&#xff1a;1.握手问题 - 蓝桥云课 问题描述 小蓝组织了一场算法交流会议&#xff0c;总共有 50人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7 个人&#xff0c;…...

poi在word中打开本地文件

poi版本 5.2.0 方法1&#xff1a;使用XWPFFieldRun&#xff08;推荐&#xff09; 比如打开当前相对路径的aaaaa.docx XWPFFieldRun run paragraph.createFieldRun();CTRPr ctrPr run.getCTR().addNewRPr();CTFonts font ctrPr.addNewRFonts();// 设置字体font.setAscii(&quo…...

国产编辑器EverEdit - 输出窗口

1 输出窗口 1.1 应用场景 输出窗口可以显示用户执行某些操作的结果&#xff0c;主要包括&#xff1a; 查找类&#xff1a;查找全部&#xff0c;筛选等待操作&#xff0c;可以把查找结果打印到输出窗口中&#xff1b; 程序类&#xff1a;在执行外部程序时(如&#xff1a;命令窗…...

整数的个数(信息学奥赛一本通-1067)

【题目描述】 给定k(1<k<100)个正整数&#xff0c;其中每个数都是大于等于1&#xff0c;小于等于10的数。写程序计算给定的k个正整数中&#xff0c;1&#xff0c;5和10出现的次数。 【输入】 输入有两行&#xff1a;第一行包含一个正整数k&#xff0c;第二行包含k个正整数…...

ios swift画中画技术尝试

继上篇&#xff1a;iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画&#xff0c;起初是看到后台模式里有一个picture in picture&#xff0c;去了解了后发现这个就是小窗口视频播放&#xff0c;方便用户执行多任务。看小窗口视频的同时&#xff0c;可以作其他的事情…...

MyBatis 写法

MyBatis 高效使用技巧 常见 MyBatis 使用技巧&#xff0c;这些技巧有助于简化数据库操作&#xff0c;提高开发效率&#xff0c;并增强系统的性能。 1. 动态 SQL 动态 SQL 让开发者能够依据参数灵活地构建 SQL 语句&#xff0c;避免了手动拼接字符串带来的复杂性和错误风险。…...

Three城市引擎地图插件Geo-3d

一、简介 基于Three开发&#xff0c;为Three 3D场景提供GIS能力和城市底座渲染能力。支持Web墨卡托、WGS84、GCJ02等坐标系&#xff0c;支持坐标转换&#xff0c;支持影像、地形、geojson建筑、道路&#xff0c;植被等渲染。支持自定义主题。 二、效果 三、代码 //插件初始化…...

【贪心算法】洛谷P1106 - 删数问题

2025 - 01 - 22 - 第 46 篇 【洛谷】贪心算法题单 - 【贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 目录 文章目录 目录P1106 删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路代码 P1106 删数问题 题目描述 键盘输入一个高…...

WPS计算机二级•幻灯片的页面布局

听说这是目录哦 设置PPT页面尺寸&#x1f5bc;️PPT母版怎么用&#x1f3a8;巧用PPT母版统一修改 字体颜色与背景&#x1f3a1;如何快速更改应用 幻灯片中的不同母版&#x1f451;能量站&#x1f61a; 设置PPT页面尺寸&#x1f5bc;️ 在制作PPT时&#xff0c;我们需要先选定一…...

从入门到精通:HttpClient深度剖析与实战指南

一、引言 1.1 背景引入 在当今数字化时代&#xff0c;网络编程已成为软件开发中不可或缺的一部分。而 HTTP 通信作为网络编程的核心&#xff0c;承担着客户端与服务器之间数据传输的重任。无论是 Web 应用、移动应用&#xff0c;还是分布式系统&#xff0c;HTTP 协议都扮演着…...

IoTDB 2025 春节值班与祝福

2025 春节快乐 瑞蛇迎吉庆&#xff0c;祥光映华年&#xff0c;2025 春节已近在眼前。社区祝福 IoTDB 的所有关注者、支持者、使用者 2025 新年快乐&#xff0c;“蛇”来运转&#xff01; IoTDB 团队的春节放假时间为 2025 年 1 月 27 日至 2 月 4 日&#xff0c;1 月 25 日、26…...

Java 大视界 -- Java 大数据中的隐私增强技术全景解析(64)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

【2024年华为OD机试】 (A卷,100分)- 整理扑克牌(JavaScriptJava PythonC/C++)

一、问题描述 题目描述 给定一组数字,表示扑克牌的牌面数字,忽略扑克牌的花色,请按如下规则对这一组扑克牌进行整理: 步骤1:分组形成组合牌 炸弹:当牌面数字相同张数大于等于4时。葫芦:3张相同牌面数字 + 2张相同牌面数字,且3张牌与2张牌不相同。三张:3张相同牌面数…...

周末总结(2024/01/25)

工作 人际关系核心实践&#xff1a; 要学会随时回应别人的善意&#xff0c;执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己&#xff0c;抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内&#xff0c;职场社交不要放在5min以外 职场的人际关系在面对利…...

Apache Flink 概述学习笔记

一、引言 在大数据处理领域&#xff0c;Apache Flink 是一个极具影响力的开源流批一体化计算框架&#xff0c;它以其独特的架构和强大的功能&#xff0c;为大规模数据处理提供了高效、灵活的解决方案。 二、基本概念 Flink 是什么&#xff1a;Flink 是一个分布式流批处理框架…...

双足机器人开源项目

双足机器人&#xff08;也称为人形机器人或仿人机器人&#xff09;是一个复杂的领域&#xff0c;涉及机械设计、电子工程、控制理论、计算机视觉等多个学科。对于想要探索或开发双足机器人的开发者来说&#xff0c;有许多开源项目可以提供帮助。这些项目通常包括硬件设计文件、…...

Linux 部署 Java 项目:Tomcat、Redis、MySQL 教程

在 Linux 服务器上部署 Java 项目通常需要配置应用服务器&#xff08;如 Tomcat&#xff09;、数据库&#xff08;如 MySQL&#xff09;和缓存服务器&#xff08;如 Redis&#xff09;。本文将详细介绍如何在 Linux 环境中部署一个 Java 项目&#xff0c;涵盖 Tomcat、Redis 和…...

Django 多环境配置实战指南

在现代 Web 开发中,一个项目通常需要在多个环境中运行,例如开发环境、测试环境和生产环境。每个环境的配置可能不同,比如数据库连接、调试模式、密钥等。为了确保项目在不同环境中的灵活性和安全性,我们需要合理地管理多环境配置。 本文将详细介绍如何在 Django 项目中实现…...

【C++高并发服务器WebServer】-6:信号

本文目录 信号的概念1.1 core文件1.2 kill命令1.3 alarm函数1.4 setitimer调用1.5 signal捕捉信号1.6 信号集1.7 内核实现信号捕捉的过程1.8 sigaction1.9 sigchld 信号的概念 信号是 Linux 进程间通信的最古老的方式之一&#xff0c;是事件发生时对进程的通知机制&#xff0c…...