X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pintos-anon;a=blobdiff_plain;f=doc%2Fvm.texi;h=cf4f7640864c438323487b9fd0452952d90223f5;hp=2376aa1392ef73521a04ec79789aac75dc37bd2c;hb=f40f5e8a6f70b12b8e0848f1d1484725c142f840;hpb=2dc702a30822c4773989f3bf5bc730848c0f473c diff --git a/doc/vm.texi b/doc/vm.texi index 2376aa1..cf4f764 100644 --- a/doc/vm.texi +++ b/doc/vm.texi @@ -313,10 +313,12 @@ implementation, be sure to retain the distinction between the two pools. The most important operation on the frame table is obtaining an unused frame. This is easy when a frame is free. When none is free, a frame -must be made free by evicting some page from its frame. If no frame can -be evicted without allocating a swap slot, but swap is full, some -process must be killed to free memory (the choice of process to kill is -up to you). +must be made free by evicting some page from its frame. + +If no frame can be evicted without allocating a swap slot, but swap is +full, panic the kernel. Real OSes apply a wide range of policies to +recover from or prevent such situations, but these policies are beyond +the scope of this project. The process of eviction comprises roughly the following steps: