WordProLWP7. YƤ1BWord Pro Text File/DFBA@@PPPPP-PPP @IBM_USER<<>Q@@@ @ SmartMasterH@ASMH @GIBM_USERHpP p@ @IBM_USERSX@@@q pcPP`@@q pcPP` @UNIVERSAL_SMARTMASTER_EDITOR@ESMX@@@q pcPP`@@q pcPP` @UNIVERSAL_ALL_OTHERS_EDITOR@FOTRX@@@q pcPP`@@q pcPP`B@QCB PP p  q@Tp= yqp~ qPHPHPHPH(x qQdIZ+!!xBz$Bp= A!@B?Bp= APHBPHBgf ( xAQdHHAQdHHq ~APHBgf PHB(e AAk qAy}-?@En;CxP@P@@@ P@@@P @@@PpP@@@Pp @@@d*p  lC|@@@"q!@@ @@P@Zc xpp  @@@PppP @@@ fqcP`R@d H@dZ Z Z Z pH@PZ  pH@P pH@P pH@P pH@PZZZZ(( /!("(# ($(%(&('Z(3Z)Z*Z,Z-fZ.cZ/dZ0eZ17Z2 $Z3Z4?Z5Z6xZ7*Z8 #Z9 %Z:Z;Z Z Z >H@@ ??X@P`@@P`@@Pp@P`@@Hx``@@Hx``PC q@@P@ xA yx@Hx@Hx@Hx@Hx` % x@@@Q $ $ %yy'ABBBBRBBB A&PHPH q %@@@@Q  A]Ays>LH- }Ex$ ?}pExP:An@P@P@@@ P@@@P @@@ X@@@Pplq@@@@P |C@@@P !"AO@@ @@P@3 &tB?7@-@<@Pc@P c@P c@P |p@@@P *>pEH @ Heading 1 #Ox@@@P@A@Aj& $ p`@x@%]A $Az ABff4&A3Bz$Bz*&  p`@x@]A%AHHPHA>!A*@EH@ Default Text s-ExP:A@P@P@@@ P@@@P @@@ P@@@PpO!A #@@ @@P@ A%@p@ q@AJBABffbff,7q@P@P@@@ P@@@P @@@PpP@@@  Aff, ABffbff€BBBxnx@@@PiH$@P@P P P  DADxQE @QDs%D@@EBodytBPP@EBody@p (g(ir H@@a Fo oqqPV uAuxpA@P # AyU@@Default FooterXA@BQJA +A P@EFooter %A@@@Default Footer Style$@aAAAyA@ @YAfAdAe@ XQ $@c .Y +u@pA@B PRA =A +P@EFooterI /A #A %Iyy@ @Y XQ@c /* BA ,yd@Q . $@FStory BA ,Y 0A 0AmU A xpA@P q #yU@@Default HeaderXA@BQJPA #AP@EHeader A@@@Default Header Style$@aAAAyA@ @YAfAdAe@ XQ@c +Xq .yu@pA@B PRPA .A #P@EHeaderI ,A A Iyy@ @Y XQ@c ,, /Bqd@Q + $@FStory /BQ -A -Amu .A +AV@@ Default PageQA@JIXA @CPageH@@Default Page Style$@@ Default TextIxAA~AyAc@ iAfAdAe@ @Printer Folder SettingH$@@ &d@Q @FStory AsAmT AxpA@P CU =@pH@B PRy =P@EFooterI HA #A %Iyy@ @Y XQ@c H*8A Byd@Q C $@@FStory8A BY IA IAm =Wq Cy@pH@B PRPA CA .P@EHeaderI BA A Iyy@ @Y XQ@c B* HA /yd@Q = @@FStory HA /Y KAAm@ CA =AT@iH@IAAuP@CPageIAu+ A p@t q@@P mT> )A@BThe goal of the machine problem is to implement a demand paging scheme for nachos such that a program that is larger than the available memory may be loaded and run in the environment.TPSpcFxSEnd KlSmT A B@BDemand Paging Memory Map @ @ @ WriteUp - Jeff AbsherTPAlnAlCSEnd/d A8x @mzqk@ Default TextP@@@i@@Default Text Style@@@pE A@x`aAnD}AA"x@@@PP@@@  IPAmT A H@ASSEnd qDoB~ PP  ZHZOZG  Z ZIYmZLZP:ZNZW AxpA@PX AxpA@P\[u^_`abZJZKZQb(Ru(S CM;(e(f8c(h(j]  # #AyU@@ Default FrameQ A@IQXAAP@DFrameH@@Default Frame Style$@@ Default TextIAAAAc@ @YAfAdAe@ A]@ 0PAm /@ASSEndU@@Default Drop CapQ A@IQXA AP @FDropCapIAxH@@Default Drop Cap Style$@@ Default TextI&AAAyA@!AfAdAe@ X@Dzb%@@ ) ,Bqd@d@FStory ,BWm -PAm ,@ASSEnd 'Ayd@d@FStoryAYAAm 8"q Hyd@d@DStoryq HY9A9Amk0mAo@ Note Initials`P@Y@x`al2 :1@Engineering NumberingI8@ OX+@Outline (Not Indented)P@@@i@"@ Left Justified Outline Numbering@@@pE A@A+@D  O @@@QP mrW@@ Default TableQH@@RB0PAAP @ SuperTableH@@Default Table Style Ay@. A@_X@@Default Right ColumnQ@H@@@QH0@AAP@CCellX$@@ Default Texty@!qyX@@ Default CellQAA@@@R@0@AAP@CCellH@@Default Table Cell Style$@ @ Table TextI3AAAA@7Ay[AyX@@Default ColumnQ@H@@@QH0@AAP@CCellX$@@ Default Texty@!`AyX@@Default Left ColumnQ@H@@@QH0@AAP@CCellX$@@ Default Texty@!1b@Default Headingsa; 'y:qAu *yd@Q $@StoryYAAm 'yd@d@Story_m SmCHHBvSSEnd 'Ayd@d@FStoryAYAAmaSm@D@@ap@PT@@apE.@@ap@PT@@apE.@@ap@PT@@apE.@@ap@PT@@apE.@@ap@PT@@apE.@@ap@PT@@apE)@@ap@PT@@apE)@@ap@PT@@apE)@@apE(@@ap@P T@@apB)SSEnd9RSm8@D@@ap@PT@@apF.0@@apE.@@ap@PT@@apE.@@ap@PT@@apE.@@ap@PT@@apE.@@ap@PT@@a?pE.@@a?p@PT@@apE.@@ap@PT@@apE.@@ap@PT@@apE.@@ap@P QSSEndo,kA @ Note Date`P@Y@x`al2 .A:@Legal NumberingI@ OX+@Outline (Indented)P@@@i@(@&Traditional Indented Outline Numbering@@@pE A@CfD?" @@@QP ,q@Default OutlineI@ OPZa  ' ; # PAm@ASSEnd SmCHHBSSEndTSm@D@@@Px@PT@@@PxE.@@@Px@PT@@@PxE.@@@Px@PT@@@PxE.@@@Px@PT@@@PxE.@@@Px@PT@@@P?xE.@@@P?x@PT@@@PxE.@@@Px@PT@@@PxE.@@@Px@PT@@@QpE.@@@Qp@P QSSEndGoA @ Body Singlep@i@P@@@pE A@Am@D= Xw+@DTitleP@@@i@P@@@pEAm@DdB}q*A # @@@  f\Uw @ Number Listp@i@P@@@pE A@Am@D  ! @@@QP  {U  c '  ZB @GBullet 1p@i@P@@@pE A@Am@D  " @@@RH wOf @ Table Textp@i@P@@@pE A@Am@Db|r}# U[Df @ Heading 3P@@@i@P@@@pEAm@D B}t> # @@@   A CDc  b ZB( @GBullet 2p@i@P@@@pE A@Am@D  " @@@RH c PD[2U @ Heading 2P@ @@ i@P@@@pEAm@D B}t> # @@@   q C2 c (S2 @First Line Indentp@i@P@@@pE A@Am@D-# c P2[(D @ Heading 1P@ @@ i@P@@@pEAm@D B}t> # @@@      q KIYmT A B@ASSEnd("APRmTA@ATPSpcFxSEnd":@ @ @ Create followed by the @ @ @ filesystem->Open" routines. The size is fixed by a @ @ @ #definez directive and that now becomes essentially the maximum memory of the machine. I also initialize the file to 000A Os at @ @ @ Ginit.) The filename is fixed by a directive as @ @ @ nachos.swp.TPSpcFxSEnd[(_A@PRmTA@ATPSpcFxSEnd_3yA[PKmT٣A@BOOnce the page file was created, my next task was to move data into it validly. @ @ @ Becuase of the @ @ @ WriteAtƿ syntax explored in the first phase, this was fairly easy. At this point I also made the decision (not the most efficient) to load an entire program into virtual memory when starting it rather than @ @ @ pagefaulting against both the @ @ @ swapfileY and the program file. Next came verifying the file to physical memory transfers. Again, @ @ @ ReadAt syntax came into play here. So I successfully could take a processA Os memory and dump it to a file, clear physical memory, and pull the process back from the file into physical memory, and the process would successfully run after that.TPSpcFxSEndosAPRmT A@ASSEnds"qo@@I mT A@ASSEndy)|A_IRmTA@ATPSpcFxSEnd|1AyBJ mT٣A@BOnce all of these elements were in place I needed a mechanism to fault and load the pages, and the project would essentially be complete. Using the .valid bit of the @ @ @ pagetable structure, and the @ @ @ bitmapb of physical memory, I could determine whether a page was loaded into physical memory or not. The @ @ @ bitmapy of physical memory would tell me where I could load it if it was not present. So on a swap out, .valid is set to 0, the @ @ @ bitmap bit of the physical page is cleared. On a swap in, the reverse happens. I determined when to swap out by replacing the Translate function in @ @ @ translate@ @ @ E.cc to call @ @ @ swapin whenever a page was invalid.TPSpcFxSEnd)A|IRmTA@ATPSpcFxSEndAIKmTfA@B8Also I wrote a stealer. The stealer is invoked whenever @ @ @ swapin. is called. It scans the free physical memory @ @ @ bitmap,y and if there are enough free pages it returns one of them, if there are not enough free pages, it picks a random set to @ @ @ swapout and then returns the physical address of one of the swapped out pages. The watermarks are directives, high and low, (how many to try to free, and how many are okay to not start stealing). TPSpcFxSEnd)AIRmTA@ATPSpcFxSEndAIRmTA@BaAt this point, I made the machineA Os memory very small, and ran my test programs successfully.TPSpcFxSEndoAIKmT> )A@BFurther refinement would include a smarter choosing algorithm for stealing the pages and possibly paging against the code file as well as against the @ @ @ swapfile.TPSpcFxSEndqsPBA@ tqA PP   @~q|PBA@q ~H$@P@P P P DiEa H@H@@P@@P@@PPpPP`@p@P P w<DQGAOALQPQHATANAYAZAVAUAWAXA\A[A^A_A`AaAbAIAJAKAQARASAM dAeAfAcAgAhAiAjP AH dP@QH pcPa cpccpcPaH pcPaUUH cpcP@QHdP@QTT cpcP@QTT cpcP@QH dP@QUUH cpcP@QHdP@P@@Times New RomanHWH@ MS Sans Serif H @ WingdingsH @ Arial Black H@Arial hWHGi]AAQrys@@George P. Burdell832882267FA iaA@H@@P@@P@@PPpPP'@%C:\lotus\smasters\wordpro\default.mwpH@p@P P pAJFaxBxCpoolDNe00: ADX'@@D od@@@@@@@ULetter?DfaxX?????B'd@PB@@@ENe00:@CFax @winspoolP@E1-9999XPDUVerD@P@Original Version @IBM_USER<<`@@ASMH<QA A Q QAA AAAAAAAAAAAAAAAAAAAA !A"A#A A$A%A&A'(A)A*A+A,A-A.A/A0A1A2A3A4A5A6A7A8A9A:A;@ A A A QAAQ>A?AAAB@@IBM_USER1023399925A DYƤ1:.P@@CHHBxII,I5IGIPIYIbIkIwIIIIIIIIIIIIIII!I-I9IEIIIHLQIIW:Iz I IcIQIIBIKIIwIIZIITIaIlIIQ I IIIIPIII II!I,I7IIrIII II IIIZIII I IIIIIIIII[III@I_IIRI@:IN IoII{DYƤ1kh PIHBJN   JGQv1XA<U]1!@Ec1AFe1H@a @F2"@U&/2! ?0/2*G${R02UE72#E{23FKM5@E<IAI;IIII$"IIII'I`I Iv#II~ I I I$IbIz%II I%ImI%III= Is Ii%IIIIs$InILIIIQI1II I5"IIjI#I I#IIII$I$II%I I#I"II-Ie#I!I"IpII>!IIuI~IIIoI|I IIIIIIh I Ij I"I INI*I IIU I7I IiIzI I IwI(IIII IIhIII)IPIIUIIbI I II I.I IX IIb$IQ#I"I% IIIQIZIcI%I%I&ID*It*I.I.I2I62I`2I2I5I5I8IP8I8I9I9I:I2 I:I1:HDYƤ1A&I>IR@H YƤ1]1Qv1&/2<0/22{2c1E72e1KM5{R02!(ʦ @ ` @@ @@@`@@@@`` `@`````` @` @` @` @`@@ @@@`@@@@@ @ @ @@ `@ @ @ @ @@@@ @@@@@`@@@@@@@@@`@` @`@@``@`@`@`@`@@ @@@`@@@@@@ @@@`@@@@@@ @@@`@@@@@@ @@@`@@@@ @` @ ` @@ @@@`@@@@`` `@`````` @` @` @` @` @` @ ` @@ @@@`@@@@`` `@`````` @` @` @`# $N 9 :  =  7        " ! 5  # #, ' #     6!.    %  @     $:9!  ! $8$^  ]  ]  h1 i         &  ,L   ',5 !    !   )0             & $    =F,      #EE,   !     >          8&-         /  6     #"-*            9I (3!&        # #   (8 &        (Y  !  "% .F            I  K8 78  78  ; MiscellaneousMiscellaneousFileProtectionHeaderLWPStreamTypePreviewWordProData  de 0C@C!_d0ddd ddCMHdrd