最佳损友1020
  • 生活记录
  • 技术博客
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链

MIT6.S081 Multithreading

xv6 book记录阅读xv6 book之前,简要看一下《深入了解linux内核》进程一章(不怎么看得懂),当然xv6 book也看的犯困。该实验比较简单,就看书花点时间。 First, xv6’s sleep and wakeup mechanism switches when a process waits for device or pipe I/O to complete
2022-08-28

MIT6.S081 2021 mmap

You should implement enough mmap and munmap functionality to make the mmaptest test program work. If mmaptest doesn’t use a mmap feature, you don’t need to implement that feature. 这个实验还是比较复杂的,用gd
2022-08-27

MIT6.S081 2021 file system

xv6 book记录看pdf看困了,主要看看几张图,最后再看看real world就可以了xv6文件系统架构 The disk layer reads and writes blocks on an virtio hard drive. The buffer cache layer caches disk blocks and synchronizes access to them, ma
2022-08-21

算法分析上机作业

源码最接近S的中位数的n/4个元素 给定由n个数组成的集合S,从中找出最接近S的中位数的n/4个元素。请设计一个最坏情况下时间复杂度为O(n)的算法。 算法实现代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
2022-07-16

驱动虚拟环境搭建记录

由于驱动开发没有设备,想使用VMware的虚拟设备进行开发。将NVMe驱动卸载,然后将固态硬盘ID绑定到编写的驱动上。以下记录该虚拟环境搭建时遇到的问题。由于要求的内核版本是4.19,故基本的思路是使用deb包先将内核版本降到4,而后使用源码编译将内核切换成4.19。内核版本切换记录 在华为镜像站中下载Ubuntu镜像,第一次我下载的是Ubuntu22,其版本太高,使得我安装deb包时就出现
2022-07-16

leetcode记录

推荐博客五大常用算法:分治、动态规划、贪心、回溯和分支界定==刷题时注意边界条件/特殊条件的处理== 代码复制粘贴太多了,编辑起来很卡,再开一个博客:leetcode记录2 合并 K 个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 思路:简单的合并链表,刚开始的思路是每次循环找到最
2022-06-16
r8169驱动源码阅读记录

r8169驱动源码阅读记录

源码地址:linux-4.19.90\drivers\net\ethernet\realtek\r8169.c源码阅读环境:Windows 搭建 opengrok|极客教程在线阅读网站:bootlin 注意:为把握函数主要功能,我忽略了许多出错处理的代码 初始化阅读网卡驱动源码第一步,简要看一下发送描述符,接收描述符,发送缓存区,接收缓冲区定义与初始化RTL8169数据手册第九节介绍发送描
2022-05-30
NVMe驱动 请求路径学习记录

NVMe驱动 请求路径学习记录

由《深入浅出SSD》 6.5节trace分析可知,主机读请求的执行流程如下: 主机准备好命令放在SQ 主机通过写SQ的Tail DB,通知SSD来取命令(Memory Write TLP) SSD收到通知,去主机端的SQ取指令(Memory Read TLP) SSD执行命令,把数据传给主机(Memory Write TLP) SSD往主机的CQ中返回状态 SSD采用中断的方式告诉主机去处
2022-05-25

MIT6.S081 2021 Copy-on-Write Fork for xv6

简要介绍 There is a saying in computer systems that any systems problem can be solved with a level of indirection.任何系统问题都能通过一个中间层解决 修改uvmcopy() 函数,将父进程物理页映射子进程,而不是分配新的物理页。清除父进程与子进程页表项的PTE_W项 修改usertr
2022-05-24

MIT6.S081 2021 networking

console驱动与时钟中断16550芯片相关介绍:16550芯片课程介绍由于不是学硬件的,一直没太搞懂这几个东西的交互关系是啥,我的理解是如下图所示。如果不看display这一边,那这个驱动是非常好懂的,正好和开头的介绍吻合,驱动存在两个上下文:内核进程上下文和中断上下文。分别对应consolewrite consoleread和uartintr三个函数。但我一直没看懂的是为啥uarti
2022-05-16
1…34567…10

搜索

Hexo Fluid
总访问量 次 总访客数 人