热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python零基础学习之路01计算机硬件

一套完整的计算机系统分为:计算机硬件,操作系统,应用软件,如下图。因而我们的python编程之路分为计算机硬件基础ÿ

  一套完整的计算机系统分为:计算机硬件,操作系统,应用软件,如下图。因而我们的python编程之路分为计算机硬件基础,操作系统基础,和python编程三部分,而我们便是最先从计算机硬件开始学习的。

一 计算机硬件介绍

  计算机硬件有五大部分:

    1、控制器:计算机的指挥系统。控制器通过地址访问存储器,从存储器中取出指令,经译码器分析后,根          据指令分析结果产生相应的操作控制信号作用于其他部件,使得各部件在控制器控制下有条不紊地协调工作。

    2、运算器:实现算术运算和逻辑运算的部件。

    3、存储器:是计算机用来存放所有数据和程序的记忆部件。他的基本功能是按指定的地址存入或者取出信息。计算机中的存储器分为两大类:一类是内存储器,简称内存或主存;另一类是外存储器(辅助存储器),简称外存或辅存。存储器由若干个存储单元组成,每个存储单元都有一个地址,计算机通过地址对存储单元进行读写。一个存储器所包含的字节数称为存储容量,单位有B、KB、MD、GB、TB等。

    4、输入设备:是向计算机中输入信息(程序、数据、声音、文字、图形、图像等)的设备。常见的输入设备有:键盘、鼠标、图形扫描仪、触摸屏、条形码输入器、光笔等。 外存储器也是一种输入设备。

    5、输出设备:主要有显示器、打印机和绘图仪等。外存储器也当作一种输出设备。

 

  总结来说:控制器+运算器=CPU,CPU是人的大脑,负责控制全身和运算;内存是人的记忆,负责临时存储;硬盘是人的笔记本,负责永久存储;输入设备是耳朵或眼睛或嘴巴,负责接收外部信息存入内存,输出设备是你整个身体的肢体动作,负责经过处理后输出的结果。以上所有的设备都通过总线连接,总线相当于人的神经。

 

二 中央处理器  

  1、将运算器和控制器合称为中央处理器(Central Processing Unit,CPU)。其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU的工作主要在于管理和运算。可以说计算机的大脑就是CPU,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。既然CPU的重点在于进行运算和判断,那么要被运算与判断的数据是从哪里来的?CPU读取的数据都是从主存储器(内存)来的!主存储器内的数据则是从输入单元所传输进来!而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。

  2、内核态与用户态

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

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

 

三 存储器

  寄存器即L1缓存&#xff1a;用与cpu相同材质制造&#xff0c;与cpu一样快&#xff0c;因而cpu访问它无时延&#xff0c;典型容量是&#xff1a;在32位cpu中为32*32&#xff0c;在64位cpu中为64*64&#xff0c;在两种情况下容量均<1KB。

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

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

  非易失性随机访问存储&#xff08;ROM)&#xff1a;在电源切断之后&#xff0c;非易失性存储的内容并不会丢失&#xff0c;ROM只读存储器在工厂中就被编程完毕&#xff0c;然后再也不能修改。

  EEPROM&#xff08;Electrically Erasable PROM&#xff0c;电可擦除可编程ROM&#xff09;和闪存&#xff08;flash memory&#xff09;也是非易失性的。

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

 

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

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

 

五 启动计算机 

1.计算机加电

2.BIOS开始运行&#xff0c;检测硬件&#xff1a;cpu、内存、硬盘等

3.BIOS读取CMOS存储器中的参数&#xff0c;选择启动设备

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

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

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

 

  


转载于:https://www.cnblogs.com/liuzeng/p/9061376.html


推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
author-avatar
紫竹林素食坊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有