Resumen del libro Sistemas Operativos Stallings, 4ta edicin, espaol
Por Vera Caruso (verita@ardacomar!
Versin "# al "$ de diciembre de %""& 'ntroduccin ( Conceptos Principales & )ogros principales & Procesos & *estin de memoria & Seguridad + proteccin de la in,ormacin 4 Plani,icacin + gestin de recursos 4 -structura del sistema 4 Caracter.sticas de los sisop modernos 4 Procesos 4 Creacin de un proceso 4 -stados de un proceso 4 -structuras de control del so / 0ablas de memoria / 0ablas de Procesos / 'magen de un proceso / Cambios de modo + estado 1 2ormas de e3ecucin del so 1 4ilos, S5P + micro6ernels 1 7ene,icios de uso de 8ilos 9 Operaciones b:sicas de los 8ilos 9 4ilos a nivel usuario (;)0! + a nivel 6ernel (<)0! = 5ultiprocesamiento = >iseo de un so multiprocesador $ 5icro6ernels $ >iseo del micro6ernel #" Concurrencia? e@clusin mutua + sincroniAacin #" -@clusin mutua #" Soluciones por so,tBare ## Clgoritmo de >e66er ## Clgoritmo de Peterson ## Soluciones por 8ardBare ## 'n8abilitacin de interrupciones ## 'nstrucciones especiales de m:Duina #% Sem:,oros #% Problema del productor consumidor #% Problema de la barber.a #& 5onitores #& 5onitores con seales #& 5onitores con noti,icacin + di,usin #& Paso de mensa3es #& -@clusin 5utua #4 Problema de los lectores escritores #4 Concurrencia? deadloc6 + starvation #/ 'nterbloDueo (deadloc6! #/ Condiciones de interbloDueo #/ -n,oDues de resolucin del problema #/ Prevencin del deadloc6 #/ Prediccin del deadloc6 #1 Eegativa de iniciacin de procesos #1 Clgoritmo del 7anDuero? Eegativa de asignacin de recursos #1 >eteccin del deadloc6 #1 Clgoritmo de deteccin #9 Recuperacin de un deadloc6 #9 -strategia integrada de deadloc6 #9 >eadloc6 de un solo procesoF (p:g 49# Stallings! #9 Problema de la cena de los ,ilso,os #9 *estin de 5emoria #= Particin de la memoria #= 7udd+ S+stem (sistema de colegas! #$ Paginacin (simple! #$ Segmentacin (simple! %" 5emoria Virtual %" -structura de las tablas de p:ginas %" 7u,,er de traduccin adelantada (0)7! %# >ecisiones acerca del tamao de p:gina? %# 0ablas de segmentos en memoria virtual %# Paginacin + segmentacin combinadas %% Pol.ticas de un SO al respecto de memoria virtual %% Pol.ticas de reemplaAo de p:ginas %% Clgoritmos b:sicos %& Plani,icador de monoprocesadores %4 Plani,icacin de multiprocesadores %/ Plani,icacin en tiempo real %1 Caracter.sticas de un SO en tiempo real %1 *estin de -ntrada Salida %9 -structura lgica de las ,unciones de -(S %9 Clmacenamiento intermedio de la -(S %= Plani,icacin de discos %= 2uncionamiento del disco %= Clgoritmos de plani,icacin de disco %$ RC'> &" Cac8G de disco &" *estin de arc8ivos &# CrDuitectura de un sistema de arc8ivos &# OrganiAacin de arc8ivos (estructura lgica de los registros! &# 'Hnodos &% Procesamiento distribuido && Clases de aplicaciones cliente(servidor &4 Consistencia de la cac8e de arc8ivos &4 Paso distribuido de mensa3es &4 RPC? llamadas a procedimiento remoto &/ Cgrupaciones &/ 5Gtodos de agrupacin &/ *estin distribuida de procesos &1 5otivos de la migracin de procesos &1 Problemas de concurrencia (determinar el estado global! &9 Clgoritmo de instant:neas distribuidas &9 -@clusin mutua distribuida &9 Clgoritmo distribuido para e@clusin mutua &9 'nterbloDueo distribuido &= Prevencin del deadloc6 &= Prediccin &= >eteccin del deadloc6 &= Seguridad &$ Introduccin / Conceptos Principales Sistema operativo - programa Due controla la e3ecucin de los programas de aplicacin + Due actIa como inter,aA entre las aplicaciones de usuario + el 8ardBare del eDuipo - Ob3etivos? comodidad, e,iciencia, capacidad de evolucin O,rece servicios de? - Creacin de programas, debugger - -3ecucin de programas - Cdministrador de recursos? Ccceso a e(s, Ccceso controlado a arc8ivos, Ccceso al sistema (sistema compartido! - >eteccin + respuesta a errores - Contabilidad (accountabilt+! 2acilidad de evolucin, ,rente a? - CctualiAaciones de 8ardBare - Euevos servicios de los usuarios - Correcciones, patc8es 4istoria ( -volucin - Proceso en serie - Proceso por lotes - Por lotes con multiprogramacin - Sistemas >e tiempo compartido Logros principales Procesos - 2unciones principales del SO (6ernel! o Creacin + terminacin de procesos o Plani,icacin + e@pedicinm de procesos o Cambio de procesos o SincroniAacin + soporte a la comunicacin entre proc - Problemas principales (Due surg.an antes! o SincroniAacin incorrecta o 2allos de e@lcusin mutua o 2uncionamiento no determinista o 'nterbloDueo (deadloc6! Gestin de memoria - 2unciones principales del SO (6ernel! o Csignacin de espacio de direcciones a los procesos o 'ntercambio o *estin de p:ginas + segmentos - Responsabilidades principales o Cislamiento del proceso o Csignacin + gestin autom:ticas o Soporte para la programacin modular o Proteccin + control deacceso o Clmacenamiento a largo plaAo - 5emoria Virtual Seguridad y proteccin de la informacin o Control de acceso o Control del ,lu3o de in,ormacin o Certi,icacin Planificacin y gestin de recursos 2unciones principales del SO (6ernel! en la gestin de -(S - *estin de bu,,ers - Csignacin de canales de e(s + dispositivos a los procesos - -Duidad - Sensibilidades di,erenciales - -,iciencia, minimiAar el tiempo de respuesta, ma@imiAar productividad Otras ,unciones de soporte? - 0ratamiento de interrupciones - Contabilidad - supervisin Estructura del sistema - So,tBare modular, con inter,aces entre s. - Sistema operativo por niveles? ##& (#4 8ardBareJ /9 sisopJ =#& trato con ob3etos e@ternos, e(s, red! Caractersticas de los sisop modernos - CrDuitectura micro6ernel (vs gran 6ernel monol.tico! - 5ulti8ilos - 5ultiproceso simGtrico (S5P! o K rendimiento o disponibilidad o crecimiento incremental o escalabilidad - Sisop distribuidos - >iseo orientado a ob3etos Procesos Creacin de un proceso - Euevo traba3o por lotes - Cone@in interactiva - Creado por el so para dar un servicio - *enerado por un proceso e@istente Estados de un proceso 5odelo >escripcin -stados -@plicacin 5odelo de % estados Con una sola cola, puede seleccionarse uno Due estG bloDuedo esperando e(s -3ecutando Eo e3ecutando Cl crearse Cola de procesos en espera 5odelo >escripcin -stados -@plicacin 5odelo de / estados Se divide la No ejecucin en % estados? )isto + 7loDueado Euevo Eo est: cargado en memoria, (admitir!? )isto )isto Para e3ecutarse (e@pedir!? -3ec 0erminar (muere su padre! -3ecucin Sale por Duantum? )isto, sale por suceso? bloDueado, sale por terminado 7loDueado Ocurre suceso? listo 5uere su padre? terminado 0erminado 5odelo de 9 estados ;sa memoria virtual, se agrega un estado Suspendido, Due se combina con )isto + 7loDueado Euevo Se puede admitir como )isto o )isto,Susp )isto C )isto,Susp (no8a+ mem! o -3ec )isto, Suspendido -n mem secund, pero disponible 7loDueado Puede pasar a 7loD,Susp para liberar mem 7loDueado, Suspendido -st: en mem secund esperando un suceso Puede pasar a )isto,Susp -3ecucin )isto (Duantum!, 7loDueado, a )isto,Susp 0erminado Observaciones? 5odelo de / estados? sin memoria virtual, todos los procesos de todas las colas tienen Due estar en memoria principal, surge entonces el intercambio + un nuevo estado, Suspendido, Due se combina con los demas 5odelo 9 estados? Cuando se crea un nuevo proceso,puede aadirse a la cola de )istos o )istos,Susp RaAones para la suspensin? - 'ntercambio? se necesita liberar memoria principal - Solicitud de un usuario interactivo? se solicita la suspension - 0emporiAacin - Solicitud del proceso padre - Otra raAn? sospec8a Due es causante de un problema Estructuras de control del so LuG deben contener las tablas Tablas de memoria - Csignacin de memoria principal a procesos - Csignacin de memoria secundaria a procesos - Ctributos de proteccin de bloDues de mem principal o virtual Tablas de Procesos )a imagen del proceso puede guardarse en mem secundaria, pero al menos una parte tiene Due estar en mem principal Imagen de un proceso - >atos del usuario - Programa del usuario - Pila del sistema ()'2O! para almacenar par:metros + direcciones de retorno a llamadas a procedimientos - PC7 (7loDue de control del proceso! o P'> del proceso o 'n,ormacin del estado del procesador (registros! o 'n,ormacin de control del proceso (estado, memoria, permisos, etc! 5odos de e3ecucin - 5odo usuario - 5odo de sistema, de control o modo 6ernel Creacin de un nuevo proceso #! Csignar un pid %! Csignar espacio para el proceso, imagen &! 'nicialiAar el PC7 4! -stablecer los enlaces apropiados, colas de plani,icacin Cambios de proceso - 'nterrupcin de relo3, Duantum - 'nterrupcin de -(S - Page ,ault, ,allo de memoria - Cepo(0rap, error ,atal o no, asociado con la e3ecucin del programa - )lamada del supervisor, el proceso invoca una operacin Due se debe e3ecutar en otro modo, 8a+ un cambio de estado a 7loDueado Cambios de modo y estado Cambio Descripcin cciones Cambio de modo Cambio de modo usuario a modo nucleo para e3ecutar alguna operacin privilegiada Salvar conte@to de programa Csignar PC a direcc de comienAo de programa Due mane3a interrupcion Cambiar modo usuarioHM nucleo Cambio de estado Para cambiar de un proceso a otro, un cambio de proceso (process sBitc8! implica un cambio de estado Salvar conte@to CctualiAar el estado de la PC7 del proceso 5over la pcb a la cola adecuada (listos, bloD,! Seleccionar otro proceso CctualiAar el estado del pcb del proceso elegido CctualiAar las estruct de datos en memoria Puede producirse un cambio de modo sin cambiar el estado del proceso Due est: actualmente en e3ecucin -l cambio de proceso supone un cambio de estado, e implica un es,uerAo ma+or Due un cambio de modo !ormas de e"ecucin del so - -3ecutar el 6ernel ,uera de cualDuier proceso -l so tiene su propia regin de memoria + su propia pila paracontrolar las llamadas + retornos de procedimiento -l concepto de proceso se aplica slo a los programas del usuario - -3ecutar dentro de los procesos de usuario Cuando 8a+ interrupcin se salva conte@to, 8a+ cambio de modo 8acia una rutina del so, aunDue la e3ecucin continIa dentro del proceso de usuario en curso, no 8a+ un cambio de proceso - Sistema operativo basado en procesos -l sB Due ,orma parte del 6ernel e3ecuta en modo 6ernel, + las ,unciones importantes se organiAan en procesos separados #ilos$ S%P y micro&ernels Concepto de proceso - Programa e3ecutable - >atos asociados al programa - Conte@to de e3ecucin, estado - ;nidad de propiedad de los recursos - ;nidad de e@pedicin >e cada 8ilo se conoce - -l estado de e3ecucin - -l conte@to del procesador - ;na pila de e3ecucin - Clmacenamiento est:tico para variables locales - Ccceso a la memoria + recursos del proceso, compartidos con todos los 8ilos del mismo -ntorno multi8ilo - Capacidad del so para mantener varios 8ilos de e3ecucin dentro de un mismo proceso - Continua 8abiendo una sola PC7, + un espacio de direcciones del usuario asociados al proceso, pero a8ora 8a+ pilas separadas para cada 8ilo, as. como distintos bloDues de control para cada uno 'eneficios de uso de (ilos Se tarda menos en crear un 8ilo Due un proceso Se tarda menos en terminar un 8ilo Due un proceso Se tarda menos en cambiar entre dos 8ilos de un mismo proceso Se aumenta la e,iciencia de la comunicacin entre programas -3emplos de uso de 8ilos (sistemas monousuario + multiproceso! traba3o interactivo + segundo plano - Procesamiento as.ncrono - Cceleracin de la e3ecucin - -structuracin modular de los programas -stados de un 8ilo - -3ecucin, )isto + 7loDueado - Eo tiene sentido 8ablar de suspensin, porDue si un proceso est: e@pulsado de la mem principal, todos sus 8ilos tambiGn lo est:nF (comparten el mismo espacio de direcciones del proceso! )peraciones b*sicas de los (ilos - Creacin o 0iene su propio cone@to, pasa a la cola de listos - 7loDueo o Cuando necesita esperar por un suceso, se bloDueda, a8ora el procesador pasa a e3ecutar otro 8ilo )isto o Solo para <)0 ? -l bloDueo de un 8ilo EO supone el bloDueo de todo el proceso sino se pierde la ,uncionalidad del uso de 8ilos, empieAa a e3ecutar algun otro de la cola de )istos - >esbloDueo o Cuando retorna el suceso por lo Due el 8ilo se bloDue, pasa a la cola de )istos - 0erminacin #ilos a ni+el usuario ,-LT. y a ni+el &ernel ,/LT. Caracterstica -LT /LT *estin de 8ilos )o realiAa la aplicacin (biblioteca de 8ilos!, el 6ernel no es conciente de Due e@isten 8ilos )o 8ace el nIcleo -stados 4a+ un unico estado (segIn el nucleo!, el del proceso completo Cuando se bloDuea el proceso, alguno de los 8ilos puede pensar Due sigue en estado -3ecutandoF Cuando se reinicie el proceso, sigue en la e3ecucion Due estaba Se mantienen los estados del proceso + de todos los 8ilos 'ntercambio de 8ilos Eo necesita privilegios de modo 6ernel, se evita la sobrecarga de % cambios de modo (usuarioH 6ernel + 6ernelHusuario! -l paso de un 8ilo a otro del mismo proceso necesita un cambio de modo (a 6ernel! Plani,icacin Se puede 8acer una plani,icacin espec.,ica Podrian e3ecutar realmente en paralelo, se complica un poco Portabilidad Pueden e3ecutar en cualDuier so >epende de la capacidad del SO de mane3ar <)0 7loDueos Cuando se bloDuea un 8ilo, se bloDuea todo el proceso Solucin? 3ac6eting? 8acer Due la llamada bloDueadora no lo sea Se bloDuea solo el 8ilo -3ecucin Slo puede e3ecutar en un unico procesador Pueden plani,icarse mIltiples 8ilos en mIltiples procesadores 5ono8ilo - (#?#! ;E proceso ;E 8ilo N;ni@ clasicosO Cada 8ilo de e3ecucin es un Inico proceso con sus propios recursos + espacio de direcciones - (5?#! 5;C4OS procesos, ;E 8ilo cada uno NPinE0, )inu@O ;n proceso de,ine un espacio de direcciones + unos recursos din:micos propios Pueden crearse varios 8ilos Due e3ecuten en el proceso 5ulti8ilo - (#?5! ;E proceso, 5;C4OS 8ilos ;n 8ilo puede emigrar del entorno de un proceso a otro, esto permite Due el 8ilo pueda migrar entre sistemas distintos - (5?E! 5;C4OS procesos, 5;C4OS 8ilos combina #?m con m?# %ultiprocesamiento Procesamiento en paralelo 'nstruccin ( >atos >atos simple >atos mIltiples 'nstruccin simple S'S> S'5> 'nstruccin mIltiple 5'S> (no implementada! 5'5> Otra clasi,icacin es como se asignan los procesos a procesadores S'5> 5'5> 5emoria compartida (,uertemente acoplados! 5aestro ( esclavo -l 6ernel siempre est: en un procesador ;n ,allo puede 8acer caer a todo el sistema 5ultiproceso simGtrico (S5P! -l 6ernel puede e3ecutar en cualDuier procesador -l so es mas comple3o pero mas estable 5emoria distribuida (debilmente acoplados! Cgrupaciones (clusters! >iseo comple3o del so Dise0o de un so multiprocesador ;n SO S5P gestiona el procesador + el resto de los recursos para Due el usuario lo vea como un monoprocesador multiprogramado Puntos clave? - Procesos o 8ilos concurrentes? se debe permitir Due varios procesadores e3ecuten el mismo cdigo del nucleo al mismo tiempo Se deben gestionar las tablas para evitar el interbloDueo + las operaciones no v:lidas - Plani,icacin? se deben evitar los con,lictos, porDue la plani,icacin se puede realiAar en cualDuier procesador - SincroniAacin? mediante la sincro se impone la e@clusin mutua + un orden de sucesos - *estin de memoria? e@plotar la capacidad de paralelismo de 8ardBare, coordinar los mecanismos de paginacin para garantiAar consistencia - 2iabilidad + tolerancia a ,allos %icro&ernels -volucin? - SO monol.ticos - SO por capas? las ,unciones se organiAan 3er:rDuicamente, slo se producen interacciones entre capas ad+acentes )a ma+or.a de las capas se e3ecutan en modo 6ernel - 5icro6ernel Caracter.sticas - Slo las ,unciones absolutamente escenciales permanecen en el nIcleo, las menos escenciales se constru+en sobre el micro6ernel + se e3ecutan en modo usuario - 0iende a reemplaAar la arDuitectura tradicional (en capas verticales! por una 8oriAontal )os componentes se implementan como procesos servidores e interactIan con los otros a travGs de mensa3es distribuidos por el micro6ernel Venta3as - ;ni,ormidad de inter,aces - -@tensibilidad - 2le@ibilidad - Portabilidad - 2iabilidad - Soporte a sistemas distribuidos - Soporte para so OO >esventa3a? rendimiento Consume m:s tiempo construir + enviar un mensa3e Due e,ecutar una llamada al sistema CunDue puede solucionarse agregando ,uncionalidades al micro6ernel, se le aadir.a rigideA al diseo Otro en,oDue? reducir aIn m:s el tamao, para eliminar la penaliAacin de rendimiento e incrementar la ,le@ + ,iabilidad Dise0o del micro&ernel ;n micro6 debe incluir las ,unciones Due dependen directamnete del 8ardBare + cu+a ,uncionalidad es necesaria para dar soporte a las aplicaciones + servidores Due e3ecutan en modo nucleo - *estin de memoria de ba3o nivel o Control del espacio de direcciones, traduccin de p:ginas + direcc virtuales )a paginacin + la proteccin podr.an implementarse a,uera - Comunicacin entre procesos o Paso de mensa3es >ebe mane3ar puertos (cola de mensa3es destinadas a un proceso en particular! + una lista de capacidades de acceso (para ver DuG procesos tienen permiso para comiunicarse con Gl! - *estin de interrupciones + e(s o Podr.an gestionarse las int de 8B como mensa3es, e incluir los puertos de e(s en espacios de direcciones >ebe poder reconocer las int pero no gestionarlas, sino Due debe enviar un mensa3e al proceso asociado Concurrencia1 e2clusin mutua y sincroni3acin - Sistema monoprocesador multiprogramado? el intercalamiento da la apariencia de e3ecucin simult:nea - CunDue no 8a+ paralelismo real + e@iste cierta sobrecarga, 8a+ bene,icios en la e3ecucin intercalada (e,iciencia + estructuracin de los programas! 2ormas de interaccin entre procesos Grado de conocimiento 4elacin Influencia entre s Posibles problemas 'ndependientes Competencia )os tiempos de e3ecucin se pueden ver a,ectados -@clusin mutua 'nterbloDueo (renovables! 'nanicin 'ndirecto Cooperacin por compartimiento >irecto, 8a+ comunicacin Cooperacin por comunicacin -l resultado puede depender de la in,ormacin obtenida de los otros )os tiempos de e3ecucin se pueden ver a,ectados -@clusin mutua 'nterbloDueo (renovables! 'nanicin Co8erencia de datos 'nterbloDueo (consumibles! 'nanicin Problemas de control a resolver - -@clusin mutua - SincroniAacin + co8erencia de datos - 'nterbloDueo (recursos renovables o no renovables! - 'nanicin E2clusin mutua -l cumplimiento de la e@clusin mutua puede provocar? deadloc6 e inanicin ReDuisitos para la e@clusin mutua - Slo un programa puede acceder a su seccin cr.tica en un momento dado - Cuando el proceso accede a su seccin cr.tica, no debe inter,erir con los otros procesos - ;n proceso no puede demorarse inde,inidamente en su seccin cr.tica (8a+ Due evitar la inanicin + el interbloDueo! - Cuando no 8a+ ningIn proceso en su seccin cr.tica, cualDuier proceso Due Duiera entrar en la su+a debe poder 8acerlo sin demora Soluciones por soft5are Algoritmo de Dekker Soluciones !uncionamiento Consecuencias #er intento # variable global compartida turno Q nro proceso accede cuando esta en su numero Se deben alternar en el uso, el ritmo de e3ecucin se da por el m:s lento 7us+ Baiting Si 8a+ una ,alla, el otro se bloDuea permanentemente %do intento Se puede analiAar el sealNiO del otro, pero no modi,icarlo Cuando la seal del otro est: en ,also, entra este, cambia su seal propia a true Si el otro ,alla, no 8a+ bloDueo Pero puede no garanti3ar e2clusin mutua &er intento 2i3a su estado sin conocer el del otro Puede provocar un interbloDueo, cada proceso puede insistir en su derec8o de entrar en la secc cr.tica, no 8a+ vuelta atr:s 4to intento Cctivan su seal para indicar Due Duieren ingresar en la secc cr.tica, pero deben poder cederla a otro proceso Puede provocar li+eloc&, cortes.a mutua, ninguno entra (salvo Due cambie el ritmo de e3ecucin, + se libera! Solucin correcta Var 0urno indica Duien tiene prioridad para e@igir su ingreso en secc cr.tica SealNiO para indicar intencin de ingresar Pongo sealNiOQ#, miro sealNnO para ver si 8a+ alguien mas con #, si HM analiAo turno, no, entro Algoritmo de Peterson Cl igual Due el Clg de >e66er? Var global sealNnO indica la posicin de cada proceso ,rente a la e@clusin mutua Var turno resuelve los con,lictos de simultaneidad 5ain(! SealN"OQ"J sealN#OQ"J Proceso#(! P8ile(#! R sealN#OQ#J turno Q "J B8ile (sealN"O SS turno QQ "! (T EO puedo entrar, tengo Due esperarF T( seccinUcritica(! sealN#OQ"J V idem para el Proceso" (pero el B8ile analiAa el del P#! Soluciones por (ard5are Inhabilitacin de interrupciones - Slo para monoprocesadores - Eo 8a+ superposicin de los procesos concurrentes, sino slo intercalacin - Para garantiAar e@clusin mutua, alcanAa con impedir Due un proceso sea interrumpido, se pueden poner primitivas Due inabiliten(8abiliten las int + entre medio, poner el acceso a la seccin cr.tica Instrucciones especiales de mquina - Para con,iguraciones multiprocesador, con acceso comIn a la memoria - )os procesadores ,uncionan independiente, no es posible implementar mecanismos para traba3ar sobre las int - -s aplicable a sistemas con memoria compartida (monoprocesador + multiprocesador! - ;sa bus+ Baiting, puede producir inanicin e interbloDueo 'nstruccin Comparar + 2i3ar (0est S Set! - -s una atmica - Var compartida cerro3o Slo puede entrar aDuel proceso encuentre cerro3oQ" - -l resto, Duedan en espera activa (bus+ Baiting! - Cuando un proceso abandona la seccin cr.tica, vuelve a poner cerro3oQ" 'nstruccin 'ntercambiar - Cerro3o se inicia Q" Cada proceso tiene var local claveQ# - Puede entrar el primero Due encuentre cerro3oQ", + la cambia a cerro3oQ# (as. e@clu+e Due los otros ingresen! - Cuando un proceso abandona la seccin cr.tica, vuelve a poner cerro3oQ" Sem*foros >os o m:s procesos cooperan mediante seales (sem:,oros! Pueden verse obligados a detener su e3ecucin 8asta recibir una seal espec.,ica Primitivas atmicas para operar sem:,oros 2uncionamiento - Iniciali3acin? sema,oroQnJ valor nM", con la cantidad de recursos de cierto tipo - 6ait? sema,oroHHJ si valor W ", el proceso Due e3ecuta Bait se bloDuea - Signal? sema,oroKKJ si valorW", se debloDuea un proceso bloDueado por un Bait, si valor M", se agrega un recurso a la lista de disponibles 5ientras los procesos est:n bloDueados, esperando el acceso, se Duedan en una cola Sem:,oros robustos? Si se especi,ica el orden (e3 2'2O! Sem:,oros dGbiles? no se indica el orden para e@traer los elementos Caracter.sticas? - *arantiAan e@clusin mutua - Si es robusto, garantiAa Due no se produce inanicin (los dGbiles s. pueden producirla! - Si se inicia con la cantidad de recursos disponibles, entonces se puede interpretar Due? o Cantidad MQ", es el nImero de procesos Due pueden e3ecutar un Bait sin bloDuearse o Cantidad W ", en valor absoluto es la cantidad de procesos bloDueados en la cola - >esventa3a? las primitivas (Bait, signal! tienen Due estar desperdigadas por todo el programa, 8aciendo di,.cil la deteccin de algIn problema de sincroniAacin Problema del productor 7 consumidor >e,inicin del problema? - E productores generan datos + los guardan en un bu,,er - # consumidor los retira de a uno - no se deben superponer operaciones sobre el bu,,er - 7loDueos? del productor, si inserta en bu,,er llenoJ del consumidor si Duiere eliminar en el bu,,er vac.o Problema de la barbera >e,inicin del problema? Se Duiere administrar la capacidad de la tienda(%"!, del so,a(X!, de las sillas(&!, del pago + de coordinar las tareas de serUbarbero o serUca3ero %onitores Son estructuras de un lengua3e de programacin Due o,recen ,uncionalidad eDuivalente a la de los sem:,oros, + Due son m:s ,aciles de controlar (implementado en Yava + como una biblioteca de programas! %onitores con se0ales Caracter.sticas? - -ncapsulamiento? Var de datos locales slo accesible a los procedimientos del monitor - 'ngreso al monitor invocando a uno de sus procedimientos - Slo un proceso e3ecuta por veA, cualDuier otro Due invoDue se bloDuea - >eben incluir alguna ,orma de sincroniAacin (e3 Lue deba esperar a una condicin mientras estG e3ecutando en el monitor, o sea Due se bloDuee 8asta obtener la condicin! ;tiliAa % variables de condicion (diferentes al uso de sema,oros! o CBait(c!, suspende la e3ecucion del proceso Due llama, 8asta Due sur3a la condicion c C8ora el monitor esta disponible para Due otro proceso ingrese o Csignal(c!, reanuda la e3ecucion de algun proceso suspendido esperando por c, si 8a+ varios, elige uno, sino, no 8ace nada Si el proceso Due e3ecuta un csignal no termino, 8acen ,alta dos cambios de proces, uno para suspenderlo + otro para reanudarlo cuando el monitor vuelva a Duedar disponible - )a venta3a ,rente a los sem:,oros es Due todas las ,unciones de sincroniAacin est:n concentradas dentro del monitor, eso 8ace m:s ,acil el control %onitores con notificacin y difusin Caracter.sticas? )a primitiva csignal se reemplaAa con cnoti,+ Cuando un proceso e3ecuta un cnoti,+ (@!, se origina una noti,icacin a la cola de la condicin @, pero el proceso Due da la seal, continIa e3ecut:ndose Cuando el monitor vuelve a estar disponible, se va a e3ecutar el proceso Due encabece la cola de @ (o3oF 4a+ Due volver a c8eDuear la condicion, porDue no se garantiAa Due no ingrese otro antes! Podr.an no reactivarse a la ,uerAa los procesos, utiliAando cbroadcast(@!, de ,orma tal Due los procesos Due e@peran por la condicin, se pongan en estado de )isto Paso de mensa"es Se reDuiere la comunicacin + la sincroniAacin cuando dos procesos interactIan entre s. -ste mecanismo tiene la venta3a de Due puede ser implementado en sistemas distribuidos, en sistemas multiprocesador + en monoprocesador con memoria compartida Primitivas? send + receive Send bloDueante, Receive bloDueante (4ende3 8ou3! )os dos se bloDuean 8asta Due se entrega el mensa3e 2uerte sincroniAacin Send EO bloDueante, Receive bloDueante Se bloDuea slo el receptor -3 Proceso servidor Permite e@clusin mutua Einguna bloDueante Einguno espera >ireccionamiento - >irecto ? el send indica el proceso destino -n el caso del receive, se podr.a indicar espec.,icamente de Duien se Duiere recibir (e3 Procesos concurrentes + cooperantes! o no indicar (e3 Servidores, cuando no se sabe por adelantado Duien puede pedir! - 'ndirecto ? los mensa3es no se env.an directamente del receptor al emisor sino Due se usa una estructura intermedia de colas temporales (mailbo@! o Permite la relacin #?#, 5?#, #?E, 5?5 ;na relacin 5?# se llama puerto o )a asociacin procesoHbuAn puede ser din:mica o est:tica 2ormato de mensa3es - 5ensa3es de cortos de tamao ,i3o - 5ensa3es de tamao variable Cola? 2'2O E2clusin %utua -n el caso de send no blo9ueante y recei+e blo9ueante, podr.a garantiAarse la e@clusin mutua -l mensa3e en el buAn actIa de testigo (to6en! Due se pasa de un proceso a otro *arantiAa la e@cl mutua en sistemas concurrentes - -l buAn contiene inicialmente un mensa3e, de contenido nulo - -l proceso Due Duiere entrar en la seccin cr.tica, intenta recibir el mensa3e o Si est: vac.o se bloDuea 8asta Due llegue (incluso si m:s de un proceso lo intenta 8acer, se bloDuean! o Si est: lleno, lo recibe e ingresa a la seccin cr.tica (slo uno podr: ingresar al buAn, aunDue 8a+a m:s de uno esperando! - Cuando sale de su seccin cr.tica, env.a un mensa3e al buAn Problema de los lectores 7 escritores >e,inicin del problema? E lectores pueden acceder a leer simult:neamente )os lectores slo leen # escritor puede escribir en cada instante )os escritores slo escriben Si un escritor est: accediendo, ningIn lector puede leerlo Soluciones? - Con sem:,oros? o Prioridad a los lectores o prioridad a los escritores - Paso de mensa3es, con prioridad a los escritores Concurrencia1 deadloc& y star+ation Interblo9ueo ,deadloc&. - -s un bloDueo permanente de un con3unto de procesos Due compiten por los recursos del sistema o bien se comunican unos con otros Se produce cuando cada proceso retiene un recurso + solicita otro - Lue se produAca o no interbloDueo, depende tanto de la din:mica de la e3ecucin como de los detalles de la aplicacin - Puede haber deadlock tanto en recursos reutilizables como en los consumibles! 0ipos de recursos - ReutiliAables ? puede ser utiliAado por el proceso sin Due se agote, cuando se libera est: disponible para ser usado por otro proceso - Consumibles ? puede ser creado (producido! + destruido (consumido! Cuando un proceso ZadDuiere[ un recurso, es destruido -3emplos? interrupciones, seales, mensa3es, bu,,ers de e(s, etc Condiciones de interblo9ueo # -@clusin mutua % Retencin + espera ? un proceso puede retener unos recursos +a asignados mientras espera Due se le asignen otros & Eo apropiacin ? ningun proceso peude ser ,orAado a Due abandone(libere los recursos asignados 4 C.rculo vicioso de espera ? e@iste una cadena cerrada de procesos, cada uno de los cuales retiene al menos un recurso Due necesita el siguiente Enfo9ues de resolucin del problema Principio Es9uema 8enta"as Des+enta"as Prevencin (a travGs de eliminar alguna de las condiciones de deadloc6! Solicitar todos los recursos a la veA Eo se necesita apropiar 2unciona bien con procesos Due 8acen # sola r:,aga de actividad 'ne,iciente Retraso en inicio del proceso Conocimiento de las necesidades de recursos Cpropiacin Conveniente con recursos cu+o estado es salvable ,acilmente -@pulsa m:s de lo necesario Su3eto a reinicios c.clicos Ordenacin de recursos -s viable aplicarlo con c8eDueos durante la compilacin Eo 8ace ,alta procesamiento durante la e3ecucin Poco uso de apropiacin Eo permite solicitudes incrementales de recursos Prediccin lgoritmo del 'an9uero? 7IsDueda de un camino seguro Eo es necesaria apropiacin >ebe conocerse la demanda ,utura de recursos )os procesos pueden bloDuearse por largos per.odos >eteccin Comprobacin peridica del deadloc6 Eunca retrasa el inicio del proceso 2acilita la gestin online PGrdidas por apropiacin Pre+encin del deadloc& )a estrategia de prevencin consiste en e@cluir la posibilidad de interbloDueo 4a+ dos mGtodos b:sicos? indirectos, buscan impedir la aparicin de alguna de las tres condiciones necesarias )os directos consisten en evitar el c.rculo vicioso de espera - -@clusin mutua? no puede anularse - Retencin + espera? podr.a prevenirse e@igiendo Due todos los procesos soliciten todos los recursos Due necesitan a un mismo tiempo + bloDueando el proceso 8asta Due todos los recursos pueden concederse -s ine,iciente - Eo apropiacin o Si a un proceso se le deniega una nueva solicitud de recursos, podr.a oblig:rselo a Due devuelva sus recursos anteriores + Due los solicite de nuevo a todos cuando lo necesite o Si un proceso reDuiere de un recurso retenido por otro proceso, el SO podr.a e@pulsar al segundo proceso + e@igirle Due libere sus recursos -sto ,uncionar.a slo si ambos procesos tienen di,erente prioridad - C.rculo vicioso de espera? puede prevenirse de,iniendo una ordenacin lineal de los recursos Si a un recurso se le asignaron recursos de tipo Ri solo podr: pedir los del tipo siguiente a Ri (por e3 R3! Puede ser ine,iciente, retardando procesos + denegando acceso a recursos Prediccin del deadloc& Se pueden alcanAar las & condiciones necesarias para un deadloc6, pero se realiAan elecciones adecuadas para asegurase Due no se llegue nunca a un interbloDueo Permite entonces ms concurrencia que la pre!encin Se decide din:micamente si la peticin actual de asignacin podr.a generar un deadloc6 Negati!a de iniciacin de procesos Consiste en EO iniciar un proceso si sus demandas pueden llevar a un deadloc6 ;n proceso comenAar: slo si puede servirse con los recursos disponibles la demanda m:@ima de todos los recursos actuales m:s la del nuevo proceso -s poco ptima porDue se asume el peor de los casos (Due todos necesiten el ma@imo a la veA!
Algoritmo del "anquero# Negati!a de asignacin de recursos - -stado ? asignacin actual de recursos a los procesos 2ormado por vectores? Recursos + >isponible - -stado seguro ? en el Due e@iste al menos una secuencia Due no lleva al interbloDueo (o sea Due todos los procesos pueden e3ecutarse 8asta el ,inal! - -stado inseguro ? aDuel Due no es seguro - -sta estrategia no predice el deadloc6 con certeAa, sino Due anticipa la posiblidad de deadloc6 + asegura Due nunca e@ista tal posibilidad Se necesitan? - matriA de demanda, - matriA de asignacin, - vector de recursos, - vector de disponible ReDuiere? - Due cada proceso presente la demanda m:@ima de recursos por anticipadoJ - Due los procesos sean independientes, Due no tengan sincroniAacin - un nImero ,i3o de recursos + procesos - los procesos no pueden ,inaliAar mientras retengan recursos Deteccin del deadloc& -n lugar de imponer restricciones como las tGcnicas de prevencin, la estrategia de deteccin no limita el acceso a los recursos ni restringen a los procesos, se concede todo cuanto sea posible, periodicamente el SO e3ecuta un algoritmo Due permite detectar la condicin de circulo vicioso de espera + decide cmo recuperar la situacin Algoritmo de deteccin ;tiliAa la matriA de Csignacin + el vector >isponible, + una matriA Solicitud (las columnas representan los recursos de cada tipo, + las ,ilas los procesos, cada Li3 representa la cantidad de recursos del tipo 3 solicitados por el proceso i # Se marcan los Due no est:n interbloDueados Cl principio, todos est:n sin marcar % Se marcan todos los Due tienen asignacinQ" & Se buscan los procesos Due estGn sin marcar, + Due la asignacin sea WQal disponible para ese recurso Si no se encuentra, termina 4 Si se encuentra algun proceso, se marca, + se incrementa el disponible con el valor de la asignacin + se repite el paso & -@iste deadloc6 si + solo si 8a+ procesos no marcados al terminar el algoritmo Cada proceso no marcado est: interbloDueado )a estrategia consiste en encontrar un proceso cu+as solicitudes de recursos pueden satis,acerse con los recursos disponibles, se supone Due se conceden, Due termina + libera todo $ecuperacin de un deadlock - ;na veA detectado, se peude seguir alguno de estos en,oDues? - Cbortar todos los interbloDueados - Retroceder cada proceso interbloDueado 8asta algIn punto de control de,inido previamiente + volver a e3ecutar los procesos - Cbortar sucesivamente procesos interbloDueados 8asta Due de3e de 8aber deadloc6 - Cpropiarse de recursos sucesivamente 8asta Due de3e de 8aber deadloc6 %strategia integrada de deadlock - Cgrupar los recursos por clases - ;sar la estrategia de ordenacin lineal para prevenir circulos viciosos de espera e impedir interbloDueos entre clases de recursos Deadloc& de un solo proceso: ,p*g ;<= Stallings. ;n proceso Duiere 8acer una lectura de un bloDue de datos de un disco(cinta Podr.a 8acerse espera activa (se Dueda colgado 8asta Due la operacin de e(s termine! o bien se lo puede suspender -l problema es Due las operaciones de e(s inter,ieren en las decisiones de intercambio del SO Riesgo de deadloc6? si a un proceso Due emite una orden de e(s, Dueda suspendido esperando el resultado, si se lo e@pulsa antes de comenAar la operacin, sale de memoria bloDueado, esperando a Due la operacin termine 5ientras tanto, la operacin de e(s Dueda bloDueada 8asta Due el proceso vuelva a memoria Cmo se evita? la memoria del usuario implicada en la operacin de e(s debe Duedar permanentemente en memoria principal, inmediatamente despuGs de emitir la orden de e(s, aunDue Gsta orden se Duede en cola + no se e3ecute durante un tiempoF Problema de la cena de los filsofos >e,inicin del problema? 4a+ / ,ilso,os Due piensan(!, comen(! 4a+ / tenedores, + / platos en la mesa Cada ,ilso,o usa para comer % tenedores, el de la derec8a + la iADuierda Se debe satis,acer la e@clusin mutua, el interbloDueo + la inanicin Solucin adecuada? usar sem:,oros establecer un m:@imo de 4 ,ilso,os simult:neos sentados, al menos uno se asegurar: de tener los dos tenedores -sto garantiAa Due est: libre de interbloDueos e inanicin Gestin de %emoria >ebe satis,acer los siguientes reDuisitos? - Reubicacin? cuando vuelve a cargarse en memoria un proceso descargado a disco, 8a+ Due reapuntar todas las direcciones - Proteccin? contra Zinter,erencia[ de otros procesos )as re,erencias Due 8ace un proceso deben veri,icarse para evitar cruces - Comparticin? debe admitir la ,le@ibilidad para compartir en memoria principal cierta Aona entre varios procesos - OrganiAacin lgica - OrganiAacin ,.sica Particin de la memoria 0Gcnicas de particin de la memoria 0Gcnica >escripcin Venta3as >esventa3as Particin est:tica Particiones est:ticas al momento de generaracin del sistema 2:cil de implementar, poca sobrecarga al SO 2ragmentacin interna Particin din:mica )os procesos se cargan en una particin del tamao e@acto Eo 8a+ ,ragmentacin interna ;so e,iciente de mem principal 2ragmentacin e@terna Se reDuiere compactacin (uso ine,iciente del procesador! Paginacin simple 5emoria dividida en ,rames de igual tamao Cada proceso se divide en p:ginas, la Iltima tiene ,ragmentacin interna ;n proceso se carga situando las p:ginas en ,rames libres, pueden ser no contiguos Eo 8a+ ,ragmentacin e@terna 4a+ peDuea ,ragmentacin interna Segmentacin simple Proceso dividido en segmentos Se cargan en particiones din:micas Due pueden no ser contiguas Eo 8a+ ,ragmentacin interna 5e3ora utiliAacin memoria Reduce la sobrecarga comparada con part din:mica 5emoria virtual paginada 'dem, paginacin simple, no 8a+ Due cargar todo en memoria principal Eo 8a+ ,ragmentacin e@terna Clto grado de multiprogramacin Sobrecarga por gestin comple3a de memoria 5emoria virtual segmentada 'dem segmetnacin simple, no es necesario cargar todo en memoria principal Eo 8a+ ,ragmentacin interna Clto grado de multiprogramacin Soporte para protecc + comparticin Sobrecarga por gestin comple3a de memoria - 2ragmentacin interna ? se malgasta el espacio interno de una particin, cuando el bloDue dedatos cargado es m:s peDueo Due la particin - 2ragmentacin e@terna ? 8a+ un gran numero de Z8uecos[ peDueos entre particionesJ la memoria e@terna a todas las particiones se ,ragmenta cada veA m:s - Compactacin ? de veA en cuando el SO desplaAa los procesos para Due estGn contiguos, de ,orma Due toda la memoria libre Duede 3unta en un bloDue Clgoritmos de ubicacin - 2irst 2it ? recorre la memoria + asigna el primero disponible Due sea su,icientemente grande -s el m:s sencillo + suele ser uno de los me3ores - 7est 2it ? elige el bloDue de tamao m:s parecido al solicitado -s uno de los peores? porDue al buscar el bloDue m:s parecido, de3a los ,ragmentos m:s peDueos posibles, aumentando la ,ragmentacin e@terna - Ee@t 2it ? recorre la memoria desde el lugar de la Iltima ubicacin + elige el siguiente bloDue disponible Due sea su,icientemente grande )leva a asignaciones ,recuentes al ,inal de la memoria, reDuiere compactacin m:s ,recuente - Porst 2it ? elige el m:s grande, para Due Duede el ma+or espacio disponible 'uddy System ,sistema de colegas. )os bloDues se asignan de tamaos variables Son potencias de % Cl principio, esta toda la memoria en un bloDue Cuando viene una solicitud, se divide la memoria en %, + a su veA uno de esos bloDues puede volver a dividirse, 8asta Due el bloDue m:s c8ico sea menor o igual al tamao Due se busca -l sistema mantiene una lista de los 8uecos Cuando un par est: libre, se los 3unta + se los elimina de la lista + se une en un solo bloDue Paginacin ,simple. - >ireccin lgica ? re,erencia a una posicin de memoria independiente de la asignacin actual de los datos a la memoria, 8a+ Due traducirla a ,.sica antes del acceso - >ireccin relativa ? caso particular de la direccin lgica, la direccin se e@presa como una posicin relativa a un punto conocido (en gral al inicio del programa! - >ireccin ,.sica (o absoluta! ? posicin real en la memoria principal )a memoria se divide en particiones de tamao ,i3o (,rames, marcos! )os procesos se dividen en porciones (p:ginas! Se asigna cada p:gina a un ,rame libre ;n programa puede ocupar m:s de una p:gina, + pueden no estar contiguas %l mecanismo es similar a la particin esttica -sto es transparente para el programador )as direcciones lgicas del programa tendr:n? un nImero de p:gina + un desplaAamiento dentro de la p:gina 4a+ Due 8acer la traduccin de direcciones lgicas a ,.sicas -3emplo de c:lculos de direcciones + cantidad de p:ginas >atos? direcciones de #1 bits 0amao de p:gina #<b C:lculo? #<b Q #"%4 b+tes Q % #" Se necesitan #" bits para el desplaAamiento dentro de la p:ginaJ en consecuencia (#1H#"!Q1 bits para el nImero de p:gina -ntonces, el sistema puede tener como m:@imo, % 1 Q 14 p:ginas de # <b cada una -l SO mantiene? - una lista de marcos libres - ;na tabla de p:ginas para cada proceso Segmentacin ,simple. -s otra ,orma de dividir a un programa? tanto el programa como los datos asociados se dividen en segmentos Eo es necesario Due tengan todos la misma longitud, aunDue tiene una long m:@ima >irecciones? las direcc lgicas tienen dos partes, un nImero de segmento + un desplaAamiento Por tener segmentos de tamaos desiguales, no 8a+ correspondencia simple entre las direcc lgicas + ,.sicas %l mecanismo es similar a una particin dinmica )a di,erencia es Due puede ocupar m:s de una particin + no es necesario Due todas estGn en memoria ni contiguas -s visible para el programador, + se o,rece como venta3a -l SO mantiene? - una lista de bloDues libres en la memoria - ;na tabla de segmentos para cada proceso -3emplo de c:lculos de direcciones + segmentos >atos? direcciones de nKm bits E bits HM nImero de segmento 5 desplaAamiento 0amao m:@imo del segmento? % m
%emoria 8irtual )as re,erencias dentro de un proceso son con direcciones lgicas, Due se traducen, con lo cual no 8a+ problema con la carga ( descarga del proceso Eo es necesario Due las p:ginas o segmentos se encuentren contiguas durante la e3ecucin Eo es necesario Due todas las p:ginas(segmentos estGn cargados en memoria simult:neamente en tiempo de e3ecucin Si el procesador encuentra una direccin lgica Due no est: en memoria, genera una interrupcin Due indica un ,allo de acceso a memoria (page ,ault! 4a+ Due traer a la memoria principal el ,ragmento de proceso Due contiene la direccin lgica Due provoc el ,allo >espuGs de emitir la solicitud de e(s, el SO puede e@pedir otro proceso para Due se e3ecute mientras 8ace la e(s ;na veA Due retorna la e(s de la p:gina, entonces el proceso Dueda en )isto Principio de cercan.a? las re,erencias a los datos + al programa dentro de un proceso tienden a agruparse, por lo tanto es v:lida la suposicin de Due durante per.odos cortos de tiempose necesitar:n slo algunas p:ginas en memoria Estructura de las tablas de p*ginas -n gral 8a+ una tabla de p:ginas por proceso, pero cada proceso puede ocupar una cantidad enorme de memoria virtual Pero la cantidad de memoria dedicada slo a la tabla puede ser inaceptable, en consecuencia en general los SO almacenan las tablas de p:ginas en memoria virtual, en lugar de en memoria real (o sea? puede generar un Page 2ault la bIsDueda en la tablaFFF! Cuando un proceso se e3ecuta al menos una parte de su tabla de p:ginas debe estar en memoria Otra ,orma ser.a tener un esDuema de % niveles para organiAar grandes tablas de p:ginas 4a+ un directorio de p:ginas en el Due cada entrada apunta a una tabla de p:ginas Si el directorio de p:ginas es \ + el tam de p:gina ], entonces un proceso puede estar ,ormado por 8asta \ @ ] Otro en,oDue alternativo es el uso de una tabla de p:ginas invertida (PoBer PC, CS4""! Con este mGtodo la parte del nImero de p:gina de una direccin virtual se traduce a una tabla de 8as8ing )a tabla de 8as8 tiene un punteroa la tabla de p:ginas invertida, Due contiene a su veA las entradas de la tabla de p:ginas 4a+ una tabla de p:ginas invertida por cada p:gina de memoria real en lugar de una por cada p:gina virtual -ntonces, se neceista una parte ,i3a de memoria real para las tablas, sin importar cuantos procesos o p:ginas virtuales se soporten 'uffer de traduccin adelantada ,TL'. Con el modelo e@plicado antes (la tabla de p:ginas en memoria virtual!, cada rere,erencia a una direccin, puede generar dos accesos a la memoria, uno para obtener la entrada a la tabla de p:ginas correspondiente, + otro para encontrar el dato deseado )a ma+oria de los esDuemas resuelven estos dos accesos 8aciendo uso de una cac8G especial para las entradas de p:ginas, llamada 0)7 (translation loo6aside bu,,er!, ,unciona igual Due las otras cac8G (usando correspondencia asociativa!, guardando las entradas de las tabla de p:gina usada m:s recientemente 2uncionamiento? 8a+ una bIsDueda de una direccin lgica, entonces el sistema? # Primero e@amina la 0)7 (si 8a+ acierto, tlb 8it! se obtiene el nImero de ,rame + se completa la direccin real % Si no est: en la 0)7 (,allo, tlb miss!, el procesador emplea el nImero de p:gina como .ndice para buscar en la tabla de p:ginas delproceso + e@aminar la entrada Due corresp de la tabla de p:ginas & Si el bit est: activo, entonces est: enmemoria, + se puede obtener el nImero de ,rame -l procesador actualiAa la 0)7 para incluir esta nueva entrada 4 Si el bit est: inactivo (la p:gina no est: en memoria!, se produce un Page 2ault Decisiones acerca del tama0o de p*gina1 - P:ginas c8icas, implica menos ,ragmentacin interna, ma+or es lacantidad de p:ginas Due se necesitan por proceso, un nImero ma+or dep:ginas por proceso signi,ica Due las tablas de p:ginas ser:n ma+ores - 0ablas m:s grandes, implican Due probablemente no estGn en memoria real, en consecuencia, una Inica re,erencia puede provocar dos ,allos de p:gina (uno para traer la tabla, otro para la p:gina! - Si son p:ginas m:s c8icas, va a 8aber m:s en memoria, + por el principio de cercan.a va a 8aber menos ,allos de p:gina Tablas de segmentos en memoria +irtual - Cada proceso tiene su propia tabla de segmentos - Cada entrada de la tabla de segmentos contiene la direccin de comienAo del segmento correspondiente de la memoria principal + su longitud - Se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento se encuentra en memoria principal, si el bit est: activo,entonces tambiGn indica la direccin de comienAo del segmento + la longitud - 0iene un bit de control para analiAar si el contenido ,ue modi,icado desde Due se carg Paginacin y segmentacin combinadas> - Cuando se combinan ambos mGtodos, el espacio de direcciones de un usuario se divide en varios segmentos segIn el criterio del programador - Cada segmento se vuelve a dividir en varias p:ginas de tamao ,i3o, Due tienen el mismo tamao Due un ,rame de memoria principal - Para el programador una direccin es un segmento K desplaAamiento, para el sistema, es un nImero de p:gina dentro de un segmento + un desplaAamiento dentro de una p:gina 0ablas? Por cada proceso 8a+ una tabla de segmentos + varias tablas de p:ginas, una por cada tabla de segmento del proceso (como si ,ueran dos niveles! Cuando un proceso se e3ecuta, un registro contiene la direccindel comienAo de la tabla de segmentos para ese proceso 7IsDueda de la direccin? dada una direcc virtual, el procesador emplea parte del nImero de segmento como .ndice en la tabla de segmentos del procecso para encontrar la tabla de p:ginas de dic8o segmento ] as. la parte del nImero de la direcc virtual se usar: como .ndice en la tabla de p:ginas para localiAar el nImero de ,rame Due corresponde Proteccin? como cada tabla de segmentos inclu+e la longitud (adem:s de la direcc base! un programa no puede acceder m:s all: de los l.mites del segmento Compartimiento? para conseguir comparticin, es posible Due un segmento se re,erencie desde las tablas de segmentos de m:s de un proceso Polticas de un S) al respecto de memoria +irtual )ectura? - Por demanda - Paginacin previa (o3o, no es intercambioF, cuando un proceso se suspende, todas las p:ginas se vuelan de la memoria principal! ;bicacin? (idem memoria gral! - 7est 2it - 2irst 2it - Ee@t 2it - Sin embargo en paginacin pura o paginacinHsegmentacin la ubicacin carece de importancia Polticas de reempla3o de p*ginas LuG p:gina reemplaAar en la memoria cuando 8a+ Due cargar una nueva p:gina -) ob3etivo es reemplaAar una p:gina Due tenga la menor posibilidad de ser re,erenciada en un ,uturo cercano Csignacin ( Clcance ReemplaAo )ocal ReemplaAo *lobal 2i3a Ero ,i3o de ,rames a un proceso )a p:gina a reemplaAar se elige entre los ,rames asignados al proceso '5POS'7)-F Variable -l nro de ,rames asignados al proceso puede cambiar durante la e3ecucin )a p:gina se elige entre los ,rames asignados en ese momento )a p:gina se elige entre todos los ,rames disponibles Clcance - ReemplaAo local ? elige entre las p:ginas residentes del proceso Due origin el Page 2ault - ReemplaAo global ? todas las p:ginas en memoria son candidatas a ser reemplaAadas Con asignacin variable + alcance local, cmo 8acer para cambiar la asignacin (Due sea variableF! Algoritmo P&& frecuencia de fallos de pgina (Page 2ault 2reDuenc+! Se asocia un bit de uso a la p:gina Se pone en # cuando se accede a la p:gina Cuando 8a+ Page 2ault, el SO anota el tiempo transcurrido desde el Iltimo Page2ault para ese proceso Se compara contra un umbral 2, si es menor, entonces la p:gina se aade al con3unto residente del proceso, sino, se descartan las p:ginas con bit en uso " (+ entonces se reduce el con3unto residenteF! lgoritmos b*sicos lgoritmo Descripcin Caractersticas Optimo Se reemplaAa la p:gina Due tiene Due esperar el ma+or tiempo para ser re,erenciada -s inimplementableF Sirve para comparar los otros algoritmos )R; ReemplaAa aDuella p:gina Due no 8a sido re,erenciada en m:s tiempo Por principio de cercan.a, deber.a ser la de menos posibilidad de ser re,erenciada >i,.cil de implemnetar 2'2O 7u,,er circular (round robin!, reemplaAa la p:gina Due estuvo m:s tiempo en memoria 2:cil de implementar, pero probablemente poco e,ectivo Cloc6 Csocia un bit adicional a cada ,rame (bit de uso! Cl cargarse inicialmente, bitQ" Cuando se re,erencia despues, bitQ# -s un bu,,er circular, pero elige el primer " Due encuentra Si da una vuelta, cambia todos los # por " Cnomal.a de 7elad+? con m:s ,rames, tengo m:s page ,aultsF Pol.ticas de vaciado - Vaciado por demanda ? una p:gina se escribe a memoria secundaria slo cuando 8a sido elegida para reemplaAarse - Vaciado previo ? escribe las p:ginas modi,icadas antes de Due se necesiten sus ,rames, para Due las p:ginas puedan ser escritas por lotes Control de carga (grado de multiprogramacin! -s cr.tico para la e,iciencia del sistema - Si 8a+ pocos procesos? probablemtne 8a+a momentos donde todos est:n bloDueados,entonces se tarda muc8o tiempo en intercambios - Si 8a+ demasiados, el tamao medio del con3unto residente no es adecuado, se producen muc8os ,allos de p:gina HM 8iperpaginacin (tras8ing! Suspensin? cmo elegir los procesos para ba3ar cuando 8a+ Due reducir la multiprogamacin sacar a? - )os procesos con menos prioridad - Procesos con ,allos de p:gina - ^ltimo proceso activado - Proceso con el con3unto residente m:s peDueo - -l proceso ma+or - Procesos con la ma+or ventana de e3ecucin restante Planificador de monoprocesadores 0ipos de plani,icacin - >e largo plaAo? aadir procesos al con3unto de procesos a e3ecutar -s decir, DuG programas son admitidos por el sistema >etermina el nivel de multiprogramacin - >e mediano plaAo? agregar procesos al con3unto de de los Due se encuentran parcialmente en memoria -s parte del proceso de intercambio - >e corto plaAo? decisiones acerca de DuG proceso disponible ser: e3ecutado por el procesador - >e entrada(salida? DuG solicitud de e(s pendiente procesada Pol.ticas de plani,icacin lgoritmo propiacin Seleccin Caractersticas 2C2S Eo 2'2O? -l primero Due llega 5.nima sobrecarga PenaliAa cortos 2avorece a los de cpu + no a los de e(s Eo inanicin Round Robin Preemptive, por Duantum Cola circular -Duitativo Rendimiento pobre de los procesos de e(s, puede solucionarse con VRR (Virtual Round Robin, Due combina colas 2C2S con prioridades! Eo inanicin SPE Eo Primero los m:s cortos PenaliAa largos 4a+ Due conocer de antemano el tiempo de e3ecucin Posible inanicin SR0 Preemptive, en la llegada de un proceso a la cola de )istos Cl Due le ,alta menos para terminar PenaliAa largos Posible inanicin 4RRE 4ig8est Response Ratio Ee@t Preemptive -lige al Due tiene m:@ tiempo esperado de servicio (tiempo consumido K tiempo servicio ( tiempo servicio! -Duitativo, evita la inanicin inclu+endo el tiempo esperando Eo inanicin 2eedbac6 Preemptive, por Duantum PenaliAa a Due estuvieron e3ecutando m:s tiempo 5Iltiples colas con prioridades -l proceso arranca en RL", a medida Due e3cuta va ba3ando Puede ,avorecer a los Due tienen carga de e(s Posible inanicin 2SS 2air S8are Sc8eduling (para grupos, con3untos de procesos! Csignar menos recursos a los usuarios Due consumieron m:s de lo Due les corresponde + m:s a los Due usaron menos Plani,icacin por prioridades, se tiene en cuenta el uso Due 8iAo el grupo de la CP; SYEJ S8ortest Yob Ee@t Preemptive Cpropiacin - Eo Preemptive ( Pre,erente ? el proceso Due pasa al estado -3ecucin, continIa e3ecutando 8asta Due a! termina o b! se bloDuea (en espera de una e(s! 'mplican menor Zcosto[ pero son menos eDuitativas - Preemptive ( Pre,erente ? el proceso Due est: e3ecutando puede ser interrumpido + pasado a )isto por el SO )a apropiacin puede producirse por Due un proceso se bloDuee o peridicamente (relo3! 'mplican ma+or es,uerAo del procesador cambiando procesos, pero son m:s 3ustas Planificacin de multiprocesadores Relacin de los sistemas multiprocesador? - Cgrupacin o multiprocesador dGbilmente acoplado o distribuido - Procesadores especialiAados ,uncionalmente - 5ultiprocesador ,uertemente acoplado? es un con3unto de procesadores Due comparten una memoria principal comIn *rado de sincroniAacin - 2ino? paralelismo in8erente a un Inico ,lu3o de instrucciones - 5edio? procesamiento paralelo o multitarea dentro de una aplicacin individual 5:s comple3o Due el paralelismo con 8ilos - *rueso? multiprocesamiento de procesos concurrentes en un entorno multiprogramado Poca sincroniAacin - 5u+ grueso? proceso distribuido Poca sincroniAacin - 'ndependiente? procesos no relacionados Eo 8a+ sincroniAacin e@pl.cita de los procesos Consideraciones de diseo - Csignacin permanente ( est:tica o Poca e,iciencia si no 8a+ una cola comIn (si 8a+ uno con pendientes + otro desocupado! o >os mGtodos de asignar? 5aestro(esclavo CrDuitecturas simGtricas - Csignacin din:mica - -n general no se asignan en ,orma dedicada,sino Due 8a+ una cola Inica para todos los procecsadores o se usa un esDuema de prioridades (varias colas por prioridad! - ;so de multiprogramacin en procesadores individuales (sobre todo cuando la asignacin es est:tica,vale la pena_! - -@pedicin? seleccin real del proceso a e3ecutar )a plani,icacin no tiene sentido Due sea tan comple3a como en un monoprocesador - 5ane3o de 8ilos? es muc8o mas potente Due en un sistema monoprocesadorF (porDue 8a+ paralelismo real! o Reparto de carga ? los procesos no se asignan a un procesador particular, se mantiene una cola global de 8ilos listos + cadaprocesador selecciona uno de los 8ilos cuando estG disponible )a carga se distribu+e uni,ormemente entre los procesadores Eo es necesario un plani,icador centraliAado )a cola central (en memoria compartida! debe tener e@clusin mutua Si se reaunda la e3ecucin de cierto 8ilo, es improbable Due vuelva almismo procesador, no se utiliAar.a la cac8G local Si se reDuiriera alto grado de coordinacin entre los 8ilos, los intercambios pueden a,ectar al rendimiento & versiones di,erente? 2C2S Primero el de menor numero de 8ilos Primero el de menor nImero de 8ilos, preemtpive o Plani,icacin por grupos ? se plani,ica un grupo de 8ilos para su e3ecucin en un con3unto de procesadores Si procesos pr@imos se e3ecutan en paralelo, podrian reducirse los bloDueos por sincroniAacin 5inimiAa los intercambios de procesos, es e,ectiva cuando 8a+ gran sincroniAacin entre los 8ilos de un proceso o Csignacin dedicada de procesadores ? opuesto a reparto de carga, se le asigna un procesador a cada 8ilo -s una ,orma e@trema de la plani,icacin por grupos Si un 8ilo se bloDuea, el procesador Dueda desocupado, no 8a+ multiprogramacin Como no 8a+ intercambios, se acelera la e3ecucin del programa (salvo en elmomento de e(s, tiene elprocesador dedicadoF! o Plani,icacin din:mica ? el nImero de 8ilos de un programa puede cambiar durante la e3ecucin Cuando un proceso pide uno o m:s procesadores? Si 8a+ procesadores desocupados, se le asignan O al reciGn llegado se le asigna un procesador individual, Due se le Duita a otro Due tenga m:s de uno asignado Si no puede satis,acerse el pedido, se lo de3a en cola 8asta Due alguno anule la peticin o pase a estar disponible Planificacin en tiempo real -s el tipo de procesamiento donde la e@actitud del sistema no depende slo del resultado lgico del c:lculo sino tambiGn del instante en Due se obtenga Eo preocupa la velocidad absoluta, sino completar (o iniciar! las tareas en el momento m:s adecuado, ni antes ni despuGs Caractersticas de un S) en tiempo real - >eterminismo ? cuando realiAa las operaciones en instantes ,i3os o intervalos de tiempo predeterminados Se analiAa cu:l es el retardo m:@imo Due tiene el SO para responden a las peticiones - Sensibilidad ? cu:nto tiempo tarda el SO en reconocer una interrupcin -s la cantidad de tiempo necesario para iniciar + e3ecutar la gestin de interrupcin ('SR, 'nterrupt Service Routine! - Control del usuario ? el usuario debe dar control preciso sobre las prioridades de las tareas - 2iabilidad ? un ,allo transitorio puede tener consecuencias mu+ graves - 0olerancia a ,allos ? capacidad del sistema de conservar la m:@ima capacidad + datos en caso de ,allo -s estable cuando puede cumplir los plaAos de las tareas cr.ticas + de ma+or prioridad >eterminismo K sensiblidad Q tiempo de resupuesta a sucesos e@ternos -l coraAn de un sistema de tiempo real es el plani,icador de tareas corto plaAo -n el diseo es importante la eDuidad + la reduccin del tiempo medio de respuesta Se combinan la prioridades con interrupciones de relo3 )os instantes de apropiacin (preemptiveF! se original a intervalos regulares, cuando llega el mometno, se e@pulsa a la tarea Due est: e3ecutnado si e@iste otra esperando Due tenga ma+or prioridad Si 8ubiera algunas aIn m:s criticas, podr.a usarse apropiacin inmediata Clgoritmos de plani,icacin en tiempo real - 5Gtodos con tablas est:ticas o peridicas ? aplicable a tareas peridicas, es predecible pero in,le@ible - Pre,erentes con prioridades est:ticas ? 8ace an:lisis est:tico pero no plani,ica, se usa el an:lisis para determinar las prioridades para un sistema pre,erente con prioridades o algoritmo monnoto de ,recuencia (R5S, Rate 5onotonic Sc8eduling! Csigna prioidades en ,uncin a sus per.odos, per.odoQtiempo Due transcurre entre Due llega la tarea + la siguiente llegada de la misma tarea )a tarea con ma+or prioridad es la Due tiene per.odo m:s corto, + asi - >e plani,icacin din:mica J se determina la viabilidad en tiempo de e3ecucin Se acepta una nueva tarea slo si es ,actible de e3ecutarse - >in:micos del me3or resultado ? el m:s usado )a prioridad se asigna a la llegada, como son tareas aHperidicas,no 8a+ ,orma de saber de antemano (esta`ticamente! su prioridad Eo se sabe si puede cumplirse la restriccion de tiempo 2:cil de implementar >e cada tarea, m:s all: de la prioridad, se deber.a saber (para poder plani,icarla adecuadamente! - 'nstante en Due est: lista - PlaAo de comienAo + ,inaliAacin - 0iempo de proceso - -@igencias de recursos - Prioridad - Subtareas_ Gestin de Entrada 7 Salida OrganiAacin de las ,unciones de -(S - -(S programada ? el proceso espera a Due termine la operacin para seguir - -(S dirigida por interrupciones ? continIa la e3ecucin de las instrucc siguientes (del mismo proceso o el proceso se suspende + se sigue con otro! + el mdulo de e(s lo interrumpe cuando completa su traba3o - >5C ? Ccceso directorio a la memoria, un mdulo >5C controla el intercambio de datos entre la memoria principal + el mdulo de e(s Se puede mover un bloDue entero de datos sin Due intervenga el procesador, e@cepto al inicio o al ,inal -l mdulo >5C toma control del bus cuando el procesador no lo necesita, o bien lo obliga a suspender moment:neamente su operacin (robo de ciclo! Estructura lgica de las funciones de E/S - -(S lgica ? el mdulo de e(s logica trata al dispositivo como un recurso lgico + no se preocupa de los detalles de control real del dispositivo -ste modulo se ocupa de las ,uncioens generales (Cbrir, Cerrar, )eer, -scribir! -n los dispositivos de almacenamiento secundario, se inclu+en & niveles Due Zabren[ m:s el nivel de e(s lgica o *estin de directorios? traduccin de nombres simblicos a identi,icadores Due apuntan al arc8ivo o a una tabla de indices (inodos_! o Sistema de arc8ivos? se encarga de la estructura lgica de los arc8ivos + las operaciones (abrir, cerrar, ! o OrganiAacin ,.sica? las re,erencias lgicas a arc8ivos se traducen a direcciones ,.sicas 0ambiGn gestiona el bu,,er (almacenamiento intermedio! - -(S con dispositivos ? las operaciones se conviertenen secuencias adecuadas de instrucciones de e(s + rdenes para el canal + el controlador - Plani,icacin + control ? la plani,icacin + puesta en cola de las operaciones + el control se 8acen en este nivel lmacenamiento intermedio de la E/S Cuidado, puede 8aber deadloc6 de un solo proceso, debido al uso del almacenamiento intermedio 0ipos de dispositivos? Orientados a bloDue? almacenan los datos en bloDues, normalmente de tamao ,i3o, 8acen las trans,erencias de un bloDue cada veA (discos, cintas! Orientados a ,lu3o? trans,ieren datos como una serie de b+tes, no tienen estructura de bloDues (terminales, impresoras, puertos de comunicacin! -sDuemas de almacenamiento intermedio -sDuema Caracter.sticas >escripcin 5emoria intermedia sencilla )ectura por adelantado (anticipada! Complica al SO porDue debe guardar constancia de las asignaciones de la mem intermedia del sistema a procesos del usuario Cuando se completa la trans,erencia, se pide otro bloDue inmediatamente, esperando Due el bloDue se necesite m:s adelante -l SO puede e@pulsar al proceso porDue la op de entrada no tiene lugar en el espacio del proceso 5emoria intermedia doble ;n proceso puede llenar(vaciar una memoria intermedia mientras Due el so llena(vac.a el otro -l doble almacenam asegura Due el proceso no tiene Dueesperar en la e(s -s mas rapido Due el sencillo, pero mas comple3o Puede ser inapropiado si el proceso lleva a cabo rapidas r:,agas de e(s (8a+ Due ir al ritmo del proceso! 5emoria intermedia circular -s un modelo de productor(consumidor con memoria intermedia ilimitada Se puede solucionar el tema del ritmo, agregando m:s memorias intermedias Planificacin de discos !uncionamiento del disco Velocidad de giro, constante ;na pista tiene muc8os sectores Si un disco tiene muc8os platos, todas las cabeAas se mueven 3untas La combinacin de todas las pistas en la misma posicin relati+a sobre el plato se llama cilindro # Colocar la cabeAa en la pista deseada Para leer o escribir, la cabeAa se debe colocar en la pista deseada, al comienAo del sector 4a+ Due mover la cabeAa para elegir la pista 0iempo para posicionar la cabeAa en la pista es el tiempo de b?s9ueda a -s el tiempo de arranDue inicial K tiempo en recorrer las pistas % -sperar a Due el sector se aline con la cabeAa, es el retardo de giro o latencia de giro C:lculo del retardo de giro (e3emplo! Velocidad de rotacin Q #"""" rpm (revoluciones por minuto! Por regla de tres, #"""" rev Q 1" seg QM # rev Q ",""1 seg Q 1 ms 0iempo de acceso Q tiempo Due se tarda en llegar a la posicin de lectura(escritura -s tiempo de bIsDueda K retardo de giro C:lculos sector lgico Sector lgico HM (C'), CC7, S-C0! E Q (C, 7, C! C Q parte entera N sectUlgico ( (sectores cabeAas ! O 7 Q parte entera Nresto C ( sectores O C Q resto 7 -3emplo? sect lgico #&"# >atos? & platos HM 1 cabeAas, #"" sectores cada cilindro C Q #&"# ( (#""1! Q %, resto #"# 7 Q #"#( #"" Q #, resto # C Q # E Q (%, #, #! lgoritmos de planificacin de disco lgoritmo Descripcin Caractersticas RSS, aleatorio -l peorF Se usa para comparar con los otros 2'2O Primero en entrar, primero en salir -l m:s 3usto de todos PR' >e acuerdo a la prioridad del proceso -l control es ,uera de la gestinde la cola del disco Poco ,avorable para 7> )'2O ;ltimo en llegar, primero en salir 5a@imiAa uso recursos + cercan.a 'mplica pocos o nulos movimientos del braAo en arc8 secuenciales Posibilidad de inanicin SS02 Primero el m:s corto (cercano! -n ambos sentidos 7usca minimiAar el movimiento Cprovec8amiento, colas peDueas SCCE Recorre el disco de un lado a otro (8asta el e@tremo del disco, despues, despuGs todo para aba3o! 7uena distribucin 2avorece a los traba3os con pistas cercanas a los cilindros mas interiores + e@teriores )OO< 'dem SCCE pero no va 8asta el e@tremo sino 8asta el ultimo pedido CHSCCE Recorre el disco de un lado a otro, en un solo sentido Poca variabilidad de servicio, eDuitativo SCCE E pasos SCCE pero de E registros a la veA *arantia de servicio Se procesan de a paDuetes para evitar Zpega3osidad[ + Due la cabeAa estG en el mismo lugar todo el tiempo ;sa subcolas de long n 2SCCE 'dem SCCE E pero con EQlongitud de la cola al comienAo del scan Sensible a la carga ;sa dos subcolas, las nuevas solicitudes Duedan en la % mientras se procesa la # 4ID @i+el Categora Descripcin y uso Tasa pedidos ,lect/escr. Tasa transferenc ,lect/escr. " 7andas Eo reduncia Clto rendimiento, app no cr.ticas )asbandas se distribu+en por disco, si los datos est:n en discos di,erentes, acceso en paralelo >ist peDueas? -@celente >ist grandes? -@celente # -spe3o Copia espe3o >uplica todos los datos Crc8ivos cr.ticos CualDuier disco puede servir el pedido )a escritura es doble, en los % discos 7ueno(3usto Yusto ( Yusto % & Ccceso paralelo Redundancia por 4amming E(C -l nro de discos redundantes es log del nro de discos de datos Pobre -@celente Paridad por intercalacin de bits Slo un disco redundante, no importa cuantos discos de datos CualDuier trans,erencia involucra a m:s de un disco, acceso paralelo Pobre -@celente 4 / 1 Ccceso independiente Paridad por intercalacin de bloDues ;n solo disco de paridad Cada disco opera independiente, se puede servir pedidos en paralelo -n cada escritura 8a+ Due actualAiar los datos + los bits de paridad E(C -@celente ( 3usto Yusto ( Pobre Paridad por intercalacin distribuida de bloDues >istribu+e las bandas de paridad en todos los discos -@celente ( 3usto Yusto ( Pobre Paridad por intercalacin doblemente distribuida de bloDues >os calculos distintos de paridad, con n discos de datos, se necesitan n K % discos Clta disponibilidad de datos, con gran penaliAacin de escritura (cada escritura a,ecta % bloDues de paridad! -@celente ( pobre Yusto ( Pobre Cdigo de 4amming? detectar % bits errneos, corregir 8asta # bit errneo Cac(A de disco -s una memoria intermedia (bu,,er! Due reduce el tiempo medio de acceso a la memoria aprovec8:ndose del principio de cercan.a Cuestiones de diseo - Cmo pasarle los datos cuando 8a+ un acierto o Se trans,iere el bloDue de datos de la memoria principal al proceso o Se le pasa unpuntero a la entrada apropiada de la cac8G de disco - -strategia de reemplaAo o )R; ()east Recentl+ ;sed!, se reemplaAa el bloDue Due permanece en la cac8G con menor cantidad de re,erencias OrganiAacin? pila, cuando se re,erencia se pone arriba, se elimina el del ,ondo, aba3o o )2;, )east 2reDuentl+ ;sed, se elimina el bloDue Due su,rio la menor cantidad de re,erencias Se necesita un contador o ReemplaAo en ,uncin a la ,recuencia? pila como )R;, pero con dos secciones Si 8a+ acierto, se pone en la arriba Si el bloDue estaba en la secc nueva, su contador no se incrementa, sino, se incrementa Si se produce una ,alla, se elimina el bloDue conel menor contador + Due no estG en la secc nueva Podr.a 8acerse tambiGn con & secciones - Rendimiento? a,ectado por la tasa de ,allas, depende del comportamiento de la cercan.a delas re,erencias a disco, el algoritmo de reemplaAo, etc Gestin de arc(i+os Campos, registros, arc8ivo, base de datos r9uitectura de un sistema de arc(i+os (capas! - Visto desde el programa de usuarios? (Pila ( Secuencial ( Secuencial inde@ado ( inde@ado ( 8as8ing!? mGtodo de acceso - -(s lgica? permite a los usuarios + programas acceder a los registros - Supervisor b:sico de e(s? responsable de iniciar + terminar todas las e(s - Sistema de arc8ivos b:sico ( nivel de e(s ,.sica? inter,aA primaria con entorno e@terior del sistema - *estor del dispositivo (disco, cinta!? device drivers )rgani3acin de arc(i+os ,estructura lgica de los registros. 0ipo Caracter.sticas Registros Pila Se recogen en el orden Due llegan Ccceso? por bIsDueda e@8austiva Sin estructura Secuencial -s la unica guardable en cinta(disco Ccceso? bIsDueda secuencial Due corresponda con la clave 2ormato ,i3o, un campo es la clave Para agregar, se ponen separados, despues se mergea Secuencial inde@ado 'dem, se agrega? 'ndice para acceso aleatorio + un arc8ivo de desbordamiento (over,loB! )o Due se agrega se pone en el ,ile de desbordamiento, apuntado desde su registro predecesor 'ndice? campo clave K ptr a arc8ivo principal >e veA en cuando se combina + rearma el ,ile 'nde@ado 5Iltiples indices, uno por cada campo usado para la busDueda Eo 8a+ concepto de secuencialidad + clave unica, slo se accede a travGs de sus .ndices >irecto o 8as8ing Se reDuiere un campo clave en cada registro Eo 8a+ ordenacin secuencial Cgrupacin de registros en bloDues %Atodos de agrupacin 4egistros Desperdicio -tili3acin 2i3os Registros de longitud ,i3a 2ragmentacin interna (en el Iltimo bloDue! Secuenciales )ongitud variable con tramos Registros de long variable Si ocupa dos bloDues, se usa un puntero al siguiente Sin ,ragmentacin >i,.cil de implementar, cuando ocupa dos bloDues 8a+ % lecturas )ongitud variable sin tramos Registros de long variable Eo se dividen en tramos Se desperdicia muc8o espacio si el registro siguiente es ma+or Due el tamao restante Csignacin de arc8ivos? - Csignacin previa de todo el espacio - Csignacin din:mica 0amao de la seccin - Secciones contiguas variables + grandes? me3or rendimiento, tablas m:s peDueas, espacio di,.cil de reutiliAar -s importante la ,ragmentacinJ algoritmos posibles de asignacin 2irst 2it, 7est 2it, Ee@t 2it - 7loDues? m:s ,le@ibilidad, pero puede necesitar tablas m:s grandes 5Gtodos de asignacin de arc8ivos Contigua Encadenada Inde2ada >escripcin ;no con3unto contiguo de bloDues Csignacin con bloDues individuales, cada uno tiene un puntero al siguiente bloDue de la cadena )a tabla de asignacin de arc8ivos contiene un .ndice separado de un nivel para cada arc8ivo, el indice tiene una entrada para cada seccion asignada al arc8ivo Recomendado para Secuencial Secuencial Secuencial >irecto (8as8ing! Csignacin previa Eecesaria Posible Posible Secc tamao ,i3o o variable Variable 7loDues ,i3os 7loDues ,i3os Variable 0amao seccin *rande PeDueo PeDueo 5edio 2recuencia asignacin ;na veA 5edia H ba3a Clta 7a3a 0iempo para asignar 5edio )argo Corto 5edio 2C0 ;na entrada ;na entrada grande medio Problemas 2ragmentacin e@terna 4a+ Due compactar -limina ,ragmentacin e@terna 5e3ora la cercan.a *estin del espacio libre 0abla de asignacin de disco 0abla de asignacin de arc8ivos 0Gcnicas? - 0ablas de bit ? usa un vector Due contiene un bit por cada bloDue de disco "Qlibre, #Qusado -s ,:cil de encontrar un bloDue contiguo de datos de bloDues disponibles Como puede ocupar muc8o (tam disco en b+tes ( = @ tam bloDue!, la alternativa es ponerla en disco, pero seguir.a pensando muc8o, entonces se mantienen estructuras Due resumen el contenido de subrangos de la tabla de bits - Secciones libres encadenadas ? las secc libres se encadenan como una lista mediante un ptr + un valor de long de espacio libre de la secc *enera ,ragmentacin - 'nde@acin ? trata al espacio libre como si ,uera un arc8ivo, + usa una tabla .ndice Slo puede traba3r con secc de tamao variable pore,eiciencia 4a+ una entrada en la tabla para cada seccin libre del disco - )ista de bloDues libres ? cada bloDue tiene asignado un nro secuencia + la lista de nros de todos los bloDues libres se mantiene en una seccin reservada del disco Si se usa un numero de bloDue de &% bits, se penaliAa entonces 4 b+tes por cada bloDue de /#% b+tes -l espacio es mu+ c8ico, + para almacenar la lista en mem principal se podr.a usar la lista como una pila con los primeros miles de elementos cargados en mem, o como una cola 2'2O, con un par de miles de entradas entre el principio + el ,inal IBnodos - 0odos los arc8ivos se contemplan por ;ni@ como un ,lu3o de b+tes - 0odos son adminsitrados por el SO por medio de iHnodos - ;n iHnodo (nodo indice! es una estructura de control Due contiene la in,o clave del arc8ivo Due necesita el SO - Varios nombres pueden asociarse a # inodo, pero un inodo solo puede asociarse con # arc8ivo Cada arc8ivo solo puede ser controlado por un inodo Por lo general se necesitran dos lecturas a disco para acceder a un determinado arc8ivo? una al iHnodo del arc8ivo + otra al bloDue del arc8ivo -n ;E'\ se usa asignacin en bloDues, din:mica + a medida Due se necesita, no se usa asignacin previa Eo se reDuiere Due los bloDues estGn contiguos Se usa inde@acin, con parte de la in,o almacenada en el inodo -ntre otros datos, el inodo tiene &$ b+tes de in,o de direccin, organiAada como #& direcciones (punteros! de & b+tes cada uno (& b+tes @ #& Q &$ b+tes! >irecto Primeras #" direcciones Cpuntan a los primeros #" bloDues de datos del arc8ivo 'ndirecto simple ## Cpunta a un bloDue de disco Due tiene la siguiente parte del indice Cada bloDue ind simple tiene los ptrs a los siguientes bloDues del ,ile 'ndirecto doble #% Cpunta a un bloDue Due tiene la lista de bloDues indirectos simples adicionales 'ndirecto triple #& Cpunta a unbloDue ind triple, conun &er nivel de inde@acin, Due a su veA apuntan a ind dobles Calculo del tamao m:@imo de un arc8ivo? >atos? Ptr directos #%, ind simple #, doble #, triple # tamao de bloDue Q tamao del sector, = <b (=#$% b+tes! Puntero a disco Q &% bits? = bits identi,ican disco, %4 bits identi,ican bloDue ,.sico 0amao puntero &% bits Q 4 b+tes Cant en 'ytes C cantDptr > ,Tblo9ue / TamPtr. n > Tblo9ue >irectos Q #% (=#$% ( 4! " =#$% Q $=&"4 Q $1 <b 'ndirectos simples Q # (=#$% ( 4! # =#$% Q #1999%#1Q #1&=4 <b Q #1 5b 'ndirectos dobles Q # (=#$% ( 4! % =#$% Q &% *b 'ndirectos triples Q # (=#$% ( 4! & =#$% Q 14 0b 7+tes Q Sumatoria totalF Cu:ntos accesos al disco 8acen ,alta para localiAar el b+te enla posicin @? tantos como accesos a los inodos se necesiten (busco la suma de b+tes 8asta posic @! %*2 tama0o !ile System C E TamDptro > Tblo9ue tamao 2ile S+stem Q % %4 =#$% Q a Procesamiento distribuido 0endencia 8acia el proceso de datos distrbuido - Soporte en la arDuitectura de comunicaciones - Sistemas operativos de red - Sistemas operativos distribuidos Procesamiento cliente ( servidor - -lementos - Cliente - Servidor - 5iddleBare? son inter,aces + protocolos est:ndar con3unto de controladores, CP' u otro sB Due me3ora la conectividad entre las aplicaciones entre cliente + servidor Para resolver problemas de interoperacin entre diversos vendors + protocolos - Red - Cplicaciones se distribu+en - 7ases de datos se centraliAan Clases de aplicaciones cliente/ser+idor - Proceso basado en m:Duina central (8ost!? no es realmente c(s, sino entorno tradional, main,rame - Proceso basado en servidor - Proceso basado en cliente? se procesa todo a8. salvo las validaciones de datos + ,unciones de la bd - Proceso cooperativo? aplicacin optimiAada, aprovec8ando la potencia de los eDuipos + la distribucin de los datos CrDuitectura -n dos capas - Capa cliente - Capa servidor -n tres capas - Capa cliente - Capa intermedia (servidor de aplicaciones! - Capa servidor (bac6end, de datos! Consistencia de la cac(e de arc(i+os -l rendimiento de la e(s se puede degradar por el retardo introducido por la red )os eDuipos individuales pueden usar cac8Gs de arc8ivos, pero 8a+ Due administrar cuidadosamente la consistencia Cl momento de una peticin, 8a+ Due c8eDuear la cac8e del puesto (tra,ico de arc8ivo!, luego al disco (tra,ico de disco!, o al servidor (tr:,ico del servidor! ;na veA en el servidor, e@aminar primero su cac8e + si 8a+ ,allo, acceder a disco Si las cac8es tienen copias e@actas, 8a+ consistencia de cac8es Para evitar la inconsistencia (se cambian datos remotos + no se desec8an las copias locales!, se pueden usar tGcnicas de bloDueo (garantiAa consistencia a costa de rendimiento + ,le@ibilidad!, sino Due todos 8abran como lectura, + cuando se abre como escritura, se noti,ica Due deben reescribirse los bloDues alterados inmediatamente Paso distribuido de mensa"es -n proceso distribuido se suele dar Due los eDuipos EO compartan memoria principal, son eDuipos aislados, entonces para comunicar procesadores EO se puede usar sem:,oros ni usar un :rea de memoria comIn, entonces se usa una tGcnica de paso de mensa3es Send ( Receive -speci,icar el destino e incluir el contenido del mensa3e )as solicitudes de servicio peuden ser primitivas (,uncion a realiAar! + par:metros )a recepcin tiene un :rea de almacenamiento intermedio (un bu,,er! donde se alo3an losmensa3es Due llegan 5ensa3es ,iables ( no ,iables? so se garantiAa la entrega, se debe usar un protocolo ,iable 7loDueante ( no bloDueante - Primitivas EO bloDueantes o as.ncronas? o 8a+ empleo e,iciente + ,le@ible del paso de mensa3es o programas di,iciles de probar + depurar, con secuencias irreproducibles dependientes del tiempo + la e3ecucin - Primitivas bloDueantes o s.ncronas? o Eo devuelve control 8asta Due el mensa3e se transmite (servicio no ,iable! o 8asta Due se 8ace obtenido un acuse de la recepcin (servicio ,iable! 4PC1 llamadas a procedimiento remoto Permite Due programas de m:Duinas di,erentes interactIen mediante una sem:ntica de llamados(retornos a simples procedimientos como si estuvieran ambos en la misma m:Duina -s un re,inamiento de un sistema ,iable + bloDueante 2ormato est:ndar de mensa3es, el llamado se 8ace indicando el nombre del procedimiento, los argumentos pasados + devueltos (paso de par:metros por valor o como puntero por re,erencia, m:s di,iciles de implementar! -nlaces? - Persistentes ? la cone@in lgica se establece entre dos procesos al momento de la llamada + se pierde tan pronto como se devuelvan los valores - Eo persistentes ? se establece + se mantiene despuGs de Due el procedimiento termina - Sincronas (bloD! ? se comporta similar a una subrutina -s ,:cil de programar por ser predecible, pero no e@plica por completo el paralelismo de las app distribuidas - Cs.ncronas ? se consigue m:s paralelismo Eo bloDuean al llamador Para sincroniAar se puede iniciar + terminar la cone@in con otra app o bien Due el cliente emita una cadena de rpc asigncronca seguida de una Iltima s.ncrona grupaciones Son una alternativa al S5P para dar alto rendimiento + alta disponibilidad Cada eDuipo es un nodo Venta3as - -scalabilidad total? pueden superar ,acilmente las m:Duinas autnomas m:s grandes - -scalabilidad intremental? se pueden aadir nodos ,:cilmente - Clta disponibilidad - 5e3or relacin rendimiento precio %Atodos de agrupacin 5Gtodo >escripcin Venta3as )imitaciones -spera pasiva -l secundario arranca si ,alla el primario 2acil de implementar K disponibilidad no me3ora rendimiento Clto costo Secundaria activa -l secundario tambiGn procesa Costo menor 5as comple3idad Servidores separados Cada uno tiene sus propios discos + los datos se copian continuamente Clta disponibilidad Sobrecarga en servidor + red por copiado Servidores conectados a discos Cada uno tiene los su+os, pero est:n conectados, si uno ,alla, otro servidor pasa a estar a cargo Reduce sobrecarga + uso de red por no espe3ar discos Eecesita RC'> Servidores compartiendo discos 5ultiples eDuipos comparten acceso a disco 7a3a sobrecarga Reduccin de riesgo de ca.da por ,alla disco So,t para gestionar bloDueos RC'> *estin de ,allos? depende del mGtodo de agrupacin utiliAado - Resistencia a ,allos (,ailover! ? ,uncin de intercambiar una aplicacin + los datos de un sistema ,allido por uno alternativo - Restauracin de ,allos (,ailbac6! ? Restaurar las aplicaciones + datos al sistema original cuando se repar -Duilibrio de carga? - Compilador paralelo ? se determinan en tiempos de compilacin DuG partes de la aplicacin se pueden e3euctar en paralelo - Cplicaciones paralelas ? se usa el paso de msg para mover datos - Computacin paramGtrica ? algoritmo Due debe e3ecutarse muc8as veces con datos di,erentes Proceso paralelo CrDuitectura - ^nico punto de entrada para el usuario - ^nica 3erarDu.a de arc8ivos - ^nico punto de control - ^nica gestin de red virutal - ^nico espacio de memoria - ^nico sistema de gestin de traba3os - ^nica inter,aA de usuario - ^nico espacio de e(s + de procesos - Puntos de comprobacin - 5igracin de procesos Gestin distribuida de procesos %oti+os de la migracin de procesos - Compartimiento de carga - Rendimiento de las comunicaciones - >isponibilidad - ;tiliAacin de capacidades especiales - LuiGn inicia el proceso de migracin_ ;na unica entidad_ -l destino puede Zopinar[ acerca de recibir unproceso migrado_ - >esalo3o? un sistema destino podr.a rec8aAar una migracin - 0rans,erencias pre,erentes ( no pre,erentes? trans,erir un proceso parcialmente e3ecutado o con la creacin completada, o bien (la no pre,erente! involucraar procesos Due no comenAaron la e3ecucin (con lo cual no es necesario trans,erir el estado delproceso! Cuando se migran procesos Due +a e3ecutaron? Se migra la imagen del proceso, se destru+e en el sistema de origen + se crea en el destino Se mueve + no se duplica -l problema est: en el espacio de direcciones + los arc8ivos abiertos -strategias? - 0rans,erencia (completa! ? se trans,iere todo en el momento de la migracin -legante, pero puede ser costoso sin necesidad - Copia anticipada ? se e3ecuta en origen mientras se copia a destino )oDue se modi,ico se copia de nuevo - 0rans,erencia (modi,icado! ? se trans,iere solo lo modi,icado, + el resto ba3o demanda - Copia por re,erencia ? idem, pero se desplaAan las p:ginas cuando se las re,erencia - Volcado (,lusing! ? se eliminan las p:ginas del proceso de la memoria de origen, volcando a disco las modi,icadas Se accede a cada p:gina segIn se necesite + desde el disco + no de memoria Problemas de concurrencia ,determinar el estado global. Cparecen los mismos problemas de concurrencia Due antes (e@clusin mutua, interbloDueo, inanicin!, las estrategias ac: var.an por el 8ec8o de no tener un Zestado global[ del sistema en un instante dado O sea, un sistema o proceso no puede conocer el estado de los otros )a complicacin surge (entre otras cosas! por el retardo temporal de las comunicaciones lgoritmo de instant*neas distribuidas - )os mensa3es se entregan en el mismo orden Due se env.an, + no se pierden mensa3es - )os mensa3es se propagan - CualDuier proceso inicia el algoritmo mandando un mnesa3e marcador por un canal Due comunica con otros (n! procesos Cada uno registra su propio estado + el de todos los canales entrantes - Se obtiene un estado global consistente cuando cada uno env.a por todos los canales salientes los datos del estado Due registr + retransmite los Due recibi E2clusin mutua distribuida )os algoritmos dependen del paso de mensa3es (+ no del acceso a memoria porDue no tienen! Clgoritmo centraliAado? 8a+ un nodo desginado como control del acceso a todos los ob3etos compartidos Cuando se Duiere acceder a un recurso cr.tico, se emite un Pedido, obtiene una Respuesta + luego cuando termina de usarlo, envia un mensa3e de )iberacin Algoritmo distribuido para e'clusin mutua - 0odos los nodos pueden decidir - Cada uno tiene in,o parcial - Como no 8a+ relo3 comun, para sincroniAarse se usa una ordenacin de sucesos (sucesoQenvio! Se usan Zmarcas de tiempo[ Cada sistema mantiene un contador local, cada veA Due env.e un msg incrementa un relo3 -l tiempo asociado con el suceso de cada mensa3e es lamarca de tiempo Due acompaa al msg EO importa DuG suceso ocurre primero en realidad, solo importa Due se puedan ordenar de alguna ,orma Cola distribuida - Primera versin ? n nodos, cada uno tiene procesos Due peuden 8acer pedidos de acceso mutuamente e@lcusivo a un recrso de otros procesos Cada uno 8ace de arbitro de sus propios recursos -ste algoritmo 8ace cumplir la e@clusin mutua, es eDuitativo, evita el interbloDueo + la inanicin ;n proceso puede entrar a una secc cr.tica cuando? o 8a+a recibido por parte de todos los demas nodos (nH#! un msg Due garatniAa Due no 8a+ otro msg en camino (un Pedido anterior al del pedido! Due Duiera accder a la cola o 0odos los mensa3es del vector de pedidos se ordenan (+ son todos posteriores al otro! & tipos de mensa3es? Peticin, Respuesta, )iberacin - Segunda versin ? pretende optimiAar la primera versin, eliminado los mensa3es de )iberacin, con propagacin + respuestas 5Gtodo de paso del testigo (to6en! 0estigo? entidad Due un proceso retiene en un instante dado -l proceso Due tiene el testigo, es el Due puede entrar en su seccin cr.tica sin pedir permiso, cuando la abandona, pasa el testigo a otro proceso - )a asignacin inicial del to6en es arbitraria - Puede acceder si tiene el to6en, o sino di,unde un mensa3e de peticionN6O con una marca de tiempo + espera 8asta recibir el testigo - Cuando otro abandona la secc cr.tica + debe pasar el testigo, elige el proceso Due tien peticinN6O M testigoN6O Interblo9ueo distribuido >os tipos de deadloc6? por asignacin de recursos o comunicacin de mensa3es Puede aparecer el ,enmeno de ZinterbloDueo ,antasma[? ,alsas detecciones, no un deadloc6 real, originado por la ,alta de un estado global Pre!encin del deadlock Eecesitan determinar por adelantado las necesidades de recursos? - -l crculo +icioso de espera puede prevenirse de,iniendo una ordenacin lineal de los tipos de recursos (desventa3a, podrian retenerse los recursos por mas tiempo! - )a condicin de retencin y espera puede prevenirse pidiendo a los procesos Due todos los pedidos se concedan simultaneamente (no es e,iciente porDue se podrian conceder los recursos por m:s tiempo Due el necesario! 5Gtodo esperarHmorir (Bait, die!? dados %pedidos, cada uno con su marca de tiempo Se previene el circulo vicioso Si 0# tiene el recurso R, + 0% tiene marca m:s vie3a, entonces se bloDuea o se mata )a m:s antigua tiene prioridad, una transaccin matada revive con su tiempo original + tiene mas prioridad (por enve3ecimiento! 5Gtodo 8erirHesperar (Bound, Bait!? concede de inmediato los pedidos m:s antiguos, matando las transacciones m:s 3ovenes Due estGn usando el recurso compartido Prediccin -s poco pr:cticaF PorDue 8abr.a Due guardar el estado global, inspeccionar un estado global seguro reDuirir.a e@lcusin mutua, implica un proceso e@tra consdierable Deteccin del deadlock Control centraliAado Simples + ,aciles de implemntar, un nodo centrar tiene toda la in,o Sobrecarga de comunicaciones al nodo central Vulnerable a ,allas del nodo central Control 3er:rDuico 0ipo arbol Eo vulnerable a,allas en un solo punto )imitado si los deadloc6s se concentran (localiAados! Clguna sobrecarga, d,icil de con,igurar el sistema Control distribuido Eo vulnerable a ,allos en un solo punto Eingun nodo sobrecargado Resolucin complicada, algoritmo di,icil de disear >eadloc6 en la comunicacin de mensa3es - -spera mutua - Eo disponibilidad de bu,,ers de mensa3es Seguridad CmenaAas - Con,idencialidad (secreto! HM interceptacin - 'ntegridad HM modi,icacin - >isponibilidad HM interrupcin - Cutenticidad HM invencin Controles de acceso? - Orientados al usuario - Orientados a los datos Proteccin? - Ci,rado unidireccional - Control de acceso So,tBare maligno 7ac6doors, 7omba lgica, Caballos de tro+a, Virus (par:sitos, residentes en memoria, del boot sector, clandestinos, polimor,os!, gusanos