Linux操作系统学习(零)、计算机概论

计算机概论

指令集

CPU中含有多种指令集,指令集对于CPU运算具有指导和优化的硬程序,用来引导CPU进行加减运算和控制计算机操作系统的一系列指令的集合

常见的就有微指令集RISC和复杂指令集CISC

RISC:包括ARM架构和PPC架构

CISC:包括intel架构和AMD架构等的x86架构

常见的cpu主要是x86架构,其中又分为8位、16位、32位,表示cpu一次能够读写的数据位数,现在已经升级到了64位。

Q:在现在的cpu中的微指令集中包含哪些有关于多媒体、虚拟化、省电功能相关的微指令集:

多媒体微指令集:SSE、SSE2、MMX、SSE3、SSE4、AMD-3DNow!
虚拟化微指令集:intel-VT AMD-SVM
省电功能:intel-SpeedStep,AMD-PowerNow

在这里插入图片描述
硬盘是一直存放回忆的地方供以后调用

内存是存放暂时处理的数据的地方

主板:神经系统连接所有的原件

计算单位 后面计算时会用到

1.容量单位:M、k、byte、bit

500GB = 500 * 1000 * 1000 * 1000Byte

2.速度单位:HZ MHZ GHZ

intel芯片架构

1.早期的芯片使用两个桥接器来控制各个元件的沟通:

北桥:链接速度较快,上面挂载着cpu、内存、gpu

南桥:速度较慢,上面挂载着硬盘、USB、网卡等

2.现在主流的芯片都会把CPU和内存直接封装在一起,

img

PCle 主要是负责cpu与gpu和存储设备的通信

而cpu与内存之间的通信主要是在System Agent中集成了(使用的是IMC),所以去除了北桥的存在

CPU

cpu的工作频率:= 外频 × 倍频

外频:主要是cpu与外界元件进行数据传输时的速度

倍频:倍频则是 CPU 内部用来加速工作性能的一个倍数

CPU与内存

CPU中的内存控制芯片------FSB前端总线速度------内存

每次频率能够传输的数据量为64位,则64就为传输的宽度

CPU可以从内存中取得的最长的带宽为:频率速度 (MHZ) × 传输的宽度(Bytes)

CPU每次能够处理的数据量成为字组大小WordSize

cpu多核实现

请添加图片描述

内存

个人电脑的内存主要为 DRAM(dynamic random access memory)

主要是在通电的情况下使用,断电时数据就会消失,因此我们称这种RAM为挥发性内存

SDRAM/DDR型号数据宽度(bit)内部频率(MHz)频率速度带宽(频率x宽度)
SDRAMPC10064100100800MBytes/sec
SDRAMPC133641331331064MBytes/sec
DDRDDR-266641332662.1GBytes/sec
DDRDDR-400642004003.2GBytes/sec
DDRDDR2-800642008006.4GBytes/sec
DDRDDR3-160064200160012.8GBytes/sec

DDR3L 为了节省更多的电力,新的制程中降低了内存的操作电压,因此 DDR3 标准电压为 1.5V,但 DDR3L 则仅须 1.35V 喔!

内存的多通道设计

一般内存的数据宽度为64位,如果将两个内存加以合并就会有128bit的数据宽度,这就是双通道设计

L2高速存缓器

内存与cpu之间的数据传输还需要通过cpu中的内存控制器,也就是说数据必须通过:

内存------CPU内存控制器-----CPU

如果有些数据是我们经常所要用到的,一次一次通过内存取用很麻烦,则我们设计了一个暂时存储器,称为L2高速存缓器,不用再去内存中取用数据。

由于L2高速存缓器必须结合在CPU中,所以它的频率必须与CPU一样,DRAM无法达到高速的效果,则我们采用SRAM(static random access memory)静态随机存储器。

ROM 只读存储器

由于CPU要驱动不同的功能模块需要不同的电压等参数,那么是如何去根据不同的模块去选择适合的频率呢:

每个模块的各项参数包括系统时间、设备的IO地址、IRQ、CPU的电压频率被记录在一块称为CMOS的芯片上,这块芯片是由外接电源来进行供电,那么CMOS是如何更新和读取数据呢

BIOS(basic input output system)这一套程序被写入主板的一块内存芯片ROM之中,,每次开机启动时都是优先启动BIOS:

1.在开机时BIOS可以使用CMOS中的参数

