ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机是怎样跑起来的笔记摘要

2021-04-10 09:29:24  阅读:87  来源: 互联网

标签:计算机 引脚 摘要 笔记 地址 内存 数据 路由器


文章摘抄于矢泽久雄的《计算机是怎样跑起来的》,用于个人学习,内容有不当或错误的地方请见谅。让我们一起学习,共同进步。

文章目录

第一章 计算机三大原则

1.1三个根本性基础

  1. 计算机是执行输入、运算、输出的机器

    计算机硬件由大量IC(集成电路)组成,每块IC上有许多引脚(有些用于输入,有些输出)。

  2. 程序是指令和数据的集合

    指令–>控制计算机进行输入、运算、输出的命令。(组成函数、语句、方法等)

    数据–>1.作为指令执行对象的输入数据。2.从指令执行结果得到的输出数据

    编译:把用C语言等编程语言编写的源文件转换成用机器语言(原生代码)编写的文件(生成…exe文件 ,里 面是数值的罗列)无论哪个程序,其内容都是数值的罗列,每个数值要么是指令要么是数值。(怎么区分?)

  3. 计算机的处理方式有时与人的思维习惯不同

    计算机把什么都(如文字)转换成数字再做处理;

    计算机协同工作指输入到一台计算机中的数据,可以通过互联网传送到与这台计算机相连的其他计算机上执行运算,运算所输出的结果再返回给这台计算机。(只要定义了指令和数据规范,装有符合规范的程序的计算机就可以相互协作了)

1.2计算机网络

1.按网络作用范围分类:广域网WAN、城域网MAN、局域网LAN、个人区域网PAN

​ LAN局域网:把一栋建筑物内或一间办公司内小规模网络称作LAN。

​ WAN:像互联网那样将企业和企业联结起来的大规模网络

2.按网络使用者分类:公用网、专用网

3.性能指标:速率,带宽,吞吐量,时延,往返时间RTT,利用率

第二章 试着制造一台计算机

计算机工作原理:CPU在时钟信号的控制下解释、执行内存中存储的程序,(CPU配合着由时钟发生器发出的滴答滴答的时钟信号,从内存读出指令,再依次对其进行解释和执行)按照程序中的指令从内存或I/O中把数据输入到CPU中,在CPU内部进行运算,再把运算结果输入到内存或I/O中。

2.1基础元件

  1. CPU
  2. 内存
  3. I/O

2.2连接电源、数据和地址总线

Z80CPU、TC5517和Z80 PIO上分别带有Vcc引脚(电路正常供电电压+5V)和GND引脚(接地的电压0V),将+5V和0V连接到时钟发生器上。连通电源后这些IC和时钟发生器就可以工作了。微型计算机的IC(数字IC),每个引脚要么0V,要么+5V,通过这两个电压与其他IC进行电信号的收发。除VCC和GVN上的电压,其他引脚上的电压会随着计算机操作在+5V和0V之间不断变化。

一个二进制数(数字IC上一个引脚所能表示的0或者1)所表示信息称为“1比特”,8比特为一个字节。

CPU上有“地址总线引脚”,Z80CPU的地址总线引脚有16个,用代号A0A15,A表示Address(地址)。015表示16位二进制数中各个数字位置,0为最低位,15为最高位。16个地址总线引脚所能指定地址有65536个(2的15次方)(即0000000000000000~1111111111111111).因此Z80CPU可以指定65536个数据存取单元(内存存储单元或I/O地址),进行信息输入输出。

一旦指定存取数据的地址,就可以使用数据总线引脚进行数据的输入输出了。Z80CPU的数据总线引脚有8个,D0D7,D为Date,07为二进制各数的位置。可一次性输入8比特的数据。

内存的TC5517上也有(A0A10)和(D0D7)同Z80CPU上带有相同代号引脚相连。其可以存储2048个8比特的数据。但输入程序的指拨开关以8比特为单位指定内存地址,所以只使用(A0~A7),其余连到0V上,只能用256个,

寄存器位于CPU和I/O中的数据存储器。Z80 PIO上有四个寄存器(端口A控制、端口A数据、端口B控制、端口B数据)端口就是I/O与外部设备之间输入输出数据的场所。Z80 PIO中D0~D7与CPU中带有相同代号的引脚连接。B/A和C/D分别连在Z80CPU的地址总线引脚A0和A1上。若赋予B/A(A上有横线)引脚1表示选中B,反之赋予0则表示选中A。

通过Z80CPU的A0A7地址总线引脚可以选择内存(TC5517)中的存储单元。使用Z80CPU的A0A1地址总线引脚也可以选择I/O (Z80 PIO) 中的寄存器。Z80CPU的A8~A15地址总线引脚尚未使用电路图中NC表示引脚什么都不用连接;对于只用于输入和输入输出两用的引脚,不需要使用时把引脚的电压固定成+5V或0V。

