Vous êtes sur la page 1sur 34

SISTEMAS OPERATIVOS Introduccion Definicion: Sistema operativo. Un sistema operativo es un programa o un con unto de programas !

ue tornan productivo" amiga#$e % eficiente e$ uso de$ &ard'are de un computador" permitiendo e ecutar ap$icaciones de usuario so#re este. Es e$ intermediario entre estas ap$icaciones % e$ &ard'are. Es comp$icado en principio definir !ue es $o !ue forma parte de este. Una vision es inc$uir dentro de$ sistema operativo todo e$ pa!uete de soft'are !ue es entregado por un fa#ricante cuando se compra un (sistema operativo)" pero esta vision es pro#$em*tica" %a !ue $o !ue viene inc$uido en ese pa!uete varia muc&o seg+n e$ fa#ricante ,A$gunos fa#ricantes inc$u%en &asta navegadores de internet en e$ pa!ute mientras otros apenas proveen una interfa- de $inea de comandos.. /a vision mas aceptada es !ue e$ sistema operativo es e$ programa presente en todo momento residente en memoria ,e$ nuc$eo o (0erne$).. Metas de un sistema operativo: 1rindar un am#iente donde e ecutar $os programas de usuario. Proveer un entorno sin interferencias para cada usuario. Administrar de forma e!uitativa $os recursos de &ard'are % soft'are de$ sistema. 2acer !ue e$ uso de$ sistema sea tan amiga#$e" intuitivo % e3presivo como $o permita $a tecno$ogia actua$.

Tareas de un sistema operativo: Todas $as ap$icaciones de usuario re!uieren un con unto de operaciones comunes" $as !ue son incorporadas a$ sistema operativo. Por $o tanto" $as tareas seran: Proveer uno o mas entornos donde se e ecuten estas ap$icaciones de usuario" Proveer una o mas interfaces e3presivas e intuitivas para e$ usuario ,!ue pueden ser graficas" con ventanas" $inea de comandos" 'e#" ...." Proveer un con unto de operaciones accesi#$es a $as ap$icaciones de usuario a traves de una interfa- conocida como (s%stem services)" Administrar $os recursos de$ computador eficiente % e!uitativamente. 4ontro$ar $a e ecucion de $as ap$icaciones de usuario para evitar errores % ma$ uso de$ sistema. /a parte de$ sistema operativo !ue se encuentra residente en memoria en forma permanente es $$amada (nuc$eo de$ sistema) ,0erne$.. PERSPE4TIVA 2ISTORI4A 5. Sistemas 1atc& ,67.. Epoca en $a !ue $os ordenadores eran grandes % costosos. Tenian una entrada de tra#a os % una impresora para imrpimir e$ resu$tado" no &a#ia casi interaccion con e$ usuario. E$ sistema procesa $os tra#a os de a uno" % eran agrupados en #atc&es ,con untos de tra#a os" o $otes.. /as funciones comunes en este sistema eran cargar un nuevo tra#a o ,mediante e$ loader." % e$ tra#a o con $a E8S. 9. Sistemas 1atc& con Mu$tiprogramacion ,:7.. Mas ade$ante se inc$u%o soporte para

mu$tiprogramacion" para aprovec&ar me or e$ recurso procesador. Para rea$i-ar esto" se guarda#an tra#a os en memoria secundaria" desde $a !ue e$ sistema operativo carga#a un su#con unto de estos para ser e ecutados. Se inicia#a $a e ecucion de uno de e$$os" % cuando este se !ueda#a esperando por a$guna ra-on ,por e emp$o" $a rea$i-acion de una E8S." se otorga#a e$ procasador a otro proceso. Este cam#io aumento e$ porcenta e de uso de$ procesador" pero imp$ico e$ desarro$$o de rutinas de mane o de $a memoria. ;. Sistemas de tiempo compartido. /os sistemas 1atc& mu$tiprogramados seguian teniendo mu% #a a interaccion con e$ usuario. Este nuevo tipo de sistemas intento me orar este aspecto" para $o !ue se penso en e ecutar muc&os procesos concurrentemente" rea$i-ando cam#ios en $a asignacion de$ procesador mu% frecuentemente" de manera !ue todos $os usuarios !ue e ecutan procesos tienen $a percepcion de !ue son $os unicos presentes en e$ sistema. E$ costo de estos nuevos sistemas es $a incorporacion de a$goritmos de p$anificacion ,sc&edu$ing. para asegurar una reparticion e!uitativa de$ procesador entre $os procesos. /a e ecucion concurrente de ap$icaciones de distintos usuarios produ o $a necesidad de me orar e$ sistema de arc&ivos para soportar accesos concurrentes" seria$i-ando $os pedidos % incorporando tecnicas de proteccion. <. 4omputadoras persona$es ,:7.. E$ a#aratamiento de $os componentes de &ard'are &i-o posi#$e $a creacion de computadores para e$ uso e3c$usivo de un usuario. /as interfaces fueron me oradas para ser mas amiga#$es a$ usuario" priori-ando estas frente a $a eficiencia en uso de 4PU. Mas ade$ante $as computadoras persona$es fueron adoptadas en e$ am#ito empresaria$" donde se generaron redes !ue proveen servicios a traves de servidores especia$i-ados para un uso especifico ,servidor de impresion" de #ase de datos" etc.. Se genera de esta manera una moda$idad en $a !ue $as ap$icaciones son desarro$$adas en $a moda$idad c$iente=servidor. >. Sistemas Para$e$os ,?7.. Estos son sistemas donde se disponen de varios procesadores !ue permiten $a e ecucion simu$tanea % sincroni-ada de varios procesos. Se reconocen dentro de estos sistemas dos tipos" $os (sistemas a$tamente integrados) ,tig&t$% coup$ed." donde $os cana$es de comunicaci@n entre $os procesadores son rapidos ,#us comun." % (sistemas poco integrados) ,$oose$% coup$ed." donde $os cana$es de comunicaci@n son muc&o mas $entos ,a traves de una red.. /a idea detras de estos sistemas es !ue a$ incrementar $a cantidad de procesadores se podra aumentar $a cantidad de tra#a o &ec&o por cantidad de tiempo. 8sin em#argo" e$ aumento de $a cantidad de tra#a o rea$i-ado no es $inea$ respecto a $a cantidad de procesadores" %a !ue a$ tener mas de un procesador se pierde cierto tiempo en $a sicroni-acion entre estos" % e$ acceso a recursos comunes. A$%nn definio una c$asificacion de $os sistemas en funcion de cuantas instrucciones se e ecutan en simu$taneo % so#re !ue datos. /as categorias seg+n esta c$asificacion son: SISD ,Sing$e instruction" sing$e data.. Se e ecuta una instrucci@n en cada momento ,no &a% concurrencia.. SIMD ,Sing$e instruction" mu$tip$e data.. Se e ecuta una unica instrucci@n pero so#re distintos con untos de datos simu$taneamente. MISD ,Mu$tip$e instruction" sig$e data.. Se u$iti-a para agregar para$e$ismo reduntante. MIMD ,Mu$tip$e Instruction" mu$tip$e data.. Se e ecutan distintas instrucciones en para$e$o so#re distintos con untos de datos. Dentro de estos sistemas e3isten dos variantes: Sistemas de memoria compartida: /os procesadores se encuentran en un unico nodo a$tamente integrado ,todos comparten e$ #us !ue $os conecta con $a memoria.. Son pocos esca$a#$es %a !ue con muc&os procesadores e$ acceso a memoria ,o cua$!uier

accion !ue invo$ucre e$ acceso a$ #us de$ sistema. se transforma en un cue$$o de #ote$$a. Sistemas de memoria distri#uida: /os nodos son independientes ,con #us % memoria independientes." % estan conectados a traves de redes de a$ta ve$ocidad. Pueden a#arcar mi$es de procesadores. B Sistemas Para$e$os Mu$tiprocesadores. Para estos sistemas fue necesario adaptar $os nuc$eos de $os sistemas operativos para soportar $a e3istencia de mas de un procesador. B.5 Sistemas mu$tiprocesadores asimetricos: /a primer so$ucion propuesta fue $a asignacion de un procesador para e ecutar de forma e3c$usiva e$ codigo de$ nuc$eo. Esta so$ucion tenia $a venta a de evitar pro#$emas de concurrencia en e$ codigo de$ sistema operativo" %a !ue este se e ecuta siempre en e$ mismo procesador. Mas ade$ante se fue de$egando tareas de$ sistema operativo entre $os restantes procesadores" generando una erar!uia entre estos. B.9 Sistemas mu$tiprocesadores simetricos ,SMP.: En esta so$ucion e$ codigo de$ nuc$eo se encuentra en memoria principa$" % cua$!uier procesador es capa- de e ecutar$o. /a erar!uia e3istente anteriormente es e$iminada" $$egando a un sistema en !ue todos $os procesadores son simetricos ,indistingui#$es en cuanto a $a capacidad de e ecutar codigo de$ nuc$eo.. Esta simetria genero !ue e$ codigo de$ nuc$eo fuera escrito de manera de poder ser reentrante" para $o !ue $os fa#ricantes de sistemas operativos de#ieron cam#iar tota$mente sus sistemas e3istentes. E$ acceso a$ codigo % a $a memoria se transformaron en $os cue$$os de #ote$$a de$ sistema" % por $o tanto en e$ o#stacu$o para esca$ar $os sistemas. Dentro de estos sistemas podemos &acer una c$asificacion tam#ien por $a manera en !ue se accede a $a memoria. Se distinguen dos tipos: Sistemas UMA ,Uniform Memor% Access.. Todos $os procesadores tienen acceso a toda $a memoria con $a misma ve$ocidad. Sistemas CUMA ,Con=Uniform Memot% Access.. /os procesadores tienen con untos de memoria a $a !ue acceden mas rapido !ue e$ resto. 6. Sistemas 4$uster. Son sistemas donde e3isten varios nodos fuertemente conectados" !ue tra#a an untos para proveer a$ta disponi#i$idad" % para distri#uir $a carga entre si. /os nodos se comunican para monitorear e$ estado de $os demas. /os c$uster pueden ser simetricos o asimetricos. En un c$uster activo" todos $os nodos rea$i-an tareas % sup$en $a fa$$a de uno de e$$os" mientras !ue en un c$uster asimetrico $os nodos se dividen en dos grupos" $os activos" !ue e ecutan $as tareas" % $os pasivos" !ue no rea$i-an tareas &asta !ue sup$en $a fa$$a de uno de $os nodos activos. :. Sistemas de Tiempo Rea$. En estos sistemas" es importante ,ademas de $a correctitud de$ resu$tado o#tenido. !ue $as tareas sean terminadas antes de cierto tiempo $imite. /os sistemas de proposito genera$ pueden ser adaptados para asimi$ar estos re!uerimientos ,mediante e$ uso de prioridades dinamicas para $as tareas" % despac&o preemptivo.. ?. Sistemas Mu$timedia. En estos sistemas es necesario !ue cierto contenido mu$timedia ,audio %8o video. sea entregado a$ usuario dentro de cierto margen tempora$. 57. Sistemas de Mano. ,2and&e$d. Se especia$i-an en entregar un con unto importante de

prestaciones a$ usuario contando con recursos de &ard'are mu% $imitados. ESTRU4TURA DE /OS SISTEMAS DE 4OMPUTA4IOC /os sistemas tienen ; componentes principa$es: 4PU" Memoria" % dispositivos de E8S. 4PU. Es $a encargada de de e ecutar $as instrucciones de $os programas. Dentro de estas instrucciones se distingue un con unto de instrucciones privi$egiadas" !ue so$amente de#eran ser e ecutadas por e$ sistema operativo. Dentro de este con unto se encuentran $as instrucciones de acceso a $a E8S" proteccion de memoria" % memoria virtua$. E$ procesador mantiene un #it !ue indica si este se encuentra en condiciones de e ecutar dic&as operaciones o no. Se define un protoco$o seguro para evitar !ue $os programas de usuario puedan e ecutar con este #it activado. Este protoco$o consiste en !ue siempre !ue se !uiere e$evar e$ nive$ de acceso a $as instrucciones se transfiere e$ contro$ a codigo autenticado ,trusted. !ue sera provisto por e$ sistema operativo. 4oncretamente" para pasar de modo usuario a modo monitor" se e ecuta un a unterrupcion a nive$ de soft'are" !ue provoca !ue e$ contro$ sea transferido a $a rutina de atencion de $a interrupcion correspondiente. Otra medida !ue se imp$ementa para evitar e$ ma$ uso ,accidenta$ o intencionado. de $a 4PU es e$ agregado de un timer !ue interrumpe a $a 4PU cada cierto tiempo. /a rutina de interrupcion $$eva registro de $a cantidad de tiempo !ue estuvo activo cierto proceso" % si este supera un $imite preesta#$ecido por e$ sistema operativo" se !uita e$ procesador a ese proceso % se $o entrega a otro. Memoria. E3iste una erar!uia definida so#re $a memoria. En $a parte superior se encuentran $os registros de$ procesador" !ue poseen una ve$ocidad a$ta" pero un tamanio pe!uenio" mientras !ue en $a parte inferior se encuentran $as cintas magneticas ,!ue poseen un tamanio mu% grande pero una ve$ocidad de acceso mu% $enta.. En posiciones intermedias se encuentran ,de arri#a &acia a#a o.: 4ac&es" Memoria Principa$" % Discos Magneticos. 4ac&es: E$ concepto de cac&e es mu% importante en varios conte3tos distintos. /a idea es mantener tempora$mente una copia de$ contenido de una memoria en otra memoria de acceso mas rapido. E$ tamanio !ue puede a$macenar $a cac&e es menor a$ tamanio de $a memoria mas $enta" por $o !ue e$ a$goritmo e$egido para po#$ar $a cac&e tiene un efecto marcado so#re $a performance de$ sistema. Un pro#$ema !ue se genera cuando se mane an cac&es en sistemas mu$tiprocesadores es $a co&erencia de $a cac&e ,!ue $a copia tempora$ !ue se mantiene de $a memoria sea efectivamente $o !ue $a memoria contiene.. Este pro#$ema esta presente tam#ien en sistemas monoprocesador %a !ue un dispositivo puede cam#iar e$ contenido de memoria" pero con mas de un procesador e$ pro#$ema es agravado. Tecnicas ap$icadas para so$ucionar este pro#$ema son $as denominadas 'rite=update ,todas $as cac&es escuc&an en e$ #us de$ sistema % actua$i-an su va$or cuando otro agente rea$i-a un cam#io so#re a$guna de $as pa$a#ras de memoria contenidas en e$$os." % 'rite=inva$idated ,todos $os cac&es escuc&an e$ #us % marcan como no va$idas $as pa$a#ras !ue son escritas por otros agentes" provocando !ue e$ siguiente acceso a esta direccion por ese procesador imp$i!ue un nuevo acceso a $a memoria !ue $o contiene..

E$ acceso de un proceso a $a memoria esta contro$ado de manera !ue un proceso so$o pueda acceder a su memoria propia" % no a $a correspondiente a$ nuc$eo o a otros procesos. Esto se rea$i-a $$evando un registro de $as direcciones fisicas asignadas a cada proceso. Sistema de E8S. /os dispositivos genera$mente se componen de dos partes" una contro$ador % e$

