计算机原理+操作系统+网络学习札记

本篇为计算机原理部分
为增加可读性三部分分为三篇文章,另外两片链接如下:
计算机基础网络篇
计算机基础操作系统篇

一,冯诺依曼机

现代的计算机都属于冯诺依曼机。创造了通用电路与程序指令构成的可塑性极强的计算机。
包括输入设备,输出设备,控制器,运算器,储存器


二,计算机层次与编程语言

程序翻译:编译器将高级程序,翻译为计算机底层编码,生成新的,由低级语言组成的程序的过程。
例:C/C++、golang

程序解析:由一个低级语言编写的解释器,将高级程序语言的每个语句作为输入,转换为计算机底层码并执行,不生成新的程序
例:python、php、JS

JAVA,C#属于两种混合

计算机原理+操作系统+网络学习札记_第1张图片
20190806181621.jpg

硬件逻辑层:门,触发器等逻辑电路
微程序机器层:微指令集
传统机器层:CPU指令集,机器指令
操作系统层:向上提供管理界面,向下对接指令系统,管理资源
汇编语言层:
高级语言层:编程语言,Python,C,JS等
应用层:app,软件


三,计算机的计算单位(容量与速度)

  • 容量单位(M,G,T)
    物理层面,高低电平记录信息,高电平是1,低电平是0,是一个bit,比特位
    一个字节单位 = 8bits


    计算机原理+操作系统+网络学习札记_第2张图片
    捕获.PNG
  • 速度单位
    网络速度 : 100M光纤 == 12M/S的峰值
    速度单位Mbps => Mbits/s,所以有以上对应
    CPU速度 : 时钟频率,单位赫兹Hz
    2GHz = 2 * 1000^3 Hz = 每秒20亿次(高低电平的变化次数)


四,字符与编码集

  • ASCII码(共128个 = 33 + 95 = 2^7)
    7个bits即可表示 / 95个可打印字符 / 33个不可打印字符(包括控制字符)
  • extend ASCII
  • 字符编码集的国际化(中文编码集)
    GB2312(收录了6763个汉字和682个符号)
    GBK(兼容GB2312,收录21003个汉字,支持全部中日韩汉字)
  • Unicode(全球字符集)
    UTF-8 即以字节为单位对Unicode编码

windows系统默认使用GBK编码


五,计算机的组成

1.计算机总线

USB:uuniversal serial bus通用串行总线
PCI总线,ISA总线等等。。。。解决了不同设备之间的通信问题

  • 总线的分类:
    片内总线:芯片内部
    系统总线:链接计算机各种设备(数据总线,地址总线,控制总线)
  • 总线的仲裁:
    不同设备使用总线的优先顺序

2.存储器

  • 分类:
    介质:半导体(内存,U盘),磁力(磁带,磁盘)
    方式:RAM(随机存储器,内存条),串行存储器,只读存储器ROM
  • 层次结构:
    读写速度:5400/7200转的硬盘
    存储容量:G,T


    计算机原理+操作系统+网络学习札记_第3张图片
    微信截图_20190807210842.png

    计算机原理+操作系统+网络学习札记_第4张图片
    微信截图_20190807210917.png

计算机的主存储器(RAM)与辅助存储器(硬盘,即磁盘)

  • 内存(RAM)通过电容存储数据,断电后,数据会丢失
    内存通过地址总线和数据总线与CPU链接。32位系统,最大支持4G内存,因为32位系统的地址总线,只有32位,最多寻址2^32 = 4GB。
  • 高速缓存
    工作原理:命中率,访问效率等
    替换策略:几种替换策略
  • 指令系统:
    机器指令:操作码+地址码(零地址,一地址,二地址,三地址)
    操作类型:数据传输,算数逻辑,移位操作,控制指令
    寻址方式:指令寻址(顺序,跳跃),数据寻址


    计算机原理+操作系统+网络学习札记_第5张图片
    微信截图_20190807222053.png
  • 控制器(CPU)


  • 运算器(CPU)


  • 指令的执行过程




    以上步骤,控制器与运算器不能同时工作,为提高效率:


六,计算基础

1.进制
二进制 1024 = 0b100000000
八进制 1024 = 0o2000
十六进制 1024 = 0x400
2.转换方法
3.符号数(±)

4.定点数与浮点数,及其运算

  • 定点数与比例因子

5.算法实践

实践内容:用双向链表实现以下三种算法

  • FIFO算法(先进先出)
  • LRU算法(最近最少使用)
  • LFU(最不经常使用)
  • 双向链表
    优点:快速找到上一个和下一个节点,快速去掉某个节点
    实现一个双向链表:
    节点类,链表类,链表的私有方法和外部API
    即可用双向链表,实现以上算法


你可能感兴趣的:(计算机原理+操作系统+网络学习札记)