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

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

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

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

2、计算机硬件

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

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

其中:

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

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

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

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

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

2.1处理器(cpu)

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

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

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

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

寄存器分类:

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)的延迟。

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

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

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

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

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

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

磁盘:磁盘结构如下图:

(常见计算机硬盘结构)

(磁盘结构图)

磁盘上的一些列的同心圆上,是一连串的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设备的控制及附加功能等。

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

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

  1. 江西计算机一级考试教程,江西省2019年下半年计算机一级考试复习教程:计算机基础及MS Office应用上机指导...

    &nbsp&nbsp[导读]:江西省2019年下半年计算机一级考试复习教程:计算机基础及MS Office应用上机指导,更多江西等级考试用书,请访问易考吧江西等级考试栏目 江西省201 ...

  2. 新疆计算机考试ppt教程,新疆维吾尔自治区2019年9月计算机一级考试复习教程:计算机基础及WPS Office应用...

    &nbsp&nbsp[导读]:新疆维吾尔自治区2019年9月计算机一级考试复习教程:计算机基础及WPS Office应用,更多新疆等级考试辅导教材,请访问易考吧新疆等级考试栏目 新疆维 ...

  3. 计算机二级考试office 教程,全国计算机等级考试一级office教程

    全国计算机等级考试一级office教程 语音 编辑 锁定 讨论 上传视频 <全国计算机等级考试一级office教程>是2010年京华出版社出版的图书,作者是李燕萍. 中文名 全国计算机等级 ...

  4. 计算机应用基础任务化教程知识点,计算机应用基础任务化教程

    摘要: 高等职业教育专业教学资源库建设项目是教育部,财政部为深化高等职业教育教学改革,加强专业与课程建设,推动优质教学资源共建共享,提高人才培养质量而启动的国家级高职教育建设项目.软件技术专业(项目编 ...

  5. 计算机应用基础任务化教程135,计算机应用基础任务化教程

    <高等职业教育计算机类课程新形态一体化规划教材:计算机应用基础任务化教程(Windows 7+Office 2010)(第2版)>紧跟计算机应用技术动态,内容详实.结构清晰.语言简练.通俗 ...

  6. 计算机应用基础任务化教程知识点,计算机应用基础任务化教程教学大纲资料.doc...

    <计算机应用基础>课程理论教学大纲 课程名称:计算机应用基础 理论学时:课程类型:必修 课程性质: 适用专业: 学分:制订人: 制订时间: 审核人: 批准人: 课程说明(一)课程的性质.任 ...

  7. 计算机一级b考试教程,全国计算机等级考试一级B教程

    第一章  计算机基础知识 1.1  概述 1.1.1  什么是计算机 1.1.2  计算机的发展概况 1.1.3  计算机的应用领域 1.1.4  计算机的应用领域 1.2  计算机中的数与编码 1. ...

  8. 计算机如何自我介绍教程,2020计算机专业自我介绍4篇

    <2020计算机专业自我介绍4篇>由会员分享,可在线阅读,更多相关<2020计算机专业自我介绍4篇(6页珍藏版)>请在人人文库网上搜索. 1.2020计算机专业自我介绍4篇本文 ...

  9. 计算机检修与维修教程 ppt,计算机维护与维修教程_中.ppt

    计算机维护与维修教程_中 高职高专现代信息技术系列教材 计算机维护与维修教程(中) (电子版初稿) 第1章 微型计算机系统简介第2章:微机主板第3章 中央处理器第4章 外围芯片组第5章 内存第6章 系 ...

  10. java基础项目_Java 教程整理:基础、项目全都有

    Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 网上有很多 Java 教程,无论是基础入门还是开发小项目的教程都比比皆是,可是系统的很少,对于Java 学习者来说找到系 ...

最新文章

  1. 翻身的废鱼——论PHP从入门到放弃需要多久?15
  2. ​多分类下的ROC曲线和AUC​
  3. 用java读取properties文件--转
  4. Flutter学习记录(三、Flutter项目学习navBar的使用)
  5. mysql 最短路经_poj 3613 Cow Relays 经L边的最短路 | 学步园
  6. 条件CSS的高级用法
  7. 查看audio信息工具(十九)
  8. .Net Compact Framework 高级篇(2)-- 扩展SOAP应用
  9. UTCformat 转换UTC时间并格式化成本地时间
  10. SpringCloud集成分布式事务LCN (一)
  11. Julia :迎接0.6的到来
  12. C语言程序设计之猜数字游戏(随机数的讲解)
  13. 内核编译报错: warning: the frame size of 1072 bytes is larger than 1024 bytes
  14. 刷计算机导论的题用什么软件,计算机导论试题
  15. php theexcerpt,WordPress获取文章摘要函数the_excerpt、get_the_excerpt
  16. [200814] 自己动手,搞定软件著作权申请(已成功)
  17. tableau连接MySQL
  18. Linux下查看当前文件大小
  19. 华为上半年手机销量_霸气侧漏,如何看待小米和华为的上半年手机销量
  20. Mybatis基本查询准备

热门文章

  1. Visual Studio Code 1.3终于增加了标签页
  2. mysql user表 空_mysql 忘记密码,重置密码,mysql.user表为空的解决办法
  3. 【ArcGIS风暴】ArcGIS创建栅格数据集色彩映射表案例--以GlobeLand30土地覆盖数据为例
  4. C语言试题七之将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。
  5. C/C++之常用字符串比较总结
  6. C/C++之#ifdef、#if、#if defined的区别
  7. linux c头文件#include<sys/types.h>和#include<fcntl.h>头文件总结
  8. Android之用SingleTask和TaskAffinity解决手机截取的项目启动页面问题
  9. 关于thinkphp5的报错 mkdir() Permission denied的解决
  10. linux系统多网口聚合配置,Linux网卡聚合linux多网卡绑定聚合之bond模式的原理是什么...