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

javaEE--计算机是如何工作的-1

目录

一.计算机的组成:

各组件的功能:

衡量cpu好坏的标准:

二.指令(instruction)

三.操作系统Operating System

四.进程/任务process/tesk

五.进程在系统中如何管理

1.进程在系统中的管理,从两个角度来分类:

2.进程控制块PCB(Process Control Block))

3.PCB的属性

(1).pid:进程的身份标识

(2).内存指针:进程持有的内存资源

(3).文件描述符表:进程持有的硬件资源

六.进程调度

1.单任务操作系统

2.分时复用

3.并发

4.并行

七.PCB中的属性

1.进程的状态

2.进程的优先级

3.进程的上下文

4.进程的记账信息 

八.内存分配(内存管理)(Memory Manege)

九.进程间通信(Inter process communication)



一.计算机的组成:

cup 存储器 输入设备 输出设备

现代的计算机,⼤多遵守冯诺依曼体系结构

各组件的功能:

能和cpu相提并论的:氢弹...

针对存储空间:硬盘>内存>>CPU

针对存储速度:cpu>内存>硬盘

衡量cpu好坏的标准:

1.主频:可以理解成1秒钟,cpu可以执行多少条指令(19亿条).

现在的主频都在时时刻刻变化着,根据当前的负载程度,动态变化着

2.核心数:一个能完成完整计算机的整体,有很多的计算单元构成

最开始的cpu都是单核的,随着集成度的提高,cpu速度的提高,发现越来越难,

之后就出现了多核cpu:1核,2核,4核,8核....128核...

二.指令(instruction)

所谓指令,即指导CPU进⾏⼯作的命令,主要有操作码+被操作数组成。

cpu上能够执行任务的最小单元

指令表:

一个cpu在设计的时候,就会提供一些可以进行的操作(一些指令)

(你给cpu发布一个任务,就需要把每一步的细节都告诉他,他才能去执行)

三.操作系统Operating System

操作系统是⼀组做计算机资源管理的软件的统称。

⽬前常⻅的操作系统有:Windows系列、Unix系 列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等

这些操作系统,本质上都是一些软件,功能是用来管理的:对下管理所有的硬件设备,对上给软件提供稳定的运行环境

操作系统的定位:

对硬件的管理:

对软件的管理:

一个操作系统包含内核和配套的应用程序,内核是操作系统最核心的功能,硬件的驱动程序,都是在系统内核中执行的,内核需要给很多应用程序提供支持

四.进程/任务process/tesk

操作系统内核中涉及到很多核心的概念,进程就是其中的一个

一个已经跑起来的程序,就叫进程

这些都是进程:

每个进程都是系统资源分配的基本单位(就好比疫情期间的社会就好比系统资源,每个家庭就是一个进程,社会以家庭为单位分配食物,就是系统为每个进程分配资源)

五.进程在系统中如何管理

提到管理,只有某个东西很多,内容很复杂,才需要管理.

(就好比一个公司,规模小时,只有几个人,就不需要管理,当达到一定的规模时,就需要将每个员工,需要完成的工作...,管理起来)

1.进程在系统中的管理,从两个角度来分类:

1.描述:使用类/结构体,将要管理的对象 的各个属性都表示出来

2.组织:使用数据结构,把这些表示出来的对象 都串联起来(便于后面的增删查改)

2.进程控制块PCB(Process Control Block))

系统中有一个专门的结构体,用来描述进程的属性,这个结构体就称为"进程控制块"PCB.

使用PCB来描述进程的属性,一个进程可以用一个或对个PCB来表示.

创建新进程就是把PCB插入到链表中,

删除进程,就是把PCB从链表中删除并释放,

展示进程列表,就是遍历链表的每个节点

3.PCB的属性

要想更详细的了解进程,就要熟悉PCB里面的属性

(1).pid:进程的身份标识

每个进程都会有一个pid,同一时刻,不同进程之间的pid不同

