自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 20250319 C语言 Struct结构体字节对齐

1 首个成员的起始地址偏移为0,且为低地址2 其它成员的首地址必须与其 自身大小size 或 #pragram pack (n),中较小的数对齐3 结构体的总大小 一定是其 最大的成员变量大小s 的整数倍图上test结构体的大小为6字节。pack1图上pragma强制结构体按照1字节对齐,因此该结构体的大小为4字节。pack1。

2025-03-19 17:50:41 261

原创 Lab 3 Page Table

在XV6操作系统中,kalloc 和 kfree 是内核中用于物理内存页管理的核心函数。它们负责分配和释放物理内存页(每个页的大小为4KB),为内核其他模块(如进程创建、文件系统、页表等)提供动态内存支持。XV6原来代码中 procinit函数中把每个process的kernel stack初始化映射到kernel page table中。1 首先得修改每个proc的结构体,在里面新添加一份page table,还得找地方给这个page table初始化。

2025-03-06 23:38:27 438

原创 Lab 2 System Calls

trace是一个运行在用户空间的程序。你需要实现一个用户空间程序 trace,它将启动另一个程序并启用跟踪功能。trace调用时,会传入一个int类型的mask值,来指明需要对哪些系统调用trace。获取argument,获取系统调用号、

2025-01-01 23:16:30 447

原创 Video Lecture 6 Isolation & System Call Entry

对应XV6 Book Chapter 4 Traps and device drivers。

2024-12-24 21:00:36 233

原创 Lab 0 XV6 开发环境搭建

注意:一定要使用ubuntu 20.04,该版本可以直接通过deb安装gnu编译工具链。安装完虚拟机后,换apt源。设置root账户密码: sudo passwd root。

2024-12-15 21:20:22 298

原创 Work Linnux NVME驱动处理format命令

struct结构体,该结构体用于描述块设备的操作方法。block_device_operations 是 Linux 内核中用于注册块设备驱动程序的一组函数指针,每个函数指针对应一个特定的操作。block_device_operations 结构体用于注册块设备驱动程序,告诉内核如何处理与该设备相关的各种操作。通过定义这个结构体并将其传递给内核,内核可以在需要时调用相应的函数来处理设备的打开、关闭、ioctl 调用等操作。

2024-11-27 14:14:52 269

原创 Work PCIe相关

PCIe 4.0接口的理论最大传输速度是每通道16GT/s(Giga Transfers per second),也就是说每个通道的数据传输速度为2GB/s。计算机扩展总线标准,它允许多个设备通过共享总线进行通信。每个通道可以传输数据,通道数越多,总线的带宽就越大。在x4(四通道)配置下,理论最大带宽可以达到8GB/s(GigaBytes per second)。PCI Express(PCIe)是一种。

2024-11-11 15:33:32 220

原创 Video Lecture 3 OS organization and system calls

xv6编译时会生成kernel.asm文件,这是整个内核文件的汇编代码。

2024-11-03 18:47:46 1026

原创 Lab 0 XV6 gdb调试使用

使用 riscv64-unknown-elf-gdb 来调试 xv6 代码可以分为几个步骤。以下是一个基本的流程,假设你已经编译了 xv6,并且有一个 QEMU 的 RISC-V 版本可用。准备工作编译 xv6:确保你已经用 -g 选项编译了 xv6,这样 GDB 才能获取到源码级别的调试信息。Sh深色版本启动 QEMU 并挂起:使用 -s -S 参数启动 QEMU,这会让 QEMU 挂起等待 GDB 连接。Sh深色版本或者直接运行:Sh深色版本。

2024-10-20 22:51:41 697

原创 Video Lecture 4 Page Table

TLB介绍

2024-09-19 23:01:47 325

原创 Work SSD相关

