Update write up to reflect new test cases.
This commit is contained in:
parent
5498ee2e92
commit
e61377bf8a
|
@ -8,9 +8,9 @@
|
||||||
<h1>Lab: mount/umount</h1>
|
<h1>Lab: mount/umount</h1>
|
||||||
|
|
||||||
<p>In this lab you will add support for mounting/unmounting of file
|
<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
|
systems to xv6. This lab will expose you to many parts of the xv6
|
||||||
system, including pathname lookup, inodes, logging, disk driver,
|
file system, including pathname lookup, inodes, logging/recovery, disk
|
||||||
concurrency, etc.
|
driver, concurrency, etc.
|
||||||
|
|
||||||
<p>Your job is modify xv6 so that your modified kernel passes the
|
<p>Your job is modify xv6 so that your modified kernel passes the
|
||||||
tests in mounttest. You will have to implement two system
|
tests in mounttest. You will have to implement two system
|
||||||
|
@ -181,10 +181,26 @@ add <tt>$(QEMUEXTRA)</tt> to the end of <tt>QEMUOPTS</tt>.
|
||||||
<h2>umount</h2>
|
<h2>umount</h2>
|
||||||
|
|
||||||
<p>Once your kernel passes usertests and test0 of mounttest, implement
|
<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
|
<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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue