计算机是如何工作的

计算机工作

  • 计算机发展史
  • CPU基本工作流程
  • 编程语言
    • 程序(Program)
    • 编程语言的发展
  • 操作系统
    • 进程/任务
      • 进程控制块
      • CPU分配(进程调度)
      • 内存分配(内存管理)
      • 进程间通信

计算机发展史

四个发展阶段:
第一个发展阶段:1946-1956年电子管计算机的时代.1946年第一台电子计算机问世美国宾西法尼亚大
学,它由冯·诺依曼设计的.占地170平方 ,150KW.运算速度慢还没有人快.是计算机发展历史上的一个里程碑.(ENIAC)(electronic numerical integator and calculator)全称叫“电子数值积分和计算机”.

第二个发展阶段:1956-1964年晶体管的计算机时代:操作系统.

第三个发展阶段:1964-1970年集成电路与大规模集成电路的计算机时代

第四个发展阶段:1970- 超大规模集成电路的计算机时代.

冯诺依曼体系(Von Neumann Architecture)

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

CPU基本工作流程

取指: CPU读取程序计数器的值,这个值是指令的内存地址,然后CPU的控制单元根据该地址从内存提取指令(经数据总线)到指令寄存器。之后,程序计数器的值自增,以指向下一条指令,自增大小等于CPU的位宽;

译码: CPU分析指令寄存器中的指令,确定指令的类型和参数;

执行指令:操作控制器根据指令类型发送控制信号给算术逻辑单元(计算)或者存储单元(存储)使其准备执行指令;

访存取数:依据指令需要,CPU根据指令中的地址信息将操作数从内存提取到算术逻辑单元或存储单元;

结果写回:执行完指令后,将结果写回到CPU的内部寄存器中。

编程语言

程序(Program)

所谓程序,就是一组指令以及这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为一组文件。
程序 = 指令 + 指令要处理的数据。

编程语言的发展

高级语言----->汇编语言----->机器语言

操作系统

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

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

  • 防止硬件被时空的应用程序滥用;
  • 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。

进程/任务

进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

进程控制块

// 以下代码是 Java 代码的伪码形式,重在说明,无法直接运行
class PCB {// 进程的唯一标识 —— pid;// 进程关联的程序信息,例如哪个程序,加载到内存中的区域等// 分配给该资源使用的各个资源// 进度调度信息(留待下面讲解)
}

CPU分配(进程调度)

操作系统对CPU资源的分配采用的是时间模式

内存分配(内存管理)

操作系统对内存资源的分配,采用的是空间模式

进程间通信

进程间通信又称IPC(Inter-Process Communication),指多个进程之间相互通信,交换信息的方法。

目前主要的通信有:

  1. 管道
  2. 共享内存
  3. 文件
  4. 网络(是一种相对特殊的 IPC 机制,它除了支持同主机两个进程间通信,还支持同一网络内部非同一主机上的进程间进行通信。)
  5. 信号量
  6. 信号

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

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

相关文章

python创建udf函数步骤

一、目标 实现一个函数,传入两个datetime类型的参数,返回double类型的工作日天数 二、思路 如何计算差值? 如果开始时间和结束时间在同一天:实现同 datediff(end, start, ‘ss’) / 86400.0 如果开始时间和结束时间在不同天&am…

3. ⼤语⾔模型深度学习背景知识

1. LLM⼤语⾔模型⼀般训练过程 #mermaid-svg-8kci1fjEPiVolPue {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8kci1fjEPiVolPue .error-icon{fill:#552222;}#mermaid-svg-8kci1fjEPiVolPue .error-text{fill:#5522…

QML用ListView实现带section的GridView

QML自带的GridView只能定义delegate,没有section,类似手机相册带时间分组标签的样式就没法做。最简单的方式就是组合ListViewGridView,或者ListViewFlow,但是嵌套View时,子级View一般是完全展开的,只显示该…

Mybatis中的sql-xml延迟加载机制

Mybatis中的sql-xml延迟加载机制 hi,我是阿昌,今天记录一下关于Mybatis中的sql-xml延迟加载机制 一、前言 首先mybatis技术本身就不多介绍,说延迟加载机制之前,那要先知道2个概念: 主查询对象关联对象 假设咱们现…

WPF绘制矢量图形并绑定到界面的方法

这里先封装一个方法,使用的时候先创建一个Draw,拿到DrawingContext 之后就可以通过DrawingContext 去绘制想要的图形,绘制完成后通过GetDraw拿到所有绘制的结果 添加一个PrintImage()用于测试当前绘图的样子用于测试 public class DrawVector…

OpenCV 笔记(20):霍夫圆检测

1. 霍夫圆变换 霍夫圆变换(Hough Circle Transform)是一种数字图像处理中的特征提取技术,用于在图像中检测圆形。它将二维图像空间中一个圆转换为该圆半径、圆心横纵坐标所确定的三维参数空间中一个点的过程。因此,圆周上任意三点所确定的圆&#xff0c…

ElasticSearch查询语句用法

