计算机基础与应用教程计算机硬件,计算机基础系列一:计算机硬件

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

一个完整的计算机系统包括硬件、操作系统、软件(即程序员开发的各种软件)三部分组成。

各程序员开发的软件若直接调用计算机的硬件,如硬盘读取、音频播放等,则软件不仅编写复杂同时影响开发效率,因此程序员开发的软件需通过计算机操作系统间接调用计算机各硬件。如下图:

2844965b649a5ca3f1551726718ba53b.png   即编写各种计算机软件的编程语言可看作程序员与计算机沟通的介质,程序员通过编程语言编写软件从而达到控制计算机的目的。

2、计算机硬件

计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。简言之,计算机硬件是构成计算机的物质基础,是计算机系统的核心。从外观上来看,微机由主机箱和外部设备组成。

根据计算机之父冯·诺依曼的划分,计算机由运算器、控制器、存储器、输入设备、输出设备五部分组成。通常把运算器与控制器合称为中央处理器(Central Processing Unit,CPU)。

其中:

CPU是计算机的核心,负责计算机的运算及程序控制;

存储器是计算机的记忆设备,用来存放程序和数据

输入设备是计算机接收外部信息和数据的设备。常用输入设备有:键盘、鼠标、扫描仪等

输入设备是输出计算机处理后的数据。常用的输出设备有:显示器、打印机等

在计算机中,计算机各硬件是通过各类总线连接在一起的。

2.1处理器(cpu)

CPU是计算机的核心,负责处理计算机的各种逻辑运算和程序控制等。CPU处理的流程是:从内存读取指令->解析指令->执行指令,执行完之后继续从内存读取指令->解析指令->执行指令,知道所有的程序被执行完毕。

由于CPU的读写速度远大于内存的读写速度,为最大限度发挥CPU的效率,将CPU的一些常用指令集存入一个能够快速读写设备中,即寄存器。

寄存器的读写速度介于CPU和内存之间。

34e0fb2d605f23dfe983c863ced48c71.png

(计算机处理应用程序流程图)

寄存器分类:

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

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

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

4)程序状态字寄存器(Program Status Word, PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。

3、内核态与用户态

由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络,因此CPU划分出两个权限等级 -- 用户态 和 内核态

在程序状态字寄存器中与一个二进制位用来控制CPU的模式,

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

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

内核态与用户态的切换:

用户态程序发出使用操作系统的需求(使用硬件设备)

->用户程序启用系统调用

->寄存器执行指令

->CPU切换到内核态

->启用操作系统获得服务

->操作系统重置CPU为用户态并返回系统调用结果

4、存储器

存储器(Memory)是计算机中用于保存信息的记忆设备。广义概念中只要能保存二进制数据的都可以是存储器。

常用存储器有:

寄存器即L1缓存:用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延。

高速缓存即L2缓存:主要由硬件控制高速缓存的存取,最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中,缓存满足了请求,就不需要通过总线把访问请求送往主存(内存),这毕竟是慢的。高速缓存的命中通常需要两个时钟周期。

L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。

3354f519b9f3f43c15bd6f5acaeaf256.png

1f464cc28d3d69d489205c5a75c1fd2a.png

内存(RAM):既能读取也能写入的存储器,存储速度快,断电后数据全部消失

EEPROM(Electrically Erasable PROM,电可擦除可编程ROM):具有非易私性,擦除和重写。不过重写时花费的时间比写入RAM要多。

闪存(flash memory):具有非易私性,闪存通常作为存储媒介,多应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了

只读存储器(ROM):储的内容是固定不变的,只能读出而不能写入的半导体存储器。通常用于BIOS中。

CMOS存储器:易失性,多用来存储计算机bios的设置,如当前时间日期、系统启动盘信息等。

Bios电池:用于CMOS存储器供电

磁盘:磁盘结构如下图:

8d263a80cc78e82d67dc19b647d26874.png

(常见计算机硬盘结构)

88c4225d75d32faec5413d8509627b8b.png

(磁盘结构图)

磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计便,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。

每个磁头可以读取一段换新区域,称为磁道

把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

每个磁道划成若干扇区,扇区典型的值是512字节

磁盘存储的基本单位是一个二进制位,读写的基本单位是扇区

操作系统中磁盘文件存储管理的最小单位叫:“块(block)”,一般一个块为8个扇区

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

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

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

6、虚拟内存与MMU

虚拟内存:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间)。在CPU中将正在使用的程序放入内存去执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存。

