• 计算机基础


    一、编程语言的作用及与应用程序、操作系统、硬件之间的关系

    作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。
    关系:编程语言会通过编译软件写成程序,程序是不能直接和硬件来进行交互的,而操作系统是用来管理计算机硬件设备的,所以我们可以就可以在操作系统上来运行程序,让操作系统去管理与配置内存、决定系统资源供需的优先次序、控制输入与输出、操作网络与管理文件系统等基本任务。
    硬件上运行操作系统,操作系统上运行应用程序,应用程序通过Windows API调用操作系统函数从而和计算机硬件交互。

    二、cpu、内存、磁盘之间的关系
    1.CPU即中央处理器,CPU从内存或缓存中取出指令,放入指令寄存器,并对指令进行解码,然后发出各种控制命令,从而完成一条指令的执行。
    2.CPU并不能直接调用存储在硬盘上的系统、程序和数据,必须将硬盘的有关内容通过总线存储在内存中,才能被CPU读取运行。因而,内存可以理解为硬盘和CPU的“中转站”。
    3.当运行数据大小超出物理内存的时候,这时系统就会将硬盘上的部分空间模拟成内存——虚拟内存,并将暂时不运行的程序或不使用的数据存放到这部分空间之中,等待需要的时候方便及时调用。
    4.内存是带电储存,断电消失,并且容量有限,如果想长期储存的话还需要将数据存放到硬盘中。

    三、cpu与寄存器,内核态与用户态及如何切换
    1.寄存器是cpu的一部分,因为cpu从内存得到指令或数据的时间比cpu执行指令花费的时间要长,所以将关键变量和临时数据保存到寄存器里面,访问速度和CPU同速或半速,用来避免内存速率比CPU慢几个数量级的瓶颈问题
    2.当cpu可以访问内存里的所有数据,并且可以访问外围设备(硬盘, 网卡等硬件)时为内核态,CPU也可以将自己从一个程序切换到另一个程序;受限的访问内存, 且不允许访问外围设备时为用户态,占用CPU的能力被剥夺,CPU资源可以被其他程序获取。
    3.所有用户程序都是运行在用户态的,但是有时候程序确实需要做一些内核态的事情,例如从硬盘读取数据, 或者从键盘获取输入等。 而唯一可以做这些事情的就是操作系统, 所以此时用户程序就需要使用系统调用,操作系统请求以程序的名义来执行这些操作,此时就会从用户态切换到内核态。

    四、L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池
    1.寄存器既L1缓存,材质、速度和CPU相同,CPU访问寄存器时无延时
    2.L2缓存被称为告诉缓存,CPU比较常用的会放在L2缓存中,访问速度会比L1缓存慢。
    3.所有的程序都是在内存中运行的,计算机在运行中,操作系统也会在内存中运行。内存的速度会慢于L1和L2缓存,CPU访问的先后顺序是先访问L1缓存吗,然后访问L2缓存,再访问内存,最后访问硬盘,每次访问的命中率为80%。
    4.EEPROM和闪存都是一种储存器,可以擦除和重写,但是重写的速度介于内存和磁盘之间。被应用于便携式电子设备的存储媒介,磁盘,固态硬盘等,都是应用闪存。
    5.CMOS也是一类存储介质,它是易失性的,断电既消失,但是因为它的耗电亮很小,所以采用它来存储一些系统的参数配置,一块电池能使用若干年。

    五、平均寻道时间,平均延迟时间,虚拟内存与MMU
    1.平均寻道时间它是指硬盘在接收到系统指令后,磁头从开始移动到移动至数据所在的磁道所花费时间的平均值。
    2.平均延迟时间机械臂到达正确的磁道之后,使得要读取的扇区转到读写头的下方这段时间的平均值,为平均延迟时间。
    3.当计算机运行大小大于物理内存的程序时,会在硬盘中分块一块空间,然后将内存中程序不常用的数据放到硬盘的那块空间中,当用到的时候在拿回到内存中,这时内存和虚拟的内存空间会形成映射,成为存储器管理单元(MMU)。这种方式的运行速度会比正常情况下低。

    六、磁带
    速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。

    七、总线与南桥和北桥
    1.总线将计算机内部各部件连接,并且实现了计算机各功能部件之间的信息传输。
    2.南桥连接慢速设备,硬盘,显示器等设备。
    3.北桥连接高速设备,CPU,内存等设备。

    八、操作系统的启动流程
    1.机器加电,bios启动检查硬件设备。
    2. bios读取COMS中存储的参数,选择启动设备。
    3.从启动设备中读取第一个扇区的内容。
    4.根据分区信息读入bootloader启动装载模块,启动操作系统。
    5.操作系统文件会从bios中获取配置参数。会检查计算机设备的驱动程序,如果有设备缺少会提示用户缺少驱动,如果全动加载成功,则操作系统会将他们加入到内核中。

    九、应用程序的启动流程
    1.输入设备将指令发给控制器。
    2.控制器通过驱动器将请求发给操作系统。
    3.操作系统会去硬盘上寻找文件位置。
    4.操作系统找到文件以后会往内存里读,读完以后程序启动成功。

     原文来自:http://blog.sina.com.cn/s/blog_13d84115b0102y97y.html

  • 相关阅读:
    Docker容器彻底删除所有容器、删除所有镜像、删除所有卷、删除所有网络
    Fabric区块链浏览器启动报错Error : [ 'Explorer is closing due to channel name [%s] is already exist in DB'...]
    查看docker里面的Postgres数据库里面的信息
    将本地镜像推送到指定docker服务器
    linux 下 配置C++ 开发环境
    Go 发送邮件
    Ubuntu下使用nginx发布vue项目
    C++多线程之条件变量
    C/C++ 递归
    STL容器概述
  • 原文地址:https://www.cnblogs.com/0704L/p/7151128.html
Copyright © 2020-2023  润新知