(2).内存指针:进程持有的内存资源

每个进程在运行的时候,都会分配一定的内存空间,这个进程的内存空间在哪里,是怎么分配的,具体执行什么任务,都是用一组内存指针来进行分配的

要执行的指令:用C语言写的一些代码=>exe文件(包含一些二进制指令)

(3).文件描述符表:进程持有的硬件资源

有很多元素,和文件有关,类似于数据结构中的顺序表这样的结构,和硬盘有关

一个进程也需要涉及到硬盘相关的操作,需要按照文件的方式来操作,当前进程涉及到哪些文件,需要操作哪些文件,就是通过文件描述符表来管理的.

六.进程调度

进程持有的cpu资源是如何体现的?就是通过进程调度

1.单任务操作系统

早期的操作系统,是"单任务操作系统":同一时刻,至有一个进程能运行,要想运行别的进程,只有先退出该进程,才能运行下一个进程.

单任务操作系统就好比演员上台表演,cpu就是舞台,进程就是演员.只有一个舞台,别的演员要想表演,正在舞台上表演的演员要要下台才行

2.分时复用

每个进程轮流进行操作.

3.并发

指系统能够同时处理多个任务的能力。它是一种逻辑上的概念,表示在一段时间内,多个任务都在执行,但并不一定是同时进行的。在并发中,任务按照某种调度策略交替执行,通过时间片轮转或事件驱动等方式来实现任务的切换。并发的目的是提高系统的吞吐量和响应性,以更好地处理多个任务。

4.并行

并行是指系统中同时执行多个任务的能力。它是一种物理上的概念,表示多个任务可以在不同的处理器、核心或计算资源上同时执行。在并行中,任务可以并行地执行,相互之间无需等待。并行的目的是通过同时执行多个任务来加速处理速度,提高系统的计算能力和效率。

平时使用"并发"来代替"并行"和"并发"

七.PCB中的属性

这些属性用来完成进程的调度

1.进程的状态

就绪状态:进程随时准备好,等着去cpu上执行,分为两种情况:

        1.进程正在cpu上执行

        2.进程未在cpu上执行,但时刻准备着去cpu上执行

阻塞状态:某个进程不具备随时上cpu上执行的条件,就是阻塞状态

进程还有很多状态....

2.进程的优先级

多个进程等待cpu的调用,每个进程被调用的机率并不是军等的,

先调度谁,调度多长时间,都是可以调配的,这就是进程的优先级(可以通过系统的api设置)

3.进程的上下文

进程上下文实际上是进程执行活动全过程的静态描述.支持进程调度的重要属性,相当于游戏中的存档和读档

存档:在进程调度出cpu之前,把当前寄存器中的信息单独保存到一个地方

读档:在该进程下次去cpu上执行的时候,把这些寄存器上的信息再恢复回来

把已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文,把正在执行的指令和数据在寄存器和堆栈中的内容称为正文,把待执行的指令和数据在寄存器与堆栈中的内容称为下文

具体的说,进程上下文包括计算机系统中与执行该进程有关的各种寄存器(例如通用寄存器,程序计数器PC,程序状态字寄存器PS等)的值,程序段在经过编译过后形成的机器指令代码集,数据集及各种堆栈值PCB结构。

4.进程的记账信息 

针对每个进程,占用了多长时间的cpu,会进行一个统计,根据统计,进一步调整下一步cpu的调度策略.

八.内存分配(内存管理)(Memory Manege)

这里涉及到的内存分配是非常复杂的,简单的说,就是每个进程的内存.是相互独立,互不干扰的.

通常情况下,进程A是不能直接访问进程B的内存的.

这称为进程间的"独立性".

九.进程间通信(Inter process communication)

虽然进程之间是相互独立的,但有的时候也需要几个进程相互合作,共同完成某个任务,此时就涉及到进程间通信.

