diff options
author | Frans Kaashoek <[email protected]> | 2019-08-17 12:33:32 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2019-08-17 12:33:32 -0400 |
commit | e61377bf8a046bb216f768f2df6c76fe06a477e4 (patch) | |
tree | 2c5b7c300d48c5eb619e99af79097e2f1e3ddc7b /labs | |
parent | 5498ee2e92b363a93a21021b8c3082e5d6bcdced (diff) | |
download | xv6-labs-e61377bf8a046bb216f768f2df6c76fe06a477e4.tar.gz xv6-labs-e61377bf8a046bb216f768f2df6c76fe06a477e4.tar.bz2 xv6-labs-e61377bf8a046bb216f768f2df6c76fe06a477e4.zip |
Update write up to reflect new test cases.
Diffstat (limited to 'labs')
-rw-r--r-- | labs/fs1.html | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/labs/fs1.html b/labs/fs1.html index cf5bc8e..27a2b1a 100644 --- a/labs/fs1.html +++ b/labs/fs1.html @@ -8,9 +8,9 @@ <h1>Lab: mount/umount</h1> <p>In this lab you will add support for mounting/unmounting of file -systems to xv6. This lab will expose you to many parts of the xv6 file -system, including pathname lookup, inodes, logging, disk driver, -concurrency, etc. +systems to xv6. This lab will expose you to many parts of the xv6 +file system, including pathname lookup, inodes, logging/recovery, disk +driver, concurrency, etc. <p>Your job is modify xv6 so that your modified kernel passes the tests in mounttest. You will have to implement two system @@ -181,11 +181,27 @@ add <tt>$(QEMUEXTRA)</tt> to the end of <tt>QEMUOPTS</tt>. <h2>umount</h2> <p>Once your kernel passes usertests and test0 of mounttest, implement - umount. Make sure your kernel can pass test1 of mounttest. + umount. The main challenge is mount should fail if the file system + is still in use; that is, if there is an inode on the mounted device + that has a <tt>ref > 0</tt>. Furthermore, this test and unmounting + should be a atomic operation. (Hint: lock the inode cache.) Make + sure your kernel can pass test1 of mounttest. <p>Test2 of mounttest stresses <namex> more; if you have done - everything right above, your kernel may be able to pass it. + everything right above, your kernel may be able to pass it. Test3 + tests concurrent mount/unmounts with file creation. + +<h2>crash safety</h2> + +<p>One of the main goals of the file system is to provide crash + safety: if there is a power failure during a file system operation, + xv6 should recover correctly. It is difficult to introduce power + failure at the critical steps of logging; instead, we added a system + call that causes a kernel panic after committing an operation but + before installing the operation. Test4 with crashtest tests if your + xv6 recovers the mounted disk correctly. + </body> </html> |