lab 5

2018-05-14  本文已影响0人  ZoltanJin

总述

这个 lab 要实现一个微内核(micro-kernel)风格的文件系统,整个文件系统跑在一个专门的用户进程(user-space environment)中,而其他进程通过 IPC 请求来操作这个文件系统

结构介绍

Sectors and Blocks

Superblocks

记录整个文件系统属性(如 block size,disk size 等)的 block,通常位于整个磁盘的第 1 个 block(第 0 个 block 用于 boot)。

Block Bitmap

记录整个磁盘中哪些 block 是空闲的,哪些是已被使用的。在 JOS 中,Bitmap 从第 2 个 block 开始(尾随 superblock)。

File Meta-data

没有 inode 的结构,但是有类似的结构叫做 struct File,也记录了文件名、文件大小、一级 block 指针、次级 block 指针。没有 inode table,所有 struce File 储存在磁盘上的 directory entry 中。

Directories versus Regular Files

目录和正常文件统一看作正常文件储存。

Summary

整个结构和 CSE 实现的文件系统大体一致,在 inode 的具体实现上有差别。

The File System

Disk Access

The Block Cache

我们不可能把整个磁盘空间都读入内存,所以实现了一种叫做 demanding paging 的形式。即被访问的 page 先产生 pgfault,然后去磁盘中去,江数据存入 block cache,以供读取。

The Block Bitmap

File Operations

Client Server Access

基于 IPC 实现 C/S 风格的文件系统的调用。

Client-Side File Operations

这部分要实现客户端的 open 操作,通过 IPC 发送到文件系统的 env 中来打开文件。这里提到了 UNIX 中 everything is a file 的思想。

上一篇 下一篇

猜你喜欢

热点阅读