查询用法包括:match、match_phrase、multi_match、query_string、term 1.match 1.1 不同字段权重 如果需要为不同字段设置不同权重,可以考虑使用bool查询的should子句来组合多个match查询,并为每个match查询设置不同的权重 {"query&…

二叉树的详解

二叉树 【本节目标】 掌握树的基本概念掌握二叉树概念及特性掌握二叉树的基本操作完成二叉树相关的面试题练习 树型结构(了解) 概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。…

MySQL深入——18

我们来看看一主多从的情况 比如A是主库,A’ B C D都是副库,但A与A互为备库,当A库出现问题,我现在要将主库转到A’该怎么办。 以下是基于位点的主备切换 CHANGE MASTER TO MASTER_HOST$host_name MASTER_PORT$port MASTER_USER…

JS-本地文件上传

由于不需要原上传文件的样式&#xff0c;所以自己书写了一个按钮触发文件上传&#xff0c;并将原本的样式隐藏 <!doctype html> <html><head><meta charset"utf-8"><title>文件传输</title> </head><body><inpu…

工业笔记本丨行业三防笔记本丨亿道加固笔记本定制丨极端温度优势

工业笔记本是专为在恶劣环境条件下工作而设计的高度耐用的计算机设备。与传统消费者级笔记本电脑相比&#xff0c;工业笔记本在极端温度下展现出了许多优势。本文将探讨工业笔记本在极端温度环境中的表现&#xff0c;并介绍其优势。 耐高温性能: 工业笔记本具有更高的耐高温性…

QT 应用程序中集成浏览器

QT 应用程序中集成浏览器 前言 前言 在很多情况下&#xff0c;我们需要在应用程序中集成浏览器&#xff0c;比如应用程序界面是使用 H5 页面开发&#xff0c;或者我们的应用程序需要访问 Web 网站。 应用程序中集成浏览器&#xff0c;并不一定是需要一个具有地址栏、多标签等…

安卓动态链接库文件体积优化探索实践

背景介绍 应用安装包的体积影响着用户下载量、安装时长、用户磁盘占用量等多个方面&#xff0c;据Google Play统计&#xff0c;应用体积每增加6MB&#xff0c;安装的转化率将下降1%。 安装包的体积受诸多方面影响&#xff0c;针对dex、资源文件、so文件都有不同的优化策略&…

【极数系列】Flink集成KafkaSource 实时消费数据(10)

文章目录 01 引言02 连接器依赖2.1 kafka连接器依赖2.2 base基础依赖 03 连接器使用方法04 消息订阅4.1 主题订阅4.2 正则表达式订阅4.3 Partition 列分区订阅 05 消息解析06 起始消费位点07 有界 / 无界模式7.1 流式7.2 批式 08 其他属性8.1 KafkaSource 配置项&#xff08;1&…

【ASP.NET Core 基础知识】--Web API--Swagger文档生成

Swagger是一种用于设计、构建和文档化Web API的开源工具。它提供了一套标准化的规范&#xff0c;使得开发者能够清晰地定义API端点、参数、请求和响应。通过Swagger&#xff0c;用户可以生成具有交互式UI的实时API文档&#xff0c;便于团队协作和第三方开发者理解和使用API。它…

如何训练自己的模型

无论数据类型或目标如何&#xff0c;用于训练和使用 AutoML 模型的工作流都是相同的&#xff1a; 准备训练数据。 我们需要将需要训练的数据准备为jsonl格式&#xff0c;这种格式的特点就是每一行都是json的格式 {"prompt": "<prompt text>", "…

机器学习之DeepSequence软件使用学习2-helper模块学习

在学习1中粗略地运行了一下软件的例子文件&#xff0c;但其中的很多东西都未能理解。该文中主要是对helper模块中代码的初步注释及学习以求能够熟练使用该软件。 from __future__ import print_function #from __future__ import print_function只在Python 2中有意义。在Pytho…

java执行可执行文件

文章目录 概要使用Runtime.exec使用ProcessBuilder使用第三方工具包commons-exec.jar 概要 java执行bat或shell脚本的方式主要有三种方式 1、 使用Runtime.exec 2、 使用ProcessBuilder 3、 使用第三方的工具包commons-exec.jar 使用Runtime.exec 在 Java 中&#xff0c;使用…

【初识爬虫+requests模块】

爬虫又称网络蜘蛛、网络机器人。本质就是程序模拟人使用浏览器访问网站&#xff0c;并将需要的数据抓取下来。爬虫不仅能够使用在搜索引擎领域&#xff0c;在数据分析、商业领域都得到了大规模的应用。 URL 每一个URL指向一个资源&#xff0c;可以是一个html页面&#xff0c;一…

配置git环境与项目创建

项目设计 名称&#xff1a;KOB 项目包含的模块 PK模块&#xff1a;匹配界面&#xff08;微服务&#xff09;、实况直播界面&#xff08;WebSocket协议&#xff09; 对局列表模块&#xff1a;对局列表界面、对局录像界面 排行榜模块&#xff1a;Bot排行榜界面 用户中心模块&…