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

计算机是怎么样工作的

冯诺依曼体系(VonNeumannArchitecture)

冯诺依曼体系是现代计算机设计的基础框架,由数学家约翰·冯·诺依曼于1945年提出。其核心思想是将程序指令和数据存储在同一存储器中,通过统一的处理单元执行操作。

依据冯诺依曼体系结构对计算机组成的描述:计算机应包括,运算器,控制器,存储器,输入设备,输出设备五大部分。

1.CPU

CPU主要由运算器、控制器、寄存器组和内部总线等部件组成,是计算机核心部件,通常被称为中央处理器,他负责获取程序指令,可对指令进行译码并加以执行。

运算器

运算器负责执行算术运算和逻辑运算,是计算机进行数据处理的直接部件。算术运算包括加减乘除,逻辑运算包括与或非等操作。运算器从存储器获取数据,处理后将结果送回存储器或寄存器。
控制器

控制器是计算机的指挥中心,负责从存储器中取出指令并解码,向其他部件发出控制信号以确保指令正确执行。

 寄存器组

提供高速存储空间,用于临时存放指令、数据和地址。寄存器是CPU内部的小型存储器,访问速度远快于内存。

1.1CPU的工作流程

取指令

指令的阶段,CPU从内存中读取下一条要执行的指令。程序计数器(PC)存储当前指令的地址,CPU根据PC的值从内存中取出指令,并将其保存在寄存器中,完成后程序技术器会指向下一条指令的地址。

解码指令

解码阶段的任务是将取到的指令解析为CPU可以理解的操作,控制单元(CU)负责分析指令的操作码,确定需要执行的操作类型,并识别操作数。

执行阶段

在执行阶段,CPU根据解码指令会执行相应的操作。执行单元完成具体的计算或逻辑操作, 数据可能在寄存器之间移动,或从内存加载到寄存器,或从寄存器写回内存。

2.存储器

分为主存储器(内存)和辅助存储器(硬盘等)。主存储器直接与CPU交互,存储正在运行的程序和数据;辅助存储器用于长期存储。

内存

主存储器通常由DRAM(动态随机存取存储器)构成,读写速度快但断电后数据丢失;一般用于存放当前执行的程序和活跃数据。

外存

辅助存储器采用硬盘(HDD)、固态硬盘(SSD)或光盘等,速度较慢但可持久化数据。断电后数据不会丢失。

内存和外存的区别

内存的访问速度比外存快,外存的访问速度满。

内存的空间小,硬盘的空间大。

内存的成本高,外存的成本低。

内存断电后数据丢失,外存断点后不会丢失数据。

3.输入设备和输出设备

输入设备
将外部信息转换为计算机可处理的数字信号,例如键盘、鼠标、扫描仪等。输入设备是用户与计算机交互的桥梁。

输出设备
将计算机处理的结果转换为人类可感知的形式,例如显示器、打印机、音响等。输出设备完成信息传递的最后一环。

注意:有些设备即是输入设备又是输出设备,比如:触摸屏,网卡等例子。

4.操作系统

操作系统是管理计算机硬件与软件资源的系统软件,为用户提供应用程序统一的接口。

计算机常见类型

  • Windows:用户友好,兼容性强,主导个人电脑市场。一般都是使用图形化用户界面操作。
  • macOS:基于Unix,集成Apple生态,注重用户体验。
  • Linux:开源、高度可定制,一般都是进行命令行操作

进程 

1.什么是进程

进程是操作系统进行资源分配和调度的基本单位,是程序的一次执行过程。每个进程拥有独立的地址空间、系统资源(如文件描述符、内存)以及执行状态。进程通过进程控制块(PCB)管理,包含进程ID、优先级、寄存器状态等信息。比如:我此时打开了了一个软件,这就是一个进程。

2.进程的管理

进程控制块(PCB)

进程控制块是操作系统内核中的数据结构,用于存储和管理进程的关键信息。每个进程对应一个独立的PCB,是操作系统进行进程调度的核心依据。

PCB的主要功能

  • 标识进程:包含进程ID(PID)等唯一标识符,用于区分不同进程。
  • 内存指针:进程就知道需要执行的指令在哪里,依赖的数据在哪里。
  • 存储进程状态:记录进程当前状态(如就绪、运行、阻塞等)。
  • 管理资源:跟踪进程占用的CPU寄存器、内存、文件等资源。
  • 上下文保存:当进程切换时,保存CPU寄存器等现场信息以便恢复执行。

PCB在进程生命周期中的作用

  • 创建进程:分配PCB并初始化各项字段。
  • 调度进程:根据PCB中的状态和优先级决定是否分配CPU。
  • 切换进程:保存当前进程的上下文至PCB,并加载下一个进程的PCB。
  • 终止进程:释放PCB占用的资源并从系统中删除。

 

http://www.dtcms.com/a/293346.html

相关文章:

  • 在 Ubuntu 22.04 上安装并优化 Nginx nginx入门操作 稍难,需要有一定理论 多理解 多实践
  • Class13预测房价代码
  • Google Gemini 体验
  • 从零开始学CTF(第二十五期)
  • 万界星空科技铜线/漆包线行业智能化MES系统解决方案
  • postgresql导入导出数据;pg_restore: error: did not find magic string in file header
  • 基础算法思想(递归篇)
  • 厚铜板载流革命与精密压合工艺——高可靠性PCB批量制造的新锚点
  • Android AppCompat:实现Material Design向后兼容的终极指南
  • IDEA-通过IDEA导入第三方的依赖包
  • [Semantic Seg][KD]FreeKD: Knowledge Distillation via Semantic Frequency Prompt
  • Bigemap Pro自动获取面要素所属行政区划
  • XSS(跨站脚本)
  • 拓展三字棋
  • NumPy库使用教学,简单详细。
  • 星巴克推出免费自习室,拓展第三空间意欲何为?
  • Python的界面美化库 QDarkStyleSheet
  • 使用 Ansys Fluent 软件参数化工作流程对搅拌罐中的稳态涡流进行仿真
  • 大模型后训练——DPO实践
  • 博途V18软件Automation License Manager中发生了内部错误解决方法
  • Coze扣子文生图
  • 作业管理系统(Java + Swing 实现)项目案例分享
  • kafka4.0集群部署
  • Qt中QObject类的核心作用与使用
  • AG32 mcu+cpld 联合编程(概念及流程)
  • 从“点状用例”到“质量生态”:现代软件测试的演进、困局与破局
  • AUTOSAR进阶图解==>AUTOSAR_SWS_CANTransceiverDriver
  • 新版Qwen3深夜突袭:性能超越Kimi-K2、DeepSeek-V3
  • 自定义HAProxy 错误界面
  • 微调大语言模型(LLM)有多难?