计算机基础知识
- 2020 年 7 月 7 日
- 筆記
计算机基础知识
为什么要学习计算机基础
学习计算机基础就像盖一栋楼房一样,需要先打好地基才能继续盖房子,所以学习计算机基础就是学习如何打好地基。
python是一门编程语言,通俗一点就是语言,我们的汉语、英语、家乡话等众多语言,都是为了解决与人沟通所学习的语言,而我们学的编程语言是我们跟计算机沟通所学习的语言。当然计算机也有很多语言,比如:C、java、PHP、Python、Go等等语言,在我们中国java编程语言占领的中国市场半壁江山。
我们学习编程语言是将它用户编写程序的,最终开发的目的是创造一个软件,就像大家使用的QQ、抖音、快手等一系列软件,这些软件都是基于系统控制的,而在系统的底层是一个个计算机硬件的支持才能实现软件的运行。
计算机硬件介绍
硬件的目的:为了运行软件给它的一些命令。我们可以优先从硬件中提取出这三个主要的东西,分别为:CPU、内存、硬盘。
如果把计算机理解为人,我们可以总结为
CPU是人的大脑 负责运算
内存是人的记忆 负责临时存储
硬盘是人的笔记本 负责永久存储
输入设备是人的耳朵和眼睛 负责接收外部的信息并将信息交给cpu
处理器
计算机的大脑是CPU,它是从内存中提取命令、进行解码、执行,然后在提取指令、解码、执行、周而复始。知道整个程序的生命周期结束。
寄存器
寄存器是一个存储设备,最快的一种存储设备就是寄存器。
寄存器的分类
-
通用寄存器:用来保存变量和临时结果的。
-
程序计数器:它保存了将取出的吓一跳指令的内存地址,在指令取出后,陈哥徐计算器就被更新以便执行后期的指令。
-
堆栈指针:它只想内存中当前栈的顶端,该栈包含已经进入但是还没有推出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量
-
程序状态字寄存器(Program Status Word 简称PSW):这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态和内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常重要。
-
内核态和用户态
-
多数CPU都有两种模式,即内核态与用户态
当cpu处于内核状态时,运行的是操作系统,能控制硬件(可以获取所有CPU的指令集)
当CPU处于用户状态时,运行的是用户软件,不能控制硬件(可以获取所有CPU的指令集中的一个子集,该子集不包括操作硬件的指令集)
-
什么是内核态?
内核态:当CPU在内核态运行时,CPU可以执行指令集中所有的指令,所有的指令中包含了使用硬件的所有功能(操作系统在内核态下运行,从而可以访问整个硬件)所以,归根姐弟通俗一点的话就是内核状态能控制硬件。
-
什么是用户态?
用户程序在用户态下运行,仅能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受到保护的,不能被其他的程序占用),在用户态下,将PSW中的模式设置成内核态也是禁止的。
-
-
内核态和用户态的切换
- 用户态下工作的软件是不能相互之间操作硬件的,但是有一些软件,比如暴风影音、Qvod一类的软件,我们要向从磁盘中读取一个电影文件,那就的从用户态切换到内核态,为此,用户程序必须使用系统调用(system call) 系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。
存储器序列
- L1缓存
- L2缓存
- 内存 RAM
- EEPROM
- 闪存
- CMOS
- BIOS电池
计算机中第二重要的就是存储,我们每个人都希望存储速度快,这样cpu的等待存储器的延迟就降低了,我们希望存储的硬件设备 速度快、容量大、价钱便宜。这样我们就可以存储很多影片。但是同时兼备三者是不可能的事情。所有有了以下的不同处理方法。
寄存器即L1缓存:用于CPU相同材质制造,与CPU一样快,因而CPU访问它无时延,典型容量是:在32位CPU中32*32,在64位CPU中为64*64,在两种情况下容量均<1kb
告诉缓存即L2缓存:主要由硬件控制告诉缓存的存取,内存中有高速缓存行按照0-64字节为行,64-127位行1。最常用的高速缓存行放置在CPU内部或者非常接近CPU的高速缓存中
内存:主存通产成为随机访问存储RAM,内存的容量一直在不断攀升,所有不能在高速缓存中找到的,都会在主存中找,主存是易失性存储,断电后数据全部消失。
EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的。还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失。
磁盘
磁盘由磁头、磁道、扇区组成的
磁道:每个磁头可以读取一段换新区域。把一个戈丁手臂位置上所有的磁道合起来,组成一个柱面。
每个磁道化分若干个扇区,扇区典型的值是512字节。
数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间。
什么是寻道时间?
- ** 平均寻道时间: 机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻道时间,找到磁道就以为找到了数据所在的那块区域,但是还不知道数据具体这个区域的具体位置。
- 平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间
控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体到工作,提供个提操作系统一个简单而清晰的接口。
设备本身有相对简单的接口且标准,这样大家都可以为其编写驱动程序,要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统,必须把设备驱动程序安装到操作系统中。
总线
北桥即PCI桥:连接高速设备
南桥即ISA桥:连接慢速设备
操作系统的启动流程
- 点击计算机开关加电。
- BIOS开始运行,检测硬件、CPU、内存、硬盘等。
- BIOS读取CMOS存储器中的参数,选择启动设备。
- 从启动设备上读取第一个扇区内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)。
- 根据分区信息读取bootloader启动装载模块,启动操作系统。
- 操作系统询问BIOS,以获得配置信息,对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核,然后初始有关的进程,穿件需要的进程。并在每个终端上启动登录程序和GUI。
应用程序启动流程
- 双击快捷键
- 告诉操作系统一个文件路径
- 操作系统从硬盘读取文件到内存中
- CPU从内存中读取数据执行