dispositivo en si. E$ contro$ador es un c&ip !ue reci#e ordenes de$ sistema operativo % envia $os impu$sos e$ectricos correspondientes a$ dispositivo para e ecutar esas ordenes. /a interfa- entre e$ sistema operativo % a$ contro$adora es mas simp$e !ue $a presente entre $a contro$adora % e$ dispositivo fisico. Dentro de un sistema e3isten contro$adores para muc&os tipos de dispositivos" por $o !ue e$ sistema operativo de#e imp$ementar componentes de sotf'are ,drivers. para comunicarse con todas $as interfaces generadas por estos contro$adores. /os drivers forman parte de$ codigo de$ sistema operativo. Para cargar$os e3isten dos a$ternativas: !ue esten ensam#$ados estaticamente unto a$ nuc$eo" !ue e$ sistema $ea durante e$ arran!ue un arc&ivo con $os drivers a cargar" % !ue $os drivers sean cargados en e$ sistema a demanda ,como $os modu$os en $inu3.. /os contro$adores tienen un con unto de registros uti$i-ados en $a comunicaci@n con e$ sistema a traves de$ driver. Para acceder a estos registros e3isten dos a$ternativas: Memor%= mapped=IO ,e$ acceso a estos registros se rea$i-a accediendo a direcciones especia$es de $a memoria principa$ ,$as !ue pueden ser protegidas contra e$ acceso no autori-ado." para escri#ir en estas direcciones se uti$i-an $as mismas instrucciones !ue para un acceso norma$ a $a memoria." % Direct IO instructions ,e3isten instrucciones especificas ,!ue estaran dentro de$ grupo de instrucciones privi$egiadas. para acceder a $a informacion de $os dispositivos" $os !ue son asignados a una direccion de puerto.. Para rea$i-ar una operaci@n de de E8S e3isten varios metodos: Espera Activa ,Po$$ing." en !ue e$ procesador rea$i-a un pedido % !ueda en un #us%='aiting &asta !ue $$ega $a respuesta" Interrupciones ,Interrupts." en !ue e$ procesador envia e$ pedido % se $i#era para rea$i-ar otras tareas &asta ser interrumpido por e$ contro$ador indicando !ue este termino e$ tra#a o" % Acceso directo a memoria ,DMA." en !ue $os dispositivos escri#en directamente en $a memoria principa$ sin $a intervencion de$ procesador" % generan una interrupcion cuando se termino de escri#ir en $a memoria. DMA es especia$mente uti$ en dispositivos !ue rea$i-an grandes transferencias de datos ,por e emp$o un disco duro." %a !ue e$ contro$ador puede cargar toda $a informacion en RAM % $uego interrumpir a$ procesador en $ugar de interrumpir$o para copiar cada #%te a $a memoria" &a#i$itando a este continuar con otras tareas. ESTRU4TURA DE /OS SISTEMAS OPERATIVOS En funcion de $as tareas !ue e$ sistema de#e rea$i-ar" &a% a$gunos componentes !ue de#en estar definidos en e$ sistema: Administracion de procesos Administracion de memoria Su#sistema de E8S Administracion de a$macenamiento secundario Su#sistema de arc&ivos Su#sistema de red Su#sistema de proteccion Re$acionado con estos componentes" e$ sistema de#era proveer ciertos servicios ,s%stem services.. /os programas seran escritos para e$ entorno de e ecucion !ue estos servicios definen. /os servicios tipicos inc$u%en: E ecucion de programas ,E$ sistema de#e ser capa- de cargar programas en memoria % e ecutar$os" reconocer su estado a$ momento de terminacion ,terminacion norma$ o erronea.. Operaciones de E8S Manipu$acion de sistemas de arc&ivos ,Operaciones para crear" #orrar" $eer % escri#ir.

4omunicaci@n entre procesos ,Mecanismos para posi#i$itar $a comunicaci@n entre $os procesos" a traves de memoria compartida o a traves de$ envio de mensa es. Manipu$acion de errores ,Aa$$os de &ard'are ,en a$gun dispositivo" $a memoria" $a fuente de energia"...." fa$$os de programas" etc.

E$ sistema puede proveer tam#ien servicios de asignacion de recursos" conta#i$i-acion ,accounting para $$evar un registro de como es uti$i-ado e$ sistema." % proteccion. S%stem 4a$$s /a interfa- de$ nuc$eo !ue permite a $as ap$icaciones acceder a $os servicios de$ sistema son $as s%stem ca$$s. Por $o genera$" para invocar un s%stem ca$$" un proceso de usuario sigue $os siguientes pasos: 5. 4arga $os parametros en un $ugar apropiado. ,genera$mente e$ stac0. 9. 4argar e$ numero de s%stem ca$$ en un registro especifico. ;. Rea$i-ar una interrupcion por soft'are ,trap.. 4uando se cu$mina e$ u$timo paso" e$ #it de modo de$ procesador es seteado en modo monitor" % e$ contro$ es transferido a$ codigo de atencion de $a interrupcion" !ue c&e!uea !ue e$ numero de s%stem ca$$ sea apropiado % $$ama a $a rutina correspondiente a ese s%stem ca$$. A$ cu$minar $a e ecucion de$ s%stem ca$$" e$ resu$tado es escrito en un registro especifico" para ser $eido por e$ proceso. Para pasar $os parametros a$ s%stem ca$$" ,paso 9. e3isten varias variantes. Estas son: /os parametros se pasan a traves de $os registros ,se $imita e$ tamanio % cantidad de $os parametros. /os parametros se encuentran en un #$o!ue de memoria apuntado por un registro. E$ proceso &ace pus&Ds en e$ stac0 para guardar $os parametros" mientras !ue e$ sistema operativo rea$i-a popDs so#re e$ mismo stac0 para recuperar $o escrito por e$ usuario. E3isten $$amadas de$ sistema para cada uno de $os servicios proporcionados por e$ so. Estructura de$ sistema Una ve- !ue se tienen $os componentes % servicios deseados #ien definidos" se inicia e$ disenio de $a estructura de$ sistema !ue dara soporte a dic&os re!urimientos. Desde e$ punto de vista de un usuario" e$ sistema de#e ser amiga#$e" rapido" faci$ de aprender % usar" seguro" etc.. Desde e$ punto de vista de !uien de#e imp$ementar e$ sistema" $as cua$idades deseadas son !ue sea faci$ de diseniar" imp$ementar % mantener" asi como ser confia#$e % eficiente. E3isten varias maneras de estructurar un sistema" estas son: 5. Sistema mono$itico. E$ nuc$eo no tiene una estructura #ien definida" este es escrito como una co$ecci@n de procedimientos accesi#$es g$o#a$mente. Co e3iste (ocu$tacion de informacion)" %a !ue cua$!uier procedimiento de$ nuc$eo puede acceder a cua$!uier otra parte de este. A pesar de esta fa$ta de compartimentacion" es posi#$e $ograr un #uen disenio !ue genere un sistema eficiente. E emp$os de este tipo de sistemas son MS=DOS % $inu3 ,!ue es un sistema mono$itico con un #uen disenio orientado a o# etos..

9. Sistema en capas. Se organi-an $as funciones de$ sistema en capas. 4ada capa define una interfa- para responder a estos servicios. En $a atencion de un servicio por una capa" esta puede $$amar unicamente a funciones de $a capa inferior. Ademas" $as funciones de una capa so$o pueden ser $$amadas por $a capa inmediatamente superior. Dentro de esta a#straccion" $a (capa 7) representa a$ &ard'are de$ computador" mientra !ue $a capa mas e3terior corresponde a $as ap$icaciones de usuario. /as venta as de este enfo!ue es $a modu$aridad o#tenida" % $a posi#i$idad de depurar cada capa por separado ,iniciando por $a capa mas interior" % siguiendo con e$ resto a$e andose de$ centro" asumiendo en todo momento !ue $a capa inferior funciona correctamente. /as desventa as son $a comp$icacion en e$ disenio !ue imp$ica $a definicion de $as capas % !ue contendra cada una" % e$ overhead generado por $a necesidad de pasar $os mensa es ente $as distintas capas para atender e$ pedido de$ usuario. Un e emp$o de sistema operativo en capas es OS89. ;. Sistema con micronuc$eo. Estos sistemas se componen un nuc$eo !ue provee un con unto minimo de servicios de administracion de procesos" memoria" % comunicaci@n entre procesos. E$ resto de $os servicios de$ sistema son imp$ementados como procesos separados de$ nuc$eo !ue e ecutan en modo usuario. E$ acceso de estos procesos a$ sistema se rea$i-a a traves de$ envio de mensa es. /as venta as son !ue aumenta $a porta#i$idad % esca$a#i$idad %a !ue encapsu$a $as caracteristicas fisicas de$ sistema" para incorporar nuevos servicios no es necesario modificar e$ nuc$eo" es mas seguro %a !ue $os servicios de$ sistema e ecutan en modo usuario" % !ue e$ disenio simp$e % funciona$ genera$mente aumenta $a confia#i$idad de$ sistema. Un e emp$o de sistema con micronuc$eo es Eindo's. Sistemas con modu$os. /os sistemas actua$es uti$i-an modu$os de$ nuc$eo. Este desarro$$o aporta $as venta as de !ue e$ sistema es desarro$$ado con un enfo!ue orientado a o# etos" con componentes separados de forma c$ara % con interfaces conocidas" % !ue $os modu$os pueden ser cargados en e$ modu$o en tiempo de e ecucion seg+n sea necesario. Un sistema !ue ref$e a esta idea es e$ sistema operativo So$aris. PRO4ESOS Definicion Un proceso es un programa en e ecucion. Esto inc$u%e" pero no es igua$" a$ codigo de$ programa correspondiente. Ademas de este codigo" un proceso comprende e$ estado de $a e ecucion ,e$ instruction pointer" e$ estado de $a memoria.. Es importante $a afirmacion de !ue un proceso no es unicamente e$ codigo de$ programa. Un programa es una entidad pasiva" por $o genera$ un arc&ivo conteniendo $as instrucciones a e ecutar ,arc&ivo e ecuta#$e." mientras !ue un proceso es una entidad activa" con una instrucci@n a ser e ecutada % un con unto de recursos asignados. Un programa se transforma en un proceso a$ ser cargado en memoria. Tam#ien para enfati-ar esta diferencia" cuando se e ecuta mas de una copia de un mismo programa ,se a#re un mismo programa dos veces. e$ sistema $os trata como dos procesos distintos ,podran compartir codigo pero tienen memoria e instruction pointer distintos.. Estado de un proceso A $o $argo de $a e ecucion de un proceso" este cam#ia de estado. E$ estado esta definido por $a actividad actua$ de$ proceso. /os posi#$es estados de un proceso son: 5. Ce': E$ proceso esta siendo creado. 9. Running: 2a% instrucciones de$ proceso siendo e ecutadas. ;. Eaiting: E$ proceso esta esperando a !ue a$go ocurra ,una operaci@n so#re $a E8S" $a recepcion

de una senia$" F.. <. Read%: E$ proceso se encuentra esperando a !ue $e asignen e$ procesador para continuar e ecutando. >. Terminated: E$ proceso &a terminado su e ecucion. /os nom#res varian entre $os distintos sistemas" % e3isten sistemas !ue definen estados mas finos !ue estos. Es importante notar !ue so$o un proceso puede estar en estado Running en cada procesador" mientras !ue pueden e3istir muc&os procesos en $os estados Ready % Waiting. E$ f$u o de un proceso entre estos estados viene dado por e$ siguiente diagrama:

Process 4ontro$ 1$oc0 Dentro de$ 0erne$" cada proceso es representado mediante una estructura de datos $$amada process contro$ #$oc0 ,P41.. Dentro de esta estructura se encuentran datos so#re $a e ecucion de$ proceso" entre $os cua$es se encuentran: E$ estado de$ proceso E$ va$or de$ program counter E$ va$or de $os registros de $a 4PU ,E$ contenido de este campo es indefinido mientras e$ proceso se encuentra en estado running. Va$ores usados por e$ a$goritmo de sc&edu$ing Va$ores referentes a $a uti$i-acion de memoria de$ proceso Informacion de accounting ,informacion so#re e$ uso de 4PU % memoria" tiempo !ue $$eva e ecutando. Informacion so#re e$ estado de $a E8S ,informacion so#re $os dispositivos asignados a$ proceso" $os arc&ivos a#iertos" etc. Informacion so#re !uien es e$ proceso !ue creo a este proceso Informacion so#re $os procesos creados por este proceso 4reacion de procesos Todos $os procesos de$ sistema son creados a partir de otros procesos ,sa$vo casos especia$es" como e$ proceso init en sistemas $inu3.. A$ proceso creador se $e denomina padre % a$ creado &i o" $a re$acion padre=&i o define una erar!uia entre $os procesos de$ sistema. E3isten varias opciones respecto a !ue recursos comparten padre e &i o a$ momento de $a creacion de$ &i o" puede ser !ue estos procesos compartan todo" a$go" o nada. 4uando un proceso es creado" e$ &i o tiene un &i$o de e ecucion independiente a$ de$ padre" con un program counter independiente. E$ sistema operativo crea un nuevo P41 para e$ proceso &i o. Por e emp$o" en sistemas UCIG e3iste un s%stem ca$$ $$amado fork !ue es $a encargada de crear nuevos procesos. Esta $$amada &ace dos copias identicas de$ proceso sa$vo en e$