SSD(固态硬盘)固件中的FTL(Flash Translation Layer,闪存转换层)算法主要用于管理NAND闪存存储器的数据读写操作。:FTL将主机请求访问的逻辑块地址(LBA)映射到物理块地址(PBA),这样主机无需关心底层闪存的具体物理位置。:当一个块被标记为无效后,FTL会定期进行垃圾回收,清理无效的数据块,合并碎片空间以便新数据可以高效写入。:为了延长闪存的使用寿命,FTL会分散写入操作,使得所有的块都能均匀地承担擦写次数,避免某些块过早失效。C++ socket通信实现。

2024-09-05 12:49:23 325

原创 day11 栈与队列part02

关键词:逆波兰表达式,C/C++ String,

2024-09-03 23:25:48 852

原创 day10 栈与队列part01

容器适配器(Container Adapters)std::stackstd::queue尽管它们不是容器,但它们内部使用了容器(如 std::vector 或 std::deque)来实现其功能。用户通常不需要关心底层容器的细节,因为 stack 和 queue 提供了抽象的操作接口。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。

2024-09-03 19:47:21 467

原创 C++ STL常用函数整理

你还可以使用#include // 包含 std::reverse>i < N;++i) {// 反转数组i < N;std::deque是一个非常强大的容器,特别适合需要在两端频繁插入和删除元素的应用场景。它通过内存分段的方式实现了高效的内存管理,并且支持随机访问迭代器,使得访问和修改元素非常方便。在需要高效插入和删除操作的情况下,std::deque是一个非常好的选择。std::list。

2024-09-01 23:58:17 1428

原创 插件说明书[1] Fabfilter DS 齿音(嘶声消除器)

DS是一款专门为人声做过优化的高频处理的压缩器,其实也是一种由于控制声音动态的插件。

2024-09-01 10:23:32 625

原创 20240820 Work C语言基础

volatile告诉编译器不用对其修饰的变量进行优化。例如从缓存里读取该变量导致无法捕捉到该变量的变化,或者一些其它的优化。被volatile修饰的变量,CPU每次访问该变量时都会。

2024-08-20 17:27:04 194

原创 day9打卡 字符串 【KMP算法】

我忘记C++对string操作的接口函数了例如string如何填充字符。C++ string可以使用下标操作。

2024-08-17 00:14:19 335

原创 20240813 Work RTOS相关

RTOS是指一类系统,如 FreeRTOS,uC/OS,RTX,RT-Thread 等,都是 RTOS 类操作系统。FreeRTOS 是一个免费的嵌入式实时操作系统,其开源、轻量级、可移植的特点使其成为许多嵌入式开发者的首选。在近几年的使用排名上位居前列。

2024-08-13 10:58:31 374

原创 20240812 Work Shell脚本编写

因此,如果脚本中需要使用 Bash shell 特有的语法或特性,就需要使用 #!在Shell脚本中,${fruits[@]} 是一种特殊的语法,用于引用数组 fruits 中的所有元素。当它们组合在一起时,${fruits[@]} 表示“获取数组 fruits 中的所有元素,并作为一个列表返回”。Shell脚本中,$(()) 运算符将变量或表达式转换为整数并执行算术运算。[@] : 这是一个特殊的操作符,用于获取数组中的所有元素。在Shell脚本中,声明变量非常简单,不需要指定变量类型。

2024-08-12 16:30:42 1034

原创 代码训练营day7打卡 哈希表part2

使用unordered map存放前两个数组,key为合,value为该合出现的次数。时间复杂度为O(n2)

2024-08-11 09:39:36 293

原创 20240813 Work Linux文件系统整理

Linux采用树形文件结构,所有的目录都是从根目录出发生成的。(注:微软的Windows和DOS系统采用的也是树形文件结构,不过它们的根节点是盘符)Linux虚拟文件系统允许不同的文件系统共存,并且支持跨文件系统的操作。什么是文件系统?链接: link.用于存储文件的元数据。inode 包含了关于文件的一些关键信息,但不包括文件名本身。每个文件都有一个与之关联的唯一 inode 号。inode 中通常包含以下信息:文件名本身是在目录项(directory entry,dentry)中存储的,而目录项则包含了

