2012 - Trabajo Prctico N 2: Contador de mensajes en MINIX 3
1. Objetios de! "rctico
Al terminar este trabajo usted habr aprendido: 1.Utilizar MINIX 3 en su versin sobre Mauina !irtual. ".#mo se estru$tura el $di%o &uente de MINIX 3 ' $mo modi&i$arlo 3.#mo re$ompilar el (ernel de MINIX 3 ).A $rear *'stem #alls en MINIX 3 2. #erramientas necesarias +ara resolver los ejer$i$ios propuestos ne$esitar: 1.Una +# $on MINIX 3,- versin 3.1."a bajo !M.are "./l #0123M de la #tedra 3. $%entes de In&ormaci'n s%(eridas /n$ontrar in&orma$in 4til en: 1.*istemas 3perativos. 0ise5o e Implementa$in 3ra edi$in A.*.6anenbaum ' A. 7oodhull. +renti$e 8all. ".#023M de la $tedra 3.9as man pa%es de MINIX 4./l sitio de MINIX3 http:::....mini;3.or%: ). *e+%isitos de ,ntre(a ).1. -%(ar . $ec/a de entre(a 1.9a &e$ha ' hora de entre%a para este pr$ti$o ser publi$ada en la p%ina .eb de la $tedra. ".9os trabajos en #0 23M deben ser entre%ados +/2*3NA9M/N6/ a al%uno de los a'udantes do$entes de la $tedra en los horarios de $lase o de $onsulta. No se a$eptarn trabajos depositados en el 0epartamento *istemas o en $ualuier otro lu%ar. 3.No se a$eptarn trabajos in$ompletos. ).2. $ormato de ,ntre(a 0eber entre%ar un 03#UM/N63 +0< ' UN #023M #3N 9A MA=UINA !I26UA9. 1./l do$umento debe reunir las si%uientes $ara$ter>sti$as: 1.1. <ormato de +resenta$in 1.1.1. 8ojas de tama5o A) en$arpetadas. 1.". *e$$iones del do$umento ?6odas obli%atorias@: 1.".1. #artula de presenta$in: 0ebe in$luir 3A9IBA632IAM/N6/: 1.".1.1. Asi%natura 1.".1.". N4mero ' 0es$rip$in del trabajo pr$ti$o 1.".1.3. A5o ' #uatrimestre de #ursado 1.".1.). Identi&i$a$in del Brupo 1.".1.C. NombresD Apellidos D N4mero de 9ibreta universitaria ?9U@ ' dire$$iones de $orreo ele$trni$o de 6303* los Inte%rantes del %rupo 1.".". *e$$in +rin$ipal: Au> debe in$luirse la resolu$in de $ada uno de los problemas planteados. +ara $ada respuesta debe indi$arse 3A9IBA632IAM/N6/D el n4mero ' t>tulo del problema al ue $orresponde tal $omo apare$e en el enun$iado. #uando el >tem a resolver impliue la $rea$in de un pro%rama o la modi&i$a$in de $di%o &uente propio de MINIXD in$lu'a en esta se$$in el $di%o &uente del pro%rama $reado o de la se$$in ue alter. /n ambos $asosD deber indi$ar $laramente el path $ompleto ' el nombre del ar$hivo. /sta permitidoD si el ar$hivo donde se en$uentra la se$$in modi&i$ada es mu' e;tensoD presentar solo di$ha se$$in. 1.".3. *e$$in de 0es$ar%os: Au> debe in$luirse $ualuier $omentario ue deba tenerse en $uenta para la $orre$$in del pr$ti$o. Use esta se$$in para indi$ar: 1.".3.1. =ue no pudo resolver al%uno de los problemas. 1.".3.". =ue no pudo resolver #3M+9/6AM/N6/ al%uno de los problemas. 1.".3.3. =ue no est se%uro si el problema est resuelto $orre$tamente. 1.".3.). #omentar los problemas en esta se$$in es la 4ni$a &orma de obtener puntaje par$ial para un >tem ue no est bien resuelto. *i en$ontramos un problema no resuelto o resuelto de manera IN#3M+9/6A ' eso no est $omentado en esta se$$inD perder puntos adi$ionales ?no solo le des$ontaremos puntos por el error sino tambiEn por no avisarnos@. *i no tiene nin%4n $omentarioD deje esta se$$in en blan$o. "./l #023M debe reunir las si%uientes $ara$ter>sti$as ".1.1. I0/N6I<I#A#I3N en la super&i$ie ue $onten%a B2U+3 XXX F 0I*3 "G1" F 6+ XX ".1.". #ontener un dire$torio $on la Mauina !irtual MINIX 3 resultante despuEs de haber realizado las modi&i$a$iones al $di%o. ".1.3. #ontener el do$umento en &ormato +0< $on los detalles del trabajo ).3. Pena!i0aciones 9os pr$ti$os entre%ados en &e$has posteriores al l>mite &ijadoD tendrn una uita de puntos del "GH. ).). Cambios a! en%nciado de! "rctico1 &ec/as de entre(a1 etc. #ualuier $ambio en los enun$iadosD &e$has de entre%aD et$. ser in&ormado utilizando dos mEtodos: 1.9a p%ina 7eb de la #tedra ".9a lista de $orreos. Usted no puede ale%ar ue no estaba al tanto de los $ambios si esos $ambios &ueron anun$iados utilizando al%uno de los dos mEtodos. *UB/2/N#IA: #onsulte &re$uentemente la p%ina de la $tedra ' ase%4rese de ue ha sido in$orporado a la lista de $orreos. ).2. #onestidad acad3mica /st bien $omentar las estrate%ias empleadas en la resolu$in de los 6+s entre los %rupos a$er$a de $mo resolver problemasD pero los %rupos son de hasta 3 ?tres@ inte%rantes. 1.No entre%ue trabajo de otras personas $omo propio. ".#ada %rupo debe mantener su $di%o para si mismoD si su pro'e$to es $opiadoD puede ser di&>$il determinar uien es el verdadero autor. 3.#ualuier a'uda ue re$iba deber do$umentarla $omo un $omentario al ini$io del pro%rama. +or ejemploD si en$uentra una solu$in a un ejer$i$io en un te;to o manualD deber>a $itar la &uente. Una razonable a'udaD no a&e$tar la aproba$in de los trabajosI &allas al $itar las &uentes o la ausen$ia de las misma es &raude. 2. ,s"eci&icaci'n t3cnica de! trabajo /l sistema MINIX 3 &un$iona en base al pasaje de mensajes entre pro$esos. Un pro$eso no pueden enviar mensajes a $ualuier pro$eso. 9os pro$esos se or%anizan en $apasD $on la $apa ms baja la de la tarea del sistema ' la ms alta la de los pro$esos de usuario. 9os pro$esos de usuario slo pueden enviar ' re$ibir mensajes de los pro$esos servidores. 9os servidores se $omunian ha$ia arriba $on los pro$esos de usuario ' ha$ia abajo $on los pro$esos drivers. 9os pro$esos drivers se $omuni$an $on la tarea del sistema. 9a tarea del sistema se en$ar%a de dialo%ar $on el hard.are ' realizar $opias de memoria entre los espa$ios de dire$$iones de los di&erentes pro$esos. #ada uno de esos mensajes su$eden entre dos puntas: el emisor ' el re$eptor. *e le pide ue modi&iue el sistema de mensajes para ue se alma$ene el $ontador de mensajes enviados entre $ada par de pro$esosD ' ue a%re%ue una op$in de visualiza$in de los datos en tiempo real. *e su%iere ue $ree una matriz de dos entradasD ue sern los n4meros de pro$esoD de manera ue mJaK JbK ser la $antidad de mensajes ue el pro$eso a envi al pro$eso b. Una llamada al +M permitir $onse%uir una $opia de esa matriz en espa$io de usuario. 4. Metodo!o(5a s%(erida 4.1. ,nc%entre !a in&ormaci'n Identi&iue los ar$hivos &uente ue usa el sistema para realizar el pasaje de mensajes. Identi&iue los e;tremos de una $omuni$a$in a travEs de mensaje. 4.2. ,ta"a 1: 6(re(%e !a matri0 de escrit%ra 7 !ect%ra /n esta etapa vamos a lidiar slo $on la llamada al sistema ue nos permitir leer la matriz. A%re%ue la variable ue representar la matriz. /s$riba una modi&i$a$in de s'sL%etMin&o para obtener en espa$io de usuario una $opia de los datos de la matriz. (ernel:s'stem:doL%etin&o.$ es la inter&az de in&orma$iones del (ernel. Ini$iali$e la matriz $on valores distin%uidosD ue le permitan saber ue verdaderamente la est le'endo. 4.3. ,ta"a 2: Incor"ore !a is%a!i0aci'n de estado Muestre la in&orma$in de la matriz mediante los dumps ue se produ$en al oprimir una te$la de &un$in. 4.). ,ta"a 3: Conteo de !os mensajes (ernel:pro$.$ es donde se resuelven los env>os de mensajes. In$remente los $ontadores de la matriz de a$uerdo al remitente ' destinatario de $ada mensaje. 8. -aboratorio asociado a@ $reamos un $ontador de mensajes para los ue re$ibe la s'stas(. b@ s's$all de le$tura del $ontador de mensajes de la s'stas( 6"3ndice. Con&i(%raci'n1 com"i!aci'n e insta!aci'n de n%eo 9erne! 1. :a!e %na co"ia de !os &%entes ori(ina!es Antes de ha$er $ualuier modi&i$a$inD salve una $opia de los &uentes pr>stinos: cd /usr/src make clean cp -vpsmr /usr/src /usr/src-orig 2. ,nmar+%e !os cambios +%e /a(a en !os &%entes 2/B9A: a partir de ahoraD todos los $ambios ue se ha%an al (ernel no debern alterar la $ompila$in standard. +ara eso se utilizar en el ar$hivo:usr:sr$:in$lude:mini;:$on&i%.h: #define UTNDISO 1 para &orzar la $ompila$in sobre el $di%o nuevo ' si se elimina esta l>nea se $ompilar $on la versin estndar. #ada parte de $di%o ue se a%re%ue o $ambie deber estar realizada $on $ompila$in $ondi$ional utilizando: #ifdef UTNDISO ... Nuevo cdigo ... #else / UTNDISO / ... !digo original ... #endif / UTNDISO / 3. Con&i(%raci'n de! 9erne! A los e&e$tos de veri&i$ar ue se est eje$utando un (ernel $ompilado por uno mismo re$omendamos $ambiar: / "ini# release and version num$ers. / #define OS%&'(')S' *+* #define UTNDISO 1 #ifdef UTNDISO #define OS%,'&SION *1.+DISO* #else / UTNDISO / #define OS%,'&SION *1.+* #endif / UTNDISO / /ste mensaje se ver al arran$ar MINIX 3. ). *ecomendaciones 1.N3 IN6/N6/ 2/A9INA2 93* #AMAI3* 3 IN#32+32A#I3N/* 0/ #30IB3 0/ UNA *39A !/N. No sabr donde est $ometiendo los errores. +rimero a%re%ue las variables nuevas ' $ompile para veri&i$arD lue%o in$orpore $di%o en &orma paulatina re$ompilando ' probando. ".*/A M/630I#3D 320/NA03 O 32BANINA03 3.0/*+U/* 0/ 2/A9INA2 !A2IA* #3M+I9A#I3N/*D BUA20/ /9 #30IB3 <U/N6/ #3N UN NUM/23 0/ !/2*I3N. *i por $asualidad borra un ar$hivo o lo $ambia ' debe volver atrsD tiene versiones ms a$tuales. ).IN*/26/ MU#83* #3M/N6A2I3* O +2IN6<?@ 9e a'udar a veri&i$ar ue lo ue Ud $ree ue se est ha$iendoD e&e$tivamente se est ha$iendo. Una vez veri&i$ado ' &un$ionando la por$in de $di%oD remueva los print&?@ C.*I 8AO A9B3 0/ #30IB3 =U/ 0/A/2IA /P/#U6A2*/ O N3 */ /P/#U6A IN*/26/ AN6/* O 0/*+U/* UN +2IN6<?@ 0I#I/N03 =U/ /* 93 =U/ */ /*6Q /P/#U6AN03 *e&erencias http:::.eb.ballardini.$om.ar:diso:bro.ser:vendorsr$:ast:mini;:23.1."Leuros'sL$d:sr$:(ernel:pr o$.$ http:::.eb.ballardini.$om.ar:diso:bro.ser:vendorsr$:ast:mini;:23.1."Leuros'sL$d:sr$:lib:other: L%ets'sin&o.$ http:::.eb.ballardini.$om.ar:diso:bro.ser:vendorsr$:ast:mini;:23.1."Leuros'sL$d:sr$:(ernel:s' stem:doL%etin&o.$