va$or de retorno de $a funcion ,!ue es 7 para e$ &i o" % e$ pid de$ &i o para e$ padre.. Esta $$amada en com#inacion con e$ s%stem ca$$ exec ,!ue #orra e$ espacio de memoria de un proceso % carga un nuevo programa en este. permiten cargar cua$!uier programa en memoria. /istas de procesos /os procesos son agrupados en $istas % co$as dependiendo de su estado. /istas comunmente encontradas son: o# !ueue. 4ontiene TODOS $os procesos de$ sistema. Read% !ueue. 4ontiene $os procesos !ue estan esperando a ser asignados e$ procesador. Device !ueue ,4o$a de espera de dispositivos.. E3iste una de estas co$as por cada uno de $os dispositivos en e$ sistema. En e$$as" se encuentran $os pc# de $os procesos !ue se encuentran esperando por una operaci@n so#re e$ dispositivo. 4am#ios de conte3to 4uando un proceso de a de ser e ecutado por $a 4PU ,%a sea por!ue rea$i-o un s%stem ca$$ o por!ue $a 4PU fue asignada a otro proceso." e$ estado de$ procesador ,% posi#$emente de otros componentes re$acionados. de#e ser preservado &asta e$ momento en !ue e$ proceso resuma $a e ecucion. Dentro de $os va$ores !ue de#en ser preservados" se encuentran $os va$ores de $os registros de $a 4PU" % $a asignacion de memoria !ue tiene e$ proceso ,/a tecnica usada por e$ sistema operativo para mantener esta asignacion define cua$es son $os datos !ue de#en ser preservados.. Esta informacion es guardada en e$ P41 de$ proceso. Antes de vo$ver a $a e ecucion de$ proceso" e$ sistema operativo de#e tomar $os va$ores presentes en e$ P41 % enviar$os a $os $ugares correspondientes de manera !ue e$ proceso pueda e ecutar norma$mente como si nada &u#iese pasado. T&reads E3isten situaciones en !ue mas de un proceso necesitan compartir recursos para cump$ir su funcion. /os sistemas operativos proveen servicios de IP4 para sup$ir esta necesidad" pero a veces es mas conveniente usar otra &erramienta para reso$ver e$ pro#$ema" $os threads. 4on este enfo!ue" %a no tenemos varios procesos sino !ue e3iste un unico proceso con varios &i$os de e ecucion. De esta manera" e3iste un unico proceso" pero es posi#$e aprovec&ar $as venta as de $os sistemas !ue poseen mas de un procesador. /os distintos t&reads comparten su espacio de memoria" pero tienen stac0" program counter" % registros indepentientes ,$os t&reads comparten entonces e$ codigo % $os datos.. /a venta a de desarro$$ar una ap$icaci@n uti$i-ando t&reads es $a me ora en e$ tiempo !ue esto supone" so#retodo en sistemas mu$tiprocesadores. Ademas" $os t&reads pueden compartir recursos sin !ue sea necesario comunicarse con e$ 0erne$ como intermediario para o#tener ese resu$tado. /a otra venta a !ue tiene e$ uso de t&reads frente a e$ uso de procesos independientes es !ue e$ cam#io de conte3to necesario cuando una cpu pasa de e ecutar un t&read a otro es mas $iviano !ue e$ cam#io necesario a$ cam#iar un proceso por otro" %a !ue &a% muc&os campos comunes entre am#os t&reads ,por e emp$o" $a asignacion de memoria es identica.. Por u$timo" e$ costo de crear un t&read es menor !ue e$ costo de crear un nuevo proceso. /os t&reads pueden ser imp$ementados tanto en espacio de usuario como en espacio de 0erne$. Am#as so$uciones presentan venta as % desventa as. 2i$os a nive$ de usuario ,user t&reads.: En esta imp$ementacion e$ mane o de $as t&reads ,creacion" destruccion" p$anificacion de $a e ecucion" % administracion. es imp$ementado por una $i#rerHa de $a ap$icaci@n ,sin ningun apo%o de$ sistema operativo.. E$ nuc$eo reconoce so$amente un proceso e ecutando. 2i$os a nive$ de nuc$eo ,0erne$ t&reads.: En esta imp$ementacion e$ mane o de $as t&reads es

imp$ementado por e$ 0erne$ de$ sistema operativo" !ue reconoce tantos &i$os de e ecucion como t&reads e3isten. Venta as de $os &i$os a nive$ de usuario: Pueden ser imp$ementados independientemente de si e$ sistema operativo soporta $a creacion de t&reads. E$ cam#io de conte3to es mas eficiente %a !ue no de#en ser guardados $os registros. /a p$anificacion de $as e ecucion de $as t&reads puede seguir un a$goritmo distinto a$ de$ sc&edu$er de$ sistema operativo. ,DE1E e3istir necesariamente un p$anificador a nive$ de usuario. Venta as de $os &i$os a nive$ de nuc$eo: Me or aprovec&amiento de sistemas con mas de un procasador ,%a !ue e$ nuc$eo puede asignar t&reads distintas de un mismo proceso a e ecutar en procesadores distintos a$ mismo tiempo.. /a panificacion de todos $os t&reads se efectua de manera independiente. ,CO e3iste p$anificador a nive$ de usuario. Si un t&read se #$o!ue esperando una operaci@n de E8S" e$ sistema no #$o!uea a todos $os t&reads de$ proceso sino !ue permite !ue otros &i$os continuen $a e ecucion.

En genera$" $os sistemas proveen am#os tipos de t&reads. Tam#ien surgen variantes de $as anteriores" estas son: M35: ,Man% to one. Varios t&reads de espacio de usuario se corresponden a un unico t&read en e$ 0erne$. ,E$ soporte a t&reads esta imp$ementado a nive$ de usuario. 535: ,one to one. 4ada t&read de espacio de usuario es un t&read en e$ 0erne$. ,E$ soporte a t&reads esta imp$ementado a nive$ de nuc$eo. M3M: ,Man% to Man%. Varias t&reads de espacio de usuario ,pero no todos $os t&reads e3istentes para e$ proceso. se agrupan en un t&read en e$ 0erne$. En e$ 0erne$ e3isten varios t&reads para un proceso" cada uno de $os cua$es se corresponde con varias t&reads en espacio de usuario. ,En este caso" e3isten p$anificadores a nive$ de usuario % a nive$ de nuc$eo. Un t&read se e ecuta cuando e$ Sc&edu$er de$ sistema $e da e$ contro$ a$ proceso" % e$ p$anificador a nive$ de usuario asigna ese t&read para e ecutar.

S42EDU/ICI /a tarea de p$ainificar !ue procesos seran e ecutados por $a 4PU en un momento dado es fundamenta$ en sistemas mu$tiprogramados" %a !ue esta tarea inf$u%e muc&o en $a performance de$ sistema. Esta tarea surge de $a situacion en !ue mas de un proceso estan esperando por e$ recurso procesador" % es necesario e$egir uno para e ecutar. En esta situacion" se $$ama a$ p$anificador ,sc&edu$er. de$ sistema operativo. 4$ases de procesos Se pueden definir dos c$ases de procesos: /os I8O #ound % $os 4PU #ound. /os I8O #ound son a!ue$$os !ue rea$i-an un uso intensivo de $a entrada8sa$ida" % por $o tanto se encuentran $a ma%oria de$ tiempo esperando a !ue a$guna operaci@n so#re esta se termine" mientras !ue $os 4PU #ound no rea$i-an muc&as operaciones so#re $a entrada sa$ida" por $o !ue $a ma%oria de$ tiempo se encuentran o

e ecutando o esperando en $a read% !ueue. 4omo reg$a genera$" un proceso de#e acceder a un recurso con prioridad inversamente proporciona$ a$ uso !ue &aga de este. E3propiativo vs. Co E3propiativo E$ p$anificador puede ser $$amado en < momentos: E$ proceso !ue esta#a e ecutando rea$i-a una operaci@n so#re $a E8S % de#e #$o!uearse. E$ proceso es interrumpido" o e$ proceso crea un &i o ,En am#os casos se e ecuta un s%stem ca$$ !ue pasa e$ estado de$ proceso de running a ready.. 4u$mina una operaci@n de E8S !ue como efecto cam#ia e$ estado de un proceso de blocked a ready. E$ proceso !ue esta#a e ecutando termina su e ecucion.

5. 9. ;. <.

E$ p$anificador de#e e ecutar for-osamente en $os casos 5 % <. Un p$anificador sera e3propiativo o no dependiendo de cua$ es su comportamiento en $os casos 9 % ;. Si en estos casos e$ sistema $$ama a$ p$anificador entonces este sera e3propiativo" en caso contrario sera no e3propiativo. /a idea es !ue en $os p$anificadores e3propiativos" $a e ecucion de un proceso puede ser cortada en cua$!uier momento" mientras !ue en un p$anificador no e3propiativo $a e ecucion de un proceso se efectua sin interrupciones mientras no efectue operaciones so#re $a E8S ,e$ proceso puede mantener e$ 4PU todo e$ tiempo !ue desee.. /os sistemas e3propiativos imp$ementan tam#ien un timer" de manera !ue $a e ecucion de un proceso es cortada automaticamente despues de cierto interva$o de tiempo. /a uti$i-acion de p$anificadores e3propiativos o no e3propiativos depende de $as caracteristicas de$ sistema !ue se esta desarro$$ando: Sistemas por $otes: 4omo no e3iste interaccion con e$ usuario" $os p$anificadores no e3propiadores son idea$es. Sistemas interactivos: Dado !ue e3isten varios procesos de usuario e ecutando concurrentemente" $os p$anificadores e3propiativos son idea$es %a !ue me oran e$ tiempo de respuesta a$ usuario. Sistemas de tiempo rea$: Co es necesario tener p$anificadores e3propiativos" %a !ue $os procesos pueden estar muc&o tiempo sin e ecutarse" pero cuando $o &acen es por un periodo corto. Eva$uacion de A$goritmos de P$anificacion E3isten varias maneras de eva$uar $os a$goritmos de p$anificacion. /as medidas uti$i-adas para eva$uar$os son: Uti$i-acion de 4PU. Es e$ porcenta e de tiempo !ue $a 4PU se encuentra e ecutando codigo de $os procesos de usuario. Rendimiento ,T&roug&put.. Es $a cantidad de procesos !ue cu$minan su e ecucion por unidad de tiempo. Tiempo de retorno. Es e$ tiempo desde !ue un proceso es cargado en memoria &asta !ue termina su e ecucion. Tiempo de espera. Es $a suma de $os tiempos !ue un proceso se encuentra en estado ready. Tiempo de respuesta. Es e$ tiempo entre !ue un proceso es cargado % da su primer respuesta. Es una medida uti$ en sistemas interactivos. A$goritmos de P$anificacion. E3isten varios mode$os de a$goritmos de p$anificacion: 5. Airst 4ome Airst Served ,A4AS.. /os procesos son e ecutados en e$ orden en !ue $$egan a $a $ista de procesos $istos.

Es un a$goritmo no e3porpiativo. Su venta a es $a faci$idad de su imp$ementacion" es apropiado para sistemas #atc&. Su desventa a es !ue e$ tiempo promedio de espera es a$to. 9. S&ortest Jo# Airst ,SJA.. E$ a$goritmo asocia a cada proceso e$ $argo de su pro3imo 4PU=#urst ,seccion de codigo a e ecutar sin &acer $$amadas a $a E8S.. 4uando e$ procesador !ueda $i#re" se $e asigna e$ proceso con menor $argo. E$ pro#$ema !ue tiene es !ue en e$ momento de decidir e$ p$anificador no tiene conocimiento so#re cua$ sera e$ $argo de$ pro3imo 4PU=#ust" e$ !ue de#eria estimar de a$guna manera. Si se pudiera sa#er en todo momento e$ va$or de$ $argo de$ pro3imo 4PU=#urst" este a$goritmo seria e$ optimo en cuanto a tiempos de espera. Este e$goritmo admite variantes e3propiativas % no e3propiativas: /a version e3propiativa se imp$ementa de forma !ue si aparece un proceso en $a read% !ueue con menor 4PU=#urst !ue $o !ue !ueda por e ecutar de$ proceso !ue esta e ecutando" entonces se rea$i-a e$ cam#io" mientras !ue $a version e3propietiva continuaria con $a e ecucion de$ proceso actua$ &asta !ue este $i#ere $a 4PU por a$guna ra-on. ;. 1asados en Prioridad. A cada proceso se $e asigna un numero entero !ue representa su prioridad. A$ e$egir un proceso para ser e ecutado" se e$ige siempre a$ proceso con ma%or prioridad dentro de $a read% !ueue. Por $o genera$ se imp$ementa e3priopiativamente" de manera !ue si un proceso con prioridad ma%or a $a de$ proceso siendo e ecutado entra en $a read% !ueue este pasa a e ecutar sacando a$ proceso !ue estuviera antes. E$ SJA puede ser visto como un a$goritmo #asado en prioridad donde $a prioridad viene dada por e$ va$or de$ $argo de$ pro3imo 4PU=#urst. Este a$goritmo es adecuado para sistemas interactivos. /a desventa a !ue posee es $a pospocision indefinida" %a !ue procesos con #a a priopridad pueden no ser e ecutados nunca si siempre aparecen procesos con ma%or prioridad. Para evitar este pro#$ema se puede pasar a un sistema con prioridades dinamicas" de manera !ue $a prioridad de un proceso va aumentando a medida !ue pasa e$ tiempo" asegurando !ue en a$gun momento tendra una prioridad $o suficientemente a$ta como para ser e ecutado. Por $o genera$" un proceso !ue es I8O=#ound de#eria tener ma%or prioridad !ue un proceso 4PU=#ound. <. Round Ro#in. A cada proceso se $e da un periodo fi o de tiempo ,$$amado !uantum. para !ue use e$ procesador" a$ fin de$ cua$ e$ proceso es interrumpido % e$ sc&edu$er es $$amado para asignar e$ procesador a otro proceso. E$ proceso !ue sa$e de$ procesador es agregado a$ fina$ de $a co$a. Este a$goritmo es re$ativamente senci$$o de imp$ementar. Para !ue sea efectivo" e$ tamanio de$ !uantum de#e ser e$ adecuado. Si es mu% pe!uenio" de tamanio compara#$e a$ tiempo !ue $$eva un cam#io de conte3to" $a ma%oria de$ tiempo de$ sistema se uti$i-a &aciendo cam#ios de conte3to" % por $o tanto poco tiempo &aciendo tareas (uti$es). Si e$ !uantum es mu% grande" e$ sistema degenera en un A4AS. Por $o genera$ tiene un tiempo de respuesta me or !ue e$ SJA" pero tiene un tiempo de retorno ma%or. >. Mu$ti$eve$ Kueue. Si $os procesos pueden ser c$asificados en distintos grupos" es posi#$e dividir $a $ista de procesos en espera ,read% !ueue. en varias $istas independientes ,una para cada grupo.. Un proceso pertence a una unica co$a" % no puede cam#iar de co$a durante su e ecucion.

