计算机原理
文章平均质量分 93
云微123
饮糊涂酒一瓢,炖悲喜一锅吃掉x
个人网站:
www.yunwei123.tech
github:
https://github.com/yunwei37
展开
-
借助 ChatGPT 编写的 libbpf eBPF 工具开发实践教程: 通过例子学习 eBPF
这是一个基于 (一次编译,到处运行)的 的 eBPF 的开发教程,提供了从入门到进阶的 eBPF 开发实践指南,包括基本概念、代码实例、实际应用等内容。我们主要提供了一些 eBPF 工具的案例,帮助开发者学习 eBPF 的开发方法和技巧。教程内容可以在目录中找到,每个目录都是一个独立的 eBPF 工具案例。在学习 eBPF 的过程中,我们受到了 tutorial_bcc_python_developer 的许多启发和帮助,但从 2022 年的角度出发,使用 libbpf 开发 eBPF 的应用是目前相对更原创 2022-12-06 22:23:43 · 2501 阅读 · 0 评论 -
使用 c++20 协程与 io_uring 实现高性能 web 服务器 part1:一个最简单的 echo server
如果您不熟悉 io_uring 和 c++20 协程,可以参考这个仓库里的其他一些文章和示例代码:github.com/yunwei37/co-uring-WebServer这个版本的 echo server 代码由 https://github.com/frevib/io_uring-echo-server 改造而来,是希望通过在 io_uring 的基础上,尝试实现最基本的协程 IO 模式,然后进行性能对比。之前的版本使用了一个 event loop 的模式,并通过 io_uring 的 IORI原创 2021-12-17 13:42:15 · 2606 阅读 · 1 评论 -
graphics.h 图形库实现的汉字花样显示程序 支持文件显示、放大、斜体、倒立、彩色、动态显示等功能
完整项目源代码在这里:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes, 参考计算机组成课程部分这是老师布置的一个奇怪的作业:利用十六点阵汉字库hzk16,编写图形模式下汉字显示程序。要求在普通显示之外,增加多种显示方式,如:文件显示、放大、斜体、倒立、彩色、空心、中英文混搭显示、动态显示等。大概就是在命令行里面点阵显示汉字?最后做出来的结果大概是这样的这里使用了graphics.h 图形库;源代码:source.cpp;Consol.原创 2020-08-20 22:05:43 · 1789 阅读 · 2 评论 -
RISC-V 学习笔记:由来、基础整数指令集、汇编语言、特权架构
这是 os summer of code 2020 每日记录的一部分:github地址:https://github.com/yunwei37/os-summer-of-code-daily参考:RISC-V 手册 一本开源指令集的指南第一章 为什么要有 RISC-VRISC-V的目标是成为一个通用的指令集架构(ISA):它要能适应包括从最袖珍的嵌入式控制器,到最快的高性能计算机等各种规模的处理器它应该能兼容各种流行的软件栈和编程语言它应该适应所有实现技术,包括现场可编程门阵列(FPGA)、原创 2020-07-08 12:37:41 · 2391 阅读 · 1 评论 -
基于Qt实现的带图形界面的MIPS汇编指令的编辑器、汇编器、反汇编器、模拟器
MIPS-scMIPS-sc 为 MIPS simulator&compiler 的简称,是一个基于Qt实现的带图形界面的MIPS汇编指令的编辑器、汇编器、反汇编器、模拟器。是为浙江大学《计算机组成课程》编写的的课程项目之一。源代码已放置在github中:https://github.com/yunwei37/MIPS-sc-zju预览模拟器界面:左侧为32位内存内容、可以以ascii码方式或反汇编指令方式查看;右侧为寄存器、syscall输入输出窗口,可通过按钮查看相应寄存器与内原创 2020-07-04 10:48:54 · 1384 阅读 · 0 评论 -
MIT 6.828 操作系统工程 2018 fall lab1 part3 内核 笔记 and 中文注释源代码阅读
mit 6.828 lab 代码和笔记,以及中文注释源代码已放置在github中:https://github.com/yunwei37/xv6-labsPart 3: The Kernel 内核使用虚拟内存解决位置依赖性内核的链接地址(由objdump打印)与加载地址之间存在(相当大的)差异;操作系统内核通常喜欢被链接并在很高的虚拟地址(例如0xf0100000)上运行,以便将处理器虚拟地址空间的下部留给用户程序使用。链接地址 f0100000加载地址 00100000许多机器在地址0x原创 2020-07-01 22:42:09 · 815 阅读 · 0 评论 -
MIT 6.828 操作系统工程 lab1 2018 fall part1 & part2 笔记 and 中文注释源代码阅读
mit 6.828 lab 代码和笔记,以及中文注释源代码已放置在github中:https://github.com/yunwei37/xv6-labsinitsetup实验内容采用git分发:git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab测试的话可以使用:make gradePart 1: PC Bootstrap需要了解x86汇编以及内联汇编的写法,参看:http://www.delorie.原创 2020-06-30 20:02:14 · 1061 阅读 · 0 评论 -
MIT 6.828 操作系统工程 2018 fall xv6 工具链搭建与测试
MIT 6.828 操作系统工程 工具链搭建测试mit 6.828 lab 代码和笔记,以及中文注释源代码已放置在github中:https://github.com/yunwei37/xv6-labstools环境:在vmware中新安装的ubuntu 版本 20.04:uname -aLinux ubuntu 5.4.0-39-generic #43-Ubuntu SMP Fri Jun 19 10:28:31 UTC 2020 x86_64 x86_64 x86_64 GNU/Linu原创 2020-06-30 19:16:23 · 575 阅读 · 0 评论 -
使用 lex + yacc 生成多种运算中缀表达式对应的计算器(代码实现)
代码地址:我的GIS/CS学习笔记:https://github.com/yunwei37/myClassNotes<一个浙大GIS/CS小白的课程学习笔记 >要求生成如下文法表示的表达式对应的计算器 exp->exp + exp | exp – exp | exp * exp |exp / exp |exp ^ exp | - exp |(exp) |NUM对于输入的中缀表达式,要给出结果。如 3 +(4..原创 2020-07-14 20:04:41 · 1860 阅读 · 0 评论 -
编译过程中的并行性优化概述
编译过程中的并行性优化概述浙江大学《编译原理》课程报告目录:编译过程中的并行性优化概述前言并行相关的处理器体系结构代码调度的相关约束数据依赖内存访问依赖寄存器使用与并行性的折衷控制依赖投机执行基本块调度算法数据依赖图列表调度算法全局代码调度基本代码移动全局调动算法动态调度软件流水线化SIMD总结:参考资料前言并行性是指计算机系统具有可以同时进行运算或操作的特性,在同一时间完成两种或两种以上工作。并行性等级可以分为作业级或程序级、任务原创 2020-06-26 16:51:49 · 1355 阅读 · 0 评论 -
编译过程中的并行性优化(三):软件流水线化与SIMD技术
浙江大学《编译原理》课程报告上一篇:编译过程中的并行性优化(二):基本块与全局代码调度算法软件流水线化软件流水线化也是一种重要的指令调度技术,就像硬件流水线的指令一样,它通过并行执行来自不同循环体的指令来加快循环程序的执行速度, 在前一个循环体未结束前启动下一个新的循环体,来达成循环体时间上的并行性。相比于简单的展开循环(在提高性能的同时会导致代码的膨胀),软件流水线提供了一个方便的优化方法,能够在优化资源使用的同时保持代码的简洁。对于循环之间没有数据依赖的 do-all 循环,我们可以用一个简单原创 2020-06-26 15:56:41 · 1876 阅读 · 0 评论 -
编译过程中的并行性优化(二):基本块与全局代码调度算法
上一篇:编译过程中的并行性优化(一):概要(浙江大学编译原理课程的课程报告)基本块调度算法基本块是连续三地址状态的最大序列,其中控制流只能在块的第一个语句中输入,并在最后一个语句中停留,而不会停止或分支。对于一个由机器指令组成的基本块中的指令进行调度以获取最优解,这个时间复杂度是NP完全的。但在实践中,由于基本块之间的高度约束的运算较少,因此用简单的调度算法是可行的。这里介绍一个列表调度的算法。数据依赖图数据依赖图是调度算法中用到的一个重要工具。我们可以把每个由机器指令组成的基本块标识成为一个数原创 2020-06-26 11:27:39 · 1504 阅读 · 0 评论 -
编译过程中的并行性优化(一):概要
前言并行性是指计算机系统具有可以同时进行运算或操作的特性,在同一时间完成两种或两种以上工作。并行性等级可以分为作业级或程序级、任务级或程序级、指令之间级和指令内部级。对于在一个具有指令级并行机制的处理器上程序的并行能力,需要考虑以下因素:程序中潜在的并行性,或者说程序中预算之间的依赖关系;例如具有简单的控制结构和规则的数据访问模式的数值应用中的并行性就相对较多;处理器上可用的并行性,比如可以用以计算的硬件资源的数目;从原来的顺序程序中抽取并行性的能力;在给定的指令调度约束下找到最好的并行调度方原创 2020-06-25 22:48:51 · 1038 阅读 · 0 评论