2.也可以在开机后按Delete键或小键盘上的Del键就可以进入CMOS设置界面

ROM是只读的,若我们要更新系统时无法修改ROM的值,所以现在BIOS一般写在Flash中

显卡 VGA

显卡与主机CPU和内存的通信也是通过显卡上的cpu控制进行,由于显卡需要处理音频和图像,需要数据传输的速度很快,显卡和主板经历了几代传输接口:PCI----AGP----PCIe

规格宽度速度带宽
PCI32 bits33 MHz133 MBytes/s
PCI 2.264 bits66 MHz533 MBytes/s
PCI-X64 bits133 MHz1064 MBytes/s
AGP 4x32 bits66x4 MHz1066 MBytes/s
AGP 8x32 bits66x8 MHz2133 MBytes/s
PCIe 1.0 x1250 MBytes/s
PCIe 1.0 x82 GBytes/s
PCIe 1.0 x164 GBytes/s

例题:假设你的桌面使用1024x768分辨率,且使用全彩(每个像素占用3Bytes的容量),请问你的显卡至少需要多少内存才能使用这样的彩度?

像素个数:1024 × 768 = 786432个
每个像素占用3Bytes
内存大小:786432 × 3 = 2.35MBytes

除了显卡与主板接口,显卡也需要与显示器进行来连接,常用采用的接口格式为:HDMI

硬盘

请添加图片描述
盘片上的数据

扇区:如图所示的每一个小块为一个小扇区

磁道:同一个半径的扇区绕一圈共同组成一个磁道

柱面:加上Z轴,同一个半径的磁道共同组成的一个柱面

硬盘通常分为:传统磁盘、外接式磁盘、SSD固态硬盘

传统磁盘

与主板之间采用SATA、SAS接口

版本带宽 (Gbit/s)速度 (MByte/s)
SATA 1.01.5150
SATA 2.03300
SATA 3.06600
版本带宽 (Gbit/s)速度 (MByte/s)
SAS 13300
SAS 26600
SAS 3121200

虽然传统磁盘理论上能够达到600MByte/s的速度,但是在实际物理层面只能达到200~300的速度

外接式磁盘

例如USB接口

版本带宽 (Mbit/s)速度 (MByte/s)
USB 1.0121.5
USB 2.048060
USB 3.05G500
USB 3.110G1000

SSD固态硬盘

普通的硬盘因为有扇片的存在,以及有马达和磁头的存在。当我们在搜寻某个数据时,数据比较分散,读写的速度明显不快,搜查的效率不高,所以我们采用一种新式的硬盘叫做SSD,没有扇片和磁头的存在,都是内存。

没有马达不需要转动,而是采用内存直接读写的特性

与主板的接口仍然采用SATA或者SAS接口

主板芯片组

主板芯片上的IO口的数量是固定的,不同的模块可能公用同一组IO口,那如何区分是哪一个模块呢

我们采用地址address加中断IRQ的方式,不同的模块有着不同的地址,地址的作用就像门牌号一样,当完成任务之后会通过中断IRQ的方式通知CPU现在运行的是哪个模块以及结果是什么,以便CPU区分和进行接下来的操作

数字和文字的编码方式

在计算机中数字的编码方式一般是公认的二进制、八进制、十进制、十六进制,而计算机只识别2进制数

而文字的编码方式则需要使用ASCII码对照表,将文字内容转变为数字内容供计算机识别和使用

软件程序运行之操作系统 OS

我们需要将程序语言通过编译器转换成机器语言从而驱动机器使用

而不同的机器又需要不同的程序语言去驱动,当我们将数据放入内存中,我们需要经历四步:

1.计算内存大小

2.取得内存

3.获取内存的地址

4.将数据放入

这样做太繁杂了,为了防止重复撰写代码,我们采用操作系统去整体控制硬件
请添加图片描述
如图,由硬件通过操作系统控制,操作系统去提供接口给我们使用,我们只需要在系统调用层方面关注操作系统接口提供给我们的函数即可,无需再关注其他的。

操作系统提供的功能:让CPU进行算数运算和逻辑判断、内存数据的读取、网卡数据的传输等等

至于不同的硬件有着不同的操作系统,

硬件的厂商将会针对特定的操作系统,让操作系统能够驱动该硬件,

于是操作系统开发者就会提供硬件开发商接口供硬件的厂商使用。

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

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

相关文章

