热门标签 | 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


推荐阅读
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 如何在虚拟机中实现Linux与Windows主机之间的文件夹共享
    为了在虚拟机中实现Linux与Windows主机之间的文件夹共享,首先需要确保Linux系统已安装VMware Tools。如果尚未安装,可以通过虚拟机软件提供的“安装VMware Tools”选项进行安装。安装完成后,通过配置共享文件夹设置,即可实现主机与虚拟机之间的文件互传。此外,建议检查虚拟机网络设置,确保网络连接正常,以提高文件传输的稳定性和速度。 ... [详细]
  • Shell脚本编译器的全面解析与应用指南 ... [详细]
  • 本报告对2018年湘潭大学程序设计竞赛在牛客网上的时间数据进行了详细分析。通过统计参赛者在各个时间段的活跃情况,揭示了比赛期间的编程频率和时间分布特点。此外,报告还探讨了选手在准备过程中面临的挑战,如保持编程手感、学习逆向工程和PWN技术,以及熟悉Linux环境等。这些发现为未来的竞赛组织和培训提供了 valuable 的参考。 ... [详细]
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社区 版权所有