4ada co$a podra tener entonces un a$goritmo de p$anificacion propio" a$ !ue se $e de#e sumar un a$goritmo de p$anificacion !ue determine de !ue co$a se de#e e$egir e$ pro3imo proceso a e ecutar ,por e emp$o" !ue &a%a co$as con prioridad so#re otras.. B. Mu$ti$eve$ Aeed#ac0 Kueue. Es igua$ a$ anterior sa$vo !ue $os procesos pueden cam#iar de co$a durante su e ecucion. /a idea es categori-ar a $os procesos seg+n su 4PU=#urst" de manera !ue $a co$a con ma%or prioridad sea a!ue$$a con $os procesos I8O=#ound" mientras !ue $os procesos con menor prioridad sean a!ue$$os con a$to 4PU=#ound. De esta forma" $os procesos con menor uso de procesador son $os primeros en ser atendidos cuando $o necesitan. A $o $argo de $a &istoria de $os procesos estos son movidos entre $as co$as dependiendo de !ue uso &agan de$ procesador. Para definir un Mu$ti$eve$ Aeed#ac0 Kueue es necesario sa#er: 5. E$ numero de co$as 9. E$ a$goritmo de p$anificacion de cada co$a ;. E$ metodo para su#ir a un proceso de una co$a a una co$a superior <. E$ metodo para #a ar un proceso a una co$a inferior >. E$ metodo para sa#er a !ue co$a enviar a un proceso cuando cam#ia su estado a pronto Sistemas Mu$tiprocesadores En sistemas mu$tiprocesadores" cua$!uier procesador podra e ecutar procesos de usuario. Una posi#i$idad es !ue cada uno de estos procesadores mantenga su propia read%=!ueue. Esto tiene $a venta a !ue se aprovec&a a$ ma3imo $a cac&e de$ procesador" %a !ue cuando un proceso $a po#$o con sus datos" cuando vue$va a$gunos de esos datos puede !ue todavia esten presentes en $a cac&e" aumentando $a cantidad de (cac&e &it)" me orando entonces $a performance de$ sistema. /a desventa a es !ue pueden des#a$ancearse $as co$as" dando$e muc&o tra#a o a un mismo procesador mientras $os demas no &acen nada. Para esto se imp$ementan a$goritmos !ue cada tanto c&e!uean !ue $a carga este #a$anceada entre $os procesadores" % en caso de !ue no sea asi redistri#u%e procesos de un procesador a otro para $ograr ese o# etivo. Dispatc&er. Una ve- !ue es e$egido e$ proceso a ser e ecutado a continuacion" se invoca a$ dispatc&er" cu%as tareas son: 5. 4am#iar e$ conte3to ,guardar datos en e$ P41 actua$ % restaurar $os datos de$ P41 de$ proceso entrante. 9. 4am#iar e$ #it a modo usuario ;. Sa$tar a a$ instrucci@n donde &a#ia sido interrumpido e$ proceso ,program counter. RE4URSOS Es necesario inc$uir una estructura de datos para mode$ar $os distintos recursos presentes en e$ sistema. Esta estructura inc$uira $os siguientes datos ,para un recurso generico R.: Un identificador unico para e$ recurso ,ID. Una $ista de $os recursos disponi#$es de tipo R. Una $ista con $os procesos !ue se encuentran esperando por operaciones re$acionadas a$ recurso R ,4ada nodo contendra un puntero a$ P41 corerspondiente" mas informacion so#re e$ pedido" % so#re !ue esta esperando dentro de$ recurso para ser des#$o!ueado.. Un puntero a$ codigo administrador de$ recurso" % un puntero para rea$i-ar a$tas % #a as de $as

$istas. SIC4ROCILA4IOC DE PRO4ESOS En un principio" $os procesos en e ecucion dentro de un sistema operativo e ecutan de manera independiente entre e$$os % $os pro#$emas de concurrencia son mane ados e3c$usivamente por e$ sistema operativo" pero para &acer un me or uso de $os recursos de$ sistema se pueden definir con untos de procesos !ue e ecutan concurrentemente para $ograr un mismo resu$tado. Si estos procesos de#en compartir datos" &a% !ue tener cuidado en !ue un proceso no afecte $a e ecucion de otro proceso. E3isten varias maneras de dec$arar procesos concurrentes. Irafos de precedencia /os grafos de precedencia son una &erramienta uti$i-ada para mode$ar $a e ecucion de procesos concurrentes. /os nodos se corresponden a $as sentencias !ue de#en ser e ecutadas ,eventua$mente un nodo puede representar un con unto de sentencias !ue de#en ser e ecutadas secuencia$mente." % $as aristas se corresponden a $as dependencias entre estas sentencias ,es decir" cua$es sentencias de#en ser comp$etadas antes de$ inicio de una sentencia en particu$ar. Esta representacion se corresponde a un grafo acic$ico ,si &u#iera dependencias circu$ares no seria posi#$e $a e ecucion de ninguna tarea." % dirigido ,para una arista interesa sa#er cua$ de $as dos tareas invo$ucradas depende de $a otra.. 4oncurrencia #asada en dec$araciones 4O1EIIC M 4OECD Para dec$arar procesos concurrentes con este es!uema se sigue una sinta3is como $a siguiente: AA4TORIA/ ,C: integer. 1EIIC 4O1EIIC aNSemiAact,5" C89. 885 #NSemiAact,C89O5"C. 889 4OECD return aP# 88 ; ECD En este caso" $as instrucciones 5 % 9 se e ecutan concurrentemente" % cuando am#as se terminan se pasa a $a instrucci@n ;. /IMITA4IOCES DE/ 4O1EIIC=4OECD Se o#serva !ue &a% grafos de precedencia para $os !ue es imposi#$e encontrar una representacion siguiendo un es!uema 4O1EIIC M 4OECD. Uno de estos grafos es e$ !ue aparece a$ costado derec&o.

4oncurrencia #asada en AORQ=JOIC. En este es!uema se uti$i-an ; sentencias para crear % unir &i$os de e ecucion ,En este conte3to (&i$o) no tiene por!ue tener !ue re$acionarse directamente con un thread de$ sistema operativo.. Estas sentencias son AORQ" IOTO" % JOIC. /a definicion de cada una de estas sentencias es: AORQ. Sinta3is: AORQ etiqueta. 4omportamiento: En e$ momento de e ecutar $a sentencia AORQ" e$ proceso se divide en dos. Uno de $os procesos resu$tantes continua e ecutando en $a $inea inmediatamente posterior a $a !ue contiene a$ AORQ" mientras !ue e$ otro proceso resu$tante continua su e ecucion en $a $inea marcada por $a etiqueta ,eventua$mente am#os procesos pueden continuar e ecutando en $a misma $inea si es !ue $a eti!ueta apunta a $a instrucci@n despues de$ for0.. JOIC. Sinta3is: JOIC contador,etiqueta 4omportamiento: contador es una varia#$e entera g$o#a$. A$ momento de e ecutar e$ JOIC" e$ contador es decrementado. Si e$ va$or de$ contador resu$tante es 7" e$ proceso sa$ta a $a instrucci@n indicada por etiqueta" de $o contrario e$ proceso termina. /a intencion es !ue e$ contador este inicia$i-ado con $a cantidad de procesos !ue de#erian $$egar a$ JOIC" de forma !ue todos $os procesos sa$vo e$ u$timo terminen" % e$ u$timo pase a e ecutar $a siguiente tarea" !ue de#era estar en $a posicion indicada por etiqueta. IOTO. Sinta3is: IOTO etiqueta 4omportamiento: E$ proceso sa$ta a $a direccion indicada por etiqueta. Mediante este es!uema es posi#$e representar cua$!uier grafo de precedencia. Sincroni-acion entre procesos /a e ecucion concurrente de procesos imp$ica $a necesidad de coordinar estos procesos para asegurar su correcto funcionamiento ,por e emp$o" e$ acceso a recursos comunes de#e ser contro$ado.. Un pro#$ema comun es e$ pro#$ema de $a mutua=e3c$usion" donde 9 o mas procesos de#en e ecutar una seccion de codigo ,$$amada seccion critica. sin !ue ninguno de $os otros procesos este simu$taneamente e ecutando esa seccion critica. /a seccion critica entre varios procesos no necesariamente es igua$" por e emp$o" en una situacion determinada" una seccion critica puede ser escri#ir en una region de memoria para un proceso" mientras para otro proceso es $eer de esa misma direccion de memoria. Para !ue un a$goritmo sea so$ucion a este pro#$ema de#e cump$ir con tres re!uisitos: Mutua e3c$usion: Si un proceso se encuentra e ecutando su seccion critica" ningun otro proceso de#e estar e ecutando su seccion critica. Espera $imitada: Se de#e evitar $a posposicion indefinida" es decir" !ue un proceso se mantenga esperando un tiempo indefinido para entrar a su seccion critica. Progreso: Se de#en evitar dos situaciones. /a primera es $a situacion de deadlock" donde un proceso espera a !ue otro termine una operaci@n" mientras !ue este espera a !ue e$ primero termine una operaci@n. /a segunda situacion !ue se de#e evitar es $a a$ternacion entre $os procesos" osea" no se puede o#$igar !ue siempre se e ecute primero un proceso" $uego e$ siguiente" $uego e$ primero" % asi eternamente.

E3iste una so$ucion genera$ para este pro#$ema para dos procesos" % otra para mas de dos procesos. /a primera es e$ a$goritmo de 1ec0er" % $a segunda e$ a$goritmo de Peterson. E$ a$goritmo de 1ec0er es e$ siguiente ,adaptado a$ pro#$ema de A$icia % 1ernardo" donde e3isten dos persona es ficticios" A$icia % 1ernardo" !ue desean pasear sus perros en un patio comun" pero de#en &acer$o por separado para evitar pro#$emas.:

Sincroni-acion mediante &ard'are En a$gunas ar!uitecturas" se proveen primitivas en &ard'are para $ograr $a imp$ementacion de secciones criticas. Estas tienen $a venta as de ser mas eficientes !ue so$uciones #asadas en soft'are" % !ue simp$ifican $a tarea de$ programador en $o re$acionado a $a mutua e3c$usion. En un entorno uniprocesador" una so$ucion a$ pro#$ema de mutua e3c$usion es in&i#ir $as interrupciones mientras se e ecuta $a seccion critica" pero en sistemas mu$tiprocesadores esto no es suficiente" %a !ue mas de un procesador podrian estar e ecutando secciones criticas e distintos procesos. Una de $as primitivas por &ard'are !ue es proporcionada es $a primitiva testRandRset" !ue setea una #andera #oo$eana en true % retorna su va$or anterior en una unica operaci@n e ecutada atomicamente ,es decir" si un procesador esta e ecutando esta instrucci@n" todo otro procesador espera a !ue este termine antes de poder e ecutar esa misma instrucci@n.. Otra primitiva por &ard'are proporcionada es $a operaci@n s'ap" !ue intercam#ia $os contenidos de dos pa$a#ras de memoria atomicamente. En a$gunas ar!uitecturas" para !ue una operaci@n sea e ecutada en forma atomica" se puede rea$i-ar un lock so#re e$ #us de$ sistema" de manera !ue ningun procesador pueda acceder a$ #us ,% por $o tanto a $a memoria. mientras se e ecuta $a instrucci@n. Ienera$mente para imp$ementar so$uciones a$ pro#$ema de mutua e3c$usion mediante &ard'are se rea$i-a #us%='aiting" situacion no mu% desea#$e %a !ue $os procesos en espera continuan uti$i-ando $a 4PU" !ue podria ser asignada a otros procesos mientras e$ primero espera. Primitivas de sincroni-acion entre procesos /as &erramientas anteriores son mu% comp$icadas para ser uti$i-adas por $os programadores de

ap$icaciones" % ademas tienen e$ pro#$ema de !ue siempre &acen #us%='aiting para $ograr su o# etivo. Es por esta ra-on !ue $os sistemas operativos inc$u%en en genera$ primitivas de mas a$to nive$ !ue proveen maneras de sincroni-ar procesos. Estas primitivas tienen $a venta a adiciona$ de ser independientes de $a ar!uitectura % $a imp$ementacion de #a o nive$ !ue estas puedan tener. Semaforos Un semaforo es una varia#$e entera a $a !ue se $e asigna un va$or ,a$ ser creada." % !ue $uego puede ser uti$i-ada so$amente mediante dos operaciones" $a operaci@n P % $a operaci@n V" cu%o comportamiento es e$ !ue sigue: operaci@n P. P,s.S '&i$e,sTN7.U s==U V operaci@n V. V,s.S sOOU V Para !ue e$ semaforo funcione correctamente" e$ acceso a $as operaciones P % V de#e ser mutuoe3c$uido ,usando a$guno de $os metodos anteriores.. E$ #us%='aiting en este caso es acepta#$e %a !ue e$ tiempo !ue un proceso de#e esperar es pe!uenio ,%a !ue e$ codigo de $as operaciones P % V es corto.. /a definicion de $as operaciones dada antes es u$i$ para entender e$ funcionamiento" pero poco representativa de $a imp$ementacion rea$ de$ semaforo. E$ pro#$ema con esta imp$ementacion es e$ #us%='aiting presente en $a operaci@n P. /o !ue &acen $os sistemas operativos es !uitar este #us%= 'aiting" % agregar codigo en $as operaciones para dormir % despertar procesos" de manera !ue $a semantica de $as operaciones permane-ca igua$ pero evitando e$ pro#$ema de$ #us%='aiting. Una imp$ementacion mas apropiada seria: P,s.S if,sW7. t&en s==U e$se #$o!uearRprocesoU V V,s.S if,&a% procesos esperando por e$ semaforo. despiertoRunRproceso e$se sOOU V Dead$oc0s e inanicion En $a imp$ementacion % uso de $os semaforos &a% !ue tener cuidado de no generar $os pro#$emas de Dead$oc0s % starvation. /os dead$oc0s pueden venir dados por e$ uso incorrecto de $os semaforos en e$ !ue dos procesos piden semaforos en distinto orden % !uedan esperando a !ue e$ otro rea$ice un V so#re e$ semaforo !ue posee. /a inanicion puede ocurrir dependiendo de $a po$itica con $a !ue se e$ige en $a operaci@n V cua$ proceso despertar" %a !ue si es incorrecta a$gunos procesos podrian permanecer esperando eternamente por e$ semaforo. Monitores Otra primitiva de sincroni-acion disponi#$e son $os monitores. En este caso" se define un data

t%pe con su con unto de datos privados" % ciertas operaciones pu#$icas. /a particu$aridad de este tipo de datos es !ue se asegura por definicion !ue nunca &a#ra mas de dos procesos e ecutando e$ codigo de $as operaciones pu#$icas de$ monitor" de manera !ue $a mutua e3c$usion en este tramo esta asergurada. /os monitores asi definidos no sirven para reso$ver todos $os pro#$emas de sincroni-acion !ue pueden aparecer" sino !ue en a$gunos casos es necesaria una &erramienta mas. Esta &erramienta son $as condiciones. A $as condiciones so$o se $es pueden ap$icar $as operaciones wait % signal. 4uando un proceso rea$i-a un wait so#re una condicion" este se #$o!uea &asta !ue otro proceso rea$ice un signal so#re esa misma condicion. Si un proceso rea$i-a un signal so#re una condicion % no &a% ningun proceso esperando a !ue e$$o ocurra" entonces es como si nunca se &u#iera e ecutado esa instrucci@n. Se puede mostrar !ue es posi#$e imp$ementar semaforos usando monitores" % monitores usando semaforos" por $o !ue estas dos &erramientas pueden reso$ver $os mismos pro#$emas. Un pro#$ema !ue surge de $a incorporacion de $as condiciones % e$ uso de wait % signal, es !ue cuando se despierta un proceso !ue esta#a esperando por una condicion" surge e$ pro#$ema de cua$ de $os dos procesos ,e$ despertado o e$ despertador. de#e continuar su e ecucion primero. /o !ue es inadmisi#$e es !ue am#os procesos continuen" %a !ue de &acerse esto se vio$aria $a condicion !ue esta#$ece !ue so$o un proceso puede e ecutar e$ codigo de$ monitor en cua$!uier momento dado. Por $o tanto" o sigue su e ecucion e$ despertador o e$ despertado. /a ra-on a favor de !ue siga $a e ecucion e$ despertador ,$$amada signa$=and=continue." es !ue es $ogico !ue este proceso no sea interrumpido en su e ecucion" %a !ue nunca se #$o!ueo esperando una condicion % %a se encontra#a e ecutando codigo de$ monitor. /a ra-on para !ue e$ despertado sea !uien continua su e ecucion primero ,signa$=and='ait." es !ue en caso contrario" $a ra-on por $a !ue e$ proceso fue despertado puede &a#er caducado a$ momento en !ue rea$mente $$ega a e ecutar. /o idea$ es imp$ementar $a so$ucion de manera !ue funcione sin importar si $os semaforos actuan seg+n una conducta o $a otra ,idea: si es posi#$e u#icar $os signa$ a$ fina$ de un procedimiento de$ monitor" entonces esta condicion se cump$e.. En caso de no ser posi#$e" a$carar en $a so$ucion cua$ de $as dos conductas es $a apropiada para !ue funcione. Sincroni-acion en ADA E$ enfo!ue para $ograr concurrencia en ADA es a traves de encuentros entre tareas" es decir" momentos en !ue dos &i$os de e ecucion se encuentran. /as tareas so$icitan encuntros" % e3isten otras tareas !ue aceptan estos encuentros. Estos pedidos de encuentro son vistos como $$amadas a su#rutinas desde $a tarea !ue $os $$ama. E$ intercam#io de datos entre procesos se da entonces en estos puntos especificos en !ue $os procesos se encuentran. 4uando un proceso pide un encuentro" este se #$o!uea &asta !ue sea atendido ese encuentro. Un proceso puede !uedarse esperando tam#ien &asta reci#ir a a$guien !ue !uiera tener un encuentro con e$. /as citas son atendidas siguiendo un a$goritmo A4AS. E$ codigo de procesamiento de un encuentro es $a seccion de codigo !ue e ecutan (en comun) $os procesos. Por $o tanto" este codigo de#e ser $o mas corto posi#$e" %a !ue durante $a e ecucion de este e$ proceso !ue so$icito $a cita se !ueda esperando a !ue termine. E$ uso de $os encuentros sirve tanto para $a sincroni-acion como para e$ intercam#io de informacion entre $os procesos. IMPORTANTE: ES INCORRECTO USAR VARIABLES GLOBALES EN ADA! Sinta3is /a sinta3is en genera$ es de $a forma: PRO4EDURE Proc,. TASQ nom#re