MMU即存储器管理单元(Memory Management Unit):是CPU中负责在虚拟内存中将不需要执行的磁盘程序快速映射到内存地址的部件

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

7、设备驱动与控制器

设备驱动:即设备驱动程序,是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作,是硬件和系统之间的桥梁。

控制器:是计算机的指挥中心,负责决定执行程序的顺序,给出执行指令时机器各部件需要的操作控制命令. 主要功能:从内存中取出一条指令,并指出下一条指令在内存中位置,对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。

8、总线与南桥和北桥

总线(Bus):是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。

北桥即PCI桥:是电脑主板芯片组中的一枚。北桥被用来处理高速信号、通常处理CPU(处理器)、RAM(内存)和南桥芯片之间的通信。

南桥即ISA桥:连接慢速设备,南桥芯片主要是负责I/O接口等一些外设接口的控制、IDE设备的控制及附加功能等。

4c5c8a1d0cc4465f2f91ca25cfc3b8a9.png

9、操作系统的启动流程

启动流程

1)       计算机加电

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

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

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

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

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

10、应用程序的启动流程

1)       启动应用程序

2)       应用程序将需求发送操作系统

3)       CPU从内存中读取指令、解析指令、执行指令

4)       操作系统输出CPU执行结果

来源:https://www.cnblogs.com/hedeyong/p/6875017.html

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

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

相关文章

宝塔mysql远程链接_宝塔apache启动失败:报错 AH00526: Syntax error on line 解决方案

错误信息:AH00526: Syntax error on line 54 of /www/server/apache/conf/httpd.conf:Cannot define multiple Listeners on the same IP:port朋友网站突然访问不了,进入宝塔后查看Apache服务器没运行,重启Apache时提示这个错误信息打开Apach…

Amazing 2020

Amazing 2020Intro2020 转眼即逝,2020 是比较艰辛的一年,因为疫情原因,很多人的工作以及生活都多多少少受到了一些影响。引用网上盛传的一句话——2020 实“鼠”不易, 2021 “牛”转乾坤。希望大家 2020 立的没有完成的 Flag 在 2…

游戏设计与计算机,RPG游戏设计与实现-数学与计算机系.doc

RPG游戏设计与实现-数学与计算机系XX学院毕业论文(设计)RPG游戏设计与实现院 系 :数学与计算机系专业(班级):计算机科学与技术专业2班姓名:XXX学号:20084011023指导教师:XXX职称:讲师完成日期: 2012 年 5月…

C#-WinForm跨线程修改UI界面

背景在我做WinForm开发的过程中,经常会遇到耗时操作或阻塞操作。他们会引发软件的卡顿甚至假死,严重影响软件的使用。因此,这类耗时或阻塞的操作一般都会使用异步的方式去执行,不影响主线程(UI线程)与用户间…

1w存银行一年多少利息_如果你有1000万存入银行,一年能有多少利息?刺激!

如果你有1000万存入银行,一年能有多少利息?刺激!每个人都想一夜暴富,世界上用钱可以解决90%的问题,还有剩下10%可以用钱去缓解,有钱男子汉,没钱汉子难,何以解忧,惟有暴富…

长春工业大学计算机科学与技术录取分数,2021年长春工业大学各省各专业最低投档录取分数线统计(文科 理科)...

2018年长春工业大学各省各专业最低投档录取分数线统计(文科 理科)同学们2019年高考是你们人生旅途的第一个加油站,它意味着你们的希望,你们的前途,甚至是命运,挑战六月就是挑战命运和未来,希望你们在高考中脱颖而出&am…

.NET 5 开源工作流框架elsa技术研究

编者注: 工作流框架 elsa 是.NET基金会下面的开源项目,2.0版本即将在3月份发布,目前正在紧锣密鼓的开发之中,2020年2月份我也介绍过推荐一个很棒的开源工作流elsa-core ,今天给大家推荐MVP 周国庆写的这篇详细文章。今…

php 清空一个数组_PHP工程师学Python数据类型

一、背景继上篇文章比较了PHP与Python语法之后,这周又学习了Python数据类型,准备从通过这篇文章给自己进行一些总结,也给其他读者一些参考。二、内容概要字符串(str)列表(list)元组(tup)字典(dict)数据操作三、字符串(str)Python中字符串操作…

