Skip to content

Commit

Permalink
add 2024秋冬开源操作系统训练营第三阶段总结报告-XiangyuTu
Browse files Browse the repository at this point in the history
  • Loading branch information
XiangyuTu committed Dec 5, 2024
1 parent b14c59d commit 5567f82
Showing 1 changed file with 20 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---

title: 2024秋冬开源操作系统训练营第三阶段总结报告
date: 2024-12-05 22:00:00
tags:
- author:XiangyuTu
- repo:https://github.com/XiangyuTu/oscamp
---

第三阶段的时候学校事务相对来说比较忙,因此只简单地写了 `print_with_color`, `hashmap``mmap` 这几个较为简单的练习。

我当时参加了 `lab1` 挑战,通过针对测例优化内存分配器减少碎片来取得更高的分数。

因为 ArceOS 自带的 TLSF 分配器效率已经十分高了,因此一开始一度陷入僵局,后来偶然发现 Slab 分配器中内嵌一个 Buddy 分配器,想着能不能把它换成 TLSF 分配器,于是就开始了一系列的尝试。

将 Slab 中的 Buddy 分配器替换成 TLSF 分配器后,拿到了 260 分终于突破了 ArceOS TLSF 分配器的 170 分。

考虑到题目中的分配失败都是因为大量不连续的内存碎片导致的,通过观察测例的内存分配规律,于是我将 Slab 中最小 64 Bytes 的大小提高到了 96 Bytes,这样虽然会浪费一些内存,但是可以减少碎片,最终拿到了 330 分,并得到了常规操作榜第 9 名的成绩。

通过第三阶段的学习,巩固了我对操作系统的了解,并提升了我对内存分配算法的理解;同时也让我了解到 Unikernel 和 Monolithic Kernel 的区别,Hypervisor 的原理,对操作系统的设计有了更深的认识。

0 comments on commit 5567f82

Please sign in to comment.