进程间的独立性和进程间通信并不冲突,系统会提供一些公共空间,(多个进程都可以访问这些公共空间),让对个进程通过公共空间来交换数据.

进程间通信有很多种方法:

相关文章:

javaEE--计算机是如何工作的-1

目录 一.计算机的组成: 各组件的功能: 衡量cpu好坏的标准: 二.指令(instruction) 三.操作系统Operating System 四.进程/任务process/tesk 五.进程在系统中如何管理 1.进程在系统中的管理,从两个角度来分类: 2.进程控制块PCB(Process Control Block)) 3.P…...

vue.js 指令的修饰符

Vue.js 提供了一些指令修饰符,用于在指令的行为上添加额外的功能。下面详细解析一些常用的指令修饰符,并提供相应的代码实例。 .prevent:阻止默认事件 通过添加 .prevent 修饰符,可以阻止指令绑定的元素触发默认事件。 代码实例&a…...

基于java web在线商城购物系统源码+论文

一、环境信息 开发语言:JAVA JDK版本:JDK8及以上 数据库:MySql5.6及以上 Maven版本:任意版本 操作系统:Windows、macOS 开发工具:Idea、Eclipse、MyEclipse 开发框架:SpringbootHTMLjQueryMysq…...

Autosar入门_架构(Architecture)

上一篇 | 返回主目录 | 下一篇 架构(Architecture) 1 Autosar架构分层概述2 MCAL3 ECU抽象层4 复杂设备驱动5 服务层6 RTE7 应用软件层1 Autosar架构分层概述 整体架构分为三层:应用软件(APP)、实时运行环境(RTE)、基础软件(BSW)以下架构对BSW进行了细化,主要包含四…...

Altair: 轻松创建交互式数据可视化

Altair: 轻松创建交互式数据可视化 Altair 是一个基于 Vega-Lite 的 Python 数据可视化库,它旨在简化数据可视化的创建过程,尤其适用于统计图表的生成。Altair 强调声明式编码方式,通过简单的语法,用户能够快速创建复杂的交互式图…...

APM32F411使用IIS外设驱动es8388实现自录自播

前言: 从零开始学习I2s外设,配置Es8288寄存器实现录音播放。本文章使用主控芯片是APM32F411系类。音频相关的概念比较多,就不再次做过多的介绍,本文章只是简单实现边录边播功能。APM系类兼容st的芯片,所以用st的hal库来…...

RabbitMQ消息队列的笔记

Rabbit与Java相结合 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 在配置文件中编写关于rabbitmq的配置 rabbitmq:host: 192.168.190.132 /…...

JAVA没有搞头了吗?

前言 今年的Java程序员群体似乎承受着前所未有的焦虑。投递简历无人问津&#xff0c;难得的面试机会也难以把握&#xff0c;即便成功入职&#xff0c;也往往难以长久。于是&#xff0c;不少程序员感叹&#xff1a;互联网的寒冬似乎又一次卷土重来&#xff0c;环境如此恶劣&…...

【线性代数】理解矩阵乘法的意义(点乘)

刚接触线性代数时&#xff0c;很不理解矩阵乘法的计算规则&#xff0c;为什么规则定义的看起来那么有规律却又莫名其妙&#xff0c;现在参考了一些资料&#xff0c;回过头重新总结下个人对矩阵乘法的理解&#xff08;严格来说是点乘&#xff09;。 理解矩阵和矩阵的乘法&#x…...

游戏开发技能系统常用概念

一个角色同一时间可能存在多个Skill&#xff0c;一个当前播放的主动技能&#xff0c;还有好几个不在播放中&#xff0c;但是也没有结束的。 技能事件&#xff1a; 实现具体的技能功能&#xff0c;技能动作的执行都是通过触发事件来触发的&#xff0c;比如&#xff08;时间帧&am…...

【案例80】麒麟操作系统无法使用Uclient访问NC65

