JavaEE初阶第一期:计算机是如何 “思考” 的(上)

专栏:JavaEE初阶起飞计划

个人主页:手握风云

一、冯诺依曼体系结构

1.1. 概念

冯·诺依曼体系结构(Von Neumann Architecture),是现代计算机的基础设计概念,核心思想是"存储程序控制"。具体来说,就是将程序指令和数据存储在同一个存储器中,并由计算机顺序地从存储器中取出指令并执行,以完成计算任务。

1.2. 主要组成部分

  • **运算器:**负责执行所有的算术运算(如加、减、乘、除)和逻辑运算(如与、或、非)。
  • 控制器:是计算机的"大脑",负责解析指令,并发出控制信号,协调和控制计算机各部件的工作。它控制数据的输入、输出、存储、运算等过程。
  • 存储器:用于存储程序指令和数据。在冯·诺依曼体系中,指令和数据共享同一个存储空间。
  • **输入设备:**用于将外部信息(如键盘、鼠标、麦克风等)输入到计算机中。
  • **输出设备:**用于将计算机处理后的信息(如显示器、打印机、音响等)输出到外部。

二、CPU

CPU,全称中央处理器,被誉为计算机的"大脑"。它是计算机的核心计算单元,负责解释计算机指令、处理计算机软件中的数据,并管理计算机的各项操作。CPU和程序员的关系是非常密切的,因为程序员写的代码都是靠CPU运行的。

2.1. CPU的性能指标

  • **时钟速度:**以GHz(千兆赫)为单位,表示 CPU 每秒执行的运算次数。数值越大就越好。
  • **核心数:**20多年前的CPU,都是只有一个核心。现代 CPU 通常包含多个处理核心,每个核心都可以独立执行指令。核心数越多,CPU 处理多任务的能力越强。
  • **指令集架构:**不同的 CPU 使用不同的指令集,例如英特尔和 AMD 的 x86 架构,以及 ARM 架构等。
  • **缓存大小:**缓存越大,CPU 访问数据的速度越快,从而提高整体性能。

2.2. 指令集

计算机的指令集 是CPU能够理解并执行的所有指令的集合。这些指令是CPU进行各种操作(如数据传输、算术运算、逻辑判断、控制流程等)的基本命令。

每条指令通常由操作码和操作数。操作码指示CPU执行什么操作,操作数指令操作的数据或数据的地址。常见的指令类型有数据传输指令、算术指令、逻辑指令、控制流指令等。

2.3. 寄存器和内存

寄存器和内存都是计算机中用于存储数据的重要组件,但它们在功能、速度、容量和用途上有着显著的区别。寄存器是CPU内部极小、极快的存储单元。它们直接集成在CPU芯片上,用于暂时存储CPU当前正在处理的数据和指令。可以把它们看作是CPU的"工作台"或者"暂存盘"。内存(随机存取存储器)是计算机中用于存储程序指令和数据的主要工作区域。它比寄存器慢,但容量大得多。CPU需要从内存中获取指令和数据,并将处理结果写回内存。

寄存器和内存的区别:寄存器速度极快、容量极小、成本极高;内存速度较慢、容量较大、成本较低、易失性(大多数RAM是易失性存储器,这意味着当计算机断电时,存储在内存中的数据会丢失)。

三、操作系统

操作系统可以被认为是计算机中最关键的软件。

3.1. 概念

操作系统是一组复杂的系统软件,它承担着计算机系统资源管理与调度的核心职责。具体来说,它主要包含以下几个方面:

  • 资源管理者: 操作系统管理计算机的所有硬件资源(如CPU、内存、硬盘、输入输出设备等)和软件资源(如文件、程序、进程等)。它负责分配这些资源给不同的程序和用户,并在它们之间进行协调,避免冲突。
  • 控制程序: 操作系统控制程序的执行流程,确保程序按照预期的顺序和方式运行。它处理中断、异常和错误,保证系统的稳定性和可靠性。
  • 服务提供者: 操作系统为应用程序和用户提供一系列服务。例如,文件管理服务(创建、删除、读写文件)、进程管理服务(创建、调度、终止进程)、内存管理服务(分配和回收内存)以及设备管理服务(控制外围设备)。
  • 用户接口: 操作系统提供用户与计算机交互的界面。这可以是图形用户界面(GUI),如Windows、macOS,也可以是命令行界面(CLI),如Linux的终端。