时钟信号

CPU和I/O的运转离不开时钟信号。为传输时钟信号需要把时钟信号8号引脚和Z80CPU的CLK(时钟)引脚、Z80 PIO的CLK引脚分别连接起来。时钟发生器的8号引脚与+5V之间的电阻用于清理时钟信号。

2.3区分读写对象是内存还是I/O

Z80CPU连接到TC5517和Z80PIO上,都使用了地址总线引脚A0和A1,CPU无法区分访问的是内存的存储单元还是I/O的寄存器

解决:在这里插入图片描述

2.4控制引脚

这些引脚上输入输出的电信号具有控制IC的功能

在这里插入图片描述

2.5连接外部设备

通过DMA将数据上的数据存储到内存。

输入测试程序:按下Z80CPU上DMA请求开关。拨动用于指定地址的指拨开关,设定出第一行代码所在内存地址00000000,然后拨动用于输入程序的指拨开关,设定出程序代码00111110,然后按下用于向内存写入程序的按键开关,循环往复,输完后,按下用于重置CPU的按键开关,控制DMA请求的快动开关还原成关闭状态,同时程序运行。

第三章 体验一次手工编程

第四章 程序像河水一样流动

程序是用来在计算机上实现现实世界中的业务和娱乐活动,程序员需结合计算机特性(数据结构),用程序表示现实世界对问题的处理步骤(算法),即处理流程

通过流程图(顺序/循环/条件)

CPU中有各种各样的寄存器,PC(程序计数器):负责存储内存地址,该地址指向下一条即将执行的指令。每解释执行完一条指令,PC寄存器的值就会自动被更新为下一条指令地址。(基本从内存低地址到高地址)

特殊程序流程–中断处理

计算机使程序的流程突然跳转到程序中的特定地方,这种跳转是通过CPU所具备的硬件功能实现。即由于外部原因使正常的程序中断,中断后再返回到之前流程的过程就是中断处理流程。(个人计算机上,中断请求是由连接到周边设备上I/O模块发出的–CPU上有接受I/O设备中断请求的引脚)

特殊程序流程–事件驱动

把用户在应用程序中点击鼠标或者敲击键盘这样的操作称为“事件”,负责检测事件的是Windows。Windows通过调用应用程序的WndProc()函数通知应用程序事件的发生。而应用程序根据实际的类型做出相应的处理,这种机制就是驱动。

第五章 与算法成为好朋友的七个要点

程序中的“哨兵”:一种含有特殊值的数据,可用于标识数据的结尾等,字符串末尾用0表示,链表末尾用-1表示等

5.1算法要点

1.要点一:算法中解决问题的步骤是明确且有限的

2.计算机不靠直觉而是机械的解决问题

3.了解并应用典型算法

4.利用计算机的处理速度

5.使用编程技巧提升程序执行速度

6.找出数字间的规律

7.先在纸上考虑算法

第六章 与数据结构成为好朋友的七个要点

变量:按变量所存储数据的大小被分配到的一块内存空间。(数据容器)

数组:连续分配的一块特定大小的内存空间

栈(LIFO):先进后出(桶)

队(FIFO):先进先出(排队)

链表:

6.1数据结构要点

1.了解内存和变量的关系

计算机所处理的数据都存储在M内存的IC中。内存被分成若干数据存储单元,每个单元存储一字节数据,且分配一个编号(地址),如果64M字节内存就有0到64M(M=100万)个地址。

定义的变量a被存储在哪块内存空间中由操作系统分配。

2.了解作为数据结构基础的数组

数组在内存中由操作系统分配一块连续的存储空间,并将其整体命名。

栈、队列、链表、二叉树这些数据结构是通过程序从逻辑上改变了内存的物理结构

3.了解栈和队列

相似:把不能立即处理的数据暂时存储起来。

栈:1.定义一个数组(栈的大小) 2.定义一个变量(存储了一个索引,指向存储在栈中最顶端的数据)

队列:一个任意大小的数组;2.用于存放排在队头的数据对应的索引的变量;3.用于存放排在队尾的数据对应的索 引的变量;4.一对儿函数,用于把数据存入队列中和从队列中把数据取出来

4.了解结构体组成

一旦完结结构体,就可以把结构体当作一种数据结构,用它来定义变量,在内存上分配了一块空间存储结构体的对象。巧妙运用结构体的数组就可以实现链表和二叉树。

5.了解链表和二叉树

定义一个指向下一个元素的指针。