“开源、共享、创新” 2020 中国.NET开发者大会小结

大会的新闻稿在2020年12月31日正式发布:开源共享创新|2020年中国.NET开发者大会圆满收官! , 本文是这篇新闻的补充性文章,仅代表个人对大会的各方面分享内容的一个小结。在2019年上海中国.NET开发者大会的基础上,2020年12月19日 继…

maya的颤动怎么做_必看!新手学习MAYA的几个建议

“学习是没有捷径可言的,唯一的捷径就是不断的学习和练习,只有这样才能学到真功夫”Maya设计刚刚开始接触Maya的同学都会有这些疑问,我适不适合学习Maya,学习Maya可以赚到钱吗?怎样才可以学好Maya,今天给大…

nginx lua以html显示,nginx 支持lua及lua脚本格式化日志

1.安装LuaJIT-2.0.4链接:http://luajit.org/download.htmltar -xf LuaJIT-2.0.4.tar.gzcd LuaJIT-2.0.4make PREFIX/usr/local/luajitmake install PREFIX/usr/local/luajit2.修改环境变量vim /etc/profileexport LUAJIT_LIB/usr/local/luajit/libexport LUAJIT_INC…

我的2020年终总结:新的角色,新的开始

【年终总结】| 作者/Edison Zhou又到了一年一度的年终盘点时刻,熟悉我的朋友应该都知道,这个时候我都会写一篇推文盘点一下这一年来的得失。1也谈2020关键事件回顾(1)扯证了,结婚了要说2020年我个人的最大里程碑&#…

docker es持久化_使用docker数据卷对容器数据持久化

volume是用于对Docker容器生成和使用的数据持久化的首选机制。如果您的容器生成非持久状态数据,请考虑使用 tmpfs挂载以避免将数据永久存储在任何地方,并通过避免写入容器的可写层来提高容器的性能。默认容器的数据存储在这里我们在容器中创建一些模拟的…

求职信计算机工程师英语作文,开发工程师英文求职信范文

开发工程师英文求职信范文respected leaders:hello:first salute you sincere thanks, thank you for taking the time to consult the of my application letter!i am aptech a student, now already graduated from junior year. major in.net direction, and ismitted to be…

微信适配国产操作系统:原生支持 Linux

喜欢就关注我们吧!据 ZOL 报道,统信软件官方近日宣布上线适配统信 UOS 的微信桌面客户端,并称该微信版本为原生支持 Linux 的版本,同时支持龙芯、鲲鹏、麒麟等国产 CPU。据悉,统信 UOS 版的微信桌面客户端由腾讯公司研…

oracle拆分分区语法详解大全_Oracle hash的分区方法详解

hash的原理虽然简单,但是它在数据库中可以说是无处不在。其中hash partition是hash在数据库中一个简单的应用,虽然它没有range partition那么常用,但是我们在做数据库水平拆分时,其实就是利用了hash partition的原理,利…

计算机专业的吸引力,计算机专业文献翻译-面向对象编程具有多方面的吸引力.doc...

英文文摘Why has object-oriented programming had such a sweeping impact on the software development communityObject-oriented programming appeals at multiple levels. For managers, it promises faster and cheaper development and maintenance. For analysts and d…

ML.NET生成器带来了许多错误修复和增强功能以及新功能

ML.NET是一个开源的跨平台机器学习框架,适合 .NET 开发人员。它允许将机器学习集成到 .NET 应用中,而无需离开 .NET 生态系统,甚至拥有 ML 或数据科学背景。ML.NET工具(Visual Studio 中的 UI 模型生成器和跨平台 ML.NET CLI&…

yolo算法的优缺点分析_yolo算法介绍

yolo算法介绍(2020-06-06 16:49:28)把Yolo模型搞清楚后不得不再次为人类的智慧感慨,一个巧妙的模型。要想理解Yolo我们先要搞清楚Yolo到底要解决一个什么问题,解决这个问题必须做哪些事情。Yolo属于多目标检测,因此需要解决两个问题&#xff…

Flash 生命终止,HTML5能否完美替代?

Adobe 对 Flash Player 的支持计划在今天,也就是 2020 年 12 月 31 日终止。Windows 计算机上最新版本的 Flash Player 已经开始弹出生命周期终止提示窗口。提示中指出,为了保护用户系统,Adobe 将在 2021 年 1 月 12 日开始禁止 Flash 内容在…