zoukankan      html  css  js  c++  java
  • Python全栈之路开篇计算机基础

    一、为何要学习计算机基础?

              俗话说的好,基础不牢地动山摇,身为在it行业的我们,理论知识虽然枯燥,但却是前进路上必不可少的基石,只有底子打的结实,才能看到更远的未来。    

       Python是一门高级的面向对象的编程语言,既然是语言,他无非就是具备了沟通交流的属性,他是我们与计算机沟通的桥梁,至于编程语言也是多种多样的,

       世界上有很多种语言,还有很多地方性语言不为所知,编程语言也如此,例如大名鼎鼎的c语言,java,php,还有人生苦短,我最爱用的Python等等诸多的

       编程语言

        程序最终就是一堆代码凑在一起的文件,操作系统(operating system)是用户和计算机之间的界面。一方面操作系统管理着所有计算机系统资源,另一方面操作系统

       为用户提供了一个抽象概念上的计算机,在操作系统的帮助下,用户使用计算机时,避免了对计算机系统硬件的直接操作,那么接下来我们就有必要去了解一下什么

       是计算机硬件

      

       如上图所示,计算机的系统分为了上面三大块。硬件,操作系统,应用程序。要想学习软件知识,我想那些硬件的知识或多或少还是得了解点的,现在我们就来谈谈硬件一类的知识。

    二、计算机硬件介绍

         1. 什么是硬件:拿人体做比喻,人体是硬件,思维是软件。大脑发出一个命令,你才能做相应的动作.

           2. 在现实生活中,人脑是用来计算的,在计算机中,用来计算的是什么呢?当然是CPU了。

           3.如果我们把计算机理解为人的大脑,我们可以总结为几句话:

                  CPU是人的大脑,负责逻辑运算和调度

            内存是人的临时记忆,负责临时存储

            硬盘是人的笔记本,负责永久存储

            输入设备输出设备是人的耳朵或眼睛,像耳机,音响之类的设备

                                                                                                示意图

    三、处理器(寄存器)

        1.计算机的大脑是CPU,它从内存中取指令-▶解码-▶执行,然后在取指令,解码,执行,周而复始,直至整个程序被执行完成。

       2. 寄存器是一个存储设备,最快的一种存储设备就是寄存器。

           3.寄存器的分类

          ①通用寄存器:用来保存变量和临时结果的。

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

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

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

    四、存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOSBIOS电池

           1.  计算机中第二重要的就是存储了,目前cpu已经超过22纳米的物理极限,当今可以说最能优化和提升的反而不是cpu和内存而是硬盘,降低硬盘的io无论在何时都是

      值得研究的课题

    由上图可以很清楚的看见寄存器存储是速度非常快的,但是它的容量却很少。下来就是高速缓存了。我就不一一介绍了,我相信大家应该可以看得懂这个图。

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

       3.高速缓存即L2缓存:主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。

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

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

    五、磁盘

    1.磁盘由磁头,磁道,扇区组成的。

    2.磁道:每个磁头可以读取一段换新区域。把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

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

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

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

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

    六、磁带

    1.有些人会想磁带是用来干什么的呢?当然,它也是内存之一,是用来存储东西的,它的存储量是相当大的,而且价钱也便宜。当遇上火灾等紧急情况时,可以用磁带来存储我们的重要文件。常常用来做备份(常见于大型数据库系统中)。但是,它也有缺点,就是运行速度特别慢,效率低。

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

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

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

    七、总线

       北桥即PCI桥:连接高速设备

        南桥即ISA桥:连接慢速设备

    八、操作系统的启动流程

      1.计算机加电

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

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

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

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

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

  • 相关阅读:
    25:最长最短单词
    09:向量点积计算
    08:石头剪刀布
    07:有趣的跳跃
    36:计算多项式的值
    33:计算分数加减表达式的值
    hdu 2289 Cup (二分法)
    Android-补间动画效果
    UVA 586 Instant Complexity
    企业门户(Portal)项目实施方略与开发指南
  • 原文地址:https://www.cnblogs.com/ethereala/p/8577079.html
Copyright © 2011-2022 走看看