2024-08-09 16:00:29 654

原创 Lab 1

题目:(写一个程序,找质数)解答:本程序是要用Linux的pipe和fork写出一个寻找质数的程序。先把2-35都输入到管道,第一个fork出来的process 1中,将能被自己整除的数都抛弃,不能被整除的数通过pipe传给下一个process。注意:fork() 后返回0的表示该进程是子进程。

2024-07-30 23:11:27 799

原创 MIT 6.1810XV6文档阅读总结

子继承 从 父进程 fork出来时,会继承父进程的 文件描述符表,但修改子进程的文件描述符所指向的文件 不会影响父进程的,这也就是IO重定向的实现原理。每个文件描述符在执行读或者写时,都有一个自己的offset,这样在完成一次读写操作后,回来从读写上一次的offset接着读写。当出现错误时,返回值就会小于n。每个进程都有自己独有的文件描述符表(从 0 开始),用来表示该进程已经打开的文件或者IO资源。read(fd, buf, n): 从文件fd中读最多n字节,到内存buf中,返回读取的字节数。

2024-07-30 23:10:59 251

原创 Cubase混音学习记录1

音频单位基础

2024-07-27 10:02:08 827

原创 代码训练营第6天打卡 | 哈希表 242. 有效的字母易位词 349. 两个数组的交集 202.快乐数 1. 两数之和

哈希表(Hash Table一般用来判断一个元素是否出现在集合中)。

2024-04-14 23:41:09 729 1

原创 代码训练营第4天(链表)打卡 | 24 两两交换链表中的节点 19 删除链表倒数第N个节点

思路:注意虚拟节点vHead的使用。本题目是两两交换节点,做的时候细心画图,推算好两个节点的交换关系。

2024-04-04 18:29:01 188 1

原创 代码训练营第3天打卡 | 203. 移除链表元素 707.设计链表 206反转链表

链表基础的三道题,主要是要注意解决链表相关题目时,虚拟节点vHead的使用,以及太久没编写C++了,对C++类的实现和使用需要进一步熟悉。(第二题) 反转链表那题,使用迭代(for 循环)时,要想清楚每一次for循环内,要如何调整指针。

2024-03-17 19:16:25 147 1

原创 代码训练营第2天打卡【数组part2】 | 977.有序数组的平方 209. 长度最小的子数组 59. 螺旋矩阵2

数组part2 主要是为了理解数组中双指针的操作和实现方法。

2024-03-17 11:21:02 286 1

原创 代码训练营第1天 | 704. 二分查找 | 27. 移除元素

算法训练营打卡

2024-03-13 23:18:06 243 1

原创 SpringMVC测试Service报错

SSM错误记录

2022-06-24 16:43:13 487

原创 剑指offer刷题2

JZ33 二叉搜索树的后序遍历序列题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。数据范围: 节点数量 0 \le n \le 10000≤n≤1000 ,节点上的值满足 1 \le val \le 10^{5}1≤val≤105,保证节点上的值各不相同要求:空间复杂度 O(n)O(n) ,时间时间复杂度 O(n^2)O(n2)提示:1.二叉搜索树是指父亲节点大于左子树中的全部

2022-03-07 00:28:55 554 1

原创 剑指offer刷题笔记1

剑指offer刷题

2022-02-25 10:04:36 471

原创 Supremo: Cloud-Assisted Low-Latency Super-Resolution in Mobile Devices论文阅读

这里写自定义目录标题Supremo阅读(TMC2020)摘要相关工作贡献欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Supremo阅读(TMC2020)摘要由于SR的计算非常密集,我们

2021-06-30 11:46:17 210

SSD学习笔记的记录NVME SSD

SSD学习笔记的记录NVME SSD

2024-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除