《计算机是怎样跑起来的》

这里写目录标题

  • 前言
    • 计算机的三个根本性基础
    • 编译
    • 面向组件与面向对象
    • CPU、内存与I/O
    • 机器语言
    • 估算程序执行时间
    • 程序
    • PC寄存器
    • 三种执行
    • 流程图
    • 集线器与路由器
    • 网络地址与主机地址
    • 子网掩码
    • 默认网关
    • 路由

2023/5/29 - 2023/5/30

前言

如果仅仅把技术当作一个黑盒,只把时间花在学习其表面上,而并没有探索到其本质,就绝不应该认为自己已经"懂"了。

带着问题阅读正文的内容

计算机的三个根本性基础

1、计算机是执行输入、运算、输出的机器
2、程序是指令和数据的集合
3、计算机的处理方式有时和人们的思维习惯不同

如果只是使输入的信息绕过运算环节直接输出,那么这就是电线而不是计算机了.

编译

所谓编译就是把用编程语言写的文件(源文件)转换成用机器语言(原生代码)编写的文件

面向组件与面向对象

面向组件编程的方法是通过将组件(程序的零件)组装到一起完成程序;面向对象编程的方法是先如实地对现实世界的业务建模,之后再把模型搬到程序中

CPU、内存与I/O

CPU是计算机的大脑,负责解释、执行程序。内存中存放着程序。程序是指令和数据的集合。
I/O负责将计算机和外部设备连接在一起。

机器语言

所谓机器语言就是只用0和1两个二进制数书写的编程语言。机器语言是唯一一种CPU能直接理解的编程语言。

CPU的寄存器不仅能存储数据,还具备对数据进行运算的能力。

估算程序执行时间

LOOP标签有8条指令一共有72个时钟周期,CPU用的是2.5MHz的晶振,也就是一秒产生250万个时钟周期,也就是每个时钟周期是1s / 250万 = 0.4微秒,72个时钟周期也就是0.4微秒 * 72 = 28.8微秒。

程序

程序是流动的:因为作为计算机大脑的CPU在同一时刻基本上只能解释、执行一条指令。把指令和作为指令操作对象的数据排列起来就形成了程序。

PC寄存器

CPU中有一个被称为PC(Program Counter 程序计数器)的寄存器,负责存储内存地址,该地址指向下一条即将执行的指令。每解释完一条指令,pc寄存器的值就会自动被更新为下一条指令的地址。

三种执行

程序的三种流程正像是河流本身。从高山的泉眼中涌出的清泉形成了河流的源头(即程序执行的起点)。水流从山中缓缓流下,有时向着一个方向流淌(即顺序执行),有时中途分出支流(条件分支),有时由于地势卷起漩涡(循环)

流程图

流程图符号

用机器语言或者汇编语言表示循环时,都是先进行某种比较,再根据比较结果,跳转到之前的地址。
条件分支和循环在高级语言中用程序块表示,在汇编语言和机器语言中用跳转指令表示,在硬件上是通过把PC寄存器的值设为要跳转的目的地的内存地址来实现。

栈的本意是干草堆。

集线器与路由器

集线器是负责把各台计算机的网线连接在一起的集线设备,路由器是负责把公司内的网络和互联网连接起来的设备。
路由器负责将LAN连接到WAN上。

网络地址与主机地址

通常把IP地址中表示分组(即LAN)的部分称作"网络地址"、表示各台计算机(即主机)的部分称为"主机地址"。比如:AAA.BBB.CCC是网络地址,而后面的XXX是主机地址。

子网掩码

子网掩码的作用是标识出在32比特的IP地址中,从哪一位到哪一位是网络地址,从哪一位到哪一位是主机地址。比如:255.255.255.240的二进制:1111111.11111111.1111111.11110000,子网掩码中,值为1对应着IP地址中的网络地址,值为0对应着主机地址。所以子网掩码255.255.255.240表示其所对应的IP地址中前28位比特是网络地址,后4位是主机地址。4个二进制共可表示16个数,其中0000与1111有特殊用途,所以办公室一共能分配14台计算机,又因为里面有一台路由器,所以最多只能放置13台计算机。

"自动获得IP地址"这个选项会使得计算机在启动时会去DHCP服务器获取IP地址和子网掩码,并自动配置它们。

默认网关

"默认网关"是通常会把路由器的IP地址设置在这里,也就是说路由器就是从LAN通往互联网世界的入口。路由器的IP地址也可以从DHCP服务器获取。

路由

当从公司内的计算机向另一家公司的计算机发送数据时:首先一个不属于LAN内计算机的IP地址会被附加到数据的发送目的地字段上。这样的数据虽然会被LAN内的计算机所忽略,但不会被路由器所忽略,因为路由器的工作原理就是查看附加到数据上的IP地址中的网络地址部分,只要发现这个数据不是发送给LAN内计算机的,就把它发送到LAN外,即互联网的世界中。

在路由表中,如果数据的发送目的地就在本LAN中,则可以直接发送数据而无需经过路由器转发;反之如果在LAN外(或发送目的地的地址不在路由表中),则需要经过路由器转发。

DNS服务器为我们把www.baidu.com这样的域名解析为202.108.22.5这样的IP地址

你可能感兴趣的:(读书笔记,笔记)