ECTRX entrada5 ECTRX entrada9 F ECD nom#re TASQ 1ODX nom#re 1EIIC F. F. A44EPT entrada5 F. ECD A44EPT F. A44EPT entrada9 F. ECD A44EPT F. ECD nom#re A" 1 : nom#re 1EIIC 88 Principa$ A.entrada5 1.entrada9 ECD 88Principa$ 4on esta sinta3is" se define una tarea (nom#re)" !ue tiene $as entradas (entrada5) % (entrada9). Se definen dos tareas" A % 1" de tipo nom#re. /uego" en e$ programa principa$ aparecen $as $$amadas a $os encuentros definidos para A % 1. E3iste una construccion mas de$ $engua e !ue permite dec$araciones mas comp$e as. Esta es $a construccion SE/E4T" !ue puede ser inc$uida en e$ codigo de $a tarea para esperar por mas de una entrada a $a ve-. Esta sentencia tiene $a forma: SE/E4T YE2EC cond NWZ A44EPT entrada5 ECD A44EPT OR YE2EC cond9 NWZ A44EPT entrada9 ECD A44EPT F YOR YE2EC cond;Z DE/AX sZ [n ECD SE/E4T \ E/SE instrucciones ECD SE/E4T

/a u$tima $inea !uiere decir !ue o #ien &a% un OR DE/AX o un E/SE. En caso de !ue &a% un OR DE/AX e$ ECD SE/E4T aparece en $a $inea inmediatamente posterior a esa instrucci@n" en caso de !ue &a%a un E/SE" se inc$u%e e$ codigo a e ecutar en este caso % despues viene e$ ECD SE/E4T. /a sinta3is asociada a esta construccion es: En e$ caso en !ue &a% un E/SE en $a dec$aracion de$ SE/E4T evaluo_guardas(); if(hay_guarda_verdadera()){ if(hay_proc_esperando_en_accept_con_guarda_verdadera()){ proceso_encuentro(); sigo_con_siguiente_instruccion(); }else{ if(hay_else()){ ejecuto_codigo_else(); sigo_con_siguiente_instruccion(); }else{ espero_que_llegue_proceso(); proceso_encuentro(); sigo_con_siguiente_instruccion(); } } }else{ if(hay_else()){ ejecuto_codigo_else(); sigo_con_siguiente_instruccion(); }else{ Error! } }

En caso !ue &a%a un OR DE/AX evaluo_guardas(); if(hay_guarda_verdadera()){ if(hay_proc_esperando_en_accept_con_guarda_verdadera()){ proceso_encuentro(); sigo_con_siguiente_instruccion(); }else{ esperar_la_cantidad_que_diga_el_ordelay_por_si_llegan(); } }else{ ERROR! }

Sincroni-acion mediante e$ envio de mensa es. En este paradigma se uti$i-an dos operaciones #asicas" send(destino,mensaje % receive(origen,mensaje . Estas operaciones tienen variantes en su semantica" $as mas comunes son: Envio #$o!ueante" recepcion #$o!ueante: Tanto e$ emisor como e$ receptor se #$o!uean &asta !ue se transmite e$ mensa e. Permite una fuerte sincroni-acion entre procesos. Envio no #$o!ueante" recepcion #$o!ueante: E$ emisor puede continuar $uego de &a#er mandado un mensa e ,e$ !ue !ueda (esperando) ser $eido.. Sin em#argo" si un receptor !uiere $eer un mensa e % no &a% ningun mensa e disponi#$e" entonces se #$o!uea &asta !ue &a%a uno. Envio no #$o!ueante" recepcion no #$o!ueante. Cadie se #$o!uea. Tiene $a desventa a !ue pueden perderse mensa es si estos $$egan despues de !ue e$ receptor e ecuto e$ receive ,en cu%o momento no &a#ia ningun mensa e disponi#$e.. Direccionamiento. /os procesos de#en de tener una manera de identificar &acia donde % desde donde van $os mensa es. Para este pro#$ema e3isten dos so$uciones: Direccionamiento directo. 4on este direccionamiento $os procesos especifican directamente a !ue proceso se envia un mensa e ,en $a operaci@n send." % de !ue proceso !uieren $eer mensa es ,en $a operaci@n receive.. Esto imp$ica !ue cada proceso de#e sa#er de antemano !ue procesos $e enviaran mensa es % cuando. En a$gunos casos esto no es posi#$e por!ue no se sa#e de antemano !ue procesos se comunicaran con e$ proceso !ue espera en un receive. En este caso puede usarse un direccionamiento implicito" en e$ !ue e$ proceso !ue envio e$ mensa e es retornado en e$ parametro origen de $a operaci@n receive. Direccionamiento indirecto. En este caso $os mensa es no se envian directamente de emisor a receptor" sino !ue se definen unas estructuras de datos intermedias $$amadas mai$#o3es" !ue pueden mantener una co$a de mensa es en memoria tempora$mente &asta ser $eidos. Para rea$i-ar $a comunicaci@n" $os procesos rea$i-an $as operaciones send % release dirigidas a mai$#o3es especificos. Una venta a de este tipo de direccionamiento es !ue desacop$a a$ emisor de$ receptor" de manera !ue estos de#en conocer menos de$ otro. Ademas" $a re$acion entre $os procesos emisores % receptores en un mai$#o3 puede ser uno a uno" uno a muc&os" muc&os a uno" o muc&os a muc&os. Una re$acion de muc&os a uno puede ser uti$ en sistemas c$iente8servidor" donde e$ mai$#o3 puede ser $$amado puerto. Una cuestion a definir por e$ sistema operativo en este caso es !uien sera e$ propietario de$ mai$#o3. En caso de !ue e$ mai$#o3 sea poseido por un proceso especifico" este de#e ser #orrado en e$ momento en !ue e$ proceso es #orrado. En caso de !ue e$ mai$#o3 sea compartido" e$ sistema de#era proveer s%stem ca$$s para crear % e$iminar mai$#o3es. En caso en !ue e$ direccionamiento sea dinamico" e$ sistema de#e mantener una co$a de $os mensa es en espera. Esta co$a puede ser finita o infinita" % $a e3traccion de esta co$a puede ser usando un es!uema AIAO o siguendo un a$goritmo #asado en prioridad. IMPORTACTE: A$ reso$ver un pro#$ema de#e especificarse e$ comportamiento de $as operaciones send % receive" % si corresponde tam#ien especificar e$ tamanio % propiedades de $a co$a.

ADMICISTRA4IOC DE MEMORIA

Es una de $as tareas mas importantes de$ sistema operativo. /as maneras de imp$ementar esta tarea dependen de$ soporte en &ard'are !ue tenga e$ sistema para a%udarse en su o# etivo. Esta tarea comprende $as su#tareas de: Mantener un registro de !ue memoria esta siendo usada % !ue proceso,s. $a esta,n. usando. Decidir !ue procesos seran cargados a memoria cuando &a%a espacio disponi#$e. Asignar % !uitar memoria de $os procesos seg+n sea necesario. Antes de empe-ar: /os programas son escritos en $engua es de a$to nive$" % $uego son compi$ados" $in0editados" % cargados en memoria para su e ecucion. /a compi$acion pasa de$ $engua e de a$to nive$ a codigo o# eto" !ue todavia no esta pronto para ser e ecutado ,tiene (agu eros) en $as $$amadas a rutinas !ue no estan presentes en e$ arc&ivo !ue se compi$o." en $a $in0editacion se unen varios codigos o# eto para formar un unico e ecuta#$e. En $a carga de$ programa" se co$oca a este en $a memoria" se prepara su e ecucion % se inicia. /a $in0editacion se introduce como una manera de reuti$i-ar codigo" varios programas pueden ser $in0editados frente a una $i#rerHa en comun. /as computadoras tienen ,por $o genera$. mas espacio en disco !ue en memoria. Entonces" a Aot&ering&am ,sisi" ese es e$ nom#re. se $e ocurrio &acer !ue $os procesos pudieran tener mas memoria asignada !ue $a disponi#$e en $a RAM" guardando $a parte !ue no entra en esta en e$ disco duro" % vo$viendo$a a cargar en RAM cuando fuera necesario usar$a. De esta manera" e$ programador se o$vida de cuanta memoria tiene e$ sistema" % asume !ue $a memoria es un arreg$o de #%tes mu% grande !ue puede acceder cuando !uiera. E$ sistema operativo se va a ocupar de cargar $as partes de $a memoria !ue esten en disco cuando estas sean necesitadas. Se genera asi una diferencia entre $o !ue e$ programador piensa !ue es $a memoria % como esta se encuentra fisicamente en e$ sistema. Se define entonces e$ concepto de (memoria virtua$). Por e emp$o" en un sistema de ;9 #its" un proceso puede actuar como si tuviera <I1 de memoria para e$ so$o ,cada direccion se refiere a un espacio de 5 #%te" como &a% 9];9 direcciones posi#$es" se puede acceder a 9];9 #%tes distintos" osea" a <I1.. Se agrega un componente de &ard'are" !ue se $$ama MMU" para traducir entre $o !ue ve e$ proceso ,direcciones $ogicas. % $a rea$idad fisica en e$ sistema ,direcciones fisicas.. A $os programas &a% !ue asignar$es $as direcciones de memoria !ue $es corresponden en a$gun momento. Esto imp$ica $a traduccion de direcciones $ogicas a direcciones fisicas ,address #inding." % se puede &acer en ; momentos: Tiempo de compi$acion: Sirve cuando se sa#e de antemano donde en $a memoria se va a u#icar e$ programa. /as direcciones de memoria son u#icadas estaticamente en e$ e ecuta#$e en e$ momento de compi$acion Tiempo de carga: /os e ecuta#$es contienen direcciones re$ativas" % en e$ momento de carga estas direcciones re$ativas son transforamdas en direcciones a#so$utas. ,E$ programa no puede ser movido de $ugar en $a memoria una ve- cargado. Tiempo de e ecucion: Un programa pude ser movido de $ugar en tiempo de e ecucion" % sus direcciones $ogicas son traducidas a direcciones fisicas en e$ momento de ser uti$i-adas. 4$asificacion de $as direcciones de memoria. Se distinguen ; tipos de direcciones de memoria" dependiendo de donde son usadas. /as direcciones $ogicas son todas a!ue$$as !ue sa$en de$ procesador. /as direcciones fisicas son a!ue$$as !ue sa$en de $a MMU ,% entran en $a memoria principa$.. /as direcciones virtua$es son $as !ue sa$en de$ procesador cuando se efectua $a traduccion en tiempo de e ecucion. Para $as traducciones en tiempo de compi$acion % en tiempo de carga" $as direcciones $ogica % fisica coinciden. 4arga Dinamica

E$ tamanio de un proceso esta $imitado por $a cantidad de memoria disponi#$e en e$ sistema. Para aprovec&ar me or esta memoria se uti$i-a $a carga dinamica" en $a !ue una rutina es cargada en e$ momento en !ue va a ser invocada. De esta manera" $as rutinas no uti$i-adas no ocupan espacio innecesariamente. Ensam#$a e dinamico En e$ proceso de $in0editacion" $as $i#rerias uti$i-adas por e$ usuario pueden ser incorporadas a$ e ecuta#$e. Otra opcion es no inc$uir$as" % en e$ $ugar donde se invocan funciones de esa $i#rerHa de ar un codigo !ue carga $a $i#rerHa % $uego e ecuta e$ codigo de $a funcion. De esta manera" $a memoria !ue ocuparia $a $i#rerHa !ueda $i#re &asta !ue e$ proceso decide invocar a$guna funcion de esta. Esto tiene otras venta as. Una es !ue actua$i-aciones en $a $i#rerHa afectan automaticamente a todos $os procesos !ue $a uti$i-an" otra es !ue e$ codigo de una $i#rerHa compartida por varios procesos puede ser cargada una so$a ve- en memoria fisica % &acer !ue todos $os procesos !ue $a uti$i-an direccionen en su espacio virtua$ a $a misma region en $a memoria fisica. Over$a%s Otra opcion para &acer un uso mas eficiente de $a memoria es e$ uso de over$a%s" en e$ !ue e$ compi$ador divide e$ codigo en partes" % en $a memoria se encuentra unicamente $a parte !ue esta siendo uti$i-ada. Se inc$u%e ademas una seccion de codigo !ue es mantenida siempre en memoria % se encarga de cargar % sacar $as distintas partes de$ codigo de $a memoria. S'apping En sistemas mu$tiprogramados mas de un proceso de#e estar cargado en memoria principa$. Para o#tener me ores resut$ados" a!ue$$os procesos !ue no estan e ecutando pueden ser sacados de $a memoria principa$ % guardados en un dispositivo mas $ento ,disco duro. &asta !ue pasen a e ecutar" de manera de tener mas memoria disponi#$e para $os procesos !ue si se encuentran e ecutando. /a accion de pasar un proceso de memoria a disco se denomina s'ap=out" % su opuesto se denomina s'ap=in. 4omo se mueven procesos enteros de memoria a disco" se uti$i-a muc&o tiempo en $a transferencia. Dependiendo de como fue $a asignacion de direcciones $ogicas a fisicas" un proceso a$ ser restaurado podra !uedar en cua$!uier $ugar ,si $a asignacion fue en tiempo de e ecucion." o siempre en un mismo $ugar fi o ,si $a asignacion fue en tiempo de compi$acion o carga.. Asignacion de memoria En $os sistemas genera$mente se divide a $a memoria en dos grupos" $a memoria de$ 0erne$ % $a memoria de $os procesos de usuario. Es necesario asegurar !ue un proceso no puede acceder a $a memoria de$ 0erne$ o de a$gun otro proceso. Para esto se inc$u%en dos registros" e$ re$ocation register % e$ $imit register. E$ re$ocation register indica (donde empie-a) e$ espacio de memoria de$ proceso" % e$ $imit register cuanta memoria tiene asignada a partir de ese comien-o. Por $o tanto" todo acceso a memoria fuera de$ rango Yre$ocation register" re$ocation registerO$imit registerZ sera no va$ida % ocasionara un trap a$ sistema operativo ,!ue a#ortara e$ proceso.. Mu$tiprogramacion con particiones fi as En estos sistemas $a memoria se divide en peda-os" cada uno de $os cua$es puede ser uti$i-ado por un proceso" generando una cota a $a cantidad de procesos concurrentes !ue pueden e3istir. 4uando termina un proceso se carga un nuevo proceso en e$ espacio !ue este $i#ero. Mu$tiprogramacion con particiones varia#$es En estos sistemas se van cargando $os procesos de forma contigua en $a memoria" pero e$ espacio !ue ocupan puede variar de acuerdo a$ proceso. 4uando estos terminan" van de ando (agu eros)