3.2. 定位

计算机系统的核心,连接用户与硬件的桥梁,应用程序的运行平台,以及提升系统效率、可靠性和实现硬件独立性的关键组件。

3.3. 主流的操作系统

  • **Windows:**由微软创建,1985 年发布 Windows 1.0,从运行在 MS-DOS 上的图形界面进化为完整操作系统,有多个主要版本;具有多功能性和广泛兼容性,可在多种设备上运行,适用于多种计算目的,界面用户友好;但系统要求高,旧硬件运行可能迟钝,更新频繁且可能出现更新循环,安全问题较多,存在蓝屏死机问题。
  • **Mac OS:**由苹果在 1990 年代初引入,仅用于苹果设备;对硬件和软件控制严格,系统稳定、运行流畅、优化良好,在创意专业人士中受欢迎,与苹果其他设备可无缝同步消息、电话和文件,强制更新和崩溃较少,电池寿命更长;但用户需购买昂贵苹果硬件,设备游戏性能不足,部分专业软件不可用或有限量版。
  • **Linux 系统:**由林纳斯・托瓦兹在 1991 年创建,是开源的操作系统家族,不是单一操作系统;轻量、安全,对硬件要求低,可在旧电脑和高性能服务器上运行,任何人可修改或构建版本,有多种发行版,在编程、网络安全及服务器管理方面广泛应用,谷歌、Facebook、NASA 等的系统有使用;但对新用户不友好,界面难理解,许多发行版依赖基于文本的命令,软件兼容性差,主流应用和游戏大多不为其构建。
  • **ChromeOS:**由谷歌开发,2011 年首次发布,是轻量级、基于云的操作系统;主要与互联网协同工作,适合常浏览网页、使用网络应用的用户,预装在 Chromebook 上,设备价格实惠、启动快,自动更新,安全风险低,可访问 Google Play 商店安装安卓应用;但严重依赖互联网,无活跃连接时表现不佳,不支持许多桌面应用和高端游戏,难以进行重度多任务处理。
  • **安卓:**由 Google 开发,是开源操作系统,是世界上最受欢迎的手机操作系统,被多个品牌使用;可改变主题、安装第三方启动器,能高度定制系统,有 Google Play 商店,提供大量应用和游戏,有价格实惠和高端旗舰机型;但并非所有设备都能定期获得更新,可能导致性能变慢和安全风险,存在预装不可删除的不必要应用,通常不如 iOS 优化,部分应用运行可能较慢。
  • **iOS:**由苹果开发,用于驱动 iPhone 和 iPad,是苹果专有系统;苹果完全控制硬件和软件,设备稳定,软件支持时间长,应用商店应用经过精心挑选,与苹果其他设备可无缝连接;但缺乏定制性和灵活性,用户不能自由改变系统,设备通常更昂贵,存储空间不可扩展,限制多,不能自由从应用商店外安装应用、轻松传输文件,部分设备缺乏可扩展存储和耳机插孔。
相关推荐
云边小网安15 分钟前
java集合(十) ---- LinkedList 类
java·开发语言·青少年编程·java集合
乐神嘎嘎嘎17 分钟前
springboot速通
java·spring boot
Zephyrtoria1 小时前
区间合并:区间合并问题
java·开发语言·数据结构·算法
yuren_xia6 小时前
RabbitMQ 知识详解(Java版)
java·rabbitmq·java-rabbitmq
kfyty7256 小时前
轻量级 ioc 框架 loveqq,支持接口上传 jar 格式的 starter 启动器并支持热加载其中的 bean
java·jvm·ioc·jar·热加载
早起鸟儿7 小时前
docker-Dockerfile 配置
java·linux·运维·docker
云边小网安7 小时前
java集合篇(六) ---- ListIterator 接口
java·开发语言·青少年编程·java集合
都叫我大帅哥7 小时前
Spring WebFlux:响应式编程的“未来战士”还是“花架子”?
java·spring·flux
都叫我大帅哥7 小时前
Reactor 深度解析:响应式编程的「核反应堆」是如何工作的?
java·spring
不太厉害的程序员7 小时前
NC65配置xml找不到Bean
xml·java·后端·eclipse