【javaEE】计算机是如何工作的(基础常识)

server/2025/3/6 20:31:49/

1.❤️❤️前言~🥳🎉🎉🎉

Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。

如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的内容感兴趣,记得关注我👀👀以便不错过每一篇精彩。

当然,如果在阅读中发现任何问题或疑问,我非常欢迎你在评论区留言指正🗨️🗨️。让我们共同努力,一起进步!

加油,一起CHIN UP!💪💪

🔗个人主页:E绵绵的博客
📚所属专栏:

1. JAVA知识点专栏

        深入探索JAVA的核心概念与技术细节

2.JAVA题目练习

        实战演练,巩固JAVA编程技能

3.c语言知识点专栏

        揭示c语言的底层逻辑与高级特性

4.c语言题目练习

        挑战自我,提升c语言编程能力

5.Mysql数据库专栏

        了解Mysql知识点,提升数据库管理能力

6.html5知识点专栏

        学习前端知识,更好的运用它

7. css3知识点专栏

        在学习html5的基础上更加熟练运用前端

8.JavaScript专栏

        在学习html5和css3的基础上使我们的前端使用更高级、

9.JavaEE专栏

        学习更高阶的Java知识,让你做出网站

📘 持续更新中,敬请期待❤️❤️

2.冯诺依曼体系结构


冯诺依曼体系结构由:输入设备,存储器,CPU,输出设备构成

现在的计算机大都遵循冯诺依曼体系结构

CPU中央处理器:进行算术运算和逻辑运算

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

输入设备:用户给计算机发号施令的设备

输出设备:计算机给用户汇报结果的设备

我们这里说一下硬盘和内存,拿它们进行比较:

针对于储存空间来说:

        硬盘>内存

对于数据访问速度来说:

        内存>硬盘

对于掉电后数据丢失来说,

       内存会丢失,硬盘不会丢失数据


3.CPU的核心概念


上面我们说了CPU用于算术运算和逻辑判断.

CPU市面上的常见架构有:

        1.X86/X64(桌面端/服务器)

        2.arm(移动端/嵌入式/苹果桌面端)

CPU的核心参数有核心数和频率

核心数就是指电脑拥有的cpu个数,频率是指cpu一秒能执行的指令

不同的CPU支持的指令是不同的,X86上的指令和arm是不互通的


4.操作系统核心概念

操作系统,常见的操作系统有:Windows,Linux,MacOS,Android,Unix,iOS,鸿蒙等

操作系统的功能:

1.管理不同的硬件

2.为软件提供稳定的运行环境

操作系统=内核+配套的应用程序

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

操作系统有很多api,通过该api去操作硬件以及维护软件,而不同操作系统就有不同的api。但对于java来说是小意思,此处这些系统 api 都被 jvm 给封装好了,java 程序猿一般不会直接接触到系统的 api ,用封装好的就行了,并且针对不同系统用的还是一样的api,可以跨平台(非常类似于 jdbc)
 

5.进程的概念

进程是操作系统对一个正在运行的程序的一种抽象概念,换言之,可以把进程看做一个正在运行的程序。

在操作系统内部,进程又是操作系统进行资源分配的基本单位

C语言编写的exe文件是可执行文件,当它被打开后被读取到内存中了才被称为进程。

6.进程的管理 

那么进程是怎样在操作系统中被管理的呢?

1.使用一种结构体, 把被管理的一个对象,各个属性都表示出来。描述进程的属性这个结构体统称为"进程控制块"PCB(操作系统内核是使用 C/C++ 写的)

2.然后使用双向链表这样的数据结构来组织多个 PCB,创建新的进程, 就是创建 PCB 并且把 PCB 插入到链表中,销毁进程, 就是把 PCB 从链表上删除并释放,展示进程列表,就相当于是遍历链表的每个节点。

一个进程一般使用一个或者多个 PCB 来表示(之所以是多个线程会有所解释)

7.进程的属性

要想更明确认识进程详细特性,还需要讨论下 pcb 里面的属性
pcb 是一个非常庞大的结构体, 包含很多属性.(如果大家去翻操作系统源码是能看到的,linux是开源的,linux 中,pcb 叫做 task struct)

 

1.pid进程标识符
        同一时刻,应该机器上的多个进程之间,PID唯一的,不会重复,操作系统内部的很多操作都是通过PID找到对应的进程的


2.内存指针(一组)       侧面表示出,进程的执行需要一定的内存资源
        描述进程依赖的指令和数据都在内存的哪个区域
        
3.文件描述符表          侧面表示出,进程的执行需要一定的硬盘资源
        描述了进程打开了哪些文件(对应硬盘上的数据)
       

后面还有四个属性,跟进程调度有关,我们等会讲讲进程调度。

7.1进程的调度 

进程调度是操作系统决定 哪个进程先用CPU 的过程。因为CPU一次只能运行一个进程,所以操作系统需要通过调度算法(比如轮转调度、优先级调度等)来决定进程的执行顺序。