en $a memoria. E$ sistema tiene !ue $$evar un registro de $a memoria usada % no usada. 4uando $$ega un proceso nuevo % se de#e #uscar un agu ero de memoria $i#re para asignar$e e3isten ; estrategias para e$egir cua$ dar$e: 5. Airst fit: $e do% e$ primer agu ero $o suficientemente grande para !ue entre. 9. 1est fit: $e do% e$ agu ero mas c&ico entre $os agu eros !ue pueden contener$o. ;. Eorst fit: $e do% e$ agu ero mas grande !ue pueda contener$o. En $a practica se comprue#a !ue #est % first fit funcionan me or en ve$ocidad % porcenta e de uti$i-acion de $a memoria !ue 'orst fit. 4ua$!uiera de $as estrategias de asignacion presenta e$ pro#$ema de $a fragmentacion e3terna ,!uedan agu eros mu% c&i!uitos entre regiones de memoria usadas !ue no sirven para nada" pero !ue sumados pueden ser una cantidad importante de memoria.. Entonces tenemos e$ pro#$ema de !ue (&a%) memoria $i#re como para asignar procesos nuevos" pero esta memoria esta inuti$i-a#$e. Paginacion Una manera comp$etamente distinta de ver e$ pro#$ema es $a paginacion. Esta no tiene e$ pro#$ema de $a fragmentacion e3terna" pero re!uiere &ard'are especia$ para ser soportada. /a idea es dividir e$ espacio de memoria de un proceso en paginas ,pages., % $a memoria fisica de$ sistema en marcos ,frames.. E$ tamanio de $as paginas % $as frames es igua$ dentro de un sistema" % de#e ser una potencia de 9. En $ugar de rea$i-ar s'apping con procesos enteros" se rea$i-a s'apping pagina por pagina ,se mueven $as paginas entre $a memoria principa$ % e$ disco" en una region especia$ de este $$amada swap, !ue tiene frames de$ mismo tamanio !ue a!ue$$os de $a memoria principa$.. E$ direccionamiento cuando se uti$i-a paginacion se rea$i-a de $a siguiente manera: /as direcciones virtua$es se dividen en dos partes" e$ numero de pagina % e$ offset dentro de esa pagina. E$ numero de pagina es ingresado a una ta#$a !ue tiene $as direcciones fisicas de $as #ases de $as paginas" % e$ offset es $a distancia desde $a direccion #ase de $a pagina en $a !ue se encuentra e$ #%te !ue se !uiere direccionar. Si una direccion se divide en n #%tes para $a pagina % m #%tes para e$ offset" e$ tamanio de $a pagina de#e ser 9]m para aprovec&ar todas $as direcciones posi#$es ,por esta ra-on es !ue e$ tamanio de pagina de#e ser potencia de 9.. Entonces" para acceder a una posicion de memoria e$ sistema de#e #uscar en $a ta#$a cua$ es $a direccion fisica donde empie-a $a pagina % sumar$e e$ offset. /a ta#$a de paginas es propia de$ proceso. /o mas comun es !ue esta ta#$a este guardada en memoria de$ 0erne$ ,podria estar a$macenada en registros" pero esto tiene dos desventa as: aumenta e$ tiempo de cam#io de conte3to por!ue se de#en cargar % descargar $os registros correspondientes a $a ta#$a" % $a cantidad de entradas de $a ta#$a es mu% $imitada." % !ue un puntero a esta ta#$a sea guardado en e$ P41 de$ proceso correspondiente. Durante un cami#o de conte3to se actua$i-a un registro ,PT1R. !ue contiene e$ puntero a $a ta#$a ,mediante una operaci@n privi$egiada.. /a desventa a de tener $a ta#$a en memoria es !ue se precisan 9 accesos a memoria para o#tener e$ resu$tado ,una para o#tener $a direccion de$ frame deseado" % otra para acceder a$ #%te #uscado.. Para ace$erar e$ proceso se agrega $a T/1 ,Trans$ation /oo0=aside #uffer.. Esta es una cac&e asociativa" en $a !ue cada entrada tiene e$ numero de pagina" % $a direccion fisica de$ frame. Si $a c$ave se encuentra en e$ T/1 ,T/1 &it. se evita $a #us!ueda en $a memoria % se accede directamente a$ frame correspondiente" en caso contrario se #usca e$ va$or correspondiente en memoria" se accede a$ frame deseado % se guarda e$ va$or en e$ T/1 para ace$erar $os pro3imos accesos. /a T/1 puede guardar tam#ien un ASID ,Address space identifier." !ue permite identificar a !ue proceso corresponde $a entrada. Si no se cuenta con este campo" se de#e $impiar $a T/1 cada ve- !ue &a% un cam#io de conte3to para evitar !ue un proceso entre a memoria de otro proceso por error. Se puede ca$cu$ar e$ tiempo efectivo de acceso a memoria ,EAT." de $a siguiente manera:

EATN,&itRratio.P,tiempoRaccesoRmemoriaOtiempoR#us!uedaRt$#.O ,5=&itRratio.P,9PtiempoRaccesoRmemoriaOtiempoR#us!uedaRt$#. 4on esta formu$a" se puede ca$cu$ar $a efectividad de $a T/1 en funcion de$ &it ratio o#tenido en e$ sistema. Proteccion de memoria Para proteger $a memoria se puede inc$uir un va$or dentro de $a ta#$a de pagina !ue indi!ue si esa pagina es va$ida o no. Si se intenta rea$i-ar un acceso a una pagina no va$ida" se genera un trap. Tam#ien puede uti$i-arse un mecanismo simi$ar para definir paginas de so$o $ectura ,por e emp$o para contener codigo. % paginas de $ectura=escritura. Estructura de $a ta#$a de paginas En un sistema de ;9 #its con paginas de <Q1" $a ta#$a de paginas tiene un mi$$on de entradas" $o !ue imp$ica !ue cada ta#$a de paginas ocuparia < M1 ,suponiendo !ue cada entrada ocupa < #%tes.. De ese mi$$on de entradas no se uti$i-an todas en todo momento" mas #ien $o contrario. Es necesario entonces uti$i-ar a$guna manera mas eficiente de guardar $a ta#$a" para no desperdiciar tanta memoria. /as so$uciones propuestas son: Jerar!uica: /a idea es paginar $a ta#$a de paginas ,^.. Mas concretamente" se divide $a ta#$a en ta#$as mas pe!uenias" !ue contienen $a informacion de un rango de paginas. Se agrega tam#ien una ta#$a !ue indica donde se encuentra $a ta#$a para cada rango. Entonces" se crean so$amente $as ta#$as correspondientes a $os rangos !ue estan siendo uti$i-ados" evitando ocupar toda $a memoria necesaria si se guardara toda $a ta#$a. Se puede genera$i-ar esta idea usando cua$!uier cantidad de nive$es. Agregando nive$es se puede a&orrar mas memoria" pero aumenta e$ tiempo necesario para reso$ver $a direccion fisica de una direccion $ogica" %a !ue se de#en &acer tantos accesos a memoria como nive$es e3istan. 2as&: Se imp$ementa un &as& a#ierto ,con $istas para reso$ver $as co$isiones. en e$ !ue se guardan $as entradas correspondientes a $as paginas va$idas. Ta#$a invertida: En $ugar de tener una ta#$a por proceso indi-ada por e$ numero de pagina" se tiene una unica ta#$a g$o#a$ indi-ada por numero de frame. 4uando un proceso intenta acceder a una pagina" #usca entrada correspondiente a ese proceso % esa pagina en $a ta#$a. ,Aumenta muc&o e$ tiempo de #us!ueda" pero a$ tener una unica ta#$a disminu%e muc&o e$ espacio en memoria uti$i-ado.. 4ompartimiento A$ uti$i-ar frames" se simp$ifica e$ compartir memoria entre procesos. Para &acer$o" se &ace !ue $as ta#$as de paginas de distintos procesos apunten a una misma direccion fisica. De esta manera se puede compartir tanto codigo como datos" aumentando $a eficiencia de$ uso de $a memoria. Aragmentacion interna /a paginacion tiene $a desventa a de generar fragmentacion interna. Esto sucede cuando un proceso re!uiere un tamanio de memoria !ue no es mu$tip$o de$ tamanio de pagina de$ sistema" %a !ue $as paginas se asignan enteras ,no se puede dar (media) pagina a un proceso.. Por e emp$o" si e$ tamanio de pagina es < M1 % un proceso re!uiere > M1" se de#eran asignar 9 paginas" desaprovec&ando ; M1 de memoria. Asignacion de memoria

En este sistema $a asignacion de memoria es senci$$a % rapida. Se mantiene un arreg$o de #its con $a informacion de si un frame esta siendo uti$i-ado o no. Para asignar memoria a un proceso se #uscan frames $i#res en e$ arreg$o % son asignados individua$mente. Segmentacion En este sistema se asignan segmentos de memoria contigua a $os procesos" $o !ue se corresponde mas con $a vision de memoria !ue tiene e$ usuario. 4ada segmento tiene un numero % un $argo asociado. /as direcciones se componen de$ numero de segmento % e$ offset dentro de este segmento" !ue de#e ser menor a$ $argo de este. E$ soporte en &ar'are se imp$ementa medinante una ta#$a !ue contiene" para cada segmento" $a direccion #ase de$ segmento" % e$ $argo de$ mismo. De manera simi$ar a $a paginacion" $a ta#$a se guarda en memoria principa$ % se guarda un puntero a esta en un registro. /a proteccion de memoria se imp$ementa asignando permisos so#re $os segmentos" !ue son guardados en $a ta#$a de segmentos % e$ &ard'are contro$a a$ momento de acceder a$ segmento. /a segmantacion" de manera simi$ar a $a mu$tiprogramacion con particiones varia#$es" sufre de fragmentacion e3terna. En $a segmentacion compartir memoria es mas simp$e" %a !ue se comparte todo un segmento como una unidad" mientras !ue a$ compartir paginas se de#e compartir cada pagina por separado. En este caso $a asignacion de memoria es mas comp$icada %a !ue es necesario #uscar un espacio de memoria $o suficientemente grande para a$macenar e$ segmento pedido. Es posi#$e com#inar Paginacion con Segmentacion para potenciar $as venta as de cada uno de $os sistemas. Una ar!uitectura !ue imp$ementa esta so$ucion es $a ar!uitectura Inte$. Memoria Virtua$ ,Asumo en esta parte !ue e$ sistema usa paginacion" asi esta en e$ $i#ro" no se si &a% maneras de tener memoria vitua$ en sistemas sin paginacion. /a memoria virtua$ es e$ mecanismo descripto antes por e$ !ue un proceso tiene $a (i$usion) de !ue $a memoria es un arreg$o uniforme de #%tes !ue puede acceder en cua$!uier momento" % cu%o tamanio puede ser ma%or a $a capacidad fisica de $a memoria de$ sistema. Para imp$ementar esto se usa un sistema de paginacion #a o demanda. /a idea es !ue cuando un proceso es iniciado no toda $a memoria de este se encuentra en memoria" sino !ue $as paginas se van cargando a medida !ue e$ proceso &ace referencia a pa$a#ras contenidas en e$$as. ,Esta imp$ementacion es denominada ($a-% s'apper).. A su ve-" e$ sistema posee en a$macenamiento secundario una region reservada para ser usada como memoria s'ap" !ue permite guardar mas datos !ue $os disponi#$es en $a memoria RAM. En paginacion se imp$ementa#a un sistema en !ue $a ta#$a de paginas poseia un campo indicando si esa pagina era va$ida o no" en cu%o caso se producia un trap a$ sistema operativo !ue a#orta#a e$ programa por &acer un acceso no autori-ado a memoria. Este mecanismo es a&ora comp$etado" % e$ sistema no a#orta directamente e$ proceso" sino !ue cuando reci#e un trap de !ue una pagina era inva$ida" se fi a cua$ es $a ra-on de esta situacion. Kue no sea va$ida imp$ica !ue no esta en memoria" pero esto puede ser por!ue e$ proceso no tiene acceso a esa pagina ,a&i tira un segmentation fau$t % a#orta e$ proceso. o por!ue $a pagina se encuentra actua$mente en s'ap" % de#e ser cargada en RAM para continuar $a e ecucion de$ proceso ,en este caso carga $a pagina a a$gun frame % sigue como si nada.. Para imp$ementar e$ $a-% s'apper" $a memoria virtua$ de un proceso es inicia$i-ada con todas sus paginas como inva$idas. Entonces" cada acceso a memoria producira un trap !ue imp$icara !ue $a pagina invo$ucrada sea cargada a a$gun frame en $a memoria RAM. Para cargar una nueva pagina en memoria e$ sistema de#e seguir $os siguientes pasos: 5. Encontrar un frame $i#re ,o e$egir uno para ser reemp$a-ado. 9. Mandar$e a$ disco e$ pedido de $ectura de $a pagina contenida en e$

