Beruflich Dokumente
Kultur Dokumente
Convocatoriaextraordinaria,13deseptiembrede2006
1 2 3
Calificacin
4 5 6
Nombre
SOLUCIONES
Titulacin
Disponedetreshorasymediapararealizarelexamen
1Respondabrevementeaestaspreguntas:
(1,50puntos) Definirbreveyespecficamente:a)procesamientoasimtrico;b)espera
Nombre
tpicamente proporcionan una administracin mnima de los procesos y de la memoria,ademsdeunserviciodecomunicaciones. e) Polling: En un sistema basado en interrupciones, cuando un dispositivo interrumpe a la CPU, ha de averiguarse cul de los dispositivos del sistema ha realizadodichainterrupcin.LatcnicadelPollingconsisteenpreguntarunopor unoatodoslosdispositivosparaaveriguarlaprocedenciadedichainterrupcin. f)BootStrap:Esunsencilloprogramadearranqueinicialdelsistema.Adems,sirve parainicializartodoslosaspectosdelsistema,desdelosregistrosdelaCPUylos controladoresdedispositivos,hastaloscontenidosdelamemoria.Debesabercmo cargar el sistema operativo y empezar a ejecutar dicho sistema; para lograrlo el programadebelocalizarycargarenlamemoriaelkerneldelsistemaoperativo. g) Independencia del dispositivo de E/S: Objetivo que consiste en dar a los programascanalesgenricosdeE/Senlosque stosrealizansusoperacionesde E/S mediante primitivas genricas. De esta manera, los programadores estn liberadosdehacerreferenciasadispositivosconcretos,porloquelosprogramasno dependendedispositivosconcretosdeE/S. (0,25puntos)Dadalafrase:segnelalgoritmodelbanquero,unsistemaesinseguro
delsistema?Qudiferenciashayentreambos?
Lasllamadasalsistemasoninstruccionesespecialesqueutilizanlosusuariospara solicitaralsistemaoperativolautilizacindeunrecursodelsistema. Encambio,losprogramasdelsistemasonprogramasqueformanpartedelsistema operativo pero que no forman parte del monitor residente, como por ejemplo los editores,intrpretesdecomando,etc. En realidad, los programas del sistema utilizan llamadas al sistema para utilizar recursos.
Nombre
(0,50puntos)Indicardetalladamenteelprocesodecargadelsistemaoperativoguiado
porinterrupcionesenunsistemadecmputo,indicandocmoquedaralamemoria principalalfinaldelacarga.
Al encender el sistema informtico, lo primero que se ejecuta es un programa llamado BIOS, ubicado en la placa base del sistema en memoria ROM. Este programa se encarga de detectar todos los dispositivos hardware que hay en el sistemayalmacenasuscaractersticasyparmetrosenmemoriaprincipal,dandola posibilidaddeinicializaromodificarlosparmetros atravs deunprogramaque poseedenominadoSETUP.Unavezfinalizadaestaprimerainicializacinsebusca al programa cargador del sistema operativo, el Bootstrap, ubicado en el primer sectordeldispositivodearranque,normalmentefloppy,discodurooCDROM,ytras cargarlo en las direcciones ms bajas de memoria, lo ejecuta. Este programa Bootstrapeselencargadodeleer elsistemaoperativo desdeeldispositivodonde seencuentra,ubicarloenmemoriaprincipalyejecutarlo. Unavezquesedapasoalsistemaoperativo,unadelasprimerasfuncionesdeeste es instalar el vector de interrupciones que contiene todas las direcciones de las rutinasqueatiendenalasinterrupciones.Despusdecargartodoslosmanejadores dedispositivos,losservidoresydeinicializartodoelsistema,elsistemaoperativo quedaenespera hastaquealgunatareadelsistemaoalgnprogramadeusuario demandetrabajoylecedalaCPU.
Lamemoriapodraquedarcomosigue:
Nombre
0000 Vector de interrupciones InterpretedeJCL Cargador de programas Manejadores de dispositivosE/S Memorias intermedias buffers Rutinas de tratamiento de errores
Monitor residente
Memoria usuario
de
FFFF
2(1,5puntos)Muchossistemasoperativosrequierenque,antesdeleeroescribirenun
fichero,seinvoqueaunaoperacindeabrirfichero,quedevuelveunidentificador queluegopuedeserutilizadoparaaccederalfichero.Cuandoseterminadetrabajarcon elfichero,seinvocaaunaoperacindecerrarfichero,comoenesteejemploen UNIX:
chartexto[]="hola",otroTexto[]=adios; intlongitudTexto=4,otraLongitud=4; intfich=open("mifichero.txt",O_RDONLY); write(fich,texto,longitudTexto); write(fich,otroTexto,otraLongitud); close(fich);
Nombre
write("mifichero.txt",posicionEnElFichero,texto,longitudTexto);
3(0,75puntos) Tedanaelegirtrestamaosdepginaparaunsistemaoperativo:16
bytes,800bytesy2048bytes.Elsistematrabajacondireccionesde32bitsyeltamao mediodeunprogramaesde4megabytes.Conqu tamaodepginatequedarasy porqu?
Eltamaode800byteshayquedescartarlodeantemano,porquenoespotenciade dos.Requeriraunhardwaredetraduccindedireccionesmuchomscomplejoque unsistemadepaginacinconvencional:paracalcularelnmerodepgina,nobasta con quedarse con los bits ms significativos de la direccin, sino que hay que realizarunadivisin. Eltamaode16bytestampocoesrecomendable,porquegeneramuchoespacioen tablasdepginas.Unprogramadecuatromegabytes(untamaotpico,segnel enunciado)ocupara22224 =218 =256Kpginas,quenecesitaranentornoaun megabyte de espacio (suponiendo cuatro bytes por cada entrada de la tabla de pginas). No parece sensato dedicar a estructuras de gestin una cantidad de memoriasimilaralaquenecesitaelprograma.Adems,paragarantizarunatasade aciertosaltaenlaTLB,staprobablementenecesitarabastantesentradas.
Nombre
Porsuparte,siusamospginasde2048bytes,unprogramadecuatromegabytes requerir 2048pginas,128vecesmenosespacioqueenelcasoanterior.El nico inconvenientedeestetamaodepginaeslamayorfragmentacininterna,pero estamos hablando, en el peor de los casos, de 2047 bytes desperdiciados, que seranmenosdeun0,05%deunprogramadetamaotpicode4megas.Esdecir, irrelevante. Asquelamejoropcineseltamaode2048bytes.
4(1,25puntos)Sedisponedeunsistemaoperativocongestindememoriavirtualpor
demandadepginas.Eltamaodelapginaesde1KByelsistemaposee32KBde memoriafsicadisponibleparaprogramasdeusuario.Supongamosqueenuninstante dado,unprogramaqueocupa9pginassecargaparasuejecucin.Adems,eselnico procesoenesemomentoenelsistema.Elsistemaleasignacuatromarcosdememoria. Inicialmentesecarganlaspginas0,4,5y8enlosmarcos9,3,8y5respectivamente. a) Dibujarlatabladepginasparaestasituacininicial.Culesladireccinfsica paraladireccinvirtual(2,50)dadaenelformato(pgina,desplazamiento)?Y para la direccin (5,20)? Explica claramente el proceso de traduccin de direcciones.
Tabladepginas
0 1 2 3 4 5 6 7 8
MarcoFsico 9 3 8 5
Bitdevalidez v i i i v v i i v
Direcci nvirtual(2,50): Pginalgica2=> Deentradaloprimero quesecomprobaraessitenemos un registroenlaTLBparadichapginalgica,perodadoqueenelenunciadonose nosindicanadaacercadelaTLB,ignoraremosestepaso.Accedemosalatablade pginas(entradadelapginalgica2)yvemosqueelbitdevalidezindicaque dicha pgina lgica no est cargada en memoria. Por tanto se generar una
Nombre
excepcindefallodepginaqueconllevar traerlapginadesdediscoamemoria. Amododeejemplo,supongamosqueelSOdecideubicarlaenelmarco5.Apartir deesemomentoelprocesodetraduccincontinuaradelasiguienteforma: Direccinfsicadelmarco5:51024=5120 Desplazamiento:50 Direcci nfsica:5120+50=5170 Direcci nvirtual(5,20): Pginalgica5=>Latabladepginasindicaqueest cargadaenmemoriaenel marco8. Direccinfsicadelmarco8:81024=8192 Desplazamiento:20 Direcci nfsica:8192+20=8212
Nombre
lasprimeraspginasdecdigoydatos.Elcargadortambinpuedehabersebasado enanterioresejecucionesdelmismoprograma.
5 (2 puntos) ParqueJursicoconsisteenunmuseoyunparqueparahacerrutas
safari.Haympasajerosyncochesmonoplazas.Lospasajerosdeambulanporelmuseo duranteunratoyluegohacencolaparadarunpaseoencocheporelsafari.Cuandohay un coche disponible se monta en l un pasajero y el coche realiza un recorrido programadohastallegarnuevamentealpuntoderecogidadondeelpasajerodebebajar. Silosnvehculosestntodosdepaseoporelparqueconunpasajeroabordo,entonces elpasajeroquequiereuncocheseespera;siuncocheestlistoparacargarperonohay pasajerosesperando,entonceselcocheseespera.Usesemforosparasincronizarlosm procesospasajeroconlosnprocesoscoche.
Primero mostraremos una solucin simple que slo funciona bajo ciertas restricciones. (nota: para superar esta pregunta, basta con aproximarse a esta primeraversin). Variablesglobales
Semaphorecoche_libre(0); Semaphorepasajero_a_bordo(0); Semaphorefinal_de_recorrido(0);
Procesopasajero
voidPasajero(){ ...DEAMBULAPORELMUSEO... //Esperaporuncochelibre P(coche_libre); //Sesubealcoche V(pasajero_a_bordo); //disfrutadelpaseo //Elcochelenotificaqueseacabelpaseo P(final_de_recorrido); }
Procesocoche
voidCoche(){ //haceelrecorridounayotravez
Nombre
loop{ //Indicaqueestlibre V(coche_libre); //Esperaporunpasajero P(pasajero_a_bordo); ...HACEELRECORRIDO... //Terminaelpaseoyseloindicaalpasajero V(final_de_recorrido); } }
Como decamos, esta solucin slofuncionacorrectamente si los semforos son FIFOyloscochesterminanelrecorridoenelmismoordenenelquelocomenzaron. Si un coche A arranca antes que B, pero B finaliza antes el recorrido, la V(final_de_recorrido) puede ser recibidapor elpasajero que est montado en el cocheA,locualeserrneo.Sisequiereevitarestosproblemas,hayqueelaborar unasolucinmscompleja. Acontinuacinsemuestraotroalgoritmoquefuncionacorrectamenteinclusosilos cochesnosiguenunordenperfecto,yqueesindependientedelaimplementacin delossemforos.Estealgoritmosebasaenquelospasajerosyloscochestienen identificadores nicos.Cadapasajerosabeculeselidentificadordesucoche,y viceversa.Dosvectoresdesemforosseempleanparaeldilogopasajerococheal iniciaryterminarelrecorrido. Variablesglobales
//semforoparaindicaralospasajerosquehayalgncochelibre Semforocoche_libre=0; //identificadordelprimercochelibredelafila intprimer_coche; //Cerrojoparaaccederdeformacontroladaa"primer_coche" Semaphorecerrojo_primer_coche=1; //pasajero[i]indicaelpasajeroqueestmontado //sobreelcoche"i" intpasajero[N]; //semforosparasealizaraloscoches //quepuedenempezarelrecorrido
Nombre
Semaphorepasajero_montado[N]={todosacero}; //semforosparasealizaralospasajeros //quesurecorridotermin Semaphorefin_de_trayecto[M]={todosacero};
Procesopasajero
voidpasajero(intID){ //identificadordelcochequeletocaaestepasajero intmi_coche; ...DEAMBULAPORELMUSEO... //esperaporuncochelibre P(coche_libre); //recogeelidentificadordelprimercochelibre mi_coche=primer_coche; //permitealsiguientecocheindicarqueestlibre V(cerrojo_primer_coche); //informaalcochedequeyasehamontado pasajero[mi_coche]=ID; V(pasajero_montado[mi_coche]); //disfrutadelpaseo //esperaaqueelcochefinaliceelrecorrido P(fin_del_trayecto[ID]); }
Procesocoche
voidcoche(intID){ intmi_pasajero; //haceelrecorridounayotravez loop{ //seregistracomoelprimercochelibredelafila P(cerrojo_primer_coche); primer_coche=ID; //avisaalospasajeros
Nombre
V(coche_libre); //esperaaqueunpasajerosemonteyleavise P(pasajero_montado[ID]); mi_pasajero=pasajero[ID]; ...HACEELRECORRIDO... //sealizaalpasajeroqueelrecorridotermin V(fin_del_trayecto[mi_pasajero]); } }
6(2puntos)Lapolticaderifaesunatcnicaaleatoriadeplanificacindeprocesos.
Cadaprocesodisponedeunacantidaddeboletosnumerados.Cuandounproceso entraenCPU,seleotorgaunarodajadetiempo.Cuandoexpiraestarodaja,ocuandoel procesoabandonavoluntariamentelaCPU,elplanificadorextraeunodelosnmerosde un bombo virtual y escoge para la CPU al proceso que tiene ese nmero. Cada procesotienealmenosunboletoyelsorteonopuedequedardesierto.Porejemplo:el procesoAtienelosnmeros1y2.ElprocesoBtieneelnmero3.Elplanificador escogeunnmeroalazarentre1y3.Sisaleel1yel2,entraelprocesoA.Sisaleel3, entraelB. a) Quefectotienedarlemsomenosboletosaunproceso?
Cuantosmsboletostieneunproceso,msprobabilidadtienedeserescogidopor elplanificadoryportantogozar,enpromedio,demstiempodeCPU.
b) Culeselcomportamientodelsistemasitodoslosprocesostienenexactamente unboleto?
Si todos los procesos tienen igual cantidad de boletos, la planificacin es una especiedeRoundRobinenelquecadavezquehayuncambiodecontexto,entra unprocesoalazar.
c) Estatcnicapuedeprovocarinanicin?
Latcnicapuedeenteoraprovocarinanicin,yaquenohayunagarantaabsoluta dequeunprocesoseaescogidoparaentrarenCPU(enteora,susboletospueden nosalirnuncaelegidos).Noobstante,sielsorteosigueunadistribucinaleatoria uniforme,laprobabilidaddequecualquierprocesoacabeentrandoenlaCPUtiende al100%.
d) Sepuedeconstruirunalgoritmonoaleatorioqueproduzcalosmismosefectos queelaquplanteado?
Nombre
Algoparecidoaestemtodosepodraconseguirhaciendounacoladepreparados en la que cada proceso apareciera tantas veces como boletos tiene en este algoritmo.Tambinhaciendoquecuandounprocesoterminesurodajadetiempo, enlugardeingresarenelfinaldelacoladepreparados,seinsertaraenunpunto intermedio, ms cercano al principio de la cola cuantos ms boletos tuviera el proceso.