计算机基础知识

计算机的组成部件

CPU

CPU 由运算器和控制器组成,在下面的冯诺依曼体系中,我直接将控制器和运算器直接合并一起来说,也就是CPU,所以你可能在一些书籍上看到冯诺依曼体系是由五大部件构成的,其中CPU 就包含了两大部件运算器和控制器。

CPU 主要的工作就是进行运算,它可以进行各种运算,并且由于包含控制器这一部件,所以也负责对其他部件(输入输出设备,存储器)有着控制的作用。

现在我们来看一下CPU 的性能指标:
打开任务管理器,点击性能,在下面就有CPU 的性能指标:

基频 / 默频:
在这里插入图片描述
G = 10 ^ 9 , Hz 表示一秒能进行多少次运算,2.6 GHz 说明一秒能进行 26 亿次计算


现在的CPU 会有一个实时的速度,这个速度叫做睿频 / 加速频率,CPU 会根据当前的任务量来进行频率变更,调整到合适的频率进行作业。
在这里插入图片描述


CPU 的核心数,分为物理核心和逻辑核心,下面的内核就是物理核心,逻辑处理器就是逻辑核心,简单理解就是一个CPU 内部有多少个人可以干活,物理核心指的是实际一共有多少人,逻辑核心指实际一共能干多少份任务。

在这里插入图片描述

在很早之前 CPU 是单核心的,也就是一次只能处理一个任务,如果学过操作系统的话,应该知道单道批处理系统。这就导致CPU 作业的效率十分底下,在没有多核心的情况下,研发者尽可能在原有的单核处理下提高性能,但是还是不够快,最后提出了多核心的CPU 。


CPU 的执行指令的流程:取指令,解析指令,执行指令

这些指令存储在内存中

GPU

和CPU 类似,也是做运算处理工作的,不过它是专门的,也就是不能想CPU 一样进行各种各样的运算,它主要是负责处理运算简单但是运算量很大的任务,例如:图形渲染工作(大型游戏,3D建模…),挖矿等等。

GPU还有一个我们熟悉的名字 —— 显卡,核显表示 CPU 自带GPU ,性能稍微差一些,如果你对游戏有着极高的画质追求,一个好的显卡(GPU)是必不可少的,例如市面上的4090

寄存器

寄存器是中央处理器(CPU)内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。

一个CPU核心一共也就是几十个寄存器,寄存器的造价也是很高的,并且容量就更小了。

存储器

内存和外存都属于存储器,不过内存的造价高容量也比较小,而外存(磁盘,硬盘)造价低容量也高

CPU 访问内存的速度是十分快的,相比于CPU访问外存 的速度快上几千倍。

在手机领域中,人们常说的内存实际上就是外存,运存也就是内存,大家注意区分即可。

常见的电脑内存一般有 8G,16G,32G,只要你的超能力够大,你还可以买更大的内存空间。

输入 / 输出设备

输入设备有键盘,鼠标等等,输出设备有屏幕,音响等等。

这里的输入输出是站在CPU 的角度看待的:

在这里插入图片描述

其他设备

电源,主板等等…

冯诺依曼体系

在这里插入图片描述

操作系统

操作系统(Operation System, OS)是一组做计算机资源管理的软件的统称,操作系统是一个极为重要的系统软件.

操作系统由两个基本功能:
1)防止硬件被时空的应用程序滥用
2)向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。

常见的操作系统有 Windows,Linux,MacOS,IOS,Android

在这里插入图片描述

进程

每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。

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

很多操作系统主要是由C语言编写的,也可能会夹带一些 C++.

PCB

进程控制块(Process Control Block)简称为 PCB

我们可以将PCB 理解为一个很大的结构体,这个结构体包含进程的各种属性和信息。

操作系统会对这些进程进行管理,会使用链表将这些 PCB 连接起来,这里的链表不一定只有一个链表。


PCB 的属性细分:
进程状态:就绪,执行,阻塞
就绪状态:表示进程随时可以在CPU上运行
执行状态:说明进程此时正在CPU上执行
阻塞状态:表明慈进程现在不能直接在CPU上执行

进程的优先级:
在CPU执行进程的时候,一般是多个进程并发执行的,如果此时有一个进程优先级更高,就会立刻抢占CPU资源立刻执行任务。

进程的上下文:
由于进程是并发执行的,所以在执行进程的时候要回到上次执行的状态下继续执行而不是重新执行,这就是进程的上下文

进程的记账信息:
进程的记账信息会统计每一个进程吃到了多少CPU资源,如果发现有一些进程很久都没有吃到CPU资源,那么操作系统就会分配一些CPU资源给它,避免有些进程迟迟都没有执行。

上面的四个属性涉及到进程调度的问题。


这里拓展一下并发执行和并行执行的区别

一个CPU核心上,按照分时复用,执行多个进程的方式叫做并发执行

多个CPU 核心同时执行多个进程叫做并行执行

在现代CPU中,并发与并行执行是同时存在的,程序员在写代码的时候,将并发和并行统称为并发。

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

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

相关文章

docker 部署 Seatunnel 和 Seatunnel Web

docker 部署 Seatunnel 和 Seatunnel Web 说明: 部署方式前置条件,已经在宿主机上运行成功运行文件采用挂载宿主机目录的方式部署SeaTunnel Engine 采用的是混合模式集群 编写Dockerfile并打包镜像 Seatunnel FROM openjdk:8 WORKDIR /opt/seatunne…