;. 4opiar e$ resu$tado de $a operaci@n 9 en e$ resu$tado de $a operaci@n 5 <. Marcar $a pagina como va$ida en $a ta#$a de$ proceso >. Reumir e$ proceso en $a instrucci@n donde &a#ia de ado Mientras se espera e$ resu$tado de$ disco duro $a 4PU puede ser asignada a e ecutar otros procesos. En este caso se aumenta $a cantidad de pasos %a !ue &a% !ue considerar $os cam#ios de conte3to invo$ucrados. Estudio de $a performance de $a memoria virtua$ E$ mecanismo de paginacion por demanda puede tener un gran impacto so#re $a eficiencia de$ sistema. Para ca$cu$ar e$ tiempo medio !ue demora en ser atendida una operaci@n so#re $a memoria se uti$i-a $a formu$a: EATN,5=p.Pma O pPTPRA Donde p es $a pro#a#i$idad de !ue ocurra un page fau$t" ma es e$ tiempo medio de acceso a $a memoria RAM" % TPRA es e$ tiempo medio !ue demora en atenderse un page fau$t. A$goritmos de reemp$a-o Si no &a% frames $i#res donde guardar $a pagina !ue estamos recuperando de$ a$macenamiento secundario" entonces de#emos e$egir un frame para sacar$e $o !ue tiene actua$mente % reemp$a-ar$o con e$ contenido de $a pagina a cargar ,E$ contenido actua$ de ese frame es preservado en memoria s'ap" % $a ta#$a de pagina de$ proceso !ue poseia ese frame es actua$i-ada para ref$e ar e$ cam#io.. Si e$ frame !ue aca#amos de pasar a s'ap $$ega a ser referenciado" necesitaremos cargar$o de nuevo a memoria. /os a$goritmos para se$eccionar e$ pro3imo frame a reemp$a-ar son: AIAO. /os frames son puestos en una co$a cuando son asignados" % en caso de no &a#er mas frames $i#res e$ sistema e$ sistema e$ige como victima a$ primer frame en $a co$a. Es faci$ de imp$ementar" pero no es #ueno %a !ue capa- !ue e$ frame e$egido es mu% (vie o) pero es usado continuamente por su duenio" por $o !ue dentro de poco va a tener !ue ser cargado de nuevo en memoria. Ademas" este a$goritmo sufre de una fa$$a denominada anoma$ia de 1e$ad%" !ue es !ue $a cantida de page fau$t aumenta a$ e3istir mas frames en e$ sistema. Second 4&ance. En $a ta#$a de pagina se inc$u%e un #it !ue es seteado en 5 cada ve- !ue se rea$i-a un acceso so#re esa pagina. 4uando se va a reemp$a-ar un frame" e$ sistema &ace $o mismo !ue en e$ caso AIAO" pero verifica e$ va$or de$ #it. Si este es 7 rea$i-a e$ cam#io" si es 5 $o setea en 7 % $o envia a$ fin de $a $ista Optima$. Es un a$goritmo !ue se prue#a !ue es e$ optimo para reso$ver e$ pro#$ema. Pero para variar" es imposi#$e de imp$ementar. /a idea seria reemp$a-ar e$ frame !ue no se va a uti$i-ar por mas tiempo. 4omo no se sa#e de antemano cuando se va a acceder a a$gun frame" esto es imposi#$e. Cot Recent$% Used. A $os #its se $es asigna dos #its" uno de referencia % otro de modificacion. E$ de referencia se activa cuando a$guien $ee a$go de$ frame" % e$ de modificacion se activa cuando a$guien escri#e a$go en e$ frame. Estos #its son seteados en 7 periodicamente por una interrupcion. 4uando &a% !ue reemp$a-ar un frame &a% < cases de frames en e$ sistema: Co referenciado" no modificado Co referenciado" modificado referenciado" no modificado referenciado" modificado Se reemp$a-a un frame a$ a-ar de $a c$ase mas #a a !ue no este vacia. Es senci$$o de

imp$ementar" pero re!uiere !ue e$ &ard'are actua$ice $os #its de referencia % modificacion /east Recent$% Used. Este a$goritmo se acerca muc&o a$ optimo. /a idea es !ue cada frame tiene en $a ta#$a de pagina un registro de$ tiempo en !ue fue accedido por u$tima ve-" !ue es actua$i-ado por e$ &ard'are. Se reemp$a-a e$ frame !ue &ace mas tiempo !ue no se accede. Este a$goritmo no es mu% usado por!ue re!uiere &ard'are mu% especia$i-ado.

Estrategias de asignacion de frames En un sistema e3isten muc&os procesos usando memoria" $os cua$es ademas pediran % $i#eraran memoria. Si e$ sistema no imp$ementa un a$goritmo de asignacion de memoria e!uitativo para todos $os procesos e$ sistema puede co$apsar si un proceso pide demasiada memoria. Una primera so$ucion es asignar a todos $os procesos $a misma cantidad de memoria" pero esto es ineficiente por!ue $as necesidades de memoria de un proceso son mu% distintas a $as necesidades de otro proceso. /a idea entonces es ponderar $a memoria !ue se va a otorgar a un proceso seg+n $a cantidad de memoria virtua$ !ue este esta usando. 4uando se #usca un frame para reemp$a-ar" e$ sistema puede o #ien #uscar en todos $os frames de$ sistema ,g$o#a$ rep$acement. o so$amente a!ue$$os frames !ue %a estan asignados a$ proceso ,$oca$ rep$acement.. Si se #usca g$o#a$mente" $a cantidad de frames asignados a un proceso varia respecto a$ tiempo. Ademas" como un proceso $e puede sacar frames a otro" e$ segundo proceso puede empe-ar a e ecutar mas $entamente como consecuencia. E$ reemp$a-o $oca$" por su parte" independi-a $os fa$$os de pagina entre $os procesos" pero mantiene frames poco usados en memoria" ra-on por $a cua$ e$ reemp$a-o g$o#a$ es mas uti$i-ado. 2iperpaginacion /a cantidad de frames !ue posee un proceso es administrada por e$ sistema" si un proceso tiene mas paginas activas !ue $as !ue $as frames asignadas por e$ sistema" e$ proceso tendra un a$to porcenta e de page fau$ts. Si un proceso pasa mas tiempo paginando !ue e ecutando se dice !ue esta sufriendo de 2iperpaginacion ,T&ras&ing.. /a &iperpaginacion afecta muc&isimo $a performance. /a mu$tiprogramacion aumenta e$ uso de $a 4PU" pero si se aumenta muc&o $a mu$tiprogramacion" $os procesos pasan a sufrir 2iperpaginacion" por $o !ue pasan mas tiempo esperando a !ue e$ disco $ea sus datos de s'ap !ue e ecutando" $o !ue termina en !ue $a 4PU es uti$i-ada poco. Para atacar e$ pro#$ema de $a &iperpaginacion" se propone e$ mode$o de$ Eor0ing Set. /a idea es !ue cada proceso en un periodo de tiempo tra#a a con un 'or0ing set" es decir" un con unto de paginas ,$$amadas activas.. Si este con unto puede ser co$ocado en memoria entonces no se sufrira &iperpaginacion. A medida !ue pasa e$ tiempo e$ con unto de paginas activas cam#ia" pero $o importante es !ue siempre e3iste ese con unto en periodos de tiempo re$ativamente cortos. Para tener un apro3imacion de$ 'or0ing set se guardan $as paginas accedidas en un $apso definido de tiempo. Si este $apso es pe!uenio" no se $ogra captar $a idea de cua$ es e$ con unto siendo uti$i-ado" pero si es mu% grande e$ con unto pasa a ser e$ con unto de todas $as paginas accedidas por e$ proceso en su &istoria. Una ve- !ue se sa#e e$ tamanio de$ 'or0ing set de cada proceso" si se suman todos podemos o#tener $a cantidad de frames necesarias en e$ sistema para evitar e$ t&ras&ing. Si esta cantidad es menor a $a cantidad de frames disponi#$es en memoria principa$" entonces e$ sistema de#e suspender procesos % despertar$os una ve- !ue se $i#eren frames como para dar$es a todos $o necesario. ESTRU4TURA DE /OS DISPOSITIVOS MASIVOS DE DATOS E$ sistema operativo es e$ responsa#$e de uti$i-ar e$ &ard'are de manera eficiente. Ap$icado a$ disco" se de#e intentar aprovec&ar a$ ma3imo e$ anc&o de #anda de$ disco. Por esta ra-on" e$ p$anificador de disco se torna importante. E$ tiempo !ue $$eva acceder a un dato en e$ disco tiene dos

componentes importantes. E$ tiempo de posicionamiento ,see0." !ue es e$ !ue demora e$ ca#e-a$ de$ disco en $$egar a $a posicion en $a !ue de#e $eer" % e$ tiempo correspondiente a $a $atencia de rotacion ,rotationa$ $atenc%." !ue es e$ tiempo !ue e$ ca#e-a$ de#e esperar en esa posicion &asta !ue e$ disco gire &asta donde esta e$ dato deseado. /a idea de$ p$anificador es minimi-ar $a suma de estos tiempos" para &acer$o se intenta minimi-ar e$ tiempo de posicionamiento. /os a$goritmos dados en e$ curso son: A4AS. Co optimi-a nada" so$amente manda $os pedidos a$ disco en e$ orden en !ue van $$egando. Es mu% ineficiente" %a !ue para a$gunas com#inaciones de pedidos $a ca#e-a de#e recorrer muc&os ci$indros de$ disco para comp$etar e$ pedido ,si mandas $eer a$ternadamente dos ci$indros !ue se encuentran mu% separados e$ tipo se pasa $a ma%oria de$ tiempo moviendo e$ ca#e-a$.. SSTA. S&ortest See0 Time Airst. /a idea es optimi-ar e$ acceso &aciendo !ue $os movimientos de$ ca#e-a$ sean minimos. Dado un con unto de pedidos" se atiende a!ue$ !ue imp$i!ue un see0 time menor. Es me or !ue e$ anterior" pero no perfecto. ,4apa- !ue es por!ue eva$ua optimos $oca$es" pero no se. S4AC M 4=S4AC. En e$ a$goritmo S4AC" e$ #ra-o se posiciona en e$ principio de$ disco" % se va moviendo &acia e$ fin. En ese camino va $e%endo $os pedidos a medida !ue $$ega a$ ci$indro correspondiente. A$ fina$ rea$i-a e$ camino inverso" de nuevo $e%endo $os datos !ue correspondientes a $os ci$indros por $os !ue va pasando. E$ a$goritmo S4AC es igua$" sa$vo !ue cuando $$ega a$ fina$ de$ disco vue$ve a$ principio sin $eer ningun dato en e$ camino. /OOQ. Es parecido a 4=S4AC" so$o !ue en $ugar de arrancar siempre para e$ mismo sentido arranca para e$ sentido donde &a%a pedidos. SSTA % /OOQ son $os a$goritmos mas uti$i-ados. S4AC % 4=S4AC esta compro#ado !ue funcionan mu% #ien en am#ientes donde se usa muc&o e$ disco. Estructuras RAID RAID es una tecnica uti$i-ada para me orar $a confia#i$idad % $a ve$ocidad de acceso a datos de un sistema. E$ concepto centra$ es $a redundancia de informacion en distintos discos. Esta redundancia puede $ograrse imp$ementando una so$ucion en !ue se tienen dos discos identicos" o uti$i-ando discos para guardar #its de contro$ para detectar % corregir errores en $os otros discos. E$ tiempo de respuesta es me orado por $a distri#ucion de $os datos en $os discos" % $a posi#i$idad de rea$i-ar $ecturas %8o escrituras en para$e$o en $os discos. /as configuraciones RAID se orientan en este sentido. Se definen varios nive$es de RAID" !ue son: RAID=7. /a informacion puede ser stripped ,dividida en. varios discos" pero no se provee ninguna redundancia" por $o !ue $a fa$$a de un disco provoca $a perdida de $a informacion contenida en e$. RAID=5. /a informacion puede estar en varios discos" pero ademas cada uno de estos discos esta espe ado en otro disco" de manera !ue si se pierde $a informacion de un disco esta puede ser accedida a traves de su (geme$o). RAID=9. En este caso" $a redundancia se efectua agragando discos !ue guardan #its de codigos correctores de errores como $os !ue pueden ser usados en $a memoria RAM ,a$go de$ esti$o de $os codigos de 2amming.. Si un disco fa$$a su informacion puede ser restaurada usando e$ codigo corrector de errores. RAID=;. En este caso se agrega un unico disco e3tra para contener $a paridad de $os #its contenidos en $os otros discos. Un disco puede informar cuando un #$o!ue esta defectuoso" por $o !ue si se sa#e !ue $a paridad fue incorrecta para un #it" se sa#e !ue e$ #it !ue ocasiono e$ error es e$ conenido en e$ #$o!ue defectuoso. Esta configuracion es tan potente como $a RAID=

9" pero es muc&o mas #arata por $o !ue es mas uti$i-ada. RAID=<. /os #$o!ues son escritos distri#uidamente en $os discos" % se mantiene un disco para guardar $a paridad de $os #$o!ues guardados en $os discos" para poder recuperar$os si &a% errores. RAID=>. Es $o mismo !ue e$ <" so$o !ue $a paridad no esta guardada en un disco especia$ sino !ue esta distri#uida entre $os discos. RAID=B. En este nive$ se agrega mas informacion redudante de manera de estar cu#ierto contra fa$$as simu$taneas de mas de un disco. Se ap$ican codigos de Reed=So$omon. RAID 7O5. Es una com#inacion de $os nive$es 7 % 5. En eficiente % confia#$e" pero es mu% cara" por!ue re!uiere aumentar muc&o $a cantidad de discos. Se tienen dos con untos de discos funcionando en modo RAID=7" espe ados entre e$$os. RAID 5O7. Es otra configuracion de $os nive$es 7 % 5. En este caso" se tienen C discos espe ados de a pares ,RAID=5." !ue se incorporan ,como si fueran un unico disco $ogico. en una configuracion RAID=7

Sistemas de arc&ivos /os dispositivos masivos de $a parte anterior permiten a$macenar informacion de forma no vo$ati$. E$ sistema operativo" a#strae $as propiedades fisicas de $os distintos dispositivos % presenta a usuario una unidad uniforme de a$macenamiento" e$ archivo. E$ sistema se ocupa de traducir $os arc&ivos a $a forma en !ue son a$macenados en $os dispositivos masivos. /os arc&ivos poseen atri#utos" como: Com#re ,una manera de dar a $os usuarios una manera faci$ de identificar a $os arc&ivos. Pueden estar dup$icados si e$ sistema de arc&ivos soporta directorios." Identificador ,!ue identifica a$ arc&ivo de forma unica dentro de todo e$ sistema de arc&ivos." tipo ,e ecuta#$e" datos" etc." u#icaci@n ,puntero a $a u#icaci@n donde se encuentra e$ arc&ivo en disco." tamanio ,en #%tes o cantidad de #$o!ues." proteccion ,Indica como puede ser uti$i-ado e$ arc&ivo por $os distintos usuarios." informacion de conteo ,fec&a de creacion" u$timo acceso" etc.. E$ sistema provee servicios para $a manipu$acion de arc&ivos: A#rir % crear: Se provee una manera de crear nuevos arc&ivos" % (entrar) a estos para $eer o modificar su contenido. Escri#ir: Para escri#ir en e$ arc&ivo. /eer: Para $eer desde e$ arc&ivo. Reposicionar dentro de$ arc&ivo: Para cam#iar $a posicion donde se $ee o escri#e en e$ arc&ivo. E$iminar: Para !uitar e$ arc&ivo de$ sistema. Truncar: Para vaciar e$ arc&ivo sin #orrar$o de$ sistema. Por $o genera$" e$ sistema mantiene una ta#$a con $os arc&ivos a#iertos por $os procesos. Estos a#ren procesos cuando desean &acer operaciones so#re e$$os" % cierran e$ arc&ivo antes de terminar su e ecucion. Un arc&ivo a#ierto imp$ica !ue e$ sistema de#e maneter informacion so#re esta apertura ,por $o menos de#e ser guardado e$ file pointer" puntero en donde se escri#ira o $eera de$ arc&ivo.. Ademas" e$ sistema puede guardar $a informacion de cuantos arc&ivos &a% a#iertos ,en tota$ % por proceso." cuantos procesos tienen a#ierto un arc&ivo particu$ar" u#icaci@n de$ arc&ivo dentro de$ dispositivo de a$macenamiento" % derec&os de acceso. En a$gunos sistemas" se proveen maneras de mutuoe3c$uir e$ acceso a $os arc&ivos" de manera !ue un so$o proceso sea capa- de manipu$ar cada arc&ivo por ve-. Muc&os sistemas mapean e$ contenido de$ arc&ivo en e$ espacio de memoria de un proceso" de manera de no tener !ue usar operaciones especia$es para tra#a ar con e$$os sino !ue es suficiente modificar e$ contenido de $a memoria correspondiente. Esto tiene e$ #eneficio de evitar $$amadas a$ sistema para modificar e$ arc&ivo.