vscode报错cnpm : 无法加载文件 C:\Program Files\nodejs\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅

报错 打开powershell 执行 Start-Process powershell -Verb runAs set-ExecutionPolicy RemoteSigned 选择 Y 完成

PPT插件-好用的插件-字距快速设置-大珩助手

字距快速设置 包含两端对齐、段首缩进、取消缩进、字间距、行间距、段后距 段首缩进 每次缩进两个字符,可对选中的文字、选中的多个文本对象两个层级操作 取消缩进 将缩进取消,可对选中的文字、选中的多个文本对象两个层级操作 字间距 预设了常用…

TCP对数据的拆分

应用程序的数据一般都比较大,因此TCP会按照网络包的大小对数据进行拆分。 当发送缓冲区中的数据超过MSS的长度,数据会被以MSS长度为单位进行拆分,拆分出来的数据块被放进单独的网路包中。 根据发送缓冲区中的数据拆分情况,当判断…

evo_res指令使用及各参数使用效果

目录 参数含义 效果演示 evo_res no_l.zip l.zip evo_res no_l.zip l.zip -v 输出相关指令 evo_res no_l.zip l.zip -p evo_res no_l.zip l.zip -p --plot_markers evo_res no_l.zip l.zip --save_plot ./plot.pdf evo_res no_l.zip l.zip --serialize_plot ./s…

Selenium IED-安装及简单使用

本文已收录于专栏 《自动化测试》 目录 背景介绍优势特点安装步骤录制脚本总结提升 背景介绍 Selenium 通过使用 WebDriver 支持市场上所有主流浏览器的自动化。 Webdriver 是一个 API 和协议,它定义了一个语言中立的接口,用于控制 web 浏览器的行为。 每…

Spring基于xml半注解开发

目录 Component的使用 依赖注解的使用 非自定义Bean的注解开发 Component的使用 基本Bean注解&#xff0c;主要是使用注解的方式替代原有的xml的<bean>标签及其标签属性的配置&#xff0c;使用Component注解替代<bean>标签中的id以及class属性&#xff0c;而对…

做数据分析为何要学统计学(5)——什么问题适合使用卡方检验?

卡方检验作为一种非常著名的非参数检验方法&#xff08;不受总体分布因素的限制&#xff09;&#xff0c;在工程试验、临床试验、社会调查等领域被广泛应用。但是也正是因为使用的便捷性&#xff0c;造成时常被误用。本文参阅相关的文献&#xff0c;对卡方检验的适用性进行粗浅…

【测试开发】Python+Django实现接口测试工具

PythonDjango接口自动化 引言&#xff1a; 最近被几个公司实习生整自闭了&#xff0c;没有基础&#xff0c;想学自动化又不知道怎么去学&#xff0c;没有方向没有头绪&#xff0c;说白了其实就是学习过程中没有成就感&#xff0c;所以学不下去。出于各种花里胡哨的原因&#xf…

【Spring】手写一个简易starter

需求&#xff1a; 自定义一个starter&#xff0c;里面包含一个TimeLog注解和一个TimeLogAspect切面类&#xff0c;用于统计接口耗时。要求在其它项目引入starter依赖后&#xff0c;启动springboot项目时能进行自动装配。 步骤&#xff1a; &#xff08;1&#xff09;引入pom依赖…

【数据安全】金融行业数据安全保障措施汇总

数字化的今天&#xff0c;数据的价值不可估量&#xff0c;尤其是金融行业&#xff0c;数据不仅代表着企业的核心资产&#xff0c;还涉及到客户的隐私和信任。因此对于金融行业而言&#xff0c;保障数据安全至关重要。下面我们就来一起讨论为什么金融行业要保障数据安全&#xf…

leetcode 904. 水果成篮(优质解法)

代码&#xff1a; class Solution {public int totalFruit(int[] fruits) {int lengthfruits.length;int []fruitNumsnew int[length1]; //用于记录各个种类摘了多少个水果int count0; //用于记录当前采摘了几种水果int sum0; //用于记录当前共摘了多少水果for(int left0…

【操作系统和计网从入门到深入】(二)进程

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记&#xff0c;所以如果是博主比较熟悉的知识点&#xff0c;博主可能就直接跳过了&#xff0c;但是所有重要的知识点&#xff0c;在这个专栏里面都会提到&#xff01;而且我也一定会保证这个专栏知识点的完整性&…