问题现象 麒麟操作系统&#xff0c;安装Uclient&#xff0c;添加应用后无法看到登录界面&#xff0c;一直在转圈。 问题分析 进入到Uclient的工作目录 发现在工作目录下&#xff0c;无相关app.log生成。 查看Uclient的main.log发现&#xff0c;有大量的报错与Uclient下的sha…...

【AIGC-ChatGPT进阶副业提示词】育儿锦囊:化解日常育儿难题的实用指南

引言 在育儿的道路上&#xff0c;每位父母都会遇到各种各样的挑战和困惑。从孩子的饮食习惯到沟通交流&#xff0c;从作息规律到行为管理&#xff0c;这些看似平常的问题往往会让父母感到焦虑和无助。本文将通过实际案例分析和解决方案&#xff0c;为父母们提供一个实用的育儿…...

使用Docker部署一个Node.js项目

本文档将介绍如何使用Docker来部署一个Node.js项目。Docker是一种开源平台&#xff0c;可以自动化应用程序的部署、扩展和管理。通过Docker&#xff0c;我们可以将应用程序及其依赖项打包到一个容器中&#xff0c;从而确保在不同环境中运行的一致性。接下来&#xff0c;我们将逐…...

数据科学与SQL:如何利用本福特法则识别财务数据造假?

目录 0 本福特法则介绍 1 数据准备 2 问题分析 步骤1:提取首位数: 步骤2:计算首位数字的实际频率分布 <...

文心一言对接FreeSWITCH实现大模型呼叫中心

文心一言对接FreeSWITCH实现大模型呼叫中心 作者&#xff1a;开源大模型智能呼叫中心FreeIPCC&#xff0c;Github&#xff1a;https://github.com/lihaiya/freeipcc 随着人工智能技术的快速发展&#xff0c;特别是大规模语言模型&#xff08;LLM&#xff09;的应用&#xff0…...

LSTM实现天气模型训练与预测

要实现一个天气预测的模型&#xff0c;并确保该模型可以反复进行训练和更新&#xff0c;先设计&#xff1a; 设计方案 数据获取&#xff1a; 使用公开的天气数据API&#xff08;例如OpenWeather API或其他类似的API&#xff09;获取天气数据。确保数据以合适的格式&#xff08…...

TCL发布万象分区,再造Mini LED技术天花板

作者 |辰纹 来源 | 洞见新研社 现实世界中&#xff0c;光通过悬浮在大气中的冰晶折射&#xff0c;呈现出环形、弧形、柱形或亮点的扩散&#xff0c;从而产生光晕&#xff0c;雨后的彩虹是我们经常能看到的光晕现象。 然而&#xff0c;当光晕出现在电视中&#xff0c;那就不是…...

2024广东省职业技能大赛云计算——私有云(OpenStack)平台搭建

OpenStack搭建 前言 搭建采用双节点安装&#xff0c;即controller控制节点和compute计算节点。 CentOS7 系统选择 2009 版本&#xff1a;CentOS-7-x86_64-DVD-2009.iso 可从阿里镜像站下载&#xff1a;https://mirrors.aliyun.com/centos/7/isos/x86_64/ OpenStack使用竞赛培…...

简单了解图注意力机制

简单了解图注意力机制 如果对传统的图匹配的聚合方式进行创新的话&#xff0c;也就是对h这一个节点的聚合方式进行创新。 h i ( l 1 ) Norm ⁡ ( σ ( h i ( l ) α ∥ h i ( l ) ∥ m i ( l ) ∥ m i ( l ) ∥ ) ) , \mathbf{h}_{i}^{(l1)}\operatorname{Norm}\left(\sigm…...

UI Automator Viewer操作

版本&#xff1a;24.4.1 使用UI Automator Viewer报错如下&#xff1a; Error obtaining Ul hierarchy Reason: Error while obtaining Ul hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesnt exist!可以使用指令&#xff1a; 保存uix文件 adb sh…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...