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

计算机组成原理 第一弹

ps:本文章的图片来源都是来自于湖科大教书匠高老师的视频,声明:仅供自己复习,里面加上了自己的理解

这里附上视频链接地址:1-2 计算机的发展_哔哩哔哩_bilibili

​​

目录

🚀计算机系统

🚀计算机的发展


🚀计算机系统

硬件系统软件系统两部分组成

硬件是构成计算机系统的各种物理装置的总称

例如:中央处理器、CPU、内存、主板、显卡、固态硬盘、键盘、鼠标、显示器、电源电缆等都属于计算机硬件

硬件又可以分为主机外设两大类 

软件划分成系统软件和应用软件两大类

系统软件通常指的是操作系统和相关的系统管理工具。操作系统是一种控制和管理计算机硬件与软件资源的系统软件,它为应用程序提供了一个运行环境。系统软件的功能包括但不限于以下几个方面:

资源管理:操作系统负责管理计算机的硬件资源,包括处理器、内存、存储设备、网络设备等,以便应用程序可以合理地使用这些资源。

文件系统:操作系统提供文件系统来管理计算机上的文件和目录,包括文件的创建、读取、写入、删除和权限管理等功能。

用户界面:系统软件通常包括用户界面,用于与计算机进行交互。这可以是命令行界面(如Unix/Linux的shell)或图形用户界面(如Windows、macOS和各种Linux发行版)。

设备驱动程序:操作系统提供了设备驱动程序,用于管理计算机上的各种硬件设备,如打印机、键盘、鼠标、显示器等。

系统安全:系统软件负责管理用户的权限和系统的安全性,包括用户身份验证、访问控制、安全更新等。

系统调度:操作系统负责对运行中的程序进行调度和管理,以便合理地分配计算机资源,提高系统的整体性能。

系统维护工具:系统软件通常包括一些系统维护工具,用于诊断和解决问题,例如磁盘清理、性能监控、系统备份和恢复等。

✨总的来说就是为管理整个计算机系统所编制的程序

 应用软件是为了实现用户应用所编制的各种程序,

例如科学计算、数据处理、过程控制、事务管理等软件都属于应用软件

计算机系统性能的好坏取决于硬件和软件功能的总和,因为只有单单硬件或软件都是运行不起来的,软件要运行在硬件上

🚀计算机的发展

1936年,英国数学家艾伦图灵,提出了一种十分简单但运算能力极强的理想计算装置用它来计算所有能想象得到的可计算函数。这一装置只是一种理想的计算模型,或者说是一种理想中的计算机,又被称为图灵机(一种具备读写,存储等功能的通用计算机模型)

图灵机的三部分:带子,读写头,控制装置,能执行任何给定的计算,图灵的这一思想奠定了现代计算机基础,现代计算机实际上就是用相应的程序来完成任何设定好的任务。

1938年,美国数学家、信息论创始人香农,深刻的揭示了波尔代数与开关电路之间的联系。为数字电路设计与分析奠定了坚实的数学基础,这项开创性的研究为计算机科学、电子工程与信息技术的发展提供了重要的理论支持。

✨世界上第一台真正意义上的电子数字计算机是在1937年到1942年间,由美国物理系副教授阿塔纳索夫和当时还是物理系贝瑞合作研制成功的。称为阿塔纳索夫贝瑞计算机,简称为ABC。

✨该计算机使用了300个电子管,不可编程,仅用于求解线性方程组。只是一台样机并没有完全实现阿塔那索夫的构想。

1946年。莫克利和艾克特基于ABC计算机的设计思想,成功研制出了真正实用的电子数字计算机

 

 现在国际计算机界公认的事实是,第一台电子数字计算机的真正发明人是阿塔纳索夫。

 

发展阶段使用器件运算速度主存(内存)辅存(外存)特点
第一代(1946-1975)电子管(真空管)几千-几万水银延迟线,磁鼓,磁芯穿孔卡片,穿孔纸带使用机器语言编程无操作系统
第2代(1958-1964)晶体管几十万-几百万磁芯磁鼓,磁带,磁盘主要使用汇编语言编程,开始使用FORTRAN,COBOL等高级语言,单道批处理系统
第3代(1965-1971年)集成电路几百万-几千万半导体储存器磁带,磁盘

高级语言进一步发展,出现B语言(c语言的前身)

多道批处理系统,分时系统

第4代(1972至今)超大规模集成电路几十亿-几千亿半导体储存器磁盘,磁带,光盘,半导体存储器各种高级语言(C/C++,Java,Python)

✨电子管计算机体积大、功耗高、速度慢、可靠性差,主要应用于科学计算

✨相对于电子管计算机,晶体管计算机体积小、速度快、功耗低、可靠性高

✨相对于晶体管计算机,集成电路计算机的体积和功耗都显著减小,而可靠性大大提高,在这一阶段,还出现了巨型机、大型机与小型机同时发展的趋势,计算机类型开始出现多样化和系列化。软件技术与外部设备快速发展。应用领域不断扩大