第七章 面向对象编程

在面向对象编程中,类是对象的定义,而对象是类的实例。

7.1类有三种使用方法

1.仅调用类所持有的个别成员(函数和变量);

2.在类的定义中包含其他类(组合)

3.继承已存在的类定义新的类

第八章 数据库

在这里插入图片描述

第九章 理解TCP/IP

网络:通过连接多台计算机所组成的、可用于交换信息的系统(互联网是网络的一种,时我们的计算机,和远在千里的计算机连接)

信息以电信号在网线传播,所以计算机彼此之间能进行信息交换。但为了交换信息,必须在发送者和接收者之间事先确定发送方式。这种对信息发送方式的规范或约束称为“协议”

LAN局域网:把一栋建筑物内或一间办公司内小规模网络称作LAN。

WAN:像互联网那样将企业和企业联结起来的大规模网络

TCP/IP:互联网所使用的一套标准协议

MAC地址:MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。

9.1实验环境

办公室内网络
在这里插入图片描述
路由器:负责将LAN连接到WAN上。路由器一端会先连接到互联网服务提供商思的路由器上。在服务提供商那里,又会将它们的路由器连接到其它路由器上,通过这种方式最终连入到互联网的主干线缆上。像把LAN这样的小网联结起来就能织成互联网的大网。

9.2网卡MAC地址

网络硬件

组建公司内部网络:1.安装到每台计算机的网卡;2.插到网卡上的网线;3.把网线汇集起来连在一处的集线器;4.用于接入互联网的路由器;注意这些硬件规格需相互匹配。

在以太网中,发送给一台计算机的电信号也可以被其他所有的计算机收到。用MAC地址的编号指定电信号的接收者。每块网卡的ROM中都预先烧录了一个唯一MAC地址(厂商编号和产品编号组成,独一无二)

9.3计算机IP地址

在TCP/IP网络中,除了硬件上的MAC地址,还需要为每台计算机设定一个软件编号(IP地址)。通常把设定IP地址的计算机称为“主机”,路由器算计算机的一种也有IP地址。TCP/IP中传输的数据都会携带MAC地址和IP地址两个地址。

IP地址是32比特的整数,每8比特为一组,用’.'分隔,分成4段表示。8比特换成整数0255,所以可用IP地址的整数0.0.0.0255.255.255.255,共计4294967296个。

子网掩码:标识哪一位到哪一位是网络地址,哪一位到哪一位是主机地址

IP与端口

浏览器请求-http://网络IP:端口 -------- 服务器响应

IP:定位到具体的服务器 127.0.0.1代表自己这台电脑,端口是自己定义的

端口:定位到具体的应用程序 (所有需要联网通信的应用程序都会占用一个端口号-0–65536之间)

9.4DHCP服务器作用

DHCP(动态主机设置协议):计算机启动时会去从DHCP服务器获取IP地址和子网掩码。

9.5路由器

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

路由器是一个计算机,分布在各地的LAN中的路由器相互交换信息,这种信息称为“路由表”,用来记录应把数据转发到哪里。路由器是站在各个岔路口的指路人。

路由器路由过程

浏览其他网站主页,该网站web服务器上的数据要经过若干路由器的转发才能达到我们的计算机上,这种数据经过路由器转发的过程称为“路由”。

查看路由过程

第一行:作为实验对象的LAN内路由器IP

第二行:所租用互联网提供商的路由器

… : 其他互联网提供商的路由器

第n行:另一对象所租用互联网提供商的路由器

第n行:另一对象的路由器

第n行:另一对象的web服务器

9.6DNS服务器

互联网中存在DNS(域名系统)的服务器。该服务器为我们把www.grapecity.com这样的域名解析为210.160.205.80这样的IP地址。

计算机有主机名,LAN有域名组合起来称作FQDN

DNS服务器通常部署在LAN中,记录FQDN和IP的对应关系表。世界范围内的DNS服务器通过相互合作运转起来。

9.7ARP

ARP(地址解析协议):由IP地址到MAC地址的转换。(会将得到的对应关系缓存起来)

9.8TCP的作用及TCP/IP网络的层级模型

TCP/IP表示在网络上同时使用TCP和IP两种协议。

IP协议:用于指定数据发送目的地的IP地址以及通过路由器转发数据。

TCP协议:通过数据发送者和接收者相互回应对方发来的确认信号,可靠的传输数据。在这里插入图片描述

第十章 数据加密

基本手段:字符编码的变换(构成明文的每个字符的编码分别变换成其他数值)

标签:计算机,引脚,摘要,笔记,地址,内存,数据,路由器
来源: https://blog.csdn.net/abhsdb/article/details/115563355

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有