计算机硬件基本知识01py

编程语言的作用及与操作系统和硬件的关系?

编程语言的作用就是程序员和计算机之间的沟通介质,编程语言如果直接对硬件编程的话需要知道硬件是怎么工作的什么原理,这样开发难度大,时间长,如果直接对操系统编程的话,只需要操作系统提供接口就可以了,这样就简单很多;

CPU与寄存器,内核态与用户态,如何切换?

CPU: 每个cpu都有一套可执行的专门指令集,任何软件的执行最终都要转化成cpu的指令去执行,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。

寄存器的分类:

因访问内存以得到指令或数据的时间比cpu执行指令花费的时间要长得多,所以,所有CPU内部都有一些用来保存关键变量和临时数据的寄存器

1.通用寄存器:用来保存变量和临时结果;

2.程序计数器:它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令;

3.堆栈指针:它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量

4.程序状态字寄存器(Program Status Word,PSW):这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。*在系统调用和I/O中,PSW非常非常非常非常非常非常重要

寄存器的维护:

操作系统必须知晓所有的寄存器。在时间多路复用的CPU中,操作系统会经常中止正在运行的某个程序并启动(或再次启动)另一个程序。每次停止一个运行着的程序时,操作系统必须保存所有的寄存器,这样在稍后该程序被再次运行时,可以把这些寄存器重新装入

*内核态与用户态

除了在嵌入式系统中的非常简答的CPU之外,多数CPU都有两种模式,即内核态与用户态

通常,PSW中有一个二进制位控制这两种模式

内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)

用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。

内核态与用户态切换  

用户态下工作的软件不能操作硬件,但是我们的软件,一定会有操作硬件的需求,比如从磁盘上读文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

暂且把系统调用看成一个特别的的过程调用指令就可以了,该指令具有从用户态切换到内核态的特别能力。

异常处理

需要强调的是,计算机使用TRAP来执行系统调用,多数的TRAP是由硬件引起的,用于警告有异常情况发生,如试图1/0等操作。在所有的情况下,操作系统都得到控制权并决定如何处理异常情况,有时,由于出错的原因,程序不得不停止。在其他的情况下可以忽略出错,如果程序已经提前宣布它希望处理某类异常时,那么控制权还必须返回给程序,让其处理相关的问题

多线程和多核芯片

随着对CPU运算的要求,出现多线程和多核芯片

cpu的发展简介

I.第一步增强:在cpu芯片中加入更大的缓存,一级缓存L1,用和cpu相同的材质制成,cpu访问它没有时延

II.第二步增强:一个cpu中的处理逻辑增多,intel公司首次提出,称为多线程(multithreading)或超线程(hyperthreading),对用户来说一个有两个线程的cpu就相当于两个cpu,我们后面要学习的进程和线程的知识就起源于这里,进程是资源单位而线程才是cpu的执行单位。

一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)

存储器系列,

L1缓存

寄存器即L1缓存:

用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延,典型容量是:在32位cpu中为32*32,在64位cpu中为64*64,在两种情况下容量均<1KB

L2缓存,

高速缓存即L2缓存:

主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。

当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中

例子;一个典型的例子就是操作系统一直在使用缓存,比如,多数操作系统在内存中保留频繁使用的文件(的一部分),以避免从磁盘中重复地调用这些文件,类似的/root/a/b/c/d/e/f/a.txt的长路径名转换成该文件所在的磁盘地址的结果然后放入缓存,可以避免重复寻找地址,还有一个web页面的url地址转换为网络地址(IP)地址后,这个转换结果也可以缓存起来供将来使用。

内存RAM:

主存通常称为随机访问存储RAM,就是我们通常所说的内存,容量一直在不断攀升,所有不能再高速缓存中找到的,都会到主存中找,主存是易失性存储,断电后数据全部消失

闪存ROM:

非易失性随机访问存储如ROMRead Only Memory,ROM),在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。

EEPROMElectrically Erasable PROM,电可擦除可编程ROM

闪存(flash memory):

非易失性,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。

CMOS:

易失性,许多计算机利用CMOS存储器来保持当前时间和日期。置和时间等都将丢失

