互斥锁(Mutex):互斥锁使用阻塞机制。如果一个线程试图获取互斥锁时发现锁已经被其他线程持有,它会被挂起,并放入等待队列中,等待锁释放时被唤醒。此时,线程不占用 CPU 资源。
自旋锁(Spinlock):当一个线程试图获取自旋锁时,如果锁已经被其他线程占有,它会一直循环检查(自旋)锁的状态,直到锁被释放。线程在自旋过程中不会被挂起,而是持续占用 CPU 资源进行忙等待。
2025 / 05 / 20 – 23 – 文件系统的实现
FAT(File Allocation Table):核心想法是把 next 数组存在一起;目录就是一个普通文件,存了文件的一些 metadata(最重要是存了 First Cluster,可以通过指针不断往下跳)。
Unix 文件系统:核心想法就是把数据和目录分开存,数据单独存在 iNode(index node),iNode 存了 metadata 以及一个用于索引的数据结构。
ext2:Unix 文件系统的一种,通过在 iNode 中存下直接指针、间接指针、双重间接指针等,可以在小文件和大文件中都有较快的访问速度;目录文件只是 string -> int(即 name -> iNode)的对应。
《2025 NJU OS note》有一个想法