- 博客(56)
- 收藏
- 关注
原创 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(七)---- 系统调用函数与GDB(Lab: system calls)
本文主要探究xv6操作系统的系统调用函数的实现过程,学习gdb的使用以及为xv6增加两个系统调用函数trace和sysinfo,通过该实验可以深入理解操作系统的系统调用函数。
2024-06-12 19:45:33
1175
原创 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(六)---- 初窥操作系统启动流程(xv6启动)
本文通过讲解xv6的启动,对于理解操作系统从entry.S到shell的启动过程很有帮助
2024-06-10 19:31:15
1200
原创 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(五)---- 操作系统的组织结构(OS design)
本节对应的是MIT 6.828课程第三节:OS design。讲解了操作系统的目的:隔离性、硬件复用、防御性、交互性;以及宏内核与微内核的设计模式
2024-06-09 15:28:21
1070
原创 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(四)---- C语言与计算机架构(Programming xv6 in C)
本节对应的是MIT 6.828课程第二节:Programming xv6 in C本文沿着PPT的思路,主要讲解了学习操作系统,所涉及到的计算机底层架构与C语言的相关知识,以及为什么操作系统要使用C语言构建、C语言容易出现的内存问题
2024-06-03 23:52:36
1086
原创 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(三)---- xv6初探与实验一(Lab: Xv6 and Unix utilities)
MIT 6.828课程资料与进度计划表完成第一节课的学习后,按照课程的计划进度表,应当阅读xv6文档的第一章节,以及完成实验1。本文按照最新的2023计划表进行学习。
2024-06-03 12:44:43
1535
原创 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(二)----课程实验环境搭建(wsl2+ubuntu+qemu+xv6)
本篇文章讲解实验的环境qemu+xv6搭建,具体配置如下:虚拟机:WSL2过程中如果出现其他本文没有出现的bug,很有可能是没有依赖库或者依赖库的函数版本不对。可以按照报错提示修改相应的函数名称或者查看其他博客。
2024-05-20 17:32:12
1681
原创 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(一)---- 操作系统介绍与接口示例
本文是操作系统入门系列的第一章,对应MIT的6.S081,操作系统系列课程的第一节,“Introduction and Examples”。
2024-05-18 17:23:23
1777
原创 一文学会动态规划
本文主要讲解了动态规划的理论知识,表明动态规划的使用场景,分析了它的具体逻辑,给出了理论操作具体步骤。动态规划是一种用来解决一类最优化问题的编程方案,往往可以将指数时间代价的问题在多项式时间代价某一级的最优化问题总是可以用比低级的同类子问题来描述,称为最优子结构一般情况下,解决第n级的子问题和解决第m级的子问题的时候,都会需要解决第k级的问题(n>k,m>k),称为重叠子问题如果解决该问题采用暴力求解(就是遍历所有情况得到最优解的方案),往往时间代价是指数级的。
2022-10-09 21:50:52
697
原创 《算法导论》学习(十九)----动态规划之最长公共子序列(C语言)
本文主要讲解了最长公共子序列的问题,对问题进行分析后给出了动态规划的方案,并且给出了详细的C语言代码。
2022-10-08 11:14:08
2146
原创 《算法导论》学习(十八)----动态规划之矩阵链乘(C语言)
本文主要讲解了动态规划中的矩阵链乘问题:给定一个矩阵链,得到它的最小代价计算次序。给出了动态规划方案的分析,并且给出了C语言实现。
2022-10-04 17:18:53
3243
2
原创 《算法导论》学习(十七)----动态规划之钢条切割(C语言)
本文主要讲解了钢条切割问题的解决方案,并且给出了C语言代码。其中涉及到了动态规划的思想,会在之后的文章中详细讲解文章不妥之处请各位读者包涵指正。
2022-10-01 21:01:52
2923
原创 《算法导论》学习(十四)----散列表(哈希表)(C语言)
本文主要讲解散列表(也可以称作哈希表)的相关内容,并且重点讲解了散列函数,以及用C语言是实现了链式散列表
2022-09-16 19:51:47
1239
原创 《算法导论》学习(十二)----链表(C语言)
文章主要讲解了链表的相关讲解,涉及了单链表,双向链表,循环链表的操作函数,并且用C语言进行了实现
2022-09-15 22:34:21
1004
原创 《算法导论》学习(十三)----栈和队列(C语言)
本文主要讲解了栈和队列的内容,给出了它们的顺序结构实现方式和链式结构实现方式并给出了它的操作函数的C语言实现
2022-09-15 22:23:32
631
原创 《算法导论》学习(十一)----线性时间下,从输入种找到第i小的数(顺序统计量)(C语言)
顺序统计量,直接解决了从一组输入中找到第i小的元素的问题,给出了相应的C语言代码,同时该算法时间性能很突出,最坏情况是线性时间代价
2022-09-14 18:07:09
641
原创 《算法导论》学习(九)----为什么比较排序算法时间复杂度的下界是确定的?
本文介绍了决策树,主要是对于比较排序算法的一个总结性概述针对算法的时间性能,进行总体性偏向于本质的研究
2022-09-13 21:27:06
770
原创 《算法学习》学习(十)----计数排序,基数排序,桶排序(C语言)
本文主要讲解了三大线性时间排序:1.计数排序2.基数排序3.桶排序给出了它们的C语言代码和算法逻辑在
2022-09-13 19:15:44
1258
1
原创 Linux---进程通信(六)---IPC通信之信号灯
本文主要讲解了IPC通信的对象之一-------信号灯。讲解了函数semget,semop,semctl。并给出了C语言实现的无亲缘进程的通信。
2022-09-06 12:36:01
690
原创 Linux---进程通信(五)---IPC通信之消息队列
本文主要讲解了IPC对象之一 的消息队列,有函数:msgget,msgctl,msgsnd,msgrcv。同时给出了进程间通信的C语言代码
2022-09-05 13:53:43
641
原创 《算法导论》学习(五)---- 分治策略(递归)的时间复杂度求解
求解递归式的时间复杂度是学习算法很重要的一部分,本文主要讲解了利用“主方法”来求解递归式的时间复杂度,并给出了全面的求解例子。
2022-08-31 12:25:51
1753
原创 《算法导论》学习(四)---- 矩阵乘法的Strassen(斯特拉森)算法
矩阵乘法可以采用分治的策略。这里提供了两个分治策略的解决n∗nn*nn∗n矩阵之间乘法的算法1.矩阵乘法的普通递归方法2.矩阵乘法的Strassen(斯特拉森)方法但是着两个方法的缺点是只能是两个n∗nn*nn∗n矩阵的乘法,同时n必须为2的幂之后也对这两个算法进行了时间复杂度上的分析。......
2022-08-29 12:37:23
5326
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人