【JavaEE初阶】计算机工作原理

news2024/11/16 4:19:24

摄影分享~
在这里插入图片描述

文章目录

  • 冯诺依曼体系
  • 操作系统
    • 操作系统的定位
    • 进程/任务(process/task)
    • 内存管理

冯诺依曼体系

线代的计算机,大多遵守冯诺依曼体系结构
在这里插入图片描述

CPU 中央处理器: 进行算术运算和逻辑判断.
存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)
输入设备:用户给计算机发号施令的设备.
输出设备: 计算机个用户汇报结果的设备.

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

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

操作系统

操作系统是一个软件。

  1. 对下:要管理硬件设备。
  2. 对上:要给软件提供稳定的运行环境。

操作系统的定位

操作系统的两个基本功能:

  1. 防止硬件被时空的应用程序滥用;
  2. 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。
    在这里插入图片描述

进程/任务(process/task)

进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;
同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。简而言之,一个跑起来的程序就是一个“进程。”
每个进程都对应一些资源。
进程是操作系统资源分配的基本单位!
在这里插入图片描述
在这里插入图片描述

句柄(handler):系统中包含很多的软件资源,写代码就需要用到一些软件资源。软件资源是在操作系统内核中,在应用程序的代码中,不方便直接操作。句柄,就相当于一个遥控器(简单的整数。编号)通过系统调用这个句柄就可以操作软件资源了。
进程是一个很重要的“软件资源”。是由操作系统内核负责管理的。
而这种管理是以描述+组织的形式。描述是讲清楚都有哪些属性特征。组织是通过一定的数据结构,把多个这样的单位穿起来。
描述:使用结构体(C语言的结构体)来描述进程属性。这个结构体,叫做PCB(进程控制块)。
组织:通过双向链表。来把多个PCB串在一起。(注意,不是一个单纯的双向链表)
在这里插入图片描述
创建一个进程,本质上就是创建一个PCB这样的结构体对象,把它插入到链表中。
销毁一个进程,本质上就是把链表上的PCB节点删除掉。
任务管理器查看到的进程列表,本质上就是遍历这个PCB链表。

PCB里面有哪些描述了进程的特征:

  1. PID进程的身份标识符(唯一的数字)
  2. 内存指针:指向了说自己的内存是哪些
  3. 文件描述符表:硬盘上的文件等其他资源
  4. 操作系统中有一个很重要的模块调度器,就负责让有限的CPU来调度执行进程。现在我们的电脑上基本都是多核CPU。在这里插入图片描述
    并行:微观上同一时刻,两个核心上的进程,就是同时执行的。
    并发:微观上同一时刻,一个核心上只嗯呢该运行一个进程,但是它能够对进程快速的切换。
    宏观上,我们是感知不到的。所以讲并行和并发统称为并发
    进程调度相关的属性:
    1)进程的状态
    就绪状态:进程随时准备好去CPU上执行
    运行状态:正在运行的。
    阻塞状态:短时间内无法到CPU上执行。(比如:正在进行密集IO操作,读写数据)
    2)优先级
    进程也是有优先级的。操作系统进行调度并不是平均分配。
    3)上下文
    操作系统正在进行进程切换的时候,就需要把进程执行的“中间状态”记录下来。下次这个进程在上CPU上运行时,就可以恢复上次的状态。上下文,本质上就是存档的内容;进程的上下文,就是CPU中各个寄存器(CPU内置的存储数据模块,保存的就是程序运行过程中的中间结果)的值;保存上下文,就是把这些CPU寄存器的值,记录保存到内存中。恢复上下文,就是把内存中的哲学寄存器值恢复回去。
    4)记账信息:操作系统,统计每个进程在CPU上占用的时间和执行的指令数目。根据这个来决定下一阶段如何进行调度。

内存管理

操作系统对内存资源的分配,采用的是空间模式——不同进程使用内存中的不同区域。互相之间不会干扰。
程序中所获取到的内存地址,并非是真实的物理内存的地址,而是经过了一层抽象,虚拟出来的地址。
假如我们把内存比作一栋楼,楼里有很多个小房间。那么,每个房间的门牌号,就是“地址”。这个地址也就是“物理地址”。
内存具有随机访问的特性。
在这里插入图片描述
针对进程使用的内存空间,进行“隔离”引入了虚拟地址空间。代码中不再直接使用真实的物理地址了。而使用的是虚拟的地址。
由操作系统和专门的硬件设备负责进行虚拟地址到物理地址的转换。
在这里插入图片描述
虚拟地址空间。主要就是为了避免进程之间相互产生影响。
虽然进程隔离了。但是在我们实际中,进程之间,需要进行数据的交互。于是,进程间通信,我们需要做一个多个进程都能访问到的“公共空间”,基于这个“公共空间”来进行数据交互即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从架构的角度看搜索与推荐

搜索与推荐的区别 1. 场景需求不同 搜索的场景故名思义,就是用户提供想要寻找的内容的描述,系统返回给用户匹配到的结果,常见的场景如文字输入框的搜索,图片搜索,听音识曲,标签筛选等,看似很多…

TypeScript - 泛型 Generics(通俗易懂详细教程)

前言 关于概念,本文不会过多叙述。 先来看个例子,体会一下泛型解决的问题吧。 我们定义一个 print 函数,这个函数的功能是把传入的参数打印出来,最后再返回这个参数,传入参数的类型是 string,函数返回类型…

Kyligence Zen 产品体验 --- 全方位总结