✨从上述电子数字计算机的发展历程可以看出。其发展特点是体积越来越小,功耗越来越低,可靠性越来越高,运算速度越来越快。这些都依赖于电子器件的发展。

英特尔公司的创始人之一戈登摩尔。他在1965年接受美国电子杂志的总编采访时。对半导体集成电路上可容纳的晶体管数量、性能和价格等发展趋势进行了预测。也就是半导体集成电路上可容纳的晶体管数量大约每经过18~24个月便会增加一倍。换句话说呢,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半,这就是著名的摩尔定律。半导体集成电路50多年的发展历程证明了摩尔定律对半导体芯片工业发展前景的预测是基本准确的。近年来,随着半导体芯片的设计、制造以及封装和测试技术的发展,半导体工艺已接近半导体集成电路极限,半导体芯片的发展开始逐渐偏离摩尔定律的预测,从2013年开始逐步放缓,至三年翻一番。

✨在计算机发展的早期阶段,人们使用机器语言来编写程序,机器语言用二进制代码来表示不同的机器指令,计算机能够直接识别和执行这些机器指令,这对编程人员的要求极高。一方面要求编程人员对计算机的硬件结构非常熟悉。另一方面,机器语言可读性差,易出错和难排错。

为了克服机器语言的上述特点,发展出了汇编语言。它使用一些便于记忆并且能够表示指令功能的注记符来编写程序,尽管使用汇编语言编程比使用机器语言编程的难度有所降低,但是汇编语言仍然是面向机器的语言,人们在使用汇编语言编程前,还是要花费很多时间熟悉所使用计算机的指令集,然后才能使用其相应的符号语言啊,也就是汇编语言来编写程序。因此还是很不方便。

✨为了使不熟悉具体计算机硬件结构和相应指令级的人也能很方便的为计算机编写程序。人们又创造了各种接近于人类语言的高级语言。世界上第一个高级语言是fortran。而最简单和易于初学者使用的高级语言是Basic。Pascal被认为是编程语言的一个重要里程碑。而现代程序语言革命的起点是C语言。

✨从上世纪90年代至今,是面向对象时代,最突出的特点为封装性、继承性和多态性

✨当前的计算机系统正朝着两极化的趋势发展。一级是向更微型化发展,注重在低功耗下也能取得较好的性能,具有多用途。

✨另一级是向更巨型化、超高速、并行处理智能化方向发展。

✨目前我国最快的超级计算机是神威太湖之光。每秒可进行9.3亿亿次浮点运算。


湖科大教书匠高老师的视频非常好,对考研同学特别友好,推荐大家去看!

相关文章:

计算机组成原理 第一弹

ps:本文章的图片来源都是来自于湖科大教书匠高老师的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1-2 计算机的发展_哔哩哔哩_bilibili ​​ 目录 🚀计算机系统 🚀计…...

Hadoop基础知识

Hadoop基础知识 1、Hadoop简介 广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。狭义上说,Hadoop指Apache这款开源框架,它的核心组件有: HDFS(分布式文件系统):解决海量数据存储Y…...

Java进阶之旅第五天

Java进阶之旅第五天 不可变集合 应用场景 1.如果某个数据不能被修改,把它拷贝到不可变集合中是个很好的实践2.当集合对象被不可信的库调用时,不可变形式是安全的3.不可变集合不能修改,只能进行查询 获取方式 在List,Set,Map接口中,都存在静态的of方法,可以获取一个不可变的…...

拓展边界:前端世界的跨域挑战

目录 什么是跨域 概念 同源策略及限制内容 常见跨域场景 如何解决跨域 CORS Nginx代理跨域 Node中间件代理跨域 WebSocket postMessage JSONP 其他 什么是跨域 概念 在此之前,我们了解一下一个域名地址的组成: 跨域指的是在网络安全中&…...

旅游项目day03