提示词工程 (Prompt Engineering) 最佳实践

prompt Engineering 概念解析 提示工程是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。研究人员可利用提示工程来提升大语言模型处理复杂任务场景的能力&#xf…

深度学习之入门书籍

自学深度学习,书籍很重要。 从我个人来说,我不太习惯英译版本,或者那些牛人说的,直接读英文,我是水平不够。只讲自己的经验。牛人绕道。 推荐书籍: 深度学习:从入门到精通,这本书不错。把基础的深度学习的…

傅里叶变换(对称美)

傅里叶变换(对称美) 冲浪时发现的有趣文章,学习自https://zhuanlan.zhihu.com/p/718139299 摘下来的内容: 傅里叶变换之所以“怪美的嘞”,根本在于它有一种内在的对称性,这一点在上面的图并没有表现出来…

【Golang】关于Go语言字符串转换strconv

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

【操作系统】三、内存管理:2.虚拟内存管理(虚拟内存特:局部性原理、请求分页管理方式、页面置换算法)

七、虚拟内存管理 文章目录 七、虚拟内存管理1.常规存储器特征1.1一次性1.2驻留性 2.虚拟内存特征2.1局部性原理2.2多次性2.3对换性2.4虚拟性2.5虚拟存储器的容量 3.虚拟内存的实现❗3.1缺页率3.2请求分页(请求页表)3.2.1页表机制❗3.2.2缺页中断机构3.2…

猝发传输和非猝发传输

猝发传输和非猝发传输是两种不同的数据传输方式,主要区别在于数据传输的连续性以及数据包的发送方式。 猝发传输 (Burst Transmission): 定义: 猝发传输是指在一段时间内,大量数据包集中发送,然后在一段时间内没有数据传输,这种…

Facebook公共主页bug问题解决措施清单

在使用Facebook的过程中,许多用户可能会遇到一些让人困扰的BUG,这些问题往往会让人感到无奈。为了帮助大家更好地应对这些情况,本文将总结一些常见的BUG以及对应的解决方案,主要集中在公共主页的相关问题。如果感兴趣就请读下去吧…

uniapp 使用Vue3 setup引入 uniapp 的onReachBottom

在page.json中加入**“onReachBottonDistance”: 50**,这是距离底部多少开始触发 然后再对应的页面通过import将uniapp的api引入进去 dcloudio/uni-app是不用单独下载的,直接用就行 import {onReachBottom,} from dcloudio/uni-app;然后直接使用就好

【ArcGIS Pro实操第三期】多模式道路网构建(Multi-model road network construction)原理及实操案例

ArcGIS Pro实操第三期:多模式道路网构建原理及实操案例 1 概述1.1 原理 2 GIS实操2.1 新建文件并导入数据2.2 创建网络数据集2.3 设置连接策略(Setting up connectivity policies)2.4 添加成本(Adding cost attributes&#xff09…

【C++报错已解决】std::ios_base::sync_with_stdio

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

java项目之作业管理系统设计与实现源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的作业管理系统设计与实现源码。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 作业管理系统…

引入的pyside2后 Lib\site-packages\PySide2中没有pyside2-uic.exe

只有uic.exe 没有pyside2-uic.exe 去Scripts目录下查看就能找到

Unity实战案例全解析:RTS游戏的框选和阵型功能(1) 基础要素

本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程 【唐老狮】Unity实现 即时战略游戏 阵型功能 - 泰课在线 -- 志存高远,稳如泰山 - 国内专业的在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG - Powered…

架构师:消息队列的技术指南

1、简述 消息队列(Message Queue, MQ)是一种异步通信机制,允许系统的各个组件通过消息在彼此之间进行通信。消息队列通过解耦系统组件、缓冲高峰期请求和提高系统的可扩展性,成为分布式系统中不可或缺的一部分。 2、工作原理 消息队列的基本工作原理是生产者将消息发布到…

Wed前端--HTML基础

目录 一、开发工具 二、HTML文档结构 2.1头部head 2.1.1title标记 2.1.2元信息meta标记 具体实例 ​编辑 一、开发工具 最基础的开发工具是:HBuilder 二、HTML文档结构 HTML文档由头部head和主体body组成 头部head标记中可以定义标题样式,头部信…

初始C++模板

1.泛型编程 1.1什么事泛型编程 在学习C语言时,我们时常会有这样的烦恼: 在针对每一种不同的类型变量进行函数传参或者是运算处理时,我们总是编写不同的函数或者是进行不同的处理,才能达到目的,这时,我们…

(undone) 阅读 MapReduce 论文笔记

参考:https://pdos.csail.mit.edu/6.824/papers/mapreduce.pdf 摘要:简单介绍了 MapReduce 是在大型分布式系统上工作的 Introduction 的内容总结: 1.介绍背景:为什么我们需要分布式系统?MapReduce 的意义是哪些 2.简…

2024.9.26C++作业

1. 什么是虚函数,什么是纯虚函数? 1.虚函数在基类中声明,使用virtual关键字修饰成员函数,并且允许在派生类中重写。 2.在运行时,允许基类指针或者引用调用这个函数时,根据实际对象类型调用派生类&#xff…

大数据新视界 --大数据大厂之数据清洗工具 OpenRefine 实战:清理与转换数据

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…