Kyligence Zen 是一个企业级大数据分析平台,基于 Hadoop 和 Spark 技术栈,具有高性能、可扩展性和易用性等优点。本文将从体验者角度出发,对 Kyligence Zen 进行详细的描述,包括使用场景、功能特点和使用体验。 一、使用场景 Kyl…

springboot 统一异常处理 + 日志记录

在项目的开发中,在某些情况下,比如非业务的操作,日志记录,权限认证和异常处理等。我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect。先…

JavaScript【四】JavaScript中的函数

文章目录🌟前言🌟什么是函数?🌟函数声明方式🌟 function关键字🌟 字面量定义(匿名函数)🌟 实例化构造函数🌟函数调用方式🌟通过括号调用🌟自调用(IIFE)🌟通过…

企业电子招投标采购系统——功能模块功能描述+数字化采购管理 采购招投标

​ 功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外…

windows安装Metasploit

近期在大佬群里各种炫技,各种工具使用,漏洞利用与复现,感觉自己常规安全测试就是个小学生,于是好心的大佬发了个Rapid7Setup-Windows64.exe的渗透工具,但是自己的电脑安装了,破解不了,导致失败&…

计算机组成原理——第四章指令系统(上)

提示:待到秋来九月八,我花开后百花杀 文章目录前言4.1.1 指令格式4.1.2 扩展操作码指令格式4.2.1 指令寻址4.2.2 数据寻址4.2.3 偏移寻址4.2.4 堆栈寻址汇总前言 通过第二章我们学习了运算器是如何进行加减乘除,移位运算操作的,通…

【密码算法 之七】GCM 浅析

文章目录1. 概述1.1 GHASH1.3 GCTR2. GCM 加密3. GCM 解密4. 总结在我的另一篇博客【密码算法 之三】分组密码工作模式 (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)浅析 中已经详细的介绍了对称算法(也称为“分组密码算法”)的各种工作模…

排序算法(一)

一、排序算法 排序算法就是将数组按照数值或者字母序排列,常用的排序算法有很多,如下: 详细细节可以直接看维基百科:https://zh.wikipedia.org/zh-cn/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95 C的库中实现了常用的排序算法&#x…

Linux_红帽8学习笔记分享_4

Linux_红帽8学习笔记分享_4 文章目录Linux_红帽8学习笔记分享_41.用户管理useradd命令的使用1.1使用useradd添加用户1.2 Linux系统底层的四个连锁反应2.账户信息文件/etc/passwd中七个字段的含义3.组信息文件/etc/group中四个字段的含义4.影子文件/etc/shadow两个字段的含义5.相…

C++STL——map与set介绍及使用

map与set介绍及使用关联式容器健值对setmultisetmapmultimap关联式容器 之前我们学的list,vector等等是序列式容器,这里的set和map和之后的哈希表都是关联式容器,比如说搜索二叉树我们想插入一个值,不能随意的插入,因…

【JVM】JVM之执行引擎

文章目录前言名词解释机器码指令指令集汇编语言高级语言字节码虚拟机&物理机前端编译器&后端编译器JVM之执行引擎执行引擎是如何工作的?解释器即时编译器(JIT)分层编译策略虚拟机执行模式热点代码&探测方式1)方法调用…

Android 屏蔽锁屏界面上的通知显示

一. 前言 [定制需求描述]:在插入SD后, 锁屏状态下, 去掉提示“SD卡可用于传输照片和媒体文件” 需求拆解: 要求正常显示在SystemUI下拉状态栏, 只需要屏蔽在锁屏状态下的通知. 二. 发送通知 首先来找找这个字符串"可用于传输照片和媒体文件" 是在/f…

buuctf_随便注

根据题目猜测这是一道SQL注入的题目输入一个单引号触发报错,根据报错信息得知闭合条件就是一对单引号继续构造表达式,得出一共包含两个回显位构造表达式求出当前数据库的名称,但是根据回显数据和实践来看,此题是对select进行了过滤…

【软件设计师12】数据流图DFD

数据流图DFD 必考下午第一道大题!!! 基本概念、数据字典、数据平衡原则 1. 基本概念 顶层图是系统,再看中间跟外部数据的交换流不变,内部细化,最底层图进一步细化 数据存储在题干描述时,要么…

一文弄清-BP的过拟合与validationCheck

本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com BP神经网络的训练经常会遇到过拟合的情况,导致模型在训练效果上很好但预测效果差 正因如此,matlab工具箱引入validationCheck来防止BP神经网络走向过拟合 本文介绍过拟合是…

SOTIF 预期功能安全ISO21448介绍、功能安全标准ISO26262 与若干安全标准的适用范围和开发流程映射

SOTIF 预期功能安全ISO21448介绍、功能安全标准ISO26262 与若干安全标准的适用范围和开发流程映射 ISO 21448 中规定了预期功能安全的设计开发流程图, 如下图所示。首先从 第 5 条出发, 进行规范和设计。该部分是将进行整车级、 系统级、 组件级等功能规…

快速了解Depop注册新方法,轻松一分钟入驻

东哥我是在几个月前第一次认识depop这个平台,原因是当时主要是让手底下的员工去操作,团队毕竟涉及到的平台都比较多,我就没那么多精力放在depop上,但却意外发现这个平台给我们带来很不错的业绩!所以东哥今天打算给大家…

阿里p8大牛三年整理出全网最全的5万字的《Java核心知识手册》

利用空余时间整理了一份《Java核心知识手册》,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。 前段时间,朋友圈分享了这份这份面试手册的初稿,在几位同学的提议下,对手册进…