zoukankan      html  css  js  c++  java
  • 计算机基础-硬件

    一 为何要学习计算机基础

    python是编程语言,即python是语言

    语言有英语、法语、葡萄牙语等,但凡是语言,都是用来沟通的介质。

    程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质

    程序员要想让计算机工作,必须知道计算机能干什么,怎么干的,这也就是我们必须学习计算机基础的原因

    然而光有编程语言和硬件也并不能满足大家的编程需求,为什么这么说呢?

      程序用编程语言写程序,最终开发出的结果就是一个软件,既然是软件,那就与腾讯qq、暴风影音、快播等软件没有区别了。这些软件必须运行在操作系统之上,你肯定会问:为何要有操作系统呢?没错,远古时代的程序员确实是在没有操作系统的环境下,用编程语言之间操作硬件来编程的,你可能觉得这没有问题,但其实问题是相当严重的,因为此时你必须掌握如何操作硬件的所有具体细节,比如如何具体操作硬盘(现在你得把硬盘拆开,然后你能看见的所有的东西,你都得研究明白,因为你编程时要用到它),这就严重影响了开发的效率,操作系统的出现就是运行于硬件之上,来控制硬件的,我们开发时,只需要调用操作系统为我们提供的简单而优雅的接口就可以了

    所以一套完整的计算机系统分为:计算机硬件,操作系统,软件(程序员开发的就是软件),如下图。因而我们的python编程之路分为计算机硬件基础,操作系统基础,和python编程三部分,就让我们先从计算机硬件学起吧

    二 本节目标

    1. 了解计算机各组件及工作原理
    2. 了解计算机启动流程

    三  计算机硬件发展史

    http://www.cnblogs.com/lianxuebin/p/8341543.html

    四:计算机硬件介绍

    从概念上讲,一台简单的个人计算机可以抽象为类似下图的模型,CPU、内存以及I/O设备都由一条系统总线(bus)连接起来并通过总线与其他设备通信

    现代计算机的结构更复杂,包括多重总线,我们将在后面的小节介绍,此时暂且让我们以下图为例来介绍各个部件

    理解各部分功能的一个简单的方法是,把计算机各部分组件往人的身上套,比如

    cpu是人的大脑,负责运算

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

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

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

    输出设备是你的表情,负责经过处理后输出的结果

    以上所有的设备都通过总线连接,总线相当于人的神经

    上课开始,老师讲课,学生听课,老师是程序员,学生是计算机,学生的器官都是计算机各部分组成

    1.老师通过学生的眼睛和耳朵将自己的知识/指令传给学生(输入)

    2.学生在接收知识/指令后,通过自己的神经,将其放入自己的内存/短期记忆(总线、内存)

    3.学生的大脑/cpu从短期记忆里取出知识/指令,分析知识/指令,然后学习知识/执行指令 (cpu取指、分析、执行)

    4.学生的表情会直接反映出自己是否听懂,这就是输出,老师瞅一眼就知道学生有没有学会(输出)

    5.学生想要永久将知识保存下来,只能拿出一个笔记本,把刚刚学会的知识都写到本子上,这个本子就是硬盘(磁盘)

    4.1 处理器

        计算机的大脑就是CPU,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。

    每个cpu都有一套可执行的专门指令集,任何软件的执行最终都要转化成cpu的指令去执行。所以Pentium(英特尔第五代x86架构的微处理器)不能执行SPARC(另外一种处理器)的程序。这就好比不同的人脑,对于大多数人类来说,人脑的结构一样,所以别人会的东西你也都可以会,但对于爱因斯坦的脑子来说,它会的你肯定不会。

    因访问内存以得到指令或数据的时间比cpu执行指令花费的时间要长得多,所以,所有CPU内部都有一些用来保存关键变量和临时数据的寄存器,这样通常在cpu的指令集中专门提供一些指令,用来将一个字(可以理解为数据)从内存调入寄存器,以及将一个字从寄存器存入内存。cpu其他的指令集可以把来自寄存器、内存的操作数据组合,或者用两者产生一个结果,比如将两个字相加并把结果存在寄存器或内存中。

        寄存器的分类:

    1.除了用来保存变量和临时结果的通用寄存器

    2.多数计算机还有一些对程序员课件的专门寄存器,其中之一便是程序计数器,它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令

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

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

      寄存器的维护:

      操作系统必须知晓所有的寄存器。在时间多路复用的CPU中,操作系统会经常中止正在运行的某个程序并启动(或再次启动)另一个程序。每次停止一个运行着的程序时,操作系统必须保存所有的寄存器,这样在稍后该程序被再次运行时,可以把这些寄存器重新装入。

      处理器设计的演变

    1.最开始取值、解码、执行这三个过程是同时进行的,这意味着任何一个过程完成都需要等待其余两个过程执行完毕,时间浪费

    2.后来被设计成了流水线式的设计,即执行指令n时,可以对指令n+1解码,并且可以读取指令n+2,完全是一套流水线。

    3.超变量cpu,比流水线更加先进,有多个执行单元,可以同时负责不同的事情,比如看片的同时,听歌,打游戏。

    两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们都执行完毕。只有有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令

    这种设计存在一种缺陷,即程序的指令经常不按照顺序执行,在多数情况下,硬件负责保证这种运算结果与顺序执行的指令时的结果相同。

      内核态与用户态

      除了在嵌入式系统中的非常简答的CPU之外,多数CPU都有两种模式,即内核态与用户态

      通常,PSW中有一个二进制位控制这两种模式

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

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

      内核态与用户态切换  

      用户态下工作的软件不能操作硬件,但是我们的软件比如暴风影音,一定会有操作硬件的需求,比如从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

      请把的系统调用看成一个特别的的过程调用指令就可以了,该指令具有从用户态切换到内核态的特别能力。

      异常处理

      需要强调的是,计算机使用TRAP来执行系统调用,多数的TRAP是由硬件引起的,用于警告有异常情况发生,如试图1/0等操作。在所有的情况下,操作系统都得到控制权并决定如何处理异常情况,有时,由于出错的原因,程序不得不停止。在其他的情况下可以忽略出错,如果程序已经提前宣布它希望处理某类异常时,那么控制权还必须返回给程序,让其处理相关的问题

      多线程和多核芯片

    moore定律指出,芯片中的晶体管数量每18个月翻一倍,随着晶体管数量的增多,更强大的功能称为了可能,如

    I.第一步增强:在cpu芯片中加入更大的缓存,一级缓存L1,用和cpu相同的材质制成,cpu访问它没有时延

    II.第二步增强:一个cpu中的处理逻辑增多,intel公司首次提出,称为多线程(multithreading)或超线程(hyperthreading),对用户来说一个有两个线程的cpu就相当于两个cpu,我们后面要学习的进程和线程的知识就起源于这里,进程是资源单位而线程才是cpu的执行单位。

    多线程运行cpu保持两个不同的线程状态,可以在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)

    III.第三步增强:除了多线程,还出现了傲寒2个或者4个完整处理器的cpu芯片,如下图。要使用这类多核芯片肯定需要有多处理操作系统

     

    4.2 存储器

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

    存储器系统采用如上图的分层结构,顶层的存储器速度较高,容量较小,与底层的存储器相比每位的成本较高,其差别往往是十亿数量级的

      寄存器即L1缓存:

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

      高速缓存即L2缓存:

    主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中,缓存满足了请求,就不需要通过总线把访问请求送往主存(内存),这毕竟是慢的。高速缓存的命中通常需要两个时钟周期。高速缓存为命中,就必须访问内存,这需要付出大量的时间代价。由于高速缓存价格昂贵,所以其大小有限,有些机器具有两级甚至三级高速缓存,每一级高速缓存比前一级慢但是容易大。

      缓存在计算机科学的许多领域中起着重要的作用,并不仅仅只是RAM(随机存取存储器)的缓存行。只要存在大量的资源可以划分为小的部分,那么这些资源中的某些部分肯定会比其他部分更频发地得到使用,此时用缓存可以带来性能上的提升。一个典型的例子就是操作系统一直在使用缓存,比如,多数操作系统在内存中保留频繁使用的文件(的一部分),以避免从磁盘中重复地调用这些文件,类似的/root/a/b/c/d/e/f/a.txt的长路径名转换成该文件所在的磁盘地址的结果然后放入缓存,可以避免重复寻找地址,还有一个web页面的url地址转换为网络地址(IP)地址后,这个转换结果也可以缓存起来供将来使用。

      缓存是一个好方法,在现代cpu中设计了两个缓存,再看4.1中的两种cpu设计图。第一级缓存称为L1总是在CPU中,通常用来将已经解码的指令调入cpu的执行引擎,对那些频繁使用的数据自,多少芯片还会按照第二L1缓存 。。。另外往往设计有二级缓存L2,用来存放近来经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。

    内存:

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

    除了主存RAM之外,许多计算机已经在使用少量的非易失性随机访问存储如ROM(Read Only Memory,ROM),在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。

    EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。

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

    4.3 磁盘

    磁盘低速的原因是因为它一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。从边缘开始有一个机械臂悬在盘面上,这类似于老式黑胶唱片机上的拾音臂。信息卸载磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计方法,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。

    每个磁头可以读取一段换新区域,称为磁道

    把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

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

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

    平均寻道时间

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

    平均延迟时间
    机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间
     
     
      虚拟内存:
    许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)
     
    PS:从一个程序切换到另外一个程序,成为上下文切换(context switch),缓存和MMU的出现提升了系统的性能,尤其是上下文切换
     

    4.4 磁带

    在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)

    4.5 I/O设备

    cpu和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环。

    见四中的图,I/O设备一般包括两个部分:设备控制器和设备本身

    控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

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

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

    4.5 总线

    四小节中的结构在小型计算机中沿用了多年,并也用在早期的IBM PC中。但是随着处理器和存储器速度越来越快,单总线很难处理总线的交通流量了,于是出现了下图的多总线模式,他们处理I/O设备及cpu到存储器的速度都更快。

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

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

    4.6 启动计算机

    在计算机的主板上有一个基本的输入输出程序(Basic  Input Output system)

    BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。

    启动流程

    1.计算机加电

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

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

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

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

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

    编程语言的作用及与操作系统和硬件的关系:
    
    编程语言是可以和计算机沟通交流的一门语言,类似于中文,英语,日语等等。
    
    不同的是编程语言可以给予计算机命令并使计算机执行相应的操作。
    
    操作系统是计算机程序的一种,用于计算机“裸机”最基本的系统程序。
    
    硬件由运算器、控制器、输入设备、输出设备及存储器组成。
    
    编程语言生成的软件需在操作系统的基础上运行,操作系统运行又离不开硬件,想要正常运行计算机并执行命令三者不可或缺。
    
     
    
    应用程序-》操作系统-》硬件:
    
    编程语言给予计算机命令并使计算机执行相应的操作。而操作系统就是上述过程中执行的媒介。
    
    编程语言编写程序开发出软件,因软件需在操作系统的基础上执行,故需将命令传递给操作系统。
    
    操作系统需在硬件上进行工作,操作系统将命令传递给硬件,以此来完成一次完整行为。
    
     
    
    cpu-》内存-》磁盘:
    
    CPU由运算器和控制器组成,相当于大脑,用于分析运算。
    
    内存存储器是用来保存将要处理,正在处理以及刚刚处理完的信息的临时保存。
    
    磁盘用于永久保存信息和资源的工具。
    
    CPU接收外部信息并从内存中调用并进行分析运算,内存将正在进行,等待处理,刚刚处理完的的信息临时保存,以提高运算效率。
    
    而后磁盘将需要永久保存的信息及内容保存到磁盘中。
    
     
    
    cpu与寄存器,内核态与用户态及如何切换:
    
    CPU从内存中调用的数据所花的时间比CPU处理运算数据要常长。故CPU都有寄存器放置关键数据和参数,以及刚刚处理过的数据。
    
    寄存器下面四种:
    
    1.通用寄存器:保存关键参数和临时结果。
    
    2.程序计数寄存器:保存从内存中将要取出的下一条指令的内存地址,每取出一份指令计数加一。
    
    3.堆栈指针寄存器:指向内存中存有数据指令当前栈的顶端一个。其指向当前栈的已经进入但没有退出每个过程中的一个框架。其框架保存了已经输入的变量及参数,以及未保存到寄存器中的临时变量。
    
    4.程序状态字寄存器:包括条码位(比较指令设置),内核态和用户态二种模式,CPU优先级以及各种控制位。通常被读入整个PSW,但仅对少量数据写入。
    
    内核态:CPU内核态运行时,CPU可以执行指令集中的所有指令,内核态能访问整个硬件数据及指令,包含了硬件的所有功能。
    
    用户态:CPU用户态运行时,不能访问硬件数据及指令,只能访问一个子集,不包含硬件的功能。在此状态下,将用户态设置为内核态是被禁止的。
    
    内核态和用户态之间切换:有时候计算机需将用户态切换到内核态,使用系统调用来处理。系统调用陷入内核和操作系统,TRAP指令将用户态切换成内核态,并启用操作系统来获取服务。从而实现内核态和用户态之间的切换。
    
     
    
    存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池:
    
    存储器系列:寄存器、高速缓存、内存、磁盘、磁带。从左向右速度越来越慢,容量越来越大,对应的价格比越来越低。
    
    L1缓存:寄存器。与CPU材质相同,放置在CPU内部。故时间上无延迟。容量较低<1kB,32位计算机操作系统内存为32*32,64位计算机操作系统内存为64*64。
    
    L2缓存:高速缓存。通过硬件控制高速缓存的存取,放在CPU内部或者离CPU较近的位置。高速缓存相比寄存器有时间上1~2ns的延迟,通常内存中保留常用的被使用的内容,以提高效率。
    
    内存(RAM):又称为随机访问存储,即主存。易失性,断电情况下就会丢失。为存储系统主力,在高速缓存找不到的文件在内存中均能被找到。
    
    与之相应的是ROM,非易失性,断电情况下数据也不会丢失。ROM只读存储器,在工厂已被编程完成且不能修改。速度快且便宜。可用于计算机启动加载模块,另外I/O也被ROM底层设备所控制。
    
    EEPROM和闪存:EEPROM电可擦除可编程ROM,EEPROM和闪存一样非易失性,具有可擦除和重写功能。其中闪存相当于存储媒介,如相机中的胶卷,磁盘,固态硬盘等。
    
    闪存速度介于RAM和磁盘中,相比较磁盘而言,闪存擦除次数过多会使其磨损,导致其功能失效。
    
    CMOS与BIOS电池:CMOS为存储器的一种,易失性。CMOS存储器和递增时间的电路由一小块电池驱动,可用于存储时间和日期,保证在断电情况下时间和日期能正常显示。也可存储配置的参数,如哪一个是启动磁盘等。其中读取CMOS配置参数就是通过主板ROM上的程序BIOS。BIOS保存着计算机最基本的输入输出系统,以及计算机开机后的自检程序和系统自启动程序。
    
     
    
    磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU:
    
    磁盘结构:磁盘为一种机械设置,低速。有一个或者若干个金属盘片组成,由转轴来连接这些金属盘片。金属盘片边缘有类似于机械臂的设置,头部有磁头可以读取信息,转轴以一定速度旋转以便磁头读取金属盘片上的信息。
    
    平均寻道时间:数据都存储在一片片扇形中,磁头读取相应的信息需要移动到其所在的扇形区域对应的轨道中,所花的时间即为寻道时间。
    
    平均延迟时间:磁头移动到相应的轨道后,不一定恰好处于所需数据的扇形区域内,移动到所需数据的扇形区域所花的时间为延迟时间。
    
    虚拟内存:将正在运行的程序放入内存取执行,暂时不需要执行的程序放入磁盘中,这部分磁盘称为虚拟内存,扩大了内存。
    
    MMU:存储器管理单元。快速映射内存地址,方便程序之间的切换。MMU和缓存提升了系统的性能。
    
     
    
    磁带:
    
    磁带:存储器的一种。容量比较大,价格便宜,速度慢。
    
     
    
    设备驱动与控制器:
    
    控制器通过与设备连接,并给予设备命令使其执行命令。中间的媒介为设备驱动,设备驱动是为设备编写的程序,控制器通过设备驱动来控制设备。
    
     
    
    总线与南桥和北桥:
    
    总线连接CPU、内存、输入输出设备,形成计算机硬件系统,计算机各功能被实现。随着存储器和内存越来越快,总线也从单总线升级到多中线。
    
    南桥与北桥同样的作用,亦被使用。南桥为ISA桥,连接慢速设备。北桥为PCI桥,连接快速设备。
    
     
    
    操作系统的启动流程:
    
    操作系统的启动通过BIOS系统,BIOS系统存储在ROM中一部分区域。电脑通电,BIOS系统启动,检测CPU、内存、硬盘等,读取CMOS中的配置参数,启动设备。从启动的设备中读取扇形内容启动装载模块,而后操作系统被启动。
    
     1、计算机家代理
    
     2、BIOS自检
    
     3、选择启动设备
    
     4、MBR引导
    
     5、bootloader启动操作系统
    
     6、内核加载获取配置信息以及驱动程序
    
     
    
    应用程序的启动流程:
    
    应用程序的启动在操作系统启动的前提下进行。BIOS程序从操作系统中获取配置数据。然后检测每种设备是否有设备驱动,没有的话为其设置设备驱动。所有的设备都有相对应得设备驱动后,操作系统将它们调入内核,初始有关的表格,穿件需要的进程,在每个程序上启动终端。应用程序得以启动。
    
    1.输入设备将指令发给控制
    
    2.控制器通过驱动器将请求发给操作系统。
    
    3.操作系统会去硬盘上寻找文件位置。
    
    4.操作系统找到文件以后会往内存里读,读完以后程序启动成功
    知识点整理
  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/lianxuebin/p/7153134.html
Copyright © 2011-2022 走看看