它导致我们进程能够并发进行,大大提高了效率。

进程并发是指 多个进程同时运行。实际上,单个CPU一次只能运行一个进程,但通过快速切换多个进程(调度),操作系统让它们 快速的交替执行,看起来就跟同时运行一样。 (我们认为同时运行)

如果没有进程调度,CPU只能运行一个进程,直到它结束。这样其他进程就会一直等待,无法实现并发。通过调度,操作系统可以让多个进程快速切换,实现并发执行。

所以进程调度非常重要,进程中有这四个属性影响进程调度。

1.进程的状态

进程状态有就绪状态和阻塞状态等:

就绪状态:进程是可以随时被调度到CPU上执行指令的

阻塞状态:进程是无法被调度到CPU上执行,之所以阻塞是因为要做一些其他的工作,比如进行IO操作(读取硬盘/读写网卡)

除了上面之外,进程还有其他的状态,此处暂时不展开这么多,这些状态会影响调度。

2.进程的优先级

有的进程先执行,有的进程后执行,从而影响调度

3.进程的上下文

把之前执行的中间结果(各种CPU寄存器中的值)保存起来,下次使用时会以结束时的状态继续执行,从而影响调度

4.进程的记账信息

操作系统统计每个进程在CPU上执行的时间,根据这个来进一步调整调度的策略,太少的会变多,太多的会变少

7.2 进程间的通信

具体的实现方式有很多,但是每个方式的核心思想都是一样的,都是要借助一个公共空间,完成数据的交互。
隔壁 C++ 介绍了很多种进程间通信方式,
咱们主要就说两种
1.通过文件.
2.通过网络(socket)

对于java工程师,进程用的并不多,所以这些东西我们初步了解就行了,对它有个认识。进程是c++要深入了解的。

 


http://www.ppmy.cn/server/172959.html

相关文章

【2025.3最新版】从零开始的CSS网页开发学习笔记 1(包含CSS简介 CSS基础选择器 CSS字体属性 CSS文本属性 CSS引入方式)

文章目录 CSS简介CSS基本介绍CSS基本语法规范CSS代码风格 CSS基础选择器选择器的作用和分类标签选择器类选择器id选择器通配符选择器 CSS字体属性font-family 字体类型设置font-size 字体大小设置font-weight 字体粗细设置font-style 字体样式设置font 字体复合属性设置 CSS文本…

Checkpoint 模型与Stable Diffusion XL(SDXL)模型的区别

Checkpoint 模型与 Stable Diffusion XL(SDXL)模型 在功能、架构和应用场景上有显著区别,以下是主要差异的总结: 1. 基础架构与定位 Checkpoint 模型 是基于 Stable Diffusion 官方基础模型(如 SD 1.4/1.5)…

大语言模型(LLM)和嵌入模型的统一调用接口

ChatModelFactory、EmbeddingModelFactory 讲解代码:import os from dotenv import load_dotenv, find_dotenv_ load_dotenv(find_dotenv())from langchain_openai import ChatOpenAI, OpenAIEmbeddings, AzureChatOpenAI, AzureOpenAIEmbeddingsclass ChatModelF…

厦门大学:《DeepSeek大模型赋能高校教学和科研报告》(120页PPT,建议收藏)

《DeepSeek大模型赋能高校教学和科研》是由厦门大学大数据教学团队林子雨副教授领衔撰写的系统性报告,旨在探讨大模型技术(以国产开源模型DeepSeek为核心)在高等教育与科研领域的应用实践及未来潜力。该书结合理论解析与案例实证,…

实验二:VLAN间三层通信实验

目录 1.学习目的 2.拓扑图 3.实验原理 1.VLAN原理 2.DNS原理 3.ACL原理 4.实验对实际网络工作的启示 5.场景 实验步骤: 6.学习任务 1. 基础配置与IP编址 2 多臂路由 3 单臂路由 4 三层交换 7.实验步骤回顾 1.IP地址配置 2.VLAN划分 3.DNS服务器…

xinference docker 部署方式

文章目录 简绍docker 安装方式访问地址对应官网在 dify 中 添加 xinference 容器内置大语言模型嵌入模型图像模型音频模型重排序模型视频模型 简绍 Xorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 Xinference,…

解决git add . + git commit之后文件状态还是M 问题

在每次 git add . 和 git commit -m "" 之后,都会有很多文件依旧保持M状态。 原因是每次我使用了huskycommitlint,我的pre-commit里面运行了代码格式化工具, #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh…

Trae 是一款由 AI 驱动的 IDE,让编程更加愉悦和高效。国际版集成了 GPT-4 和 Claude 3.5,国内版集成了DeepSeek-r1

Trae 是一款由 AI 驱动的 IDE,让编程更加愉悦和高效。国际版集成了 GPT-4 和 Claude 3.5,国内版继承了DeepSeek-r1,支持实时代码建议和无缝 GitHub 集成。 当前国内和国际版的AI都是免费的。 安装 国际版安装 国际版下载:下载…