BIOS电池

CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配

磁盘结构:

磁盘低速的原因是因为它一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。从边缘开始有一个机械臂悬在盘面上,这类似于老式黑胶唱片机上的拾音臂。信息记载磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计方法,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位,

平均寻道时间,平均延迟时间,

因为数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间

平均寻道时间:

机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置

平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间

虚拟内存与MMU

虚拟内存:

许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)

*Egon特别强调:从一个程序切换到另外一个程序,成为上下文切换(context switch),缓存和MMU的出现提升了系统的性能,尤其是上下文切换

磁带

在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份

I/O设备

CPU和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环,一般包括两个部分:设备控制器和设备本身

控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

设备本身:有相对简单的接口且标准的,这样大家都可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

总线:

从概念上讲,一台简单的个人计算机可以抽象为类似下图的模型,CPU、内存以及I/O设备都由一条系统总线(bus)连接起来并通过总线与其他设备通信随着处理器和存储器速度越来越快,单总线很难处理总线的交通流量了,于是出现了下图的多总线模式,他们处理I/O设备及cpu到存储器的速度都更快,现代计算机的结构更复杂,包括多重总线

南桥和北桥:

北桥即PCI桥:连接高速设备,北桥被用来处理高速信号、通常处理CPU(处理器)、RAM(内存)、AGP端口或PCI Express南桥芯片之间的通信。主桥(Host Bridge)北桥芯片负责与CPU的联系并控制内存AGP数据在北桥内部传输,提供对CPU的类型和主频、系统的前端总线频率、内存的类型和最大容量、AGP插槽、ECC纠错等支持,整合型芯片组的北桥芯片还集成了显示核心。北桥起到的作用非常明显,在电脑中起着决定性的作用。

南桥即ISA桥:连接慢速设备,南桥芯片负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等,这些技术一般相对来说比较稳定

操作系统的启动流程

1.计算机加电

2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

3.BIOS读取CMOS存储器中的参数,选择启动设备

4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

5.根据分区信息读入bootloader启动装载模块,启动操作系统

6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

应用程序的启动流程:

告诉操作系统它需要干嘛,然后操作系统在告诉底层硬件,该怎么去执行,具体就是编程语言在操作系统环境下,写出一个应用程序,执行程序的时候,告诉操作系统需求,操作系统就会去跟底层的硬件沟通,从硬盘中读取数据,然后内存,cpu从内存中,读取取指->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。

时间: 2024-10-26 05:07:48

计算机硬件基本知识01py的相关文章

计算机系统-计算机硬件基本知识

(一)冯·诺依曼体系结构 数字计算机的数制采用二进制:计算机应该按照程序顺序执行:计算机由控制器.运算器.存储器.输入设备和输出设备五大部分组成. (1)控制器 控制器是整个计算机的指挥中心,它取出程序中的控制信息,经分析后,便按要求发出操作控制信号,使各部分协调一致地工作. 由算术逻辑单元(ALU).累加器.状态寄存器和通用寄存器组等组成.算术逻辑单元用于算术运算.逻辑运算及移位.求补等操作:累加器用于暂存被操作数和运算结果:通用寄存器组是一组寄存器,运算时用于暂存操作数和数据地址:状态寄存器

计算机硬件——基础知识

计算机硬件--基础知识 1.编程语言的作用 语言是用来沟通的,如英语.法语.葡萄牙语等.程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质. 2.操作系统和硬件的关系 操作系统负责管理计算机系统中各种独立的硬件,使得它们可以协调工作. 3.应用程序.操作系统与硬件之间的关系 硬件是基础,硬件需要通过操作系统系统控制来启动硬件,并让各个硬件之间相互协同工作,在系统软件的基础上是用户,用户操控的是系统软件,并在系统软件的基础上安装相应的应用程序,来完成用户所需要的工作.所以说

第二天-计算机硬件基本知识和linux发展简史

