【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)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

消融效果

消融效果是模拟物体逐渐从屏幕上消失或溶解的过程,它通常利用噪声纹理实现,使物体按照某种规则逐渐透明或完全不可见。这种效果常用于: 角色死亡、传送场景、 魔法消失,比如燃烧、消失等 1、基本原理 通过对比噪声纹理值与消融进…

java后端之事务管理

Transactional注解:作用于业务层的方法、类、接口上,将当前方法交给spring进行事务管理,执行前开启事务,成功执行则提交事务,执行异常回滚事务 spring事务管理日志: 默认情况下,只有出现Runti…

【Paper Tips】随记2-word版快速删除某字符

写paper时随心记录一些对自己有用的skills与tips。 文章目录 一、待解决问题1.1 问题描述1.2 解决方法 二、方法详述2.1 必要说明2.2 应用步骤2.2.1 CtrlH一键全文替换2.2.2 录制宏 三、疑问四、总结 一、待解决问题 1.1 问题描述 word中粘贴部分文字时,格式不对时…

vite环境变量处理

环境变量: 会根据当前代码环境产生值的变化的变量就叫做环境变量 代码环境: 开发环境测试环境预发布环境灰度环境生产环境 举例: 百度地图 SDK,小程序的SDK APP_KEY: 测试环境和生产环境还有开发环境是不一样的key 开发环境: 110 生产环境:111 测试环境: 112 我们去请求第三…

使用JavaScript实现猜数字小功能

引言: 在学习编程的过程中,通过实际的小项目来巩固知识是非常有效的方法。今天,我们将使用 JavaScript 来实现一个简单的猜数字游戏。这个游戏不仅能让我们熟悉 JavaScript 的基本语法,还能锻炼我们的逻辑思维能力。 游戏规则 …

数据结构——概念与时间空间复杂度

目录 前言 一相关概念 1什么是数据结构 2什么是算法 二算法效率 1如何衡量算法效率的好坏 2算法的复杂度 三时间复杂度 1时间复杂度表示 2计算时间复杂度 2.1题一 2.2题二 2.3题三 2.4题四 2.5题五 2.6题六 2.7题七 2.8题八 四空间复杂度 1题一 2题二 3…

【转帖】eclipse-24-09版本后,怎么还原原来版本的搜索功能

【1】原贴地址:eclipse - 怎么还原原来版本的搜索功能_eclipse打开类型搜索类功能失效-CSDN博客 https://blog.csdn.net/sinat_32238399/article/details/145113105 【2】原文如下: 更新eclipse-24-09版本后之后,新的搜索功能(CT…

Django基础之ORM

一.前言 上一节简单的讲了一下orm,主要还是做个了解,这一节将和大家介绍更加细致的orm,以及他们的用法,到最后再和大家说一下cookie和session,就结束了全部的django基础部分 二.orm的基本操作 1.settings.py&#x…

单片机-STM32 IIC通信(OLED屏幕)(十一)

一、屏幕的分类 1、LED屏幕: 由无数个发光的LED灯珠按照一定的顺序排列而成,当需要显示内容的时候,点亮相关的LED灯即可,市场占有率很高,主要是用于户外,广告屏幕,成本低。 LED屏是一种用发光…

纯css实现div宽度可调整

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>纯css实现div尺寸可调整</title><style…

国产编辑器EverEdit - 输出窗口

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

小游戏源码开发搭建技术栈和服务器配置流程

近些年各种场景小游戏开发搭建版本层出不穷,山东布谷科技拥有多年海内外小游戏源码开发经验&#xff0c;现为从事小游戏源码开发或游戏运营的朋友们详细介绍小游戏开发及服务器配置流程。 一、可以对接到app的小游戏是如何开发的 1、小游戏源码开发的需求分析&#xff1a; 明…

Linux C\C++编程-文件位置指针与读写文件数据块

【图书推荐】《Linux C与C一线开发实践&#xff08;第2版&#xff09;》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践&#xff08;第2版&#xff09;&#xff08;Linux技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 Linu…

一文简单回顾复习Java基础概念

还是和往常一样&#xff0c;我以提问的方式回顾复习&#xff0c;今天回顾下Java小白入门应该知道的一些基础知识 Java语言有哪些特点呢&#xff1f; Java语言的特点有&#xff1a; 面向对象&#xff0c;主要是封装、继承、多态&#xff1b;平台无关性&#xff0c;“一次编写…

Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)

redis实现查询缓存的业务逻辑 service层实现 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 现查询redis内有没有数据String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的数…

神经网络|(四)概率论基础知识-古典概型

【1】引言 前序学习了线性回归的基础知识&#xff0c;了解到最小二乘法可以做线性回归分析&#xff0c;但为何最小二乘法如此准确&#xff0c;这需要从概率论的角度给出依据。 因此从本文起&#xff0c;需要花一段时间来回顾概率论的基础知识。 【2】古典概型 古典概型是我…

【C++】特殊类设计、单例模式与类型转换

目录 一、设计一个类不能被拷贝 &#xff08;一&#xff09;C98 &#xff08;二&#xff09;C11 二、设计一个类只能在堆上创建对象 &#xff08;一&#xff09;将构造函数私有化&#xff0c;对外提供接口 &#xff08;二&#xff09;将析构函数私有化 三、设计一个类只…

微服务网关鉴权之sa-token

目录 前言 项目描述 使用技术 项目结构 要点 实现 前期准备 依赖准备 统一依赖版本 模块依赖 配置文件准备 登录准备 网关配置token解析拦截器 网关集成sa-token 配置sa-token接口鉴权 配置satoken权限、角色获取 通用模块配置用户拦截器 api模块配置feign…

16.好数python解法——2024年省赛蓝桥杯真题

问题描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位…)上的数字是奇数,偶数位(十位、千位、十万位…)上的数字是偶数,我们就称之为“好数”。 给定一个正整数N,请计算从1到N一共有多少个好数。 输入格式 一个整数N。 输出格式 一个整数代表答案。 样例输入 1 …

2025年数学建模美赛 A题分析(2)楼梯使用频率数学模型

2025年数学建模美赛 A题分析&#xff08;1&#xff09;Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析&#xff08;2&#xff09;楼梯磨损分析模型 2025年数学建模美赛 A题分析&#xff08;3&#xff09;楼梯使用方向偏好模型 2025年数学建模美赛 A题分…