一套完整的计算机系统分为计算机硬件、操做系统和软件。python是编程语言,经过语言获得的是软件,软件的最终目的是为了操控硬件的运行,而直接用软件操控硬件会形成不少没必要要的麻烦,因此在软件和硬件之间还存在着操做系统。既然咱们的最终目的是为了操控硬件运行以获得想要的结果,因此咱们首先就得了解在一台计算机中,它的硬件主要是哪些。python
计算机硬件主要为CPU、内存、磁盘、输入设备和输出设备。这些都经过一条总线链接。编程
CPU是计算机的大脑,任何软件的执行最终都要转化为CPU执行。由于CPU执行指令很快而访问内存以获得指令或数据的时间相对要久,因此,CPU内部有一个寄存器,用来保存关键变量和临时数据,最重要的寄存器是程序状态字寄存器(Program Status Word,PSW)。缓存
通常状况下的CPU只有两种状态——内核态和用户态。操做系统运行时处于内核态,在内核态状况下,整个系统的硬件均可以被调用。用户程序在运行时处于用户态,在用户态状况下硬件没法被操做,而用户程序在运行中确定是须要对硬件进行操做的例如对文件的读取,因此用户态和内核态之间必须作到可以切换,此时用户程序使用系统调用,系统调用是一个特别的过程调用指令,该指令具备从用户态切换到内核态的特别能力。多线程
moore定律指出,芯片中的晶体管数量每18个月翻一倍,随着晶体管数量的增多,功能就会更强大。并发
I.第一步加强:在cpu芯片中加入更大的缓存,一级缓存L1,用和cpu相同的材质制成,cpu访问它没有时延编程语言
II.第二步加强:一个cpu中的处理逻辑增多,称为多线程或超线程,对用户来讲一个有两个线程的cpu就至关于两个cpu,进程是资源单位而线程才是cpu的执行单位。spa
多线程运行cpu保持两个不一样的线程状态,能够在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)操作系统
III.第三步加强:除了多线程,还出现了包含2个或者4个完整处理器的cpu芯片,以下图。要使用这类多核芯片确定须要有多处理操做系统线程
计算机中第二重要的是储存器。储存器的选择主要看三个因素:速度、容量和价钱。可是要作到每一个都最优目前是不可能的,存储器系统的分层结构以下图所示3d
顶层的存储器速度较高,容量较小,与底层的存储器相比每位的成本较高,其差异每每是十亿数量级的。
寄存器的材质与CPU相同,因此它的读写速度能作到与CPU同样快,是最高效的存储器。L1缓存指的就是寄存器。
高速缓存即L2缓存,最经常使用的高速缓存通常都放在CPU内或者很是接近CPU的位置。当某个程序须要读一个存储字时,高速缓存硬件检查所须要的高速缓存行是否在高速缓存中。若是是,则称为高速缓存命中,缓存知足了请求,就不须要经过总线把访问请求送往主存(内存)。
内存是存储器系统的主力。内存是易失性存储,断电后数据就所有消失。能够理解为电脑进程开的太多使得运行变慢时,重启就能够解决问题。由于重启意味着一次断电的行为,进程会由于RAM数据消失而被迫结束,因此电脑变得流畅起来。
EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,不太重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存一般做为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不一样的是,闪存擦除的次数过多,就被磨损了。
另外还有一种特别不同凡响的存储器叫CMOS,它是易失性的许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,因此,即便计算机没有加电,时间也仍然能够正确地更新,除此以外CMOS还能够保存配置的参数,由于它耗电很是少。
磁盘是一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。由于磁盘旋转速度相对而言较慢,因此它的读写速度就较慢。每一个磁头能够读取一段换新区域,称为磁道把一个戈丁手臂位置上因此的磁道合起来,组成一个柱面每一个磁道划成若干扇区,扇区典型的值是512字节,数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据须要经历寻道时间和延迟时间,找到了磁道就意味着找到了数据所在的那个圈圈,可是还不知道数据具体这个圆圈的具体位置,机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间机械臂到达正确的磁道以后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。
虚拟内存的做用是可使计算机运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不须要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存。
磁带在价钱相同的状况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,可是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来作备份。
随着处理器和存储器速度愈来愈快,单总线很难处理总线的交通流量了,因而出现了下图的多总线模式,他们处理I/O设备及cpu到存储器的速度都更快。北桥即PCI桥:链接高速设备;南桥即ISA桥:链接慢速设备。
总结:
计算机的启动流程以下:一、计算机加电;二、BIOS开始运行,检测硬件:cpu、内存、硬盘等;三、BIOS读取CMOS存储器中的参数,选择启动设备;四、从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位);五、根据分区信息读入bootloader启动装载模块,启动操做系统;六、而后操做系统询问BIOS,以得到配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,若是没有,系统则会要求用户按照设备驱动程序。一旦有了所有的设备驱动程序,操做系统就将它们调入内核。而后初始有关的表格(如进程表),穿件须要的进程,并在每一个终端上启动登陆程序或GUI。
应用程序的启动流程以下:操做系统找到硬盘上的应用软件,而后CPU取指——解码——执行文件。软件自己要运行一个文件,经过操做系统控制硬盘提取文件,这个过程要将CPU从用户态转换为内核态,CPU执行要运行的这个文件的过程当中又将内核态转换为用户态。