读《程序是怎么跑起来的》第一章

  一般所说的程序比如运动会,音乐会的各种程序,等指的是行事的先后次序。计算机程序也是一样道理。我们在用电脑时有没有经历过机器,有时会出于一次死机的状态,鼠标点什么似乎都没用,双击任何快捷方式都不动弹。就当你失去耐性,打算reset时。突然它就像酒醒了一样,把你刚才点击的所有操作全部都按顺序执行了一遍。这其实是因为操作系统中的多个程序,因需要通过一个通道输出,而按先后次序排队等待造成的。
  再比如像移动,联通,电信等客服电话,客服人员与客户相比总是少数,所有的客户人员都占线情况下,客户会被要求等待,直到有个有某个客服人员空下来才能让自己先等待的客户接通电话,这里也是将所有当前拨打客户的电话的客户进行了排队处理。
操作系统和客户系统中都运用了一种数据结构来实现刚才提到的先进先出的排队功能,这就是队列。
  队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
  队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,列在最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列,最后来的当然排在队伍最后。
  硬盘和磁盘等媒介上保存的程序被复制到内存后才能执行,内存中保存的命令和数据的场所通过地址的标记和指定地址有整数值表示,计算机构成袁建忠,根据程序的指令来进行数据运算,并控制整个计算机的射被称作CPU,中文名称中央处理器。CPU所负责的就是解释和运行最终转换成机器语言的程序内容。一个CPU内部会有20到100个寄存器,控制己负责把那学校的指定数据等读入寄存器,并根据指令的执行结果来控制整个计算机,运算器负责从内存读取寄存器的数据,始终负责发出CPU开始计时的时钟信号。时钟信号表示时钟信号的频率,也就是说时钟信号的频率越高,CPU运行速度越快。


  指令周期,也称为机器周期或读取-执行周期,逝者CPU从内存中获取一条指令到执行磁条指定所经历的步骤。每台计算机的指令集可能不同,因此指令周期也不同,但一般有以下四个阶段:
    1.指令获取:CPU内有程序计数器PC,它存储了下一条将要执行的指令的地址。处理器按PC存储的地址,到内存中,获取指令的内容,PC加1,经数据总线将指令存入指令寄存器IR中。
    2.指令解码:指令译码器解释IR内的指令。如果指令有一个间接地址,则有效地址和所需数据从主存中读取,并存储于数据寄存器中。
    3.指令执行:控制单元将译码信息作为控制信号序列传送给CPU相应的功能单元来执行指令,如读取寄存器中的值,将寄存器中的值传送给ALU,以执行算术或逻辑运算,将结果写回寄存器等。ALU,接收到相应的信息后,会反馈一个条件信号给控制单元。
    4.结果存储:操作所产生的结果可以存储在主存,或者发送到输出设备。根据ALU反馈的信息,程序计数器将更新为下一条指令执行的地址。
  此周期将重复。其中将步骤1和2的称为取指周期。这些步骤对每个指令而言都是相同的。取指周期是从指令字获取操作码和操作数并进行译码。步骤3和4成为执行周期。这些步骤因指令而异。执行周期首先是内存处理,数据在CPU和输入/输出模块之间传输;其次是数据处理阶段,对数据进行算术运算以及逻辑运算;然后是集中变更阶段,执行诸如跳转等操作序列;最后是对所有步骤进行综合。


  机器人指令的主要类型和功能:
    1.数据传送指令:寄存器和内存,内存和内存,寄存器和外围设备之间的数据读写操作
    2.运算指令:用累加寄存器执行算术运算,逻辑运算,比较运算和移位运算
    3.跳转指令:实现条件分支,循环,强制跳转等
    4.call/return指令:函数的调用/返回调用前的地址

posted on 2019-03-23 15:02  笠侹凯树  阅读(145)  评论(0编辑  收藏  举报

导航