E3isten varias maneras de acceder a $os arc&ivos: Secuencia$: /a informacion es accedida en orden" cada ve- !ue se $ee a$go se incrementa e$ file pointer. ,Se corresponde con $a manera de acceder $os arc&ivos en una cinta.. Directo: Es posi#$e $eer % escri#ir en cua$!uier posicion de$ arc&ivo en cua$!uier momento. ,Se corresponde con $a manera de acceder a un disco" !ue puede acceder a $ugares distintos en cua$!uier momento..

Directorios En $os sistemas de acr&ivos genera$mente $os arc&ivos se encuentran agrupados dentro de directorios" $os !ue permiten a $os usuarios tener una organi-aci@n $ogica de$ sistema. /as operaciones so#re directorios son: 1uscar: Para #uscar arc&ivos dentro de $os sirectorios. 4rear un arc&ivo: Para crear un arc&ivo dentro de$ directorio. E$iminar: Para e$iminar un arc&ivo de un directorio. /istar: Para $istar todos $os arc&ivos contenidos en e$ directorio. Renom#rar un arc&ivo: 4am#iar e$ nom#re de un arc&ivo dentro de un directorio. Permitir $a navegacion: Operaciones para permitir $a navegacion entre $os directorios de$ sistema de arc&ivos. /os sistemas mas senci$$os soportan un unico nive$ de directorios. 4uando $os sistemas se van agrandando esto resu$ta poco practico %a !ue " por e emp$o" es imposi#$e tener dos arc&ivos con e$ mismo nom#re dentro de un directorio. Sistemas mas comp$e os permiten tener estructuras ar#orecentes para a$macenar $os directorios. /a manera de $ograr esto es &aciendo !ue $os directorios puedan contener arc&ivos de (tipo directorio)" % asi recursivamente. Se denomina ruta a#so$uta ,pat&. de un arc&ivo a$ camino desde $a rai- de$ ar#o$ &asta e$ arc&ivo. Sistemas aun mas avan-ados permiten estructuras con forma de grafo para representar $os directorios % $os arc&ivos. Esto se $ogra mediante $a imp$ementacion de soft $in0s % &ard $in0s. /os soft $in0s son una manera de inc$uir en$aces sim#o$icos a una ruta dentro de otro directorio. /os &ard $in0s permiten !ue un arc&ivo se encuentre simu$taneamente en mas de un directorio. Proteccion de arc&ivos En sistemas mu$tiusuario" es necesario inc$uir funciones para proteger e$ acceso de $os usuarios a $os arc&ivos. En muc&os sistemas $os usuarios pueden c$asificarse en grupos seg+n e$ ro$ !ue tienen en e$ sistema ,eventua$mente un usuario puede pertenecer a mas de un perfi$.. Es posi#$e definir permisos so#re un arc&ivo a nive$ de usuarios %8o a nive$ de grupos. /os permisos mas comunes son $eer" escri#ir" e ecutar" $istar" e$iminar. Imp$ementacion de un sistema de arc&ivos /a imp$ementacion de#e preocuparse de dos cosas: 4ua$ sera $a interfa- para !ue un usuario pueda acceder a$ sistema de arc&ivos" % cua$es seran $os a$goritmos % estructuras de datos usadas para representar $os arc&ivos % directorios. /a imp$ementacion de $os sistemas de arc&ivos se rea$i-a en capas /os dispositivos fisicos proveen $a siguietne estructura: 1$o!ue de contro$ para e$ #oot ,#oot contro$ #$oc0.: 4ontiene $a informacion necesaria para

#ootear e$ sistema operativo. 1$o!ue de contro$ de $a particion ,partition contro$ #$oc0.: 4ontiene $a cantidad de particiones en e$ disco" $os #$o!ues uti$i-ados % $i#res" etc. Estructura de directorios: 4ontiene $a informacion de $os directorios para organi-ar $os arc&ivos 1$o!ue de contro$ de$ arc&ivo: 4ontienen $a informacion de $os arc&ivos contenidos en e$ sistema. Este #$o!ue contiene: /os permisos de$ arc&ivo Aec&as ,creacion" modificacion" u$timo acceso. usuario propietario" grupo propietario tamanio #$o!ues de datos asignados a$ arc&ivo E$ sistema mantiene en memoria: /a ta#$a de particiones de $os sistemas de arc&ivos en e$ disco /a estructura de directorios de $os directorios accedidos recientemente Ai$e descriptors de $os arc&ivos a#iertos en e$ sistema Ai$e descriptors a#iertos por un proceso especifico

Sistema de arc&ivos virtua$ Es comun !ue un mismo sistema acceda a varios sistemas de arc&ivos" con imp$ementaciones distintas. Se uti$i-an tecnicas orientadas a o# etos para uniformi-ar e$ acceso a $os sistemas. Esto genera una estructura en tres capas: Interfa- de$ sistema de arc&ivos ,!ue provee $as operaciones." Sistema de arc&ivos virtua$ ,Virtua$ Ai$e Server." % $as imp$ementaciones especificas de $os sistemas de arc&ivos. Este sistema provee dos funciona$idades importantes: A#strae $as imp$ementaciones particu$ares % provee una interfa- unica a sistema para acceder a $os arc&ivos. Permite tener #$o!ues de contro$ de arc&ivo virtua$es !ue pueden ser mapeados a arc&ivos $oca$es o a traves de una red. Estructura de $os directorios Para organi-ar $a informacion de $os arc&ivos contenidos en un directorio e3isten varias a$ternativas: /ista encadenada ,cada nodo guarda e$ nom#re de$ arc&ivo % e$ puntero a$ #$o!ue de contro$ de$ arc&ivo.. /as #a as % #us!uedas se rea$i-an en tiempo $inea$. 2as& a#ierto ,con c$ave igua$ a$ nom#re de$ arc&ivo. Metodos de asignacion Para a$ocar $os arc&ivos en e$ disco" e3isten varias maneras: Asignacion continua: Toda $a informacion se encuentra contigua en e$ disco" se guarda $a informacion de donde comien-a e$ arc&ivo % su $argo. Sufre de fragmentacion e3terna" % es ineficiente %a !ue si $os arc&ivos crecen es necesario mover$os a espacios $i#res mas grandes. Para evitar esto se asignan espacios mas grandes para minimi-ar este pro#$ema. Asignacion en forma de $ista: /os #$o!ues forman una $ista encadenada. Es necesario guardar punteros a$ primer % u$timo #$o!ue. Co sufre fragmentacion e3terna. E$ acceso a $os #$o!ues es $inea$" % en cada #$o!ue se mantiene $a informacion de$ #$o!ue siguiente. /a perdida de $a informacion de un #$o!ue provoca $a perdida de $a informacion de todos $os #$o!ues sucesores. E : AAT. Se crea una ta#$a a$ inicio de $a particion con $a informacion" para cada #$o!ue" de cua$ es e$ #$o!ue siguiente en $a $ista. Asignacion inde3ada: Se mantiene una ta#$a indicando $a posicion de todos $os #$o!ues

uti$i-ados por e$ arc&ivo. Esta ta#$a ocupa $ugar" por $o !ue se intenta minimi-ar$a" aun!ue esta minimi-acion imp$ica $a $imitacion de $a cantidad de #$o!ues usados por un arc&ivo. Una posi#i$idad es tener inde3acion con varios nive$es" donde una referencia puede ser referida directamente a un #$o!ue de$ arc&ivo o a un nuevo #$o!ue de inde3acion. Administracion de$ espacio $i#re Es necesario !ue e$ sistema sepa donde esta e$ espacio $i#re de$ sistema. Para esto &a% a$ternativas: Vector de #its ,un #it por #$o!ue" 5 ocupado 7 $i#re o viceversa. /ista de #$o!ues $i#res: /ista encadenada con $os #$o!ues $i#res en e$ disco Agrupacion: /ista encadenada con $as regiones contiguas de disco $i#res ,uno o mas #$o!ues.. 4onteo: Se mantiene una $ista de #$o!ues !ue indica cuantos #$o!ues a partir de este estan $i#res. ECTRADA8SA/IDA Una de a$s tareas fundamenta$es de$ sistema operativo es contro$ar $as operaciones so#re $os dispositivos de E8S. E$ nuc$eo de$ sistema es estructurado para aceptar modu$os para tratar con $os distintos dispositivos. Estos modu$os" $os device drivers proporcionan una manera uniforme de acceder a $os dispositivos. /os dispositivos se comunican con $a computadora a traves de puertos" $os !ue usua$mente tienen un con unto de registros para este fin. Si muc&os dispositivos igua$es se !uieren comunicar con $a computadora entonces $o &acen mediante un #us" un con unto de ca#$es con reg$as ,un protoco$o. de como de#en ser usados para comunicar $as distintas partes. /os dispositivos tienen contro$adores" !ue son c&ips e$ectronicos !ue tienen imp$ementada parte de $a $ogica de como funciona e$ dispositivo" por $o !ue su comp$e idad depende de !ue dispositivo tenga !ue contro$ar. /a comunicaci@n entre $a 4PU % $os dispositivos se puede dar de varias maneras. Una de e$$as es $a incorporacion de instrucciones especificas para este fin ,$as instrucciones envian senia$es apropiadas a $os puertos de E8S correspondientes." % otra es $a definicion de a$gunas posiciones de memoria % rea$i-ar $a comunicaci@n a traves de estas direcciones ,$os registros de $os dispositivos son mapeados a $a memoria principa$.. Un puerto de E8S genera$mente consta de $os siguientes registros: Estado ,indica e$ estado de$ dispositivo ,$isto" rea$i-ando operaciones" operaciones terminadas" etc." e$ sistema so$o puede $eer este registro." 4ontro$ ,Es escrito por e$ sistema operativo para enviar comandos a$ dispositivo." Datos de entrada ,son $eidos por e$ sistema para o#tener $a entrada." datos de sa$ida ,son escritos por e$ sistema para enviar sa$ida a$ dispositivo. Una operaci@n de entrada8sa$ida puede ser rea$i-ada de varias maneras" so#re todo $a parte re$acionada a $a espera &asta !ue $a operaci@n es terminada. Una a$ternativa es $a E8S programada" en $a !ue e$ procesador se !ueda &aciendo #us%='aiting &asta !ue $$ega e$ resut$ado" otra es E8S #asada en interrupciones" en $a !ue $a 4PU es destinada a otros tra#a os &asta !ue e$ dispositivo termina % interrumpe a$ procesador para !ue atienda su pedido" % $a u$tima es $a #asada en DMA" en !ue e$ sistema envia e$ pedido a$ dispositivo % $uego asigna $a 4PU a otras tareas. Mientras tanto" e$ dispositivo va cargando en memoria principa$ e$ resu$tado de $a operaci@n" e interrumpe a$ procesador cuando termina $a transferencia. ,E3iste un componente de &ard'are" $$amado contro$ador DMA" !ue se ocupa de esto. Esto es uti$ en dispositivos !ue &acen grandes transferencias de datos. En $os u$timos dos casos es necesario escri#ir rutinas de atencion de $a interrupcion para atender $as interrupciones !ue indican !ue $os dispositivos terminaron" % &acer $o !ue corresponda con e$ proceso !ue pidio $a E8S. E$ sistema ofrece estructuras e interfaces apropiadas para comunicarse con $a E8S. 4on esto se a#strae e$ &ard'are de$ sistema % se generan capas en e$ soft'are.

/a transferencia puede darse de a #$o!ues ,grandes vo$umentes de datos. o de a caracteres ,vo$umenes de datos pe!uenios.. /as operaciones pueden ser #$o!ueantes" en cu%o caso cuando un proceso pide a$go se #$o!uea &asta !ue se termina de atender $a operaci@n" o no #$o!ueantes" en $as !ue e$ proceso puede continuar su e ecucion mientras se rea$i-a e$ pedido. /as operaciones ademas pueden ser sincronicas o asincronicas. En e$ primer caso es una operaci@n #$o!ueante" % e$ proceso !ueda esperando a !ue termine $a operaci@n" en e$ segundo caso $a operaci@n es e ecutada en para$e$o % cuando termina una senia$ es enviada a$ proceso para indicar$e esto. Son difici$es de uti$i-ar. E$ nuc$eo de$ sistema operativo provee servicios re$acionados a $a E8S" estos estan re$acionados a $as siguientes operaciones: P$anificacion de E8S" 1uffering" 4ac&ing" Spoo$ing" % Mane o de Errores. P$anificacion de E8S /os pedidos !ue $$egan para un dispositivo no tienen por!ue $$egar en un orden !ue permita e ecutar$os a todo de forma eficiente. Por esta ra-on" se imp$ementan a$goritmos !ue cuando $$ega un nuevo pedido ordenan de nuevo $os pedidos de manera de $ograr una ma%or eficiencia en e$ uso de$ dispositivo. 1uffering 2a% tres ra-ones para usar #uffering: 5. 2acer de intermediario para dos dispositivos con ve$ocidades distintas. 9. Unificar $a transferencias entre dispositivas !ue transmiten de a #$o!ues con tamanios distintos. ;. Uniformi-ar $as interfaces de$ sistema: En e$ comando 'rite e$ sistema copia de $a memoria de$ proceso a un #uffer interno" independi-andose de $a ap$icaci@n. 4ac&ing Es uti$i-ado para ace$erar e$ acceso a $a informacion" guardando una copia de $os datos en memoria mas rapida !ue $a memoria !ue $o contiene" aun!ue genera e$ pro#$ema de mantener $a consistencia de $a informacion. Spoo$ing Es un #uffer !ue mantiene $a informacion de sa$ida de un dispositivo !ue no se puede interca$ar. Esto sirve para atender pedidos concurrentes sin a$terar e$ orden en !ue sa$en $os pedidos. E$ proceso no se #$o!uea" % e$ sistema envia $a informacion a$ dispositivo cuando $o crea conveniente. ,4aso impresora. Mane o de Errores E$ &ard'are informa a$ sistema operativo si $a u$tima operaci@n tuvo _3ito o no. En caso de !ue no tenga _3ito" e$ sistema puede informar a$ proceso de este error ,en UCIG $a varia#$e errno se ocupa de esto.

Vous aimerez peut-être aussi