- 博客(21)
- 收藏
- 关注
原创 中断与异常
中断和异常是指系统、处理器在执行指令过程中突然被别的请求打断而终止当前的程序,转而去处理其他程序。待该中断处理程序处理完后回到该程序中断点继续执行之前程序。
2023-04-09 12:35:40 1161
原创 软硬件接口——ISA
指令集架构 (ISA) 是计算机抽象模型的一部分,它定义了软件如何控制 CPU,并且规定了计算机执行什么操作。ISA 充当硬件和软件之间的接口,提供了用户能够与硬件交互的唯一方式。可执行的指令集合,包括指令格式操作种类以及每种操作对应的操作数的相应规定;指令可接收的操作数的类型;操作数或其地址所能存放的寄存器组的结构,包括每个寄存器的名称,编号,长度和用途;指令获取操作数以及下一条指令的方式,即寻址方式;操作数所能存放的存储空间的大小和编制方式;
2023-04-09 12:31:22 1787
原创 计算机硬件结构概述
作为计算机专业的学生,必须知道一个程序在计算机上发生了什么。而想知道发生了什么,就必须了解计算机的硬件组成,知道计算机是由哪些部件组成。就好比警察追踪犯人,如果不知道城市的建筑构造,又怎么能发现犯人的踪迹呢?下图是一个典型系统的硬件组成。但鉴于大家相比于硬件更熟悉软件,我们从观察一个程序生命周期开始,了解计算机硬件结构。生成的 hello 文件会被存储在磁盘中,磁盘属于存储器层次的一类。
2023-04-09 12:25:58 387
原创 处理器流水线技术
流水线是实现多条指令重叠执行的技术,其目的是在硬件尽可能的情况下增加吞吐量。一条指令的执行需要多个操作,流水线技术充分利用了这些操作之间的并行性。流水线是加快 CPU 速度的关键实现技术。洗衣机洗衣烘干机烘干叠好衣服放进衣柜如上图一所示,每个人洗完自己的衣服,下一个人才可以开始洗自己的衣服,总共需要花费 16 个步骤时间;上图二所示,每个人并行洗衣。当一个人洗衣机用完时,进入烘干机阶段,另一人立刻进入洗衣机阶段。此时总共只要花费 7 个步骤时间。
2023-04-09 12:23:56 1461
原创 计算机体系结构——分支预测
分支预测解决流水线冲突中的控制冒险。在指令集中,分支指令包括条件指令和非条件指令。对无条件指令来说,无需进行条件判断,就可以获得跳转后的地址;但是对条件跳转指令,无论是条件直接跳转还是条件间接跳转指令(RISC-V 无此类指令),都需要在执行阶段才可以确定是否跳转,这样会影响取值阶段的效率。
2023-04-09 12:21:14 2354
原创 计算机入门——计算机系统概述
对于程序员来说,我们往往会学习一门语言进入计算机世界,如 C/C++、python、Java等。这些语言被称为,是一类比较接近我们日常书面语言的程序语言。只要学习一定的语法,就可以像阅读书籍一样阅读程序。而日常使用的软件就是我们使用这类高级语言,完成一定的数据结构和算法设计出来的。但人类的思维方式和计算机硬件的思维方式是完全不同的。高级语言利于我们编写和阅读,但是,计算机是无法直接理解和执行高级程序语言程序的。因此计算机首先使用将高级语言翻译成计算机可以理解执行的,再将机器语言“理解”成。
2023-04-09 12:08:54 200
原创 Linux入门——环境变量
Linux 环境变量一、环境变量1.1 概念存储有关 shell 会话和工作环境的信息。这项特性允许在内存存储数据。以便程序或 shell 运行的脚本能够轻松访问它们。环境变量分为两类:全局变量局部变量当然,有些人不分类,只把全局环境变量称为环境变量,不把局部环境变量称为环境变量。1.2 全局变量和局部变量全局环境变量可以在对其做出定义的父进程所创建的子进程中使用。局部环境变量只能在定义它们的进程中使用。1.3 三个对应的命令命令说明set显示当前 Shel
2021-03-22 17:18:53 125
原创 Linux入门——目录结构及文件基本操作
图片 实验楼实验Linux 基础入门Linux 目录结构及文件基本操作一、Linux 目录结构1.1 FHS 标准FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。FHS 定义了两层规范。第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放
2021-03-22 17:16:42 344
原创 Linux入门——用户及文件权限管理
该博客总结于 实验楼实验Linux 基础入门Linux 用户及文件权限管理一、Linux 用户管理1.1 查看用户who am i## 或者who mom likes输出第一列(shiyanlou)表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可);第二列的 pts/0 中 pts 表示伪终端,pts/0 后面那个数字就表示打开的伪终端序号;第三列则表示当前伪终端的启动时间who 命令其它常用参数:参数说明-
2021-03-22 17:04:28 194
原创 Vim 高级功能(自学总结)
Vim 高级功能多文件编辑使用 vim 编辑多个文件vim 1.txt 2.txt默认进入 1.txt 文件编辑界面:输入** :n **编辑 2.txt 文件。可使用 :n! 强制切换,之前文件的输入没有保存,仅仅切换到另一个文件输入** :N **编辑 1.txt 文件。可使用 :N! 强制切换,之前文件输入没有保存,仅仅是切换到另一个文件进入 vim 后打开新文件命令行模式下输入:e 3.txt 打开新文件 3.txt命令行模式下输入:e# 回到前一个文件命令行模式下输入:
2021-03-07 15:41:43 169
原创 Vim入门——查找替换(自学总结)
Vim 查找替换字符的替换及撤销(Undo)命令普通模式下,命令说明r + 新字母将游标所在字母替换为该字母R连续替换,直到按下 Esccc替换整行,即删除游标所在位置,并进入插入模式cw替换一个单词,即删除一个单词,并进入插入模式C(大写)替换游标以后至行末~反转游标所在字母大小写{n}u撤销一次或 n 次操作U(大写)撤销当前行的所有修改Ctrl+rredo,即撤销 undo 的操作快速缩进使用命令进行快
2021-03-07 15:41:12 136
原创 Vim入门——文档编辑(自学总结)
Vim 文档编辑vim 重复命令例如:输入 10x ,删除 10 个连续字符;输入 3dd ,删除 3 行文本在普通模式下,使用 dw(delete a word) 删除一个单词,容易的联想到 dnw(n 替换为相应数字) 表示删除 n 个单词。游标的快速跳转行间跳转命令说明nG / ngg游标移动到第 n 行gg游标移动到第一行G游标移动到最后一行【注】:你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置
2021-03-07 15:40:27 161 1
原创 Vim入门(自学总结)
Vim入门vim 模式普通模式(Normal mode)插入模式(Insert mode)可视模式(Visual mode)选择模式(Select mode)命令行模式(Command line mode)Ex 模式(Ex mode)三种常用模式切换插入模式 / 命令行模式 => 普通模式:按 Esc / Ctrl+[普通模式 => 插入模式:按 i / a普通模式 => 命令行模式:按 :命令行模式退出 vim:输入 wq 回车进入 vim使用 vim 命
2021-03-07 12:39:07 174
原创 Linux入门——命令行操作
该博客总结于 实验楼实验Linux 基础入门Linux 命令行操作常用快捷键[Tab]使用 Tab 键来进行命令补全,可补全命令、目录、命令参数。[Ctrl + c]强行终止当前程序。其他常用快捷键按键作用Ctrl+d键盘输入结束或退出终端Ctrl+s暂停当前程序,暂停后按任意键恢复运行Ctrl+z将当前程序放到后台运行,回复到前台为命令fgCtrl+a将光标移至输入行头,相当于Home键Ctrl+e将光标移至输入行末,相当于
2021-03-06 17:54:26 194
原创 Vue.js中计算属性和方法的区别
computed和methods计算属性是基于它们的响应式依赖进行缓存的。方法不是基于响应式依赖。每修改相关响应式值时,调用方法将总会再次执行函数。当修改相关响应式值时,基于响应式依赖的值会随之改变。但如果该值不是响应式依赖,则需要通过方法来改变。例如:Date.now() 不是响应式依赖。当 now 是计算属性时<div id="example"> <p>Original message: "{{ message }}"</p> <
2021-02-04 23:09:19 167
原创 图(自己复习用)
前言图通常用来表示和存储具有“多对多”关系的数据,线性表是“一对一”关系的数据,树是“一对多”关系的数据。该章重点主要是图的存储结构——邻接矩阵和邻接表、两种图的遍历算法——DFS 和 BFS、两种最小生成树算法——Prim算法 和 Kruskal算法、最短路径算法——Dijkstra算法 和 Floyd算法。...
2020-12-27 12:57:38 148
原创 栈和队列(自己复习用)
栈定义:栈是限定仅在表尾进行插入和删除操作的线性表,遵循"先进后出"的原则。栈的开口端被称为栈顶;相应地,封口端被称为栈底。进栈和出栈向栈中添加元素,此过程被称为"进栈"(入栈或压栈);从栈中提取出指定元素,此过程被称为"出栈"(或弹栈);栈的具体实现栈是一种 “特殊” 的线性存储结构,因此栈的具体实现有以下两种方式:顺序栈:采用顺序存储结构实现栈存储结构;链栈:采用链式存储结构实现栈结构;两种实现方式的区别,仅限于数据元素在实际物理空间上存放的相对位置。顺序栈顺序栈结构
2020-12-13 15:50:20 1404
原创 线性表(自己复习用)
什么是线性表定义:线性表,全名为线性存储结构,具有“一对一”逻辑关系。通俗的讲,就是把所有数据用一根线儿串起来,再存储到物理空间中。类型:顺序存储结构和链式存储结构常用术语:某一元素的左侧相邻元素称为“直接前驱”,位于此元素左侧的所有元素都统称为“前驱元素”;某一元素的右侧相邻元素称为“直接后继”,位于此元素右侧的所有元素都统称为“后继元素”;线性表的顺序存储结构定义:用一段地址连续的存储单元依次存储线性表的数据元素。顺序表存储数据同数组非常接近,顺序表存储数据使用的就是数组。顺序表的
2020-12-13 11:24:08 166
原创 回溯算法
算法浅析回溯算法(back tracking)是深度优先遍历的一种体现。其算法思想用一句话形容就是:“不断分步走下去,不合适就掉头重来”,所以又可称为“探索与回溯法”。回溯算法通常用最简单的递归方法来实现,是一种纯暴力穷举,用它可以系统地搜索一个问题的所有解或任一解,同时它的复杂度⼀般都很高。算法框架该算法需首先考虑三个重点:路径:已做出的选择选择列表:可做的选择结束条件:算法结束条件result = []def backtrack(路径, 选择列表):if 满⾜结束条件: ..
2020-11-21 22:52:38 209
原创 深度优先遍历
DFS框架void traverse(TreeNode root) { // 判断 base case if (root == null) { return; } // 访问两个相邻结点:左子结点、右子结点 traverse(root.left); traverse(root.right);}二叉树的DFS两要素:「访问相邻结点」和「判断base case」访问相邻节点:二叉树只有左子结点和右子结点。其本身就是一个递归定义的结构。所..
2020-11-16 22:51:11 130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人