今天老师讲了两个部分的内容,第一个是计算机硬件的基本知识,第二个是讲了一下unix.linux简史. 第一部分:计算机硬件核心知识 1.PC服务器,当前互联网公司应用最多的服务器品牌有DELL.HP.IBM. 其中DELL品牌:2010年以前 1u  1850  1950.2u   2850  2950 2010-2014年 1u R410/R420     R610/R620 2.电源,相当于人体的心脏,在生产环境中一般核心业务都用双电接入,如果应用了集群可以用单  电接入. 3.CPU,相当

阿凡达------计算机硬件核心知识及IO优化(一)

这几天在老师的书上学习了计算机硬件方面基础和IO优化的知识.老师很注重思想上的教育,他说最近他要写一本自传,回顾这十几年的IT生活,然后以此来结束IT生涯.再跟老师学习的机会不多了.他对我们说了之前的两个老板对他的评价,这也是他一直以来的工作态度.六字口诀,勤奋,努力,总结.让我们铭记于心. (一) 企业PC服务器及型号: 互联网服务器品牌:DEll HP IBM 百度 浪潮 联想 航天联志 Dell 1U=4.45cm 2010年以前,1u 1850 1950 2U 2850  2950 20

计算机硬件基础知识(四)操作系统

一.操作系统 1.1.操作系统的由来 ? 大前提:我们编程目的就是为了奴役计算机,让计算机硬件自发地运行起来,然而硬件毕竟是”死的“,硬件的运行都是由软件支配.(软件才是支配这些死硬件的灵魂) 假如我们要开发一个应用程序如“暴风音影” 思路是: 1.该软件的一个核心业务就是播放视频,开发者若要编写程序完成播放视频这个业务逻辑. 2.必先涉及到底层硬件硬盘的基本运作(视频文件都是先存放于硬盘中),这意味着开发者在编写业务逻辑代码之前,必须先编写一个控制硬盘基本运行的控制程序. 3.在编写应用程序的

计算机硬件基础知识

1.计算机CPU 计算机CPU由很多加法器构成的,加法器有总线连接.加法器的速度,与CPU的主频有关. 2.南桥和北桥 南桥:是外部慢速设备数据汇总的桥梁such as 显示器.键盘.鼠标这种慢速的设备:southbridge 北桥:是外部快速设备数据的汇总桥梁such as 内存,南桥的数据汇总之后送到北桥,再有北桥直接和CPU进行通信. 硬件架构: 目前的主流CPU:ARM   是一个英国公司设计ARM,但是从来不生产,把生产交给高通.飞思卡尔这些公司.目前很多手机就是应用的ARM,ARM省

Linux学习之了解计算机硬件知识

说实话很多人都在学习Linux运维的知识,就目前行业来说Linux是很流行的东西,当下培训机构也很多,接下来了解下计算机硬件的知识! 下面开始了: 1U服务器:U是一个单位,1U = 4.45cm. 电脑主机的组成:常见的 做运维关注的只有:CPU ,DISK,内存 一.电源:服务器用的都是提供双电源. 二.主板: 三.CPU中央处理器:计算机的头脑,负责运算和控制. 四.CPU风扇:为cpu降温 五.芯片组 BIOS芯片:linux启动流程,开机-BIOS自检-启动硬件 六.总线扩展槽:PCI

软考——计算机系统知识

当我们的日常生活都离不开计算机的时候,弄懂它内部的原理是每个人都需要做的,所以在软考学习中,计算机系统主要是由三个方面来论述,硬件.体系结构和对它的测评. 一.计算机硬件基础知识 通常我们提到计算机硬件系统都会列举出运算器.控制器.存储器.输入设备和输出设备五大部件来.其中运算器和控制器被继承在一起统称为CPU,CPU细化组成又是有寄存器组和内部总线等部件.整体如下图所示: 二.体系结构 当我们站在程序员的角度所看到的计算机属性就是计算机的体系结构,程序员要能编写出可在机器上正确运行的程序所必须

软考中级软件设计师考试大纲

软件设计师考试大纲 一.考 试 说 明 1.考试目标 通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写.调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件:具有工程师的实际工作能力和业务水平. 2.考试要求 (1)掌握计算机内的数据表示.算术和逻辑运算方法: (2)掌握相关的应用数学及离散数学基础知识: (3)掌握计算机体系结构以及各主要部件的性能和基本工作原理: