操作系统-计算机系统概述
¶简介
操作系统系列其一,主要是针对中国大陆考研所要求的内容对操作系统的知识体系进行总结和梳理,对于重点内容会使用黑体加粗,本篇内容主要包含以下几点:
操作系统的基本概念
操作系统发展历程
程序运行环境
操作系统结构
操作系统引导
虚拟机
¶大纲
操作系统的基本概念
操作系统的特征
操作系统接口
操作系统的发展历程
批处理阶段
分时操作系统
实时操作系统
操作系统的运行环境
处理器的运行模式$\star$
中断和异常
操作系统结构
操作系统引导
虚拟机
典型例题
¶操作系统的基本概念
操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序,同时也是计算机系统的内核与基石。
¶操作系统的特征
并发
并发:两个或者多个事件在同一个时间间隔内发生。这些事件在宏观上是同时发生的,在微观上是交替发生的。操作系统的并发是通过分时实现的
并行:是指两个或者多个事件在同一时刻发生
共享
资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
互斥共享方 ...
计算机组成原理-总线及I/O
¶简介
计算机组成原理系列其五,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机的总线及I/O介绍,主要包含以下几点:
总线的基本概念
总线事物和定时
I/O接口
I/O方式
¶大纲
总线
分类$\star$
片内总线
系统总线
总线结构$\star$
总线的性能指标$\star$
例题
总线事物与定时
总线事物
总线定时
I/O接口
基本结构$\star$
I/O接口的类型
I/O端口及其编址方式$\star$
I/O方式
程序查询方式
程序查询方式-例题
程序中断方式$\star$
程序中断工作流程
多重中断
中断屏蔽技术
程序中断方式-例题
DMA方式
特点
DMA的传送方式$\star$
DMA的传送过程$\star$
DMA和中断方式的区别$\star$
¶总线
总线是一组能为多个部件分时共享的公共信息传输路线。(一个总线包含多根信号线)
总线的特点:分时和共享
分时:同一时刻只允许有一个部件向总线发送信息
共享:总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这 ...
Hexo常用命令
记录一下平常会用到的一些Hexo指令,在指定文件夹下Git Bash here输入命令即可
¶基本命令
¶init
建立一个新的网站。如果没有设定folder 的话,Hexo 会在目前的资料夹建立网站
1hexo init [folder]
¶New
建立一篇新的文章。如果没有设定layout的话,则会使用_config.yml中的default_layout设定代替
1hexo new [layout] "title"
¶Generate
产生静态档案
1hexo generate
生成静态档案即部署网站
1hexo d -g
选项
描述
-d,–deploy
产生完成即部署网站
-w,–watch
监看档案变更
¶Server
启动本地预览,默认地址是http://localhost:4000/
1hexo server
选项
描述
-p,–port
自选端口
-s,–static
只使用静态档案
-l,–log
启动记录器,或覆盖记录格式
¶Clean
清除缓存数据( db.json) 和已产生的静 ...
Markdown实用技巧
记录一下可能会用到非Markdown基础语法包含的实用技巧
官方的速查表<Markdown 语法速查表>(https://markdown.com.cn/cheat-sheet.html#基本语法)
¶Markdown实现页内跳转
跳转到的地方
比较通用的一个方法是使用html标签实现
定义一个锚(id):<span id="jump">跳转到的地方</span>
使用markdown语法:[点击跳转](#jump)
点击跳转
¶Markdown中的表格
处理使用markdown原生格式的表格使用html的表格更方便
markdown原生格式
1234| 左对齐 | 右对齐 | 居中对齐 || :-----| ----: | :----: || 单元格 | 单元格 | 单元格 || 单元格 | 单元格 | 单元格 |
html实现
tr:tr 是 table row 的缩写,表示表格的一行。
td:td 是 table data 的缩写,表示表格的数据单元格。
th:th 是 table header的缩写, ...
计算机组成原理-CPU
¶简介
计算机组成原理系列其四,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机的CPU相关内容介绍,主要包含以下几点:
CPU的功能和基本结构
指令的执行过程
CPU内的数据通路
控制器的功能和原理
指令流水线
多处理器
¶大纲
CPU的基本结构
运算器
控制器
指令的执行过程
指令周期
指令周期的数据流
指令的执行方案
CPU内的数据通路
基本结构
例题分析
控制器
微程序控制器
基本概念
编码方式
地址形成方式
格式
指令流水线
定义
基本实现
冒险和处理
结构冒险
数据冒险
控制冒险
流水线的性能指标
高级流水线技术
多处理器概念
SISD、SIMD、MIMD
硬件多线程
多核处理器
¶CPU的基本结构
CPU主要由运算器和控制器两大部分组成
Tips:CPU内部的寄存器大致分为两类:
用户可见的寄存器:通用寄存器组、PSW、PC等
用户不可见寄存器:MAR、MDR、IR等
¶运算器
运算器是计算机对数据进行加工处理的中心,其主要有:
算术逻辑单元(ALU):进行算术 ...
计算机组成原理-指令系统
¶简介
计算机组成原理系列其三,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机的指令系统介绍,主要包含以下几点:
指令格式的基本内容
指令格式
寻址方式
汇编基础
CISC和RISC的基本概念
¶大纲
指令系统
指令系统简述
指令的基本格式
定长与变长指令字结构
定长操作码指令格式
拓展操作码指令格式
寻址方式(重点)
指令寻址
数据寻址
汇编基础
基础知识
常用指令
CISC和RISC
典型例题
¶指令系统简述
指令是指示计算机执行某些操作的命令。一台计算机的所有指令的集合构成该机器的指令集。指令集体系结构(ISA)规定了:指令格式、数据类型和格式、操作数的存放方式、存储空间的大小和编址方式、寻址方式etc.
¶指令的基本格式
Tips:几种字长的区别
机器字长:CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。
指令字长:计算机指令字的位数。
数据字长:计算机数据存储所占用的位数。
其中:
机器字长 ...
计算机组成原理-存储系统
¶简介
计算机组成原理系列其二,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机内部和外部的存储介绍,主要包含以下几点:
存储器的分类与层次化的存储器基本结构
主存与外(辅)存
主存的拓展和外存的结构
Cache
虚拟内存
¶大纲
存储系统
存储器概述
多种角度进行分类
存储器的性能指标
多层次的存储系统
主存储器(主存)
SRAM和DRAM简介
DRAM的工作原理
DRAM的刷新
DRAM的地址引脚复用
ROM
特点
类型
多模块存储器
单体多字存储器和双端口RAM
多体并行存储器
高位交叉编址(顺序方式)
低位交叉编址(交叉方式)
两者的性能分析
主存储器和CPU的连接
连接原理
主存的容量扩展
位扩展法
字扩展法
字位同时扩展法
外部存储器
磁盘存储器(机械硬盘)
磁盘的组成
磁盘的性能指标
磁盘阵列和固态硬盘
高速缓冲存储器(Cache)(重难点)
Cache的工作原理
Cache的命中率
Cache和主存的映射方式
直接映射
全相联映射
组相联映射
...
计算机组成原理-数据的表示和计算
¶简介
计算机组成原理系列其一,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容主要包含以下几点:
数制的表示
计算机的内部编码
定点数和浮点数
C语言中的数据表示
数据的计算
¶大纲
重点内容会使用黑色加粗表示
数据的表示和计算
前置知识
数值转换
计算机运算速度
CPU执行时间
数制
进位计数法
r位进位计数法
不同进制数相互转换方法
定点数的表示
真值和机器数
机器数的定点表示
原码、补码、反码、移码
定点数的移位
算术位移
逻辑位移
循环位移
定点数的加减法
溢出的判别方法
浮点数
一般浮点数的表示
IEEE 754标准
C语言中的数据类型及强制类型转换
整数类型的转换
包含浮点数的转换
数据的存储和排列
大端法
小端法
拓展
乘2取整法
¶前情提要
数值转换
计算机进行数据处理时,一次存取、加工和传送的数据长度称为字,对于不同的品牌CPU 1Word(一个字)通常由一个或多个(一般是字节的整数位)字节构成
在描述存储容量和文件大小时,K、M、G、T常用2次幂表示
1 ...
搭建TG贴纸下载Robot
¶前情提要
最近回家用TG贴纸下载机器人的时候发现太大的贴纸包无法下载,无奈只好自己搭建一个,正好在网上看到一个不错的,于是正好写这篇教程记录一下
¶源码下载和必备环境
Robot源代码来源Github
Imagemagick下载
所需环境:
Node.js v8.0.0及以上
ImageMagick with webp support (Check with identify -list format | grep -i 'webp' on Linux systems)
¶开始搭建Robot
因为 Imagemagick 没有 webp 支持,可以使用identify -list format查看支持的图片格式
Imagemagick源码编译webp
1234567891011121314#先安装webpyum install libwebp -y#卸载系统自带的ImageMagickyum remove ImageMagick -y#下载ImageMagick源码包,编译wget -c https://download.imagemagick.org/archive ...
C和C++中引用
¶C的指针和C++中引用和函数参数类型
如果你说的是函数的形参,那么
123456789101112131415161718192021222324252627282930313233343536373839404142void foo(int ptr);是传值调用,比如你这么调用int a;int pValue = &a;foo(pValue);//这样的情况下,pValue的值是不能被函数foo改变的,也就是pValue肯定是指向a的但是如果你这么声明:void foo(int& ptr);则是传递引用,那么如果你函数里面:void foo(int& ptr){ ptr = NULL;}//这样调用过之后,pValue就变成了NULL。而第一种情况pValue是不能被改变的。引用是C++带来的很重要一个特性,他在很多情况下避免了使用指针。而且,在C++里面,引用是不可以捏造的,比如C你可以很容易弄一个NULL的指针,而引用这不存在NULL引用。上面的foo函数如果要用C来实现,则必须用指针的指针://void foo(int pp ...