1. 前端整合后端发短信接口 2. 注册功能 后端提供注册接口,接受前端传入的参数,创建新的用户对象,保存到数据库。 接口设计: 实现步骤: 手机号码唯一性校验(后端一定要再次校验手机号唯一性&#xff09…...

单片机学习记录(一)

简答题 第1章 1.微处理器、微计算机、CPU、单片机、嵌入式处理器他们之间有何区别? 答:微处理器、CPU都是中央处理器的不同称谓,微处理器芯片本身不是计算机; 单片机、微计算机都是一个完整的计算机系统,单片机是集…...

MacBookPro怎么数据恢复? mac电脑数据恢复?

使用电脑的用户都知道,被删除的文件一般都会经过回收站,想要恢复它直接点击“还原”就可以恢复到原始位置。mac电脑同理也是这样,但是“回收站”在mac电脑显示为“废纸篓”。 如果电脑回收站,或者是废纸篓里面的数据被清空了&…...

Python多线程—threading模块

参考:《Python核心编程》 threading 模块的Thread 类是主要的执行对象,而且,使用Thread类可以有很多方法来创建线程,这里介绍以下两种方法: 创建 Thread 实例,传给它一个函数。派生 Thread 的子类&#xf…...

mysql limit

语法 SELECT * FROM TABLE_NAME LIMIT 起始位置,偏移量注: 起始位置从0开始 示例 查询的第1条数据到第100条数据 limit 0,100查询的第101条数据到第200条数据 limit 100,100注意不要用 limit 101,100示例2 limit 语句应放在order by语句后面执行 …...

解决国内Linux服务器无法使用Github的方法

解决思路:修改Host https://www.ipaddress.com/ 利用上面的网站查询github.com和raw.githubusercontent.com的DNS解析的IP地址 最后,修改服务器的/etc/hosts 添加如下两行: 140.82.112.3 github.com 185.199.108.133 raw.githubuserconte…...

动态规划基础(二)最长公共子序列 LCS

讲解求两个串中最长的公共的子序列长度或输出子序列等 poj1458 题目大意 给定两个字符串,要求输出两个字符串中最长公共子序列长度 思路 我们定义 a [ i ] [ j ] a[i][j] a[i][j]为,当字串 s t r 1 str1 str1到 i i i位置,字串 s t r 2 s…...

React配置src根目录@

文章目录 1.打开webpack配置文件2.配置webpack 1.打开webpack配置文件 yarn eject or npm run eject 如果报错了记得提前 git commit一下 2.配置webpack 找到 webpack.config.js 文件在 webpack.config.js 文件中找到 alias 配置在alias里添加: path.resolve(src) , 或者 : pa…...

SQL Povit函数使用及实例

PIVOT函数常用于数据的行转列&#xff0c;同时也可以用此函数实现类似于Excel中的数据透视表的效果。 PIVOT函数 PIVOT 函数的基本语法如下&#xff1a; -- PIVOT 语法 SELECT <非透视的列>,[第一个透视的列] AS <列名称>,[第二个透视的列] AS <列名称>,.…...

Lite AD的安装

1、Lite AD的安装及配置 Lite AD流程&#xff1a; &#xff08;1&#xff09;创建一个新的Windows 10&#xff0c;安装tools&#xff0c;再安装ITA组件&#xff08;安装Lite AD会自动安装VAG/VLB&#xff09; &#xff08;2&#xff09;创建一个新的Windows 10&#xff0c;安…...

限流算法之流量控制的平滑之道:滑动时间窗算法

文章目录 引言简介优点缺点样例样例图样例代码 应用场景结论 引言 在互联网应用中&#xff0c;流量控制是一个重要的组件&#xff0c;用于防止系统过载和保护核心资源。常见的限流算法包括固定窗口算法和滑动时间窗算法。本文将重点介绍滑动时间窗算法&#xff0c;并分析其优缺…...

C语言数据结构——顺序表

&#xff08;图片由AI生成&#xff09; 0.前言 在程序设计的世界里&#xff0c;数据结构是非常重要的基础概念。本文将专注于C语言中的一种基本数据结构——顺序表。我们将从数据结构的基本概念讲起&#xff0c;逐步深入到顺序表的内部结构、分类&#xff0c;最后通过一个实…...

网络安全:守护数字世界的盾牌

在当今数字化的时代&#xff0c;网络已经渗透到我们生活的方方面面。从社交媒体到在线银行&#xff0c;从在线购物到工作文件传输&#xff0c;网络几乎无处不在。然而&#xff0c;随着网络的普及&#xff0c;网络安全问题也日益凸显。那么&#xff0c;如何确保我们的数字资产安…...

vue3hooks的使用

hook是钩子的意思&#xff0c;看到“钩子”是不是就想到了钩子函数&#xff1f;事实上&#xff0c;hooks 还真是函数的一种写法。 vue3 借鉴 react hooks 开发出了 Composition API &#xff0c;所以也就意味着 Composition API 也能进行自定义封装 hooks。 vue3 中的 hooks …...

elementUI+el-upload 上传、下载、删除文件以及文件展示列表自定义为表格展示

Upload 上传组件的使用 官方文档链接使用el-upload组件上传文件 具体参数说明&#xff0c;如何实现上传、下载、删除等功能获取文件列表进行file-list格式匹配代码 文件展示列表自定义为表格展示 使用的具体参数说明文件大小展示问题&#xff08;KB/MB&#xff09;文件下载代码…...

供应链安全项目in-toto开源框架详解

引言&#xff1a;in-toto 是一个开源框架&#xff0c;能够以密码学的方式验证构件生产路径上的每个组件和步骤。它可与主流的构建工具、部署工具进行集成。in-toto已经被CNCF技术监督委员会 (Technical Oversight Committee&#xff0c;TOC)接纳为CNCF孵化项目。 1. 背景 由于…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...