计算机基础

1、为什么要学习计算机基础?程序员

           好多人以为本身有点基础就都想着直接敲代码,以为基础知识很容易,很简单,就不怎么用心去学。然而,我以为基础知识很重要。就像盖一栋楼房同样,你先要打好地基,再去盖房。    数据库

   Python是一门编程语言,即通俗一点说就是语言。编程

   咱们都知道世界上有不少种语言,好比:汉语,英语,阿拉伯语等等众多的语言。要想用这些语言去和人沟通,若是你想和英国人说话,你必须得会英语吧。而咱们的计算机也有它本身的语言,你要想让计算机帮助咱们作事情,你就须要和它沟通吧。那你就得懂得计算机语言吧,也就是编程。固然计算机也有不少语言,好比:C,Java,PHP,Python,C#等。因此咱们就先从学习基础知识开始。也有人说学习基础理论知识很枯燥,可是,那仍是得学。你要把它当成本身的兴趣,一点一点的去投入它,相信你会是很棒的。缓存

    程序用编程语言来写程序,最终开发的结果就是一个软件。就像你们都知道的QQ,腾讯视频,酷狗音乐等一系列软件。这些软件要想运行必须得有系统控制它吧。固然,有人会问:为何要用操做系统呢?固然,好久之前的那些程序员确实是在没有操做环境下,编程语言是操做硬件来编写的。你可能以为没问题,可是其实问题很严重。若是一直像之前那样会严重影响效率的。操做系统是出如今硬件之上的,是用来控制硬件的。因此,咱们开发时只须要调用操做系统为咱们提供的简单的接口就能够了。框架

  

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

2、计算机硬件介绍ide

    1. 硬件的目的:为了运行软件给它的一些指令。咱们能够优先从硬件中提取出这三个主要的东西,分别是: CPU,内存,硬盘学习

       2. 在现实生活中,人脑是用来计算的,在计算机中,用来计算的是什么呢?固然是CPU了。多数CPU都有两种模式,即内核态与用户态。这里的即内核态与用户态将会在下面的内容中讲到。spa

       3.若是咱们把计算机理解为人的大脑,咱们能够总结为几句话:操作系统

               CPU是人的大脑,负责运算

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

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

        输入设备是人的耳朵或眼睛,负责接受外部的信息传给CPU

        以上全部的设备都经过总线链接,总线至关于人的神经

                                                                                            总线示意图

3、处理器(寄存器及内核态与用户态切换)

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

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

      3.寄存器的分类

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

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

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

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

    4.内核态与用户态

       多数CPU都有两种模式,即内核态与用户态。        

    ①当cpu处于内核状态时,运行的是操做系统,能控制硬件(能够获取全部cpu的指令集)     

    ②当cpu处于用户太状态时,运行的是用户软件,不能控制硬件(能够获取全部cpu的指令集中的一个子集,该子集不包括操做硬件的指令集)

   这里有些人可能会含糊什么是内核态,什么是用户态?下面我来解释一下:

    内核态:当cpu在内核态运行时,cpu能够执行指令集中全部的指令,很明显,全部的指令中包含了使用硬件的全部功能,(操做系统在内核态下运行,从而能够访问整个硬件)因此,归根结底通俗一点的话也就是上面①解释的那样

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

  5.内核态与用户态切换

      用户态下工做的软件是不能之间操做硬件的,可是像咱们的一些软件,好比暴风音影啊一类的软件,咱们要想从磁盘中读取一个电影文件,那就得从用户态切换成内核态,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操做系统,TRAP指令把用户态切换成内核态,并启用操做系统从而得到服务。

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

       1.  计算机中第二重要的就是存储了,全部人都意淫着存储:速度快(这样cpu的等待存储器的延迟就下降了)+容量大+价钱便宜。而后同时兼备三者是不可能的,因此有了以下的不一样的处理方式

由上图能够很清楚的看见寄存器存储是速度很是快的,可是它的容量却不多。下来就是高速缓存了。我就不一一介绍了,我相信你们应该能够看得懂这个图。

 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是由于它耗电很是少,一块工厂原装电池每每能使用若干年,可是当电池失效时,相关的配置和时间等都将丢失。

5、磁盘

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

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

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

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

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

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

 

 

6、磁带

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

2.cpu和存储器并非操做系统惟一须要管理的资源,I/O设备也是很是重要的一环。I/O设备通常包括两个部分:设备控制器和设备自己

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

设备自己有相对简单的接口且标准的,这样你们均可觉得其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,因而有了控制器提供设备驱动接口给操做系统。必须把设备驱动程序安装到操做系统中。

7、总线

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

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

 

8、操做系统的启动流程

  1.计算机加电

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

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

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

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

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

9、应用程序的启动流程

  前提:应用程序是运行于操做系统之上的
   举例:启动暴风音影
     1.双击快捷方式
     2.告诉操做系统一个文件路径
     3.操做系统从硬盘读取文件内容到内存中
     4.cpu从内存读取数据执行

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息