You are on page 1of 91
CAPITULO 1 Conceptos basicos 1.1, INTRODUCCION En este primer capitulo del libro se tratan los conceptos basicos necesarios para una perfec- ta comprensién del resto de capitulos. Se define, en primer lugar, el concepto de Sistema Operativo, para pasar luego a una breve resefia hist6rica y a los modos de trabajo que en la actualidad se estan realizando, 1.2, CONCEPTO DE SISTEMA OPERATIVO En primer lugar definimos el elemento fisico en el que se centra toda la actividad informé- a, es decir, la computadora. Todo este componente fisico es denominado cominmente Hardware, Ahora bien, al ser ‘una maquina programable tiene que contar con informacién que le indique cémo utilizar to- das sus unidades fisicas o herrathientas que la componen, conocidas como recursos, para lle- var a cabo el trabajo. Esta informacién es lo que denominamos soporte légico o Software. Una computadora sin software seria una maquina indtil, mientras que con él puede al- ‘macenar, procesar y obtener informacién, editar textos, controlar el ent Un Sistema, Seer ‘0 es un elemento constitutivo de software que’ En Ia actualidad, no resulta sencilla su definicién, de forma que pueden darse varias des- de distintos puntos de vista: 2 Stiemas Operativas La ocultacion de los detalles del hardware a usuarios y parte del personal informatico (Figura 1.1) tiene dos objetivos: © Abstracciin, La tendencia actual del software en toda su extensién es la de dar una visidn global y abstracta de la computadora haciendo facil su uso ocultando por com- pleto la gestion interna. Seguridad. Existen instruceiones en la maquina que pueden parar la computadora, in- terferir procesos, etc. Por ello, es necesario restringir determinadas operaciones a. los usuarios creando varios niveles de privilegio, de tal forma que cada usuario tenga pro- tegida su informacién y sus procesos Disefiador de ~ Disefador | Ce) rowan) Cystine) bs el te a a Figura 1.1. Visién de la mquina por usuarios ¢ informaticos. = Punto de vista ¢GESTORIDERECURSOSD ‘Los recursos fundamentales que administra son (Figura 1.2): — El procesador. — La memoria. — La entrada/salida. — La informacion. Concepias bdsiens 3 Figura 1.2, EI Sistema Operativo como Gestor de Recursos. 1Los sistemas operativos construy' que denominaremo: base de encubrir los realmente existentes jue denominaremo: or tanto, desde el punto de vista del usuario o de un proceso, la méquina fisiea sSerarida por el Sistema Operativo en una maquina virtual, también conocida eomo méque comvetendida, que, @ diferencia de la fisica, ofrece muchas mas funciones y més ebmodas de utilizar (Figura 13). El sistema operativo proporciona, ademés, servicios de los que no dispone el hardware, como pueden ser, por ejemplo, la utizacién de Ja computadora por varios usuarios simul téneamente, interaccién entre usuario y programa en ejecucién al mismo tiempo. ete. Para coneluir, vamos a dar una definicién més académica que las anteriores, basindonos en la definicion previa de los términos SISTEMA y OPERATIVO. onjunto de personas, miquinas y cosas que, ordenadamente relacionadas en- ‘re si, contribuyen a lograr un determinado objetivo. CREP evo, maquinas y cosas que trabajan conjuntamente y consiguen el ob- jetivo deseado. 4 Sinemas Operatios Usuario ——> [ Arlcaion Maguina virtual Figura 1.3. Esquema de la méquina virtual 0 extendida. De las definiciones anteriores podemos obtener la de sistema operativo de la siguiente forma: Como resumen, podemos decir que los sistemas operativos cubren @OSOBeHvOSHUnED Facilitar el trabajo al usuario. Gestionar de forma eficiente los recursos. Ahora bien, no todo el software que se ejecuta sobre el hardware se considera como sis tema operativo. Existen dos tipos de programas que conviene distinguir: Son los que resuelven un problema concreto de los usuarios y is no son suministrados con el sistema pst Sim prams diets r=) 1.3. EVOLUCION DE LOS SISTEMAS OPERATIVOS Los objetivos mencionados anteriormente, facilidad de uso y gestidn eficiente, no son sien pre compatibles. En un principio se dio mas importancia a la gestién eficiente, mientras que hoy en dia se atribuye mas importancia al uso sencillo, Concepws bisicos 5 Para comprender las razones de este cambio de actitud, haremos un breve resumen de In historia de los sistemas operativos. i . Las primeras computadoras En los comienzos de lk historia de las computadoras destacan Howard H. Aiken, que 1944 construy6 la primera computadora electromeciinica MARK-I en la Universidad de Har vard, y John W. Mauchly y J. Presper Eckert Jr., que construyeron en la Universidad d Pennsylvania Ja primera computadora electronica a base de vilvulas de vacio ENIAC ( gura 1.4). Diversos factores, como el gran tamafio de las miquinas, el precio, la dificultad de uso y la escasez de recursos, hacian necesario buscar la forma de rentabilizar aquello de lo que se disponii sola, en [a cual cada usuario, y de uno en uno, tenia asignado un periodo de tiempo durante el que se convertia en dueito absoluto de todo el sistema. En estas primeras computadoras séla cra posible 1o ne 6 Siemas Operator 08s Tiempo de Soo 1 tabojo acceso limitado ‘Computadora ° SSS! ‘ \ sola Impresora Lector de tarjetas is Grants Figura 1.5. Sistema de tiempo asignado. 1.3.2. Accesos por operador Como hemos podido aprecir en el apartado anterior la forma de gestién de una compt- tadora a la que acoeden los usuarios de_uno ei ver este problem: Ina de las soluciones fue ef manejo de la maquina por un especialista en operacio MGOBOD EdD ey tados, ete. EI Figura 1.6). ina segunda solucion mas eficaz. que la primera fue la siguiente: cl operador agrupaba los trabajos con una necesidacl de recursos Lisicos y légicos similares y Ios ejecutaba com: fuesen un bloque. Por ejemplo, si entre todos los trabajos aparecian varios programas e: un mismo lenguaje (FORTRAN 0 COBOL en aquella época), se reunfan uno detras de otro con lo cual se consoguia cargar el compilador una sola vez, obteniéndose un eonsiderabi thorro de tiempo. Concesbasias 7 Compuracora Impresora Lecter de tarjetas Figura 1.6. Sistemas de acceso por operador. 1.3.3. Secuencia automitica de trabajos Analizando el trabajo que desempefiaba un operador, se observé que era bastante mecdnico eps suo en gran parte, con lo que surgié lo qui Se disefio un pequeiio programa que transferia automaticamente el control de un trabajo a otro. Este programa tomé el nombre de(lMonifor|Residenfepque puede ser considerado que, como su nombre indica, permanecia constantemen- te en memoria En el momento de encender la computadora se daba control al programa monitor, éste ‘su vez daa control al primer trabojo y cuando terminaba su ejecucién tomaba el control de nuevo, dando paso al segundo de los trabajos, y asi sucesivamente. El programa monitor contenia las siguientes partes (Figura 1.7) Fl secuenciador automatico de trabajos. El intérprete de las tarjetas de control, (& Controladozss software de entradasada (Driver) Para que el monitor supiera qué programa debfa ejecutar y qué datos iba a tratar, se afi dia al paquete de tarjetas que contenfa el programa y los datos, un conjunto de tarjetas de 8 Stnemas Operatives Mameris Figura 1.7, Programa monitor. ‘control con las indicaciones necesarias para que el monitor controlase la situacién en cade: momento. Esias = se cefian a un sg i estricto de comandos denominado Lengua- iferenc ‘Las tarjetas de control se in del resto por el cardcter perforado en su primera columna (por ejemplo $); este cardcter variaba de un sistema a otro. Ten la Figura 1.8 puede observarse un bloque de tarjetas que representan Vn trabajo con un programa FORTRAN, los datos correspondientes y las tarjetas de control Son a4 | rus FORIRAN Figura 1.8. Tarjetas de control Concentos basics 9 1.3.4. Mejora del rendimiento Una vez resuclto of problema de la automatizacién en la ejecucién de los trabajos, ain que- daba mucho tiempo en el que el procesador se encontrabs ocioso, con la siguiente pérdida econémica, Esta situacidn se debia fundamentalmente a la diferencia de velocidad entre el procesi- dor y los dispositives de entrada/salida, cuyo funcionamiento era prineipalmente meciinico. = Offline ‘on cl paso del tiempo, aparecieron dispositivos de entrada/salida més veloces que se utili- zaron para resolver el problema existente, aunque también aumenté la velocidad y capaci- dad de proceso del procesador. Aparecieron las cintas magnéticas, cuya velocidad era mayor que la de las lectoras de tarjetas, pero el acceso para escribir directamente en elas era complicado, Por ello, se im- 1puso una técnica consistente en perforar los programas en tarjetas, que eran leidas por una lectora de tarjetas y grabadas en una cinta magnética directamente. Esta cinta se pasaba a Ja computadora en bloque para la ejecucidn de los programas, grabsindose los resultados en una nueva cinta. Por tiltimo, la cinta de resultados se volcaba sobre una impresora. Las tres operaciones anteriores se hacian en dispositivos distintos, con lo cual la compu- tadora recibia programas y entregaba resultados a una velocidad considerable. Las aceiones de copiado de tarjetas a cinta y de cinta a impresora, al ser lentas y sepa- rarse del control de fa computadora, permitian a ésta realizar otros trabajos distintos. Este ratamiento es el que se conoce comd @fisiney(Figura 1.9). El proceso antes descrito contaba con algunas dificultades que obligaron a dediear un; pequeiia computadora para la gestion de las copias. Asi surgieron los denominado iD que fucron fa antesala de los actuales sistemas multicomputadoras. Proceso Oring Lector de taretas. Computadora—_Impresora ‘ental Proceso Oftine 2 T oh mi 9) i . off . Ly Lector de tafatas—Unidades de cinta Computadora cenial—-Unidades de cinta ——_mmpresora Figura 1,9. Proceso Ondine y Offline 10 Sistemas Operativas La ventaja principal de este sistema fie que se podian tener varias lectoras de tarjetas roduciendo cintas de entrada, con lo que se mantenia ocupado el procesador la mayor par- te del tiempo. Por otra parte, existia la desventaja de que un usuario tenia que esperar a que se llenara la cinta con otros trabajos para que el suyo fuese transferido a la computadora, En el caso anterior, el proceso de carga de la cinta a la computadora es relativamente lento con respeeto a Ia velocidad interna de proceso; ademas se consume un tiempo adicional de- bido al protocolo o conversacién que se establece entre cl procesador y la unidad de cinta (Figura 1.10) Se repite el proceso hasta tarminar 1 Orden de Lectura qe Orton ce hoetura 5. Se deposita 22 Operaciones de Leorura let dato en memoria 2 Operaciones de Leora, 3 Dato disponible —F 45 Obtene a | = Shtene of daro__, ‘Memoria Unidad de Cima Procesador Figura 1.10. Protocolo Procesador-Cinta. Una forma d ierde en los procesos de carga de las cintas es stiliz donde la cinta va grabando datos hasta que se lena, voledindose éstos en ria-de una vez, y mientras cl procesador realiza operaciones con los datos en paralelo se vuelve a eargar el buffer. A esta forma de trabajé se le denominal (Figura 1.11), Impresora Figura 111. Buffering, Canceptes brisioos AL Es ficil entender que la misién principal de las téenicas de buffering es mantener tanto cl procesador como los dispositivos de entrada/salida ocupados el mayor tiempo posible. Esto se logra solapando la entrada/salida de un trabajo con el proceso del mismo, Las técnicas de bufering son dificiles de aplicar, ya que necesitan un control nray exhaus- tivo de cuando esté leno o no el buffer, y esto s6lo es posible a través de interrupciones. Por otro lado, si el dispositivo de entrada/salida es muy rapido, de tal forma que produce la informacidn en menos tiempo que pueda tratarla el procesador, el buffering no reportaria singund veal por Go apareceron las tcnicas “aso Din Mera DMA, = evitar la intervencidn del procesador en este tipo de operaciones de carga. El buffering suele est far soportado por el unciones especiales 0 dentro de tos controladores de dispositivos (CRATERED como dispositive de almacenamiento masivo de infor macién con acceso directo desaparecié el problema que representaban las cintas magnéti- cas, ya que Sélo podian ser eseritas después de ser leidas por completo, requitiendo ademas un tratamiento secuencial desde su principio hasta su final, mientras que los discos pueden ser c mente y en cualquier punto de su superfici ermiten que lida de un programa se escriba en un buffer y posteriormente sea llevada a un disco mag- nético en espera de poder ser enviada a una impresora o cualquier otro periférico de salida que en ese momento pueda estar ocupado (Figura 1.12). De esta forma, el procesador pue Disco ys SS cu Figura 1.12. Sistema de SPOOL, 12 Sistemas Operatives de estar ejecutando un trabajo mientras se imprimen, por ejemplo, fos resultados de otro pro- ces icra acabado. RN Fe eco una cole de erchivos en ern de oem su turno para ser s cn una cin pestion de esta cola puede ser po ii ee, ual "Pee 6n de la longitud, etc. Fn general, cada dispositivo de entrada/salida tiene su propio sistema de SPOOL. Al igual que en los sistemas de Bullering, el sistema de Spooling trata de mantener ocv. pados al procesador y 1 los dispositivos de entrada/salida el mayor tiempo posible, pero con la diferencia de que ahora se solapan operaciones de entrada/salida de unos trabajos con el proceso de otros. 1.3.5. Multiprogramacién nel fin de aprovechar al maximo los recursos de la computadora, uurgio de la imposibilidad, para los sistemas 0 modos de trabajo anteriores, de que con un solo trabajo se pudiese tener ocupados al procesador y a los dispositivos de entrada/salida durante todo el tiempo (Figura 1.13), Dispositivas de &/S i pt ain 1 Drivers E/S ] lee e Sitma aie 5 crewme | 2 |) Bis = || 4 3 Manian | Lines = Proceseor Figura 1.13, Sistema de multiprogramacién, Concepis bistons 13 Un trabajo realizado en una computadora, desde el punto de vista de ocupacién en tiem po del procesador y los dispositivos periféricos, puede ser de dos tipos (Figura 1.14) po “ Son los que dedican la mayor par- que se manticne inactivo durante grandes perfodos de tiempo. Procaso limitedo por CPU Process limitado por E/S CPU Espera terminacion E/S activa Figura 1.14. Tipos de proceso, El segundo tipo de procesos dio lugar a una nueva téenica denominada multiprograma- cidn, que consiste en aprovechar la inactividad del procesador durante la ejecueién de una peracién de entrada/salida de un proceso, en atender a otro proceso. Desde-el punto de vista de cada proceso, todos estan siendo atendidos por un process dor, que podemos denominar virtual, aunque en realidad todos estin atendidos por el mhis- mo, que conmuta de uno a otro constantemente. Desde el punto de vista del usuario, se considera que los procesos se estin ejecutando en paralelo sin tener en cuenta que en cada momento s6lo se atiende a uno de ellos (Figu- ra L153), Period de inactividad del procesador | I Programe Programa 2 a prom an ——— Figura 1.15. Esquema de monoprogramacién y muktiprogramacién, 14 Sisiemas Operativas Fete sistema trac consigo diversos problemas: © EL acceso al procesador debe seguir algin tipo de reglas © politicas que permitan la gjecucién de todos los trabajos. # Se hace necesario algiin tipo de administracién de la memoria, ya que ésta tiene que set compartida por todos los trabajos. farios trabajos pueden necesitar la utilizacién de un recurso al mismo tiempo, dando lugar a problemas de concurrencia, En los sistemas operatives multiprogramados surge el concepto de planificar el procesa- dor y a partir de ellos comienza una nueva estructura interna de los mismos, apareciendo emme) compuesto de rutinas para la gestién de la memoria central, el pro- cesador, los dispositivos y el resto de recursos disponibles. + Proceso por lote (SMB) gos que van ee fose decked a ono ra en una cola de espera del tipo (primero en ‘rar, primero en ser atendido) y que el procesador va tomando en un grupo determinado (por ejemplo, de cuatro en cuairo), realizindolos en paralelo (Figura 1.16). trabajos Trabajos en ejecucién Figura 1.16. Proceso por lotes. EE as Concepros biskor AS *# Tiempo compartido (Time Sharing) Duco el ineonveniente que tenia la multiprogramacién por lotes de no permitir el didlogo entre el usuario y el pr rollo de los sistemas operativos fue la introduccién de Parecid a la vez que los terminales conversacionales o interactives (teclado-pantala), n Jos que el usuario ya no tenia que suministrar todos los datos al Principio de la ejecucién del proceso, sino que podia ir dndolos a medida que el proceso los tha necesitando, de igual a recibiendo respuesta inmediata a sus datos. este modo de traba nizacién no se realiza Durante estas sesiones se pueden rea- lizar multitud de operacion Por un proceso dentominado intérprete de coman- tls, que manticn el didlogo entre el usuacio y el sistema operative. Fou, Provese puede dar lugar a otros muchos para realizar todas las demandas de noua (Figura 1.17). Figura 1.17. Tiempo compartido, 7 Durante una sesién, el uswario cree tener a su disposicién todos los recursos de la com Putadora, aunque existan otros usuarios con sus sesiones actividadas simulténeamente, Fa estos modos de trabajo, la depuracion de programas que con anteriorded ce realiza- ba con voleados de memoria, ahora se hace de forma inleraerive suspendiendo ln ejecucién el proceso momentineamente mientras se estudia el problema que pueda haber aparecido, Los sistemas de tiempo compartido se caracterizan por: * Ser muy conversacionales. © Atender a varios usuarios simullineamente, ¢ Ditecer tiempos de respuesta relaivamente vortos (segundos) § Mantener una interrogacién secuencial de peticiones de ustarios (polling). * Poseer una fuerte gestion © Utilizar técnica: * Gestionar memoria virtual. 16 Striemuts Operaitvas cae tel ai esta mane ida usuario elige el sistema a aplicar a agg cade la actualidad, y entre ellos podemos citar: di ‘on este tipo de sistemas operativos surgieron una gran cantidad de utilidades para fa- Gilitar el trabajo a los usuarios; entre ellas la mds utilizada fue el editor de texto, que permite generar de forma interactiva cualquier archivo de datos (documento o programa), = Tiempo real (Real Time) El tiempo real es otra modalicad de los sistemas operatives multiprogramados, en que se necesita un tiempo de respuesta pequefio ante cualquier peticién. Suele emplearse en aplicaciones dedicadas a sistemas de control con sensores como ele- mentas de entrada, donde es necesaria una respuesta rapida sobre el sistema a controlar. Po- demos decir que un sistema trabaja en tiempo real si el tiempo de respuesta permite con- trolar y regular al medio sobre el que opera (Figura 1.18) Control Sistema controiado Figura 1.18, Tiempo real Las caracteristicas principales del tiempo real son: ‘© Fuertes restricciones en el tiempo de respuesta (milisegundos). * La informacién debe estar permanentemente actualizada. * El sistema debe permanecer practicamente inactivo para atender lo més rapidamente posible cualquier evento en Ia entrada. © Manejo eficaz de interrupciones. '* Manejo sencillo de prioridades. © Gestion de memorial real. Ejemplos de estos sistemas operativos son los que controlan procesos industriales, reser- vas de billetes, etc. Concopos bisicos. AT 136, COED siguiente paso en La evolucién de los sistemas operativos fue el proceso distribuido, que consiste en la conexién de computadoras entre si a través de una gran variedad de disposi- tivos, existiendo varias modalidades entre las que podemos citar la conexidn de varias com- putadoras compartiendo un mismo almacenamiento principal o aquellos que se conectan a una misma red nacional o internacional para el intercambio de informacién, En la Figura 1.19 puede verse la conexién de varias computadoras a través de una red. Sistema 2 verte oN a = Intertaz Momoria Sistema 1 Procesador : = a ‘Memoria Interfax Figura 1.19. Proceso distribuido. 1.3.7. Multiproceso Uno de los problemas actuales en el proceso de datos ha sido la aparicién de aplicaciones gue manejan tal cantidad de informacién, que un solo procesador no es capaz de pro- cesarla en el tiempo requerido. Podemos citar el caso de los sistemas expertos, donde el vo- lumen de datos es extremadamente grande y se necesitan unos tiempos de respuesta extre- madamente pequefios; ademas, los algoritmos que mancjan estos datos son complicados ¥ necesitan muchas operaciones para la obtencién de los resultado: manera que cada uno pueda tratar un subconjunto de los datos con cierta independeneia de Jos otros. Al final se conjuntan estos datos, obteniendo ef resultado final de todo el proceso. Estos subalgoritmos pueden trabajar en paralelo, tratando cada uno su porcién de informa- cién al mismo tiempo, 18 Sistemas Operatives: Para ello, se estin desarrollando en el momento actual diversas maquinas que, siendo una sola computadora, contienen varios procesadores que pueden trabajar conjuntamente, Con ello puede quedar satisfecha la necesidad de proceso de varios algoritmos sinmultinea- mente (cada uno en un procesador) y con un ahorro sustancial en el tiempo de ejecucién (Figura 1.20). En este tipo de computadoras, el sistema operativo es complejo debido a que tiene que administrar varios procesadores de tal manera que la carga y reparto de los trabajos debe equilibrar y optimizar al maximo el proceso global. Procesador Procesador Z LS] Provesedor | ¢— 4 Prooesador a [ Dispositivos de entrada/salida of sine Sistema Planifcador Trabajos de usuario Coordinadior de procesadores 1 ft f J Precnndr i Proceandar | | Procnnor 1 2 3 4 Figura 120. Multiproceso. Para finalizar este recorrido por los diferentes tipos de sistemas operativos y modos de trabajo, veamos en la Figura 1.21 las diferencias existentes en la ejecucion de cuatro proce- sos A, B, Cy D en tres sistemas con métodos de monoprogramacién, multiprogramacion y multiproceso, Conceptos incor AD B- c 1 procesador Monoprogramacion Muttiprogramacién g ea g| wz Tiempo de proceso 4 Tiempo de proceso & tat [_ | Ta Rg TT ID LAR € 4 procesadores | Multiproceso Tiempo de proceso ut, at Figura 1.21. Comparaciin de sistemas de gestion del provesador. Sistemas Operaiivor a 4 10. Tis 2 B. 14 15, Definir el concepio de sistema operativo, {Qué recursos findamentales administra wn sistema operative? Qué significado tiene el concepto de méquina vital con respecto Ta maquina Fisica que rea mente existe? {Qué puestos de trabajo especatizados apareciron a partir de 1955 para realizar ls distintas tareas necesarias en un entorno informatica? Qué es un programa monitor residente? Para qué so uiizaba el Ienguaje de control de trabajos ICL en sistemas con tarjetas perforadas? Comentar en qué consiste el proceso offline. {Qué diferencias hay entre Buffering y Spooling? Tdicer las diferencias existentes entre sistemas de monoprogramacion y de multiprogramacién. Deseribir brevemente los sistemas multiprogramados por lotes, tiempo compart y tiempo real. Qué ventajas tiene Ta urzacin de més de un procesador en uns misma computadora? Seftalar diferencias entre proceso distribuido y multiproceso. ‘Un trabajo que se realiza en compuladora, desde el punto de vista de ocupacion del procesador yy los periféricos, {de qué tipos puede ser? {Coudles son las caraeteristicas de los sistemas de tiempo compartido? Realizar un simil de la vida real con un sistema operativo (elgo parecido a la representacion de ta Figura 1.2). CAPITULO 3 Estructura y prestaciones de los sistemas operativos 3.1. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS ; Lo primero que hay que decidir al disefiar un sistema operativo es su finalidad y ol tipo de proceso que se quiere realizar a través de él (proceso por lotes, tiempo compartido, multi- proceso, etc Para ello es preciso tener en cuenta las necesidades que pueden plantearse: RETARD Sistema ficil de usar y de aprender, seguro, répido y adecuado al uso a que se le quiere destinar. (GRESOSGAORWARE Donde se engloban aspectos como el mantenimiento, forma de operacién, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibi- lidad. A continuacién vamos a describir las distintas estructuras que presentan los actuales sis- temas operativos para satisfacer las necesidades que de ellos se quieren obtener. 1. Estructura monolitiea gura 3 icas fundamentales de este tipo de estructur Las caractel — Construccién del programa final a base de médulos compilados separadamente que se unen a través del editor de enlace. — Buena definicién de pardmetros de enlace entre las distintas rutinas existentes. ~ Carecen de protecciones y privilegios. — Generalmente estan hechos a medida, por lo que son eficientes y répidos en su eje- cucién y gestion, 3 ————~—S—@.—s—‘“S<~;3ézU a4 ‘Siemuas Operas Figura 3.1, Estructura monolitica. 3.1.2, aroma ‘A medida que fueron ereciendo las neoesidades de Jos Sats ¥ se perfeecionaron los sis- area havo nocesasin una mayor organizacion det sofware. ‘Se dividid el sistema operativo en ipequeiias partes, de tal forma que cada una de elas ectonera perfectamente definida y con un claro intesaes el resto de elementos. Se constitu 5 sistemas operatives, el prime- 10 de los cual de Dijkstra, que se uiliz6 con fines ‘Nivel 6 - Usuerio Nivel 4 = Archivos: Nivel 3 Entiada/salide Nivel 2- Comunicaciones | ‘Nivel 1- Memoria ‘Nivel O- Gesiién CPU Nivol f == Raveiwate rin este sistema operativo pueden verse Ins distinta s capas en su orden jerirquico: — Hardware (Nivel -1). ~ Planificacion del procesador (Nive! 0). — Gestign de la memoria (Nivel 1). — Controlador de la consol del operador (Nivel 2). —==—— i === Esmuctara y prestaciones de los sistemas operaivos 35 — Control de las operaciones de entrada/salida (Nivel 3). — Gestién de archivos (Nivel 4), — Control de programas de usuario (Nivel 5). En la estructura anterior se basan précticamente Ia mayoria de los sistemas operati | actuales. Otra forma de ver este tipo de sistema es la denominada Ga Sion a> GH rissa 3.3). Gestién de Memoria Gestion de E/S Gestion de cpu Figura 3.3. Organizacién jerirquica (anillos), En el sistema de rings, cada anillo tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las lldmadas de las capas inferiores. De esta forma, las zonas ms internas del sistema aperativo o niicleo del sistema estaran mils protegidas de accesos indeseados desde las capas mas externas, Se trata de un tipo de sistemas operativos que presentan un interface a cada proceso, mos- trando una maquina que parece idéntica a la maquina real subyacente, 36 Sistemas Operatives Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: @ a muttiprogramacién, © La maquina extendida. nlicleo de estos sistemas operativos se den tiene como misién llevar a cabo la multiprogramacién, presentando a los nivcles superiores tantas maquinas vir- tusles como se soticiten. Estas méquinas virtuales no son maquinas extendidss, sino una ré- plica de la méquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que sera el que ofrezca la méquina extendida al usuatio (Figura 3.4). Varios Un usuarios usuario Vatios Un Figura 3.4. Maquina virtual 3.1.4. Genesee El tipo mas reciente de sistemas operativos es el denominado Clienteservidor, que puede ser ejecutado en la mayoria de las computadoras, ya sean grandes o pequetias. Este sistema sirve para todo; por tanto, es de propésito general y se basa en lo mismo que el resto de sistemas operatives convencionales: el niicleo y los proveses, presentando grandes diferencias en cuanto a la forma de distribuir los trabajos entre sus distintas partes, Sucle suministrar mecanismos adecuados para la gestién de: — Procesos. — Memoria. — Comunicacién entre procesos. -Extwcouea y prestaiones de tas sistemas operativos 37 ee ‘procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de pfcacion normal es un cliente que lama al servidor correspondiente para accede A evo o realizar una operacién de entrada/selida sobre un dispositive eoncteto. A su vez, un proceso cliente puede actuar como servidor para otro (Figura 3.3). Poon | Seder | Seridor ] Sartor . Servidor cliente: de de de ax de | rocesoc | serminaies | archivos momar a ~ Nice - —E * ee Figura 3.5. Sistema Cliente-servidor, 3.2. PRESTACIONES DE UN SISTEMA OPERATIVO Como ya se ha dicho, la misién de un sistema operativo es la de ayudar a Tos usuarios fd mangjo de Ia computadora; para ello deberé proporcionar ciertos servicios que se pueden considerar desde dos puntos de vista distintos + Bjecucién de programas: Facilidades para cargar un programa en memoria y ejecutario. © Operaciones de entrada/salida: Facilidades para que un programa pueda Wratar un ar: chivo, enviar o recibir datos a un dispositivo, etc. «© Gestién de archivos: Facilidades de uso y organizacin del sistema de archivos. © Asignacién de recurso: ‘Mecanismos de resolucion de conilictos de asignacion de re- Gunuos cuando Varios procesos o usuarios estén. compitiende por ellos. . © Contabilidad: Control de tiempos de utiizacién de recursos por los us facturacion o simplemente para la obtencion de estadisticas de utilizacién ios para su © Prottccién: Defensa contra acciones no deseadas. 3.2.1. Servicios de usuario El sistema operativo ofrece sus servicios a los, s formas diferentes: —_ © 38 Sisermas Operavas Constituyen el interface entre un programa en ejecuciOn y el sistema operativo. Estas lama das se pueden agrupar de la siguiente forma: — Gestién de procesos. ~ Gestién de operaciones de entracla/salida. — Gestién del sistema de archivos. — Proteccién. En general, las Hamadas al sistema operativo neoesitan pat algiin tipo de informacion para la correcta gjecucién del proceso a través de algiin registro o bloque de parémetros. Tena Figura 36 puede verscelesquema de gjeoucion de una llamada al sistema operativo, Procesos do Usuario ‘Nacleo det $0, Figura 3.6. Ejecucién de uma llamada al sistem ‘operative. Las lamadks al sistema operativo son como las Mlamades aun subprograma desde el pun- to-de vista del programa que lama. ‘Tras In Hamada, se ejecut Ja rutina del sistema opera tivo que ba sido invocala, tomando Tos datos de los pardmetros correspondientes, x cont: we dn oe devuelve el contro al proceso que efeetuo 1a llamada, ejecutandose la siguiente srrenign y, en su caso, tomando los datos de wuelta les ‘parimetros correspondientes, En Jos sistemas operativos actuales, dems de las funciones basicas del niicleo que pueden gjecutadas a través de llamadas al si i as iva Esiructura y prestaciones de ls sistemas operatims — 39) Programas", —) = c= ‘= — Keeton 7 oe a eo Sopone ee los tenguajes de rogramacién © ‘ | Editores \ informacion | \ [ (le SE} | oN | \ aniplacisn | Carsaorasy / \ \ it icinen | Fates de Figura 3.7. Programas del sistema. 4 Estos programas los podemos agrupar de la siguiente forma: * ‘Tratamiento de archivos: Crean, copian, borran, renombran, imprimen, visualizan, vuel- can, ordenan, etc. un archivo, facilitando ln gestién de los mismos y los directorio. © Informacién: Dan cualquier tipo de informacién relativa al estado del sistema, de la me- moria, de los discos, de usuarios, fecha, hora, ete. © Editores: Son programs que facilitan Ia edicién de archivos de texto o de programas fuente, ‘© Ejecucién: Son programas para la construccién, depuracién y carga de programas ¢je- cutables (Linkers, debuggers, etc.) ¢ Programas de utilidad: Son programas para la gestién de Bases de Datos, compilado- res, comunicaciones, etc. @ Intérprete de comandos: Es el mis importante de todos los programas del sistema ope- rativo, ya que es el que erca el entorno de trabajo de los usuarios. 3.2.2. Servicios del sistema El intérprete de comandos y los programas del sistema son los que fijan el entorno y la for- mma de ver el sistema operativo por los usuarios. En cambio, el programador del sistema tie- ne una vision totalmente diferente; para él todo son recursos fisicos y dispositivos que deben ser convertides en entidades ldgicas pata oftecérsclas a los usuarios. 40 Sistemas Operatives Se puede decir que un sistema operative es un programa activado por eventos; es decir, sing hay programas en ejecucién, ni operaciones de entrada/salida pendientes, etc, el sis tenn catard inactivo hasta que se produzea alguna nueva peticién, Normalmente cada evon- to producira una interrupcién de la ejecuciéa del sistema operativo, En esta ocasién las llamadas al sistema operativo se agrupan por el tipo de llamada y no ppor la accion que realizan, Pueden ser: @erminaciéu normal: Se reaiza la devolucién del control al usuario euyo proceso ha terminado, a través del intérprete de comandos. @Terminacién anormal: Cuando aparece un error en la ejecucion de un programa, éste se da por terminado, devolviendo el control al intérprete de comandos, que indicara tal situacién de error al usuario. @Peticiones de estado: Se procesa la peticion solicitada y se devuelve el control al pro- grama que Ia solicit6. @Peticiones de recursos: .os programas solicitard recursos durante su ejecucién que se rin alendidos de inmediato o se entrara en un estado de espera hasta que puedan ser atendidos. @Peticiones de entrada/satida: De ignal forma, tos programas lus solicitardn y seri aten- didas de inmediato 0 tras un pequefio periodo de espera. © Interrupeiones de los dispositivas de K/S Una vez que un programa en ejecucion realiza una peticién de entrada/salida, se pueden to- mar dos tipos de accion por parte del sistema operativo: @E1 proceso queda en espera hasta que se termina la operacién de entrada/salidas En este caso el dispositive externo, cuando termine la operacién, produciré una interrupcion Gque dard control al sistema operativo, el cual activard el proceso que estaba en espera. @xI proceso seguir realizando otras operaciones: En este caso el dispositivo externo tam- ‘ign produce una interrupcidn en el sistema operalivo, el cual no activara el proceso uesto que no estaba en espera, pero si le indicaré que la operacién solicitada ha ter- minado. ® Gestién de excepciones Cuando un programa en ejecucién comete un error, se produciré una interrupién; por ejem- plo. una division por 0, intento de violacién de un archivo protegido, intento de ejecucién sorucraray presaciones de los sinencas operanis 4 El tratamiento de estos errores se cono- stemas operatives suelen asociar alguna funcion para el tratamiento de estos erro ==. Ei nticieo da control a esta funcién en el momento de aparicion de un error de este tipo. 3.23. Protecciones Les programas de aplicacién de los usuarios no estan exentos de errores, asi como los si- semas tampoco estiin libres de usuarios con malas inteneiones, Por ello, el sistema operativo debe incluir ciertas funciones de proteccién con objeto de evitar problemas entre procesos entre éstos y el propio sistema operativo. = Protecci6n de Ia entrada/salida Todos los dispositivos externos cuentan, por parte del sistema operativo, con rutinas para el sont de ls operaciones de calrada/s2i/: Gi aa je dispositivos y entre otras funciones protegen los accesos incorrectos, devolviendo el control al nicleo del sistema operative, indicandole la situacién errénea que se ha producido. ® Proteccién de la memoria En general, cada proceso tiene una zona de memoria asignada para el tratamiento de sus datos denominada espacio de direccionamiento y no puede aceeder a zonas asignadas al ss tema operativo o a otros procesos. Para ovitarlo existen unos registros fromtera que indican cl limite de memoria asignado a cada proceso (Figura 3.8). Sisterna Programas, Operative de uovatio Figura 3.8. Proteceién de la memoria 42 Sigennas Operatives Si un proceso intentase acceder a direcciones que estin fuera de la zona de memoria de su espacio de direccionamiento, se produciré una interrupcién que dard control al sistema operative dando cuenta del error que se ha producido. ™ Proteccidn del procesador Otzo tipo de problemas que pueden presentarse es la presencia de bucles infinitos 0 accesos al procesador que no lo liberan nunea, En estos casos la nica solucién es la de apagar y volver a encender (reset) para volver « comenzar desde el principio. Para evitarlo, el hardware incluye un temporizador que marca periodos de tiempo, de ‘manera que al terminar un periodo de tiempo se produzca una interrupcién y tome el con- trol el sistema operativo. saroctura y prestaciones de los stnemas operarimas 43, a 10, 2 2Cuiinias y cuales son las estructuras que presentan los sistemas operativos? En qué consiste la estructura monotitica? {Cuiles son las caracteristicas fundamentales de fa estructura monolitica? GEa qué consiste la estructura jerdrquica? {Cuil es el objetivo a cubrir por los sistemas operativos de maquina virtual? {Qué misién tiene el micleo en un sistema operative del tipo clienteservidor? 1Qué servicios debe proporcionar un sistema operativo desde el punto de vista del programador? Qué servicios debe proporcionar ua sistema operativo desde el pypto de visia del sistema? iEn qué consiste una Tlamada al sistema operativo y como se ejecuta? {De qué forma se wgrupan los programas del sistema como servicio a los usuatios? {Qué es una interrupcién? Gor qué causas es necesario incluir protecciones en un sistema operative? CAPITULO 4 El nucleo y los procesos 4.1, INTRODUCCI ‘oda esta gestion Ia realiza para fos trabajos que se ejecutan en el sistema. En este capitulo se trata ynceptos relacionados con la entidad basica de los sistemas operatives actuales FEI esquema general del mismo es cl siguiente: © Definicién y concepto de proceso. © EI Bloque de Control del Proceso (PCB) como imagen donde el el estado del proceso. @ Estados por los que pasa un proceso a lo largo de su cxistencia en Ja computadora. © Operaciones que se pueden realizar sobre un proceso. © Clasificacién de los procesos segiin su forma de ejecucién, de carga, ete. tema operativo ve 4.2, GROGSOSD te concepto surgié por primera vez con la multiprogramacién, donde, como se vio en el Capitulo 1, se puede ejecutar mis de un programa simultineamente con el fin de aprovechar al maximo los recursos de la computadora. En la Figura 4.1 puede verse grificamente el concepto de proceso con su entorno (pro- grama en ejecucidn, datos en variables y pila, etc.). 45 46 Stem Operativas Entorne Registros (PC, SP, .) Datos en pila (stock) Datos on veriables Ingtrucsionss Iprestama en sjecucicn) Figura 4.1. = Concepto de proceso. ‘Ya se ha indicado que el corazén de un sistema 4.2.1. Modelo = obvia, pero crucial para entender el funcionamiento de los sistemas operativos. Imaginemos un mecinico de automéviles en un taller donde se reparan vehiculos con averias complejas en las que se hace necesario consultar el manual de reparaciones de cada modelo, que contiene instrucciones para todas las posibles averias. Ademis, se permiten re- paraciones ripidas a las que se les da mayor prioridad que a las mencionadas anteriormen- te, Existe en el taller un almacén de repuestos de todo tipo y herramientas suficientes para Jas reparaciones. Comparandbo esta sitwaciém con una computadora, se pueden establecer las siguientes ana- logias: | ‘ * El mecénico seria el procesacor que va a realizar el trabajo. © El manual de cada reparacién seria el programa, Las herramientas serfan los recursos disponibles. * Las piezas de recambio serian los datos. * La actividad de utilizar las herramientas para desmontar las piezas defectuosas sustitu- yéndolas por otras nuevas siguiendo las instrucciones del manual equivaldria al proceso. Supongamos que en un delerminade momento ef mecdnico esti realizando una reparae cién compleja (de las que llevan tiempo) y aparece un vehiculo que solicita una reparacién de las rapidas (ha aparecido una interrupcién). El mecénico suspende momentineamente la reparacién compleja anotando en qué situacion se queda dicha reparacién y qué operacién estaba realizando en este momento (guarda el estado del proceso). Asimismo, sustituye el ‘manual que estaba utilizando por el de la reparaci6n répida que se dispone a realizar (cam- bio de programe). Comienza la nueva reparacién (cambio de proceso), en la que las herra- El micieo y los procesns’ AT mientas no serdn las mismas que antes (distintos recursos); las indicaciones del usuario, las piczas de repuesto (datos) y las indicaciones del manual (programa) llevaran a feliz. termino fa reparacién para que el mecénico vuelva a continuacién a la reparacién inicial. Con este ejemplo se desea resaltar que un proceso es una actividad que se apoya en da- tos, recursos, un estado en cada momento y un programa. 4.2.2. El bloque de control del proceso (PCB) Un proceso se representa, desde el punto de vista del sistema operative Los objelivos que se pretenden cubrir con el bloque de control del proceso son los si guientes: * Localizacién de la informacién sobre el proceso por parte del sistema operativo. * Mantener registrados los datos del proceso en caso de tener que suspender temporal- mente su ejecucién o reanudarla En general, la informacién contenida en el bloque de control es la siguiente: * Estado del proceso, Informacién relativa al contenido del contador de programa (Pro- gram Counter, PC), estado del procesador en cuanto a prioridad del proceso, modo de ejecucién, etc, y por tiltimo el estado de los registros internos de la computadora, © Estadisticas de tiempé y ocupacidn de recursos para la gestién de la planificacién del procesador. * Ocupacién de memoria interna y externa para el intercambio(@Wappimag) * Recursos en uso (normalmente unidades de entrada/salida). * Archivos en uso, * Privilegios. Estas informaciones se encuentran en memoria principal o en disco y se accede a ellas en los momentos en que se hace necesaria su actualizacién 0 consulta. Los datos telativos al estado del proceso siempre se encuentran en memoria principal. De igual forma existe un Bloque de Control det Sistema (SCB), con unos objetivos glo- bales similares al anterior y entre los que se encuentra el enlazado de los bloques de control de los procesos existentes en el sistema (Figura 4.2). Trataremos de ver a continuacién cémo se realiza el cambio de un proceso a otro, para Jo cual supondremos que estamos en una computadora con un solo procesador (sélo un pro- ceso puede estar ejecutindose en cada momento), y existen varios procesos activos compi- tiendo por el acceso al procesador (se est ejecutando un proceso A y el niicleo del sistema operativo decide que debe ejecutarse en un instante dado otro proceso B). Suponemos que los programas de los procesos A y B estin ambos en memoria principal 48 Sistemas Operatives Bt de coed Gaetan cseessr ite nego ion a mn} Edo el peo aia bioredone: LD Contador de programa Limites de memoria Rogistros Ficheros abiartos Figura 4.2, Bloques de control de procesos y del sistema. Las aociones que realiza el sistema operativo para cambiar el proceso A por el B se de- oni aS, son las siguientes (Figura 4.3): @Pd¢ja ce cjecutar el proveso en curso (A), cediéndose el control al nicleo del sistema ‘operativo, y aparece lo que se dentomina indo del modo usua- rio al modo supervisor, Antes de realizarse el cambio de contexto se salva el estado del proceso A para su posterior vuelta al punto donde fue interrumpido. * El micleo estudia si cl proceso B esti preparado para su ejecucién y, si es asi, realiza el cambio de contexto correspondiente pasando del modo supervisor al modo usuario, A continuacién repone el estado del proceso B (en caso de haber sido interrumpido con anterioridad) y, por titimo, pone en ejecucién el proceso B. El cambio de contexto se produeira en caso de ejecuciin de una instruccién privilegiada, una llamada al sistema operativo o una interrupcion, es decir, siempre que se requiera Ta aten- cién de algiin servicio del sistema operativo. Bl micien y tas procesas 49 En el cambio de contexto, el niicleo salva el estado del proceso que se estaba ejecutando en su logue de control y restaura el proceso que va a ejecutarse a partir de los datos alma- cenados en su bloque de control. SISTEMA PROGRAMA A OPERATIVO, Salva Registros PROGRAMA B. Carga Ragistros § Interrupcion Ejecucion Salva Registros Carga Resistros Sonn | LL Figura 4.3. Cambio de proceso. 4.2.3. Estado de los procesos ‘Los bloques de control de los procesos se almacenan en colas, cada una de las cuales repre- senta un estado particular de los procesos, existiendo en cada bloque, entre otras informe ciones, tantos campos como colas en las que el proceso se pueda situar, para que a partir de ellos se indique la cola en que se encuentra (Figura 44). Laos estados de los procesos son internos del sistema operativo y transparentes al usua- rio, Para éste, su proceso estara siempre en cjecucién independientemente del estado en que se encuentre internamente en el sistema. Los estados de los procesos se pueden dividir en dos tipos: @EENOSE ACERS 50 Siwemas Operatvos Be) cade vata Tatoos en espera preparevos t CPU 5 completo cesronoe ceston an oe Cola de trabajos, bloquesuos Figura 4.4. Colas de estado, = Estados activos Son aquellos que compiten con el procesador o estan en condiciones de hacerlo, Se di en (Figura 4.5); len @ejecucién, Estado en el que se encuentra un proceso cuando tiene el control del pro- i cesador. En un sistema monoprocesador este estado séla Jo puede tener un proceso. @PPreparado. Aquellos procesos que estin dispuestos para ser ejecutados, pero no estin en ejecucién por alguna causa (interrupcién, haber entrado en cola estando otro pro- ceso en ejecucién, etc.). @PBloqueado. Son tos procesos que no pueden ejecutarse de momento por necesitar 2 gin recurso no disponible (generalmente recursos de entrada/salida). © Estados inactivos Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo por medio de ciertas operaciones. En estos estados se mantiene el bloque de contral del pro- ceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo por causas que lo han impedido (por ejemplo, averia en un dispositive de entra- da/salida) y que pueden volver a activarse desde el punto en que se quedaron sin que tengan que volver a ejecutarse desde el principio (se puede pensar en procesos cuya duraciéa es larga). Son de dos tipos (Figura 4.5): @uspendido vloqueado. Es el proceso que fue suspendido en espera de un evento, sin que hayan desaparecido las causas-de su bloqueo. @suspendido preparado. Es el proceso que ha sido suspendido, pero no tiene causa para estar bloqueado. Fl nicieo y las proceso 51. > os00 i FarsranD0 QQ ae : i —, SSS a Torminacié de a aes we ‘operacin de £/S 0 aus Rosnude | Eetadas ACTIVOS Estados NO ACTIVOS Figura 4.8, Estados de un proceso y sus transiciones. 4.2.4. Transiciones de estado Todo proceso a lo largo de su exist imbiar de estado varias veces. Cada uno de estos cambios se denomins ‘Estas transiciones son las siguientes (Fi- gura 4.5): * Comienzo de la ejecucién, Todo proceso comienza al ser dada la orden de ejecucion del programa insertindose en Ia cola de preparados. El encolamiento dependerd de la Politica de gestién de dicha cola. * Paso a estado de ejecucién. Cuando el procesador se encuentre inactivo y en la cola de preparados exista algin proceso en espera de ser ejecutado, se pondra en ejecucién el primero de ellos, * Paso a estado bloqueado. Un proceso que se encuentre en ejecucién y que solicite una operacién a un dispositive externo (unidad de entrada/salida), teniendo que esperar a que dicha operaci6n finalice, seri pasado de estado de ejecucidn a estado bloqueado insertindose su PCB en la cola correspondiente de bloqueados. A partir de ese mo- mento el procesador pone en ejecucién el siguiente proceso, que sera el primero de la cola de preparados, * Paso a estado preparado. Esic paso puede ser producido por alguna de las siguientes causas: ~ Orden de ejecucién de un programa, con lo cual, como ya hemos dicho, el proceso pasa a la cola de preparados. ~ Si un proceso estd en estado bloqueado por causa de una operacién de entrada/sa- lida y ésta finaliza, pasara de la cola de bloqueados a la de preparados. — Si un proceso estd en ejecucién y aparece una interrupcién que fuerza al sistema operativo a gjecutar otro proceso, el primero pasar al estado preparado y su PCB alla cola de preparados. 52 Siemas Operatias _ Activacién, Un proceso suspendido previamente sin estar bloqueado pasara al es- tado preparado al ser activado nuevamente. # Paso a estado suspendida bloqueado. Si un proceso estii bloqueado y el sistema opera tivo recibe la orden de suspenderlo, su PCB entrara en la cola de procesos suspendi- dos bloqueades. # Paso a estado suspendido preparado. Este paso se puede producir bajo tres circunstan- cias: — Suspensién de un proceso preparado pasando éste de Ia cola de procesos prepara dos # la de suspendidos preparados. _ Suspensin de un proceso en ejecucién, con lo cual el proceso pasa a la cola de sus- pendidos preparados. — Desbloqueo de un proceso suspendido bloqueado por desaparecer la causa que im- pedia el ser activado de nuevo. 4, . Operaciones sobre procesos Los sistemas operativos aciuales poseen una serie de funciones cuyo objetivo es el de la max nipulacion de los procesos. En general, las operaciones que se pueden hacer sobre un pro- eso son las siguientes: © Crear el proceso. Se produce con la orden de ejecucién del programa y suele necesitar varios argumentos, como el nombre y la prioridad del proceso. Aparece en este mo- mento el PCB, que serd inseriado en la cola de procesos preparados (Figura 4.6), [orem |} wowed cy — — en] pnoceso = | Figura 4.6. Creacién de ua proceso. (SPieriiequica. En atla, cada proceso que se crea es hijo del proceso creador y hereda el ‘entorno de ejecucién de su padre. El primer proceso que ejecuta un usuario sera hijo Gel intérprete de comandos con el que interactéia (Figura 4.7). QNo jerdrquica. Cada proceso creado por otro proceso se ejecuta independientemente de su creador con un entorno diferente. Es un tipo de creacién que no suele darse en los sistemas operativos actuales. El micteo y los process 53 Figura 4.7, - Jerarguia de procesos. * Destruir un proceso, Sc trata de Ia orden de climinacién del proceso con la cual el sis- tema operativo destruye su PCB. Suspender tn proceso, Es una operacién de alls prioridad que paraliza un proceso que Puede ser reamudado posteriormente. Sucle utilizarse en ocasiones de mal funciona- miento o sobrecarga del sistema. * Reanudar m proceso. Trata de activar un proceso que ha sido previamente suspendido. * Cambiar la prioridad de un proceso, * Temporizar la ejecucién de un proceso. Hace que un determinado proceso se ejecute cada cierto tiempo (segundos, minutos, horas...) por elapas o de una sola vez, pero transcurrido un periodo de tiempo fije. © Despertar un proceso. Es una forma de desbloquear un proceso que habra sido blo- queado previamente por temporizacién o cualquier otra causa. 4.2.6. Prioridades En general, todo proceso por sus caracteristicas e importancia lleva aparejadas unas deter- minadas necesidades de gjecueién en cuanto a urgencia y asignucién de recursos. Esto hace que los distintos procesos presentes en un sistema no accedan de igual forma y con igual frecuencia al procesador debido a la prioridad que cada uno de ellos tiene asignada. Las prioridades segin los sistemas operativos se pueden clasificar del siguiente modo: * Asignadas por el sistema operativo, Se trata de prioridades que son asignadas a un pro- ceso en el momento de comenzar su ejecucién y. éependen fundamentalmente de los privilegios de su propietario y del modo de ejecucién 54 Sistemas Operatives + Asiguadas por el propietario. En esi¢ caso es el propio usuario el que asiana 4 cada pproveso la prioridad con que éste debe ejecutarse. Esta modalidad de asignacién de prioridades es muy utlizada en sistemas de tiempo real va que algunos de sus proce- eee necesitan atender ripidamente algdn evento sin que tengan que interrumpirse. Ora clasificacion de prioridades atendiendo a la posibilidad de variacién de las mismas ¢s la siguiente: « Fatiticas. Son aquellas prioridades que no pueden ser modificadas durante Ta eject: ibn del proceso, Pueden ser uilizadas en sistemas de tiempo compartido, pero no en {os de tiempo real. « Dindmicas. La prioridad de un proceso puede ser modificada con el fin de atender cusl- quier evento que se produzea. 4.2.7. Tipos de procesos Un proceso puede clasifcarse en dos grandes grupos segin el uso que vaya a tener ¥ la for- mi, pomo se haya consiruido el cddigo ejecutable de su programa. Fstos grupos son: ables, Son aquellos que pueden cambiar los datos que utlizan, pero si vuelven a ejecutarse necestan comenzar en su estado inical yprocesar nuevos datos. Es el caso de los programas normales de usuario. Reentrantes. Se caracterizan por no tener asociados datos, es decir, puro, Los datos que utdizan se encuentran en ta pila o en reistrs internos y no PAP: an ger modificados durante su uso. Este es el caso de programas compartitos por vie tjae uauarios a la vez, como es el de los editores cuyo civligo se encuentra unt sola ‘ ree a memoria, siendo utilizados por usuarios cuyos datos particulares estaran en Una zona del disco asignada a cada uno de ellos. Ctra clasificacién de procesos segiin la capacidad que tienen de acceso al process: dor y al resto de recursos es: @spropitivs, Son aquellos que al tener asignado un reenrso no permiten que otto Prox dono pueda acceder a él hasta que hayan terminado de utlzaro 0 apropiativos, Permiten que ottos procesos puedan acceder a un recurso que est siendo ublizado por ellos, Por iltimo, los procesos segtin su forma de ejecucion se clasifican en: «# Residentes. Som los que permanecen en memoria todo el tiempo que dure su ejecucin « Intercambiables. Son aquellos que pueden ser levados de memoria principal a is aarerteay estén bloquendos. La memoria principal liberada por ellos puede ser utlizada por otto proceso que en ese momento la neceste — i ——— a ————— i mileo y ls proceros 35 4.2.8. Excepciones A Jo largo de a ejecueién de un proceso pueden aparecer una serie de irregularidades o fa ilos que de alguna forma un sistema operative debe tratar de controlar y en su caso corregir. Estos pueden ser de distinta naturaleza y afectar en mayor o menor medida al proceso; en tte ellos podemos citar — Fallos hardware. — Fallos software. Entrada de datos incorrectas — Eventos anémalos. — Ete. Para atender a 0 de eventos Jos sistemas operatives incorporan lo que se deno- uya mision es la de tratar el software que controla este tipo de eventos o excepeione Segiin la gravedad de los eventos que pueden presentarse, se establecen tres calegorias de errores: © Catastréficos, Son aquellos que imposibilitan el funcionamiento del sistema y no hay modo de recuperarlo, por ejemplo, un fallo en la tensién de alimentacién. Inicio del Proceso ECUPERACION PROGRAMA ae Lugar dea excepcien. —> - SN MANEJADOR Fin normal ~ da proces ica tl proceso TERMINAGION a [ sm Lugar de la i e =- - i ‘excepeidn Fin anormal del process Figura 48. Modelos de gestor de excepciones. 56 Sinennas Operaiivos ‘© No recuperables, Son los que sin afectar al sistema, hacen que el proceso no pueda con- tinuar su ejecucién; por ejemplo, la aparicién de una division por 0. © Recuperables. Son los que con ciertos ajustes permiten que el proceso continiie su eje- cucién normal; por ejemplo, datos con formato indebido. El tratamiento de una excepcién puede seguir dos modelos diferentes (Figura 4.8): ‘Tratamiento de la excepcién y continuacién del proceso. Tratamiento de la excepcién y finalizacién del proceso. — SS —_eeEEOEOE———S Se HL miteo v las procesas ST il 6. % 10. 1. 2 Definir el concepto de proceso. Indicar qué se entiende por bloque de control de un proceso y qué misién realiza. @Cuél es la informacion contenida en ef bloque de control de un proceso? aQué es un cambio de proceso? {Que acciones reatiza el sistema operativo para llevatlo a cabo? 1A qué se denomina estado activo de un proceso? {En que tres grupos se divide? Qué es una transicién de estado? Comentar alguna transicién de estado de tn proceso. {Cuales son las operaciones que en general pueden lacerse sobre un proceso para su manipula cid a través del sistema operativo? Comentar los dos tipos de ereacién de un archivo que existen. Qué son las prioridades y eéimo se clasifican, Segin el uso a que se destine y la forma de construccién de su cédigo ejecutable, sifica un proceso? Qué ¢s una excepcidn? {Qué incorpora um sistema operativo para su control? <—_— ae CAPITULO 5 Planificacién del procesador 5.1, INTRODUCCION En este capitulo se estudian las distintas politicas y mecanismos mas comunes que poseen los sistemas 0} wales En general, se distinguen varios niveles de planificacién, como se refleja en la Figura 5.1. Ejecucién de un trabajo por el usuario Carga y creacion de! proceso ke Proceso bloqueado © suspendido Esmee Ejecuciin Corto plazo Mado plazo Largo plaza Figura 8.1. Niveles de planificacién del procesader. G0 Sistemas Operativos © Planificacién a largo plazo (planificador de trabajos). Decide cual sera el proximo tra- bajo que se va a ejecutar. Este nivel slo existe en los sistemas de proceso por lotes, donde la decision se basa en las necesidades de recursos y su disponibilidad. En los sistemas de tiempo compartido tiene como iinica misién cargar los programas que se desean ejecutar en OO raat ree © Planificacin a medio plazo (planifica ‘sleriormente, cuando el sistema se encuentre mas deseargado, devolve- TA dicho proceso a la memoria y al estado de ejecucién. Esta téenica se eonoce con el nombre de swapping y sera estudiada al tratar la gestién de la memoria, Sélo existe en we de a lam en aquellos que tienen gestion de memoria virtual. * Planificacién @ corto plazo (planificador del procesador)/ stando siempre residente en memoria y ejecutindose con mucha frecuencia: por ello, debe ser de eje- cucién muy répida. En este nivel, que es el que vamos a estudiar en este capitulo, es donde se debe dar un buen servicio a los procesos interactives para que el usuario no perciba, o lo haga en pequetio grado, que esté compitiendo por el procesador junto con otros usuarios. Solo queda afiadir que toda politica de gestion debe ser justa al tiempo de ofrecer un rendimiento del sistema lo mas aceptable posible. & Las politieas de planificacién intentan cubrir los siguientes objetivos: © Justicia. La politica debe ser lo mas justa posible con todo tipo de procesos, sin favo- recer a unos y perjudicar a otros. ‘© Maxima capacidad de efecucién. Debe dar un servicio aceptable para que todos los tra- bajos se realicen lo mas rapidamente posible. Esto se logra disminuyendo el mimero de cambios de proceso, © Maximo mimero de usuarios interactives. En los sistemas de tiempo compartido se tra- tard de que puedan estar trabajando el mayor nimero de usuarios simultdneamente. + Predecibilidad. La politica de planifieacién debe concebirse de tal forma que en todo momento pueda saberse como serd su ejecueién. ¢ Minimizacién de la sobrecarga. La computadora debe tener poca sobrecarga ya que Esta incide direetamente sobre el rendimiento final del sistema: a menor sobrecarga, mayor velocidad de proceso, Por ello, los cambios de contexto deben minimizarse. Planificucin del procesador 61 * Equilibrio en cl uso de recursos. Para obtener un buen rendimiento en el uso de los Teoursos y que éstos estén ocupados equitativamente el mayor tiempo posible. © Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, éste debe jecutarse mis répidamente, LLos objetivos enunciados pueden entrar en ocasiones en contradiccién,; por ello es nece- satio llegar a una situacién de compromiso entre todos los objetivos para conseguir del si tema operativo un buen rendimiento y un buen servicio. 5.3. CRITERIOS Los criterios que se deben tener en cuenta a la hora de elegir o disefiar un algoritmo de phi nifieacion son los siguient * Tiempo de respuesta. Velocidad con que el ordenador da respuesta a una peticién. De- pende mucho de la velocidad de los dispositivos de entrada/salida. * Tiempo de servicio, Es el tiempo que tarda en ejecutarse un proceso, donde se incluye el tiempo de carga del programa en memoria, el tiempo de espera en la cola de pro- cesos preparados, el tiempo de gjecucién en el procesador y el tiempo consumido en operaciones de entrada/salida. . * Tiempo de ejecucién, Es idéntico al tiempo de servicio menos el tiempo de espera en 'a cola de procesos preparados; es decir, es el tiempo teérico que necesitaria el proce- So para ser ejecutado si fuera el tinico presente en el sistema. * Tiempo de procesador. Es el tiempo que un proceso esta ultilizando el procésador sin contar el tiempo que se encuentra bloqueado por operaciones de entrada/salida * Tiempo de espera. Es el tiempo en que los procesos estén actives pero sin ser ejecutae dos, es decir, los tiempos de espera en las distintas colas. * Bficiencia. Se refiere a la utilizacién del recurso mis caro en un sistema, el procesador, que debe estar el mayor tiempo posible ocupado para lograr asi un gran rendimiento, * Rendimiento. Es el nimero de trabajos 0 procesos realizados por unidad de tiempo, que debe ser lo mayor posible, Ahora bien, zqué algoritmo de planificacién se debe elegir para un sistema determinado? Serd misién del disefiador del sistema operative la eleccidn de los mecanismos epropiados ara que la politica elegida partiendo dé los criterios anteriores sea satisfuctoria y oftezea un alto rendimiento global. 4 5.4. MEDIDAS Para estudiar el comportamiento de las distintas potiticas de planiffeacién, definiremos dos medidas relacionadas entre si que nos indiquen cémo estamos tratando un proceso conereto 62 Sistemas Operativas Consideremos t como el tiempo que wn proceso P necesita estar on ejecucion para llevar ‘a cabo su trabajo, t, el instante en que el usuario da la orden de ejecucién del proceso y t, ‘instante en que el proceso termina su ejecucién. En funcidn de estos datos, tendremos las siguientes medidas para cada proceso: — Tiempo de servicio (1): T = t,~ 1, — Tiempo de espera (E): E= T-t ‘A partir de los dos valores anteriores, podemos establecer una relacién que nos permite ‘evaluar la actaacién de la politica establecida en lo que se denomina indice de servicio (I), a2 oy Fate indice representa el tanto por uno de tiempo que el proceso esta en ejecucion res- pecto al tiempo de vida del mismo en el sistema. En caso de que s6lo exista un proceso ejecuténdose en el sistema, segin el valor del in- dice de servicio, podemos decir que: Cuando I sea proximo a la unidad, el proceso esti limitado por proceso. Si 1 tiene un valor bajo préximo a 0, el proceso estaré limitado por entrada/salida. En los casos mis usuales en los que existe mas de un proceso en el sistema, no podemos hacer las consideraciones anteriores puesto que puede desvirtuarse el verdadero comporta mignto del sistema, Por este motivo se establecen las mismas medidas, pero con valores me- ddios obtenidos al considerar el conjunto de procesos presentes. Estas seriin las medidas que nos reflejaran el verdadero comportamiento del sistema. Las medidas a las que nos referi- ‘mos son: © Tiempo medio de servicio. * Tiempo medio de espera. * Bficiencia (indice medio de servicio) ‘Ademids de las anteriores, en la planificacién del procesador suelen emplearse otras dos medidas de interés: © ‘Tiempo del miicleo, Es el tiempo consumido por el niicleo del sistema operativo para tomar las decisiones de planificacién del procesador, donde se incluyen los tiempos de cambio de contexto y de proceso. © Tiempo de inactividad (Idle). Es el tiempo consumido cuando la cola de procesos pre- parados esta vacta y por tanto no puede realizarse ningiin trabajo productivo. Planificacion del proesador 63 5.5. ALGORITMOS DE PLANIFICACION Como ya hemos visto, el planificador del procesador tiene como misién la asignacién del mismo a los procesos que estin en la cola de procesos preparados. Esta cola es alimentada desde dos puntos distintos: ‘ada vez que un usuatio inicie Ia ejecucién de un programa, el planificador a largo plazo recibe la orden de gjecucién, crea el proceso y 1o pasa al planificador a corto plazo, colocandose en I cola de procesos preparados, @ Cuando un proceso deja de estar en estado de ejecucién y no existen causas para su bloqueo, o deja de estar bloqueado, pasa muevamente a la cola de procesos preparados, Por otro lado, cuando un proceso termina su ejecueién, deja de existir para el planifi- cador, Las politicas de planificacion se agrupan en: © Politicas apro de contexto; es decir “oliticas no apropiati En los sistemas operativos comerciales existen diversas politicas de planificacién, de las cuales veremos algunias a continuacién, puestas en préctica a través de algoritmos que en ningtin caso son perfectos, Recordemos que los objetivos y criterios pueden ser contradic- torios entre si, de manera que si favorecemos a un tipo de procesos, normalmente perjudi- caremos a otros, Para el estudio de las diferentes politicas nos basaremos en la situacién de un grupo de Procesos existentes en un sistema, cuyos datos se encuentran en la Tabla 5.1 y su represen- tacién grafica en la Figura 5.2. Tabla 5.1 Nombre Instante proceso Megada soon 64 Sisiemas Operaitvos oT Pe e887 8 8 10 11:2 «13:4 1 1G 17 18 19 20 Unidades de tiompo Figura 5.2. Representacién grifica del ejemplo. Ademis de figurar el instante de entrada en el sistema, también se ha representado el tiempo de servicio de cada proceso, es decir, el tiempo que necesita cada uno de ellos para tjecutarse si fuera el tio presente en el sistema, Por otro lado, supondremos que estos Pro” Sreos no necesilan realizar operaciones de entradajsalida (aunque esto sea tina utopia) para facilitar el estudio. ‘La unidad de tiempo que utilizamos en el ejemplo es abstracta, es decir, puede ser cual quiet unidad (milisegundos, segundos, tc). No debemnos olvidar que el valor mas represen. tivo del comportamiento de una politica de planificacién es el indice medio de servicio 0 tliciencia que es un valor adimensional y suele expresarse en tanto por ciento (%). RSS Ne ‘proceso hasta que termina, por tar cola de procesos prepar: vos permanecerdn encolados en el orden en. que lleguen hasta que les toque su ejecucié {Figura 5.3), Este método se eonoce también como «primero en entrar, primero en sary (First Inu, First Oueput - FIFO). sai eens JE] Figura 5.3. Planificacién FCFS. Fin de ta ejeeucion —_~ | ocesador 0 OLE Planificaciin del procesador 65 Se trata de una politica muy simple y sencilla de levar a la practica, pero muy pobre en cuanto a su comportaniento, En la Tabla 52 se muestran los datos de los procesos para esta planificacién, y en Ia Figura 5.4 puede verse cbmo despacha FCFS los procesos del efem- plo propuesto, donde las partes sombreadas indican el tiempo que ha estado eada proceso en espera de aeceder al procesador. ‘Tabla 5.2 Nombre | tastante Tiempo | pea Proceso = egada efecucién ie A 0 | 3 3 3] 9 | 100 | B 1 si 8 7/2] om Gi 4 | 2 10 6) 4 | 033 D 5 6 16 uf} s | os £ 8 4 20 2] 8 | 0.33 Media 78 38 ose | ‘ Procesador c DT E o 1234 6 67 8 9 1011 2 13 14 18 16 1 18 79 DO Unidades de tiempo Figura 5.4. Politica FCFS en el ejemplo. > | Fodemos observar que cl indice de servicio mejora cuanto mis largos son los procesos. Es decir, los procesos cortos que entren en el sistema después de uno 0 varios kirgos ten: «lrin que esperar un periodo de tiempo relativamente largo hasta su ejecucida, {ia cantidad de tiempo de espera de cada proceso depencie del mimero de procesos que se encuentren en cola en el momento de su peticién de ejecucién y del tiempo que cada uno de cllos tenga en uso al procesador, y es independiente de las necesidades de ejecuciSn del propio proceso, 66 Sisiemas Operation Las caracteristicas de esta politica son las siguientes: — No es apropiativa. — Es justa, aunque los procesos largos hacen esperar mucho a los cortos. Es una politica predecibe. — El tiempo medio de servicio es muy varia‘sle en funci6n del niimero de procesos y st duracién. 5.5.2, Round ROI CRE) Esta politica, euya traduecién podria ser asignacién cfelica o planifieac mejora de la FCFS: cién en rueda, es una ‘Consiste en conceder a cada proceso en ejecucién un determinado periodo de tiempo (quantum), transeurrido el cual, si el proceso no ha terminado, se le devuelve al final de la cola de procesos preparados, concediéndose el procesador al siguiente proceso por su co- rrespondiente quantum (Figura 5.5). Cola de preparados Fin de la | Re Jrronse ojecucn Figura $5. Planificacién Round-Robin. Esta interrupcién periddica continia hasta que el proceso termine su ejecucién, forman- do una rueda de procesos que serdn ejecutados ciclicamente hasta que terminen. La gestiin de la cola de procesos preparados se puede realizar de muy diversas maneras, siendo las mas comunes la FIFO 0 por prioridades, donde los pracesos se ordenan segiin su prioridad. Variando el parimetro g lograremos tener diferentes comportamientos de esta politica, de tal forma que si g es mayor que el tiempo que necesita para su ejecucién el proceso mis Jargo, se convertiria en una politica FCFS. En cambio, si se aprosima a 0, la sobrecarga del sistema sera muy grande puesto que la mayor parte del tiempo se consumiria en cambios de contexto. ‘Los valores de q varian entre 10 y 100 milisegundos, siendo recomendable que el 80 por 100 de los tiempos de respuesta de fos procesos sean inferiores al quantum. En la Figura 5.6 puede verse esta planificacién para el ejemplo propuesto, con un valor de quantum g= 1, con las siguientes condiciones: @ Si un proceso finaliza durante su quantum, inmediatamente se le concede el process. dor a otto proceso, al que se le asigna cl quantum completo. Planficactin det procesador 67 Al crease un proveso y pasar a la lista de procesos preparadios, se coloca al final de la lista, Siun proceso comienza su ejecucidn (creacién) en el mismo momento en que un quan tum finaliza, se supondr que dicho proceso ha legado a la cola de procesos prepa. rados antes de la finalizacién del mencionado quantum. E Prceteor a[o[sTelale[s]ole[e]e] >] =e [ole ]o[epo ls Orie! s 67 a 8 Wa is ee Ee WT Unk de empo Figura 5.6. Politica Round-Robin para g~ 1 La Tabla 5.3 representa los valores del ejemplo para g Tabla 5.3 Nombre Instante ‘Tiempo | proceso Meeada ejecucién I Se a A 0 3 3 s| 2 | 06 B 1 5 13 12, ze 0.42 | € 4 2 9 g a 0.40 D s 6 20 1S » 0.40 E 8 4 18 10 6 | 0.40 Media 94 34 O48 A continuacién se repite la planificacién RR para un valor de quantum 3 y con las mis- mas condiciones que en el caso anterior. La Tabla 5.4 y la Figura 5.7 representan los datos y el grafico, respectivamente, del ejemplo propuesto para este valor. 68 Siaemas Operator ‘Tabla 5.4 Nombre Tnstuceiin | Tempo instante |p | ae proceso legada gecucion finglizacion | | i A 0 3 a 3 oO 1.00 B 1 5 3 12 7 042 c 4 2 8 4 2 0.50 D x 6 vy 14 8 0.43 E 8 4 20 2 | & 0.33 a | [ Media 90 5.0 0.54 E > © 8 i Procesador co see tet > [e S723 @ 6 6 7 8 8 1 11 12:19 14 15 16 17 18 19 20 Unidades de tiempo Figura 5.7. Politica Round-Robin para q= 3. En este caso el tiempo de servicio T se mantiene pricticamente constante. Se puede ob- servar gue el tiempo de espera E crece de acuerdo con cl tiempo de ejecucién de cada pro- e250. ‘Las caracteristicas de esta politica de planificacién son. + Baja sobrecarga si el cambio de contexto ¢s eliciente y los procesos siempre estén en la memoria principal. © El tamaiio Optimo del quantum depende de: — El tipo de sistema, Las cargas que vaya a soportar el sistema. — El nimero de procesos en el sistema y su tipo. Es la politica mas ulilizada para tiempo compartido. — Offece un indice de servicio uniforme para todos los procesos. Es una politica apropiativa, Planifcacitin de! procesedor — 69 S353. Hemos visto que la politica RR mantiene constante el indice de servicio de los procesos cor- tos basdindose en la apropiacién del procesador. El método SIN (Shortest Job Next) es una de planificacién no apropiativa que trata de cubrir los mismos objetivos que la RR fsta politica toma de la cola de provesos preparados el que necesite menos tiempo de «jecucién para realizar su trabajo, Para ello debe saber el tiempo de procesador que necesita cada proceso, lo cual es tarea nada facil, pero posible a través de diversos métodos como pueden ser Ja informacién suministrada por el propio usuario, por el propio programa, ba- sindose en la historia anterior (heuristica), ete El tiempo de servicio T en esta politica es bueno para los procesos cortos, saliendo per- judicados los procesos lurgos. En la Figura 5.8 y la Tabla 5.5 pueden verse el grafico y los datos, respectivamente, del ejemplo propuesto en esta politica. E 2 aes ¢ - 8 A : Procasador 8 & E D 2 4 5 6 7 8 9 1011 21S 14 18 16 17 18 18 20 Unidas de tiempo Figura 5.8. Politica SIN. Tabla 55 | Nombre Jnstante ‘Tieny Tnstante [ | Me Piel ? proceso Hegada, ejecucién finalizacién | | eos ee gS EES A 3 3 3 0 1.00 B 5 8 7 2 0.71 c 2 10 6/4) 033 D 6 20 15 9 0.40 E 4 14 6} 2 0.67 f I 34 0.62 | Media 1 TO Sistemas Operativas No es apropiativa * Hen deeper auneta de seus co and oy roses, pl * Es poco predecible. No es justa con los procesos largos. @ Buen tiempo de servicio. © Resulta difieil de poner en practica por los datos que necesita para realizarse la pla- nificacion. La politica SRT (Shortest Remaining Time) es una mezcla de los dos métodos anteriores y trata de obtener las ventajas de ambos. Para ello esta técnica cambia el proceso que esta en sin co ssn ro 0A eo Sa sd GD @-: una exigencia de tiempo de ejecucion total menor que el que se esta ejecutando en el procesador. El valor del tiempo de respuesta medio de los procesos largos mejora con res- pecto a SIN. Presenta un excelente indice de servicio I y el tiempo de espera E es bastante corto para la mayoria de los procesos. SRT consigue una buena eficiencia, ya que logra que la lista de procesos preparados sea lo mas corla posible. En la Tabla 5.6 y Figura 5.9 pueden verse los datos y el grifico, respectivamente, del ejercicio propuesto para esta politica. Tabla 5.6 Nombre Tnstante Tiempo Instante | oe ee en ea proceso legada ejecuciin finalizacion | A ° 3 3 sf o | 100 B 1 5 0 9] 4 | oss q 4 2 6 2] 0 | 1.00 D 5 A 20 5] 9) 040 | o£ 8 4 2 30 Esta politica presenta las siguientes caracteristicas © Es-una variante de SIN, para hacerla apropiativa. * Puede ser injusta, ya que un proceso corto puede echar a uno largo que esté haciendo uso del procesadar y que ademas esté terminando, * Presenta una mayor sobrecarga, * Excelente tiempo medio de servicio. © Es muy eficiente, Plansficauion del prcesuior = 71 a —, [Ls Ts] ee ee CTP AG aT TTT ee Unidades de tiempo Figura 5.9. Politica SRT. En esta politica se asocia a cada proceso una prioridad, de manera que el procesador se asia- na al proceso de mayor prioridad. Las prioridades pueden ser definidas interna o externamente. En el primer caso, el sis tema operativo se basa en una serie de informaciones medibles para el calculo y asignacién de dichas prioridades (tiempo necesitado de procesador, necesidad de memoria, etc.). 5.5, A Prostedor aL 8 a [es] = x] o 12394 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Unidades de tiompo Figura 5.10, Politica de prioridad. 72 Siermas Operaivos El principal problema de esta politica es el bloqueo o postergacién indefii aD Para evitarlo se le emplear lo que se denomina enve} jumenta gradual- mente las prioridades de los procesos que ar el procesador. ilgoritmo basado en esta politica puede ser apropiative © no apropiativi FI comportamiento de esta politica como apropiativa puede verse grificamente, para el ejemplo propuesto, en la Figura 5.10, y los datos en la Tabla 5.7. Tabla 5.7 Nombre Instante Instante ey proceso legada finalizacion A 0 18 is} 15 | 017 B 1 12 nn} 6| 04s € 4 20 Is | 14 | 0.13 D 5 I 6] 0) 1.00 E 8 16 8] 4) aso 8 78 045 5.5.6. Prdximo el de mds alto indice de respuesta (HRN) HIN (High Response Next) es una politica que trata de corregir las posibles injusticias de la politica SIN con los procesos largos y las de la politica FCFS con los procesos cortos. Se basa en hacer variable la prioridad de un proceso, calculéndola constantemente por medio de la expresion: wit r donde: Pes Ia prioridad del proceso. ‘wes el tiempo de espera en la cola de procesos preparados. Les el tiempo de ejecucién del proceso. En un principio P valdré 1 ¢ itd aumentando paulatinamente a medide que el proceso permanezea en la cola de provesos preparados (w favorece a los procesos largos), ¢ ird dis- cuanto mis tiempo esté en ejecucidn (f favorece a los provesos cortos). Plain del procesador 73 Esta politica presenta los siguientes inconvenientes: © Siun usuario ejecuta un proceso corto inmediatamente después de que un proceso lar- 20 haya comenzado a utilizar el procesador, deberd suftir una larga espera. © Es muy costosa de llevar a la préctica, ya que la prioridad debe caleularse para todos Jos provesos en espera, cada vez que termine el proceso que esté haciendo uso del pro- cesador. ; © Sobrecarga mucho el sistema debido a los céleulos que debe realizar. El comportamiento de esta politica y sus datos pueden verse en la Tabla 5.8 y la Figu- ra 5.11 para el ejemplo propuesto. Tabla $8 [7 Nombre | Instante | Tiempo monte | phe |. | proceso egada jecucién | finalizacion A | 0 3 | 3 3) 0 |) 100 B 1 5 8 7/2 | on c 4 2 10 6] 4 | 033 D 5 6 16 ua) s | 036 | E 8 4 20 12} 8 | 033 Media 18 38 058 £ rayente D (srayenng _ Procesudor 5 ° E 78 9 10 11 12 19 14 15 16 17 18 19 20 Unidades de tempo Figura S.11. Politica HRN. Las caracteristicas de esta politica son: © No es apropiativa. © Es justa, ‘Es costosa de poner en prictica. © Produce una gran sobrecarga en el sistema. TA Sistemas Operatives Esta politica divide la cola de procesos preparados en varias colas separadas, de manera css pow se ia seminal sees y pe Para determinar en cada caso qué cola es la que suministrard un proceso para que ac- ceda al procesador cuando éste deje a otro anterior, serd controlada por un algoritmo de planificacién entre las colas, que normalmente es apropiativo de prioridad fija. La Figura 5.12 ifustra esta politica. Cola de proparadas (INTERACTIVA) AR Fin de ta ejecucion | ——— _rocssator Cola de presarados (INTERACTIVA) aR | [] | a rc) ‘yecucion FCFS Cola de pregarados (BATCH) 2 cenaee) —B. cr Figura 5.12, Planificacién de colas miiltiples. 5.5.8. Colas multiples con realimentacién (FB) Para dar un trato justo a los procesos, es necesario conocer previamente todos sus paréme- tros caracteristicos: la longitud, si estin limitados por entrada/salida o por procesador, la me- moria que van a necesitar, etc. Como estos datos no suclen ser conocidos, es dificil deter- minar el trato que debe recibir cada proceso. Plonieniin del procsador 75 Después de analizar les politieas anteriores, es féeil conctuir que se deben adoptar las siguientes cuestiones: * Favorecer los procesos cortas. ¢ Favorecer los procesos limitados por entrada/salida. © Determinar ta naturaleza del trabajo a realizar. Cola de preparados (NIVEL 1 Fin de la > | wocosucor] Fine le eiecucion Apropiacién Cola de preparados (NIVEL 2) processdor | Fade le ejecucién [ Cola de properadas (COLA n} ejesvcién FCS Figura 5.13, Planificacién FB. Cuando el proceso que esta haciendo uso del procesador finaliza su quantum, se selec- ciona un nuevo proceso del principio de la cola del nivel mas bajo que tenga algtin proceso. Una vez que un proceso haya consumido el quantum de su cola un determinado nimeto de veces, sin haber finalizado su ejecucidn, sera colocado al final de la de mrvel inmediatamente perior al anterior. 16 Sisemas Operatives La politica FB (Feedback Multiple Queues) intenta dar un trato justo a los procesos por medio de separacién de los mismos en calegorias, para asi darles el servicio que necesitan. Los procesos limitados por procesador irdn a las colas de menor prioridad (nivel més alto), mientras los de mayor prioridad serén aquellos procesos muy interactivos (Figura 5.13). En la Tabla 5.9 y en la Figura 5.14 pueden verse los datos y la grifica, respectivamente, de esta politica, permitiendo un quantum a cada proceso de la cola antes de pasar a la si- guiente. Tabla 5.9 Sombie | Tnviante Tiempo LL : proceso Megada ejecucion | | A 0 3 a i 8 0.27 B 1 5 18 7 2 0.29 c 4 2 2 3) 1 | 067 D 5 6 20 1s 9 067 | B 8 4 7 | 9 A 0.80 Media 10 70 054 ¢ A LA T1221 1221 29 3.3 3 4 4 4 5 8 6 cole aTe[atelelofe]o[elelal [ol F [el ole[s| ol PPrr ese? 8 Wi 2s 8 6 17 18 19 2 Unidades de tiempo Procesador Figura $.14. Politica FB. Las caracteristicas de esta politica son: © Soporta bien la sobrecarga, apropiativa, muy adaptable a las necesidades del sistema, ya que cada cola puede ser gestionada de forma diferente. Planificacin del procesador 77 8 10, nL 2. 1B. 4, 15, @A qué se conoce con el nombre de planificacién del procesador? 2QuE cometidos tiene 1a planificacién a largo plazo, a medio plazo y a corto plazo? 2Cuéles son Tos objetivos que intentan cubrir las politicas de planificacién del procesador? {Qué ctiterios se deben tener en cuenta a la hora de elegir 0 disefiar un algoritmo de planfica- cid det procesador? {Cuales son las mesldas que se utilizan para el estudio del comportamiento de las distintas po- liticas de planificacién del procesador? {Qué es un algoritmo de planificacién del procesador? GEn qué consiste une politica apropiativa? ‘Comentar brevemente la politica FCFS. Comentar breverente la politica RR. Comentar breyemente la politica SIN. Comentar brevemente la politica SRT. ‘Comentar brevemente la politica de prioridad. ‘Comentar brevemente la politica HRN, ‘Comentar brevemente la politica de colas miltiples. Comentar brevemente la politica FB. CAPITULO 7 oria principal Gestién de la mem 7.1, INTRODUCCION Para que un programa pueda ser ejecutado en una computadora, tanto él como los datos que vaya a manejar deben estar almacenados en la memoria principal o fisica. Por otra parte, para mejorar el rendimiento del procesador y su capacidad de proceso, se pueden repartir los servicios del mismo entre varios programas que necesilan estar simul- ‘taneamente eargados cn la memoria, por tanto se hace necesario «compartir» Ix misma. En el funcionamiento de una computadora podemos considerar la memoria principal como el recurso central, yt que tanto el procesador como los dispositivos de entrada/salida acceden a ella para leer y/o grabar la informacién que manejan (Figura 7.1). - ——>| Memoria Procesedor eae le] PRINCIPAL ae /S Figura 7.1. La memoria como recurso central El procesador leer de la memoria una instruccién para ejecutarla, ya su vez tomar de Ja misma los datos que necesite para al final depositar el posible resultado también en la me- moria. Esta operacién se estar repitiendo constantemente, y por ello la velocidad a la que se realicen estos accesos, tanto de lectura como de escritura, condicionarén la rapidez. y efi- cacia de la computadora, En general, se consideran importantes dos pardmetros relacionados con la velocidad de lectura y escritura de datos en la memoria principal, Se denomina tiempo de a lame: -moria.al tiempo que transcurre entre el inicio y el fin de una operacién de lectura o eseri- tura sobre la misma. El segundo parametro caracteristico es el tiempo de ciclo de memoria, que marca el retraso que impone el hardware entre el fin de una operacién y el principio de la siguiente. Ambos factores marean la velocidad de la memoria principal. 1 } 92 Sitemas Operatvos . DIRECCIONAMIENTO La memoria fisica se puede ver como una sueesién de bytes o palabras, cada uno con su propia direocién, de tal forma que se puede acceder a ellos de forma directa indicando di- cha direccién (Figura 7.2). _ = tenn rs —j 2 Acceso re @ # eS | . 2) Pid Figura 7.2. La memoria principal como una sucesién de bytes o palabras. Cuando se desarrolla el hardware de una computadora, se define el esquema de direc- cionamiento y la configuracién de su memoria, de tal forma que quede perfectamente iden- tificado cémo seri el funcionamiento y capacidad de todo acceso a la misma. Por ejemplo, si para direccionar un byte de la memoria se utilizan 16 bits, solo podremos direceionar 2"° bytes de la misma, que seré el espacio maximo direccionable de la computadora. El hardware también impone la unidad de informacién a la que se accede en cada direc cionamiento. Si la computadora es direccionable por palabra, seran éstas las que ocupardn las sucesivas posiciones a las que podremos acceder (en general el tamafio de una palabra dependeri de la computadora y estar compuesto por varios bytes). Sogiin el tamatio de la memoria a la gue se accede en cada operacién, existen dos tipos de computadoras. — Direccionables por byte. Direccionables por palabra, 7.2.1, Asignaciin de direcciones Hasta ahora sabemos que los programas, para ser ejecutados, deben estar y compartir me moria con otros programas, pero, fen qué direeciones se deben cargar? ee meet | esti de a memariaprinapal 93 Fl programador que diseita su programa no puede saber dénde se cargaré, simplemente definira una sentencia de inicio que marcard el comienzo de sus instrucciones, y a pattir de ella, describira el resto de su programa, Posteriormente, el compilador traducita a lenguaje | miiquina ef programa fuente y les asignara a las diferentes instrucciones y variables un des- plazamiento con respecto a la sentencia inicial que se denomina cero relativo. A esta opera- cién se le llama asignacién de direcciones relativas al programa. Una vez enlazado el progra- ma (link), el cargador podra colocarlo en memoria asignindole al cero relativo una direc- cién real, quedando definidas a partir de ella el resto de direcciones del programa por me- dio de los mencionados desplazamientos, Se realizard lo que se denomina transformacién de 4irecciones relativas en absolutas o reales (Figura 7.3). Direcciones simboticas (oetadaray = PROGRAMA FUENTE 4 COMPILADOR Direcciones vel & (Dossncameto rape ania) =P PmOstoNA Hero 4 Punto de carga (Direccién inicio) = ENLAZADOR/CARGADOR Direcciones absolutas = PROGRAMA CARGABLE Figura 7.3. Asignacién de direcciones en los programas, + __ Se logra asi independizar el desarrollo de un programa de su futura direccién de carga | en memoria. 7.3. JERARQUIA DE ALMACENAMIENTO Las primeras computadoras utilizaban memorias de tipo magnético como eran las de nie cleos de ferrita. Dado el nivel tecnolégico del momento, se trataba de dispositivos muy gran- des y caros que mantgnéan en todo momento los programas y datos que ejecutaban. Poco tiempo después, parecia ilégico mantener cargados en memoria principal aquellos progra- mas y datos que no fueran a ejecutarse, por otro lado, tampoco seria practico compilarios 94 Sistemas Operatives yy enlazatlos cada ver que fuera necesaria su ejecucion. Por ell ripidos de almacenamiento como las cintas y los discos permitio guardar en ellos dichos pro- ‘aramas y datos, transfiriéndolos a la memoria principal en ¢] momento en que fueran & eje- ‘cutarse, encargindose el sistema operativo de reatizar la gestion de este almacenamiento se- cundario, En la década de los sesenta, las nuevas tecnologias permitieron el desarrollo de memo- rias mucho més rdpidas que las magnéticas, aunque también més curas. Estas memorias ré- ppdas denominadas cache se comenzaron a utilizar para almacenar los programs y datos nis utilizados, logrdndose una mejora general en el fancionamiento del sistema que las in- cluia (Figura 7.4), TieMPO ACCESO CAPACIDAD Memoria CACHE directamente por el procesador MEMORIA PRINCIPAL J Los programas y datos oben ser transferidos a la memoria principal antes de ser tatados por el procesadlor Memoria secundaria cosTe Figura 7.4. Serarquia de almacenamiento, 1.4, GESTION DE LA MEMORIA ‘Alser la memoria un recurso tan caro y tan influyente en el rendimiento general de una com- putadora, debe ser manejado de la forma més eficiente posible. Por este motivo, el sistema | operative dedica gran parte de su software a su gestiOn (gestor de memoria), buscando la utilizacion mas adecuada al servicio que debe dar. Historicamente se han conjugado avances tecnol6gicos con‘ias exigencias del propio sis- tema que cada vez procesa més trabajo en menos tiempo. Estos factores han permitido el desarrollo de nuevas técnicas de gestion de la memoria. Gestn de le memoria principal — 95 7.4.1. Monoprogramacién Como ya se vio en el Capitulo 1, la monoprogramacién es el modo de trabajo en el que so- lamente un programa utiliza el procesador, siendo ademés el tinico existente en la memoria principal, de tal forma que hasta que éste no termine su trabajo no cederd el control al si- ‘guiente programas que serd cargado en memoria, sustituyendo al anterior. Veremos a conti- nuacién como se ha venido gestionando y cémo se gestiona la memoria en aquellos sistemas que utilizan este modo de trabajo. = La memoria dedicada Las primeras computadoras utilizaban lo que se denomina régimen dedicado, consistente en que el programador accedia directamente al hardware y gestionaba la memoria en sus pro- gramas. En estos primeros equipos se programaba en lenguaje maquina, sin existir sistema operativo y consiguientemente tampoco gestor de memoria (Figura 7.5). MEMORIA PRINCIPAL Programa de usuario Zona no ublizada Figura 7.5, Memoria dedicada, De esta forma, la utilizacién de la memoria es ineficaz y se obliga a un conocimiento profundo del hardware utilizado. El programador dedicaba gran parte de su tiempo y es fuerzo a gestionar el propio hardware, desvidndolo de su principal objetivo que era el pro- eso de la informacién, © Division de Ia memoria. El monitor residente La introduccién de os sistemas operativos para utilizar mejor el hardware dividié la memo- ria en dos zonas, una’ utilizable por el usuario, y otra reservada para la parte residente del propio sistema operativo denominada cominmente monitor. Este, entre otras funciones, se encarga de gestionar la memoria (Figura 7.6). MEMORIA PRINCIPAL Monitor rasidante | Ponca Zona no utizeda Figura 7.6. Monitor residente 96 Sivemas Operatives Este reparto de la memoria introduce nuevos problemas que es necesario resolver, estos problemas son: © Cémo asegurar la independencia de ambas zonas (Proteccién). * Como asegurar que los programas de usuario no se vean afectados por esta divisién de la memoria. = Protecciéa de Ja memoria Debido a que el programa monitor y el programa de usuario van a compartir la memoria, se hace necesario proteger Ia zona del sistema operafivo contra cualquier intento de acceso a dicha zona por parte del programa. Se establece, por tanto, una direccidn frontera que limita la zona del sistema operativo. Cualquier dizeecién de memoria que pida o solicite el programa de usuario se compara con dicha direccién frontera, permitiendo el acceso 0 no, segiin corresponda. Este control se rea- liza direetamente por e! hardware (Figura 7.7), a través de uno de sus registros. Evidentemente, este control provoca un cierto aumento de tiempo en el acceso a la me- ‘moria, pero éste queda compensado con la mejora en rendimiento que permite ol sistema operative. La direccidn frontera, en general, suele ser variable para permitir que un sistema pueda ir evolucionando en prestaciones y versiones de su propio sistema operativo, en definitiva que pueda variar su tamafio, obligando por tanto a variar la direccién frontera REGISTRO FRONTERA — si procesanon «=| ==>"<“CompaRACION > => | MEMORIA PRINCIPAL Jr enon Figura 7.7. Proteecidn de memoria. ® Reasignacién de direeci Una vez inicializado cl sistema operativo, el contenido del registro frontera indicard el pun- to a partir del cual puede cargarse cl programa de usuario. Para ello, es necesario reasignar Jas direcciones del programa en funcién de la frontera, Existen dos formas de realizar la rea- signacién, una estitiea y otra dindmic: Gestion de ta memova prinapal — 97 La reasignacién estitica se realiza durante la compilacién, o bien durante la carga del pro- grama en memoria. De esta manera, cualquier variacién de tamafio en el sistema operativo exige una nueva compilacién o carga del programa. Es una técnica ficil de realizar, pero demasiado rigida. La reasignaci6n dinimica se realiza durante la ejecucién del programa, Un dispositivo es- pecial del hardware interceptara cada direccién légica generada por el programa y le suma- ni el contenido del registro frontera para obtener la direccién real correspondiente (Figu- ta 7.8). ’ REGISTRO FRONTERA, ] Direccén Direesén PRocESADOR SL) | MEMORIA PRINCIPAL = reve absoita Figura 7.8, Reasignacién dinimiea. Cualquiera que sea Ia técnica utilizada, el usuario no mancjard direcciones reales en sa programa. Utilizaré direcciones relativas que podrin variar entre 0 y el maximo permitido por el sistema operativo. Este es el denominado espacio légico de direcciones. Posteriormente, el sistema operativo, con la ayuda del hardware, establecerd la corres- pondencia adecuada entre las direcciones relativas y las direcciones reales que configuran lo que se denomina espacio fisico de direcciones (memoria real). Esta separacién entre la visién del usuario (espacio ldgico) y la memoria real espacio fi- sico) permite gestionar ésta con mayor eficacia. ™ Intercambio de almacenamiento El desarrollo de dispositivos répidos de almacenamiento secundario (discos) hizo posible me- jorar la utilizacién de la memoria, La necesidad de atender a varios usuarios en los sistemas de tiempo compartido, impul- 6 el desarrollo de técnicas de intercambio de almacenamiento o swapping. Cuando un programa cargado en memoria quede a la espera de una nueva orden, el sis- tema operativo lo descargaré (swap-out) en dispositivos répidos de almacenamiento secun- dario, En su lugar cargara el de otro usuario (swap-in), traido de dichos dispositivos (Figu- ra79). Evidentemente, la eficacia de esta técnica dependerd, principalmente, de la velocidad con que se realicen la carga y descarga de los programas y de la velocidad de acceso a los dis- positivos de almacenamiento secundario, 98 Sinema Operatives MEMORIA SECUNDARIA (Disco) MEMORIA PRINGIPAL Sistema operative i swapin ——_— ——— ‘swapoul Figura 7.9. Intercambio de almacenamienio. Se puede reducir Ia influencia del cambio de programa si se solapa con la ejecucién. Para ello, el sistema divide la zona de usuario en dos partes. Mientras en una esti procesiindose un programa, en la otra se esté cargando otro (Figura 7.10). MEMORIA PRINCIPAL MEMORIA SECUNDAAIA (Disco) — Sistome operatho | Programa en ejecucién T procesAbon J >| Proorama cross Figura 7.10. Intercambio solapado. En este caso, el sistema debe encargarse de las interrupeiones y situaciones de los pro- esos extraidos de la memoria foperaciones de entrada/salida, etc). Por ejemplo, si un pro- ‘grama se queda a medias en una operacién de entrada de datos y el sistema lo extrae de la memoria, se encargaré de almacenar dichos datos de entrada en lo que se denomina buffer hasta que el programa vuelva de nuevo a la memoria y cmpiece a ejecutarse otra vez. Hlasia aqui hemos considerado sistemas on los que, en un momento dado, sélo existe un programa de usuario en la memoria principal, es decir, sistemas que trabajan en monopro- gramacién Con el solapamiento en cl intercambio se introduce un nuevo modo de trabajo en el que existen en un determinado momento Varios programas de usuario en la memoria, que pasa mos a estudiar a continuacién ur Gest de la memoria principal — 99 7.42. Multiprogramacion ‘Como acabamos de ver, la necesidad de utilizar mas eficazmente las computadoras y su me- moria nos introduce en la técnica de la multiprogramacién que, como vimos en el Capitu- lo 1, permite el acceso al procesador de varios procesos simulténeamente, repartiendo el tiem- po entre todos ellos, segiin diversas téenicas, Para poder repartir el procesador entre varios procesos, necesitamos tenerlos en memoria principal, por ello se divide ésta en trozos deno- mainados particiones o regiones, donde se cargurdn los diferentes procesos. El niimero de par- ticiones indicaré el grado de multiprogramacién del sistema. © Proteccién de la memoria Si se encuentran simultineamente varios procesos en memoria, debemos proteger sus res- pectivas particiones contra accesos no deseados. El mecanismo de proteccién deberd, por tanto, actuar sobre cada referencia de memoria generada, siendo rapido en su gestion, pues de lo contrario, producird una pérdida de tiem po importante. La rapidez justifica que se utilicen, para esta funcidn, determinados registros hardware, Para cada particion se utilizan dos registros limite cuyos contenidos apuntardn a su parte superior e inferior, de tal manera que, cada direecién generada en el proceso que se trale deberd estar entre dichos limites (Figura 7.11). LIMITE INFERIOR LIMITE SUPERIOR L u | direcsidi si si PROCESADOR [=> => 128K are, Se] tok [60¢] ————=> 128K case =] 130K | =<» 250K Figura 7.14. Particiones con colas de espera, Esta técnica es simple y facil de desarrollar, pero su eficacia est muy condicionada por Jas exigencias de memoria de los programas y su orden de llegada. Para solucionar problemas que pueden aparecer en el método anterior, se puede utilizar otra técnica consistente en una sola cola de espera, y sera el sistema por medio del Planifi- cador de Trabajos el encargado de seleccionar qué programa cargar y en qué particién, En este caso, el planificador de trabajos puede realizar la seleccidn de varias formas: '* Respetando el orden de Hegada (FIGO-First In, First Out). Método facil de programar, pero provoca en ocasiones infrautilizacién de la memoria. * Seleccionar el trabajo de tamaiio mis adecuado a la particién libre (el més adecuado 0 Best Fit). Se realiza analizando la cola de espera y eligiendo el de tamaiio mis adecua- do a la particién libre. * Seleccionar el primer trabajo que queda en Ia particién disponible (el primero disponible o First Fit), De caracteristicas similares al anterior. La Figura 7.15 muestra esta técnica de gestion. MEMORIA PRINCIPAL Sistema operative > 128K ot __ Sipe I i s**| 110K | 130K |60K) 70K 128K tL» 256K Figura 7.15. Particiones con cola de espera tinica. + 102 Sistemas Opertivas Se mejora notablemente el rendimiento si se afiade a la gestion de las particiones téoni- cas de intercambio, de tal forma que un programa pendiente de un suceso o interrupcién puede ser sustituido por otro. El desarrollo de esta técnica de gestién representd un notable avance respecto a esque- mas anteriores. Sin embargo, su eficacia queda condicionada por la eleccién del tamaiio y niimero de las particiones en relacién con las caracteristicas de los programas a tratar. Si se analiza la utlizacién de las particiones, aparecen dos problemas originados por la propia estructura de las mismas que disminuyen la efectividad de In gestidn, éstos son los siguientes: * Si un programa necesita 100K de memoria y se encuentra en una particidn de 128K, se desaprovechan 28K cenomindndose cl suceso fragmentacién interna (Figura 7.16). * Por otra parte podemos tener un programa de 130K en la particion de 256K y otro de 100K en una de 128K, presentindose una peticion por parte de un programa de 140K. que no podri ser cargado en la particién libre, mientras por otra parte existe, en teoria, memoria total suficiente, A este suceso se le denomina fragmentacién exter- na (Figura 7.16). MEMORIA PRINCIPAL Sistema operative Fragmentacin —— ‘externa a U 140K | 100K | 130K I ti p= Figura 7.16. Fragmentacién de la memoria. ™ Particiones contiguas de tamaiio variable Los inconvenientes de la técnica anterior nacen de la dificultad de definir unas particiones de tamatio adecuado para todos fos trabajos que se deben tratar. Este problema se afronté desarrollando una nueva técnica de gestién que asigna dinamicamente la memoria a los tra- ‘bajos de acuerdo con su tamaho. En este caso, el sistema operative mantendré una tabla interna donde registrar las z0- nas de memoria disponible o huecos, asignando a cada trabajo una particién del tamatio so- licitado, Esta técnica es Ia denominada de particiones contiguas de tamaiio variable (Figu- 1a 7.17), Gestin de la memoria prieepat 103, MEMORIA PRINCIPAL Sistema operative T1.(130K) T2 (100K) 73 (140K), p Figura 7.17, Carga de trabajos en particiones variables. Cuando se arranca el sistema, a medida que van apareciendo trabajos en la cola, se van asignando las sucesivas particiones hasta que la memoria se completa, aunque siempre apa- rece una pequeia fragmentacién externa (parte final de la memoria). A medida que van ter- minando los distintos trabajos, el planificador va sustituyendo un programa por otro, de tal forma que van apareciendo huecos libres distribuidos entre las zonas ocupadas. El sistema asignari estos huecos mientras existan trabajos en espera que quepan en ellos. Lo hard bus- cando el primer trabajo que quepa en el hueco a asignar (First Fit) 0 aquel que se acople mejor (Best Fil) Cuando aparecen huecos contiguos, el gestor de la memoria tiende a unificarlos, por lo que en ningin momento existiran dos particiones contiguas vacias: Con esta técnica, la memoria sufre un constante proceso de fragmentacién. Para evitar- Jo, surge la idea de recolocar las zonas de memoria utilizadas para lograr cada cierto tiempo tun nico hueco de memoria disponible. Esta operacién se denomina compactacién y no es sencillo de realizar, pues existen diversas formas de recolocar varios programas en la memo- ria y con diferente coste. Ademis, es necesario que los programas sean reubicables para po- der cambiar de zona de memoria principal (Figura 7.18). MENORIA PRINCIPAL MEMORIA PRINCIPAL ‘Sitema operative Stems eneraivo 75 (1008) 75 (100K) Te (60K) "T6 (60K), en i 74 (200K), Fi a 7.18. Compactacién de trabajos. 104 Sisters Operatives Con las particiones variables se logra un mejor aprovechamiento de memoria que con las particiones fijas. Ahora bien, la fragmentacién que sufre la memoria es su mayor incon veniente debido a la sobrecarga que se origina en el procesador para realizar la compact cidn con la consiguiente pérdida de tiempo. 7.4.3. Paginacién La necesidad de asignar memoria en cantidades contiguas para cada programa es el mayor inconveniente para un buen aprovechamiento de la misma. La paginacién es una técnica de gestién que permite asignar la memoria de forma discontinua, Con este fin, se divide la me- moria en trozos de tamaiio fijo llamados armazones 0 frames y !a logica en bloques de igual tamaiio denominados paginas. El sistema operativo mantiene internamente una tabla de pé- ginas donde relaciona cada pigina cargada en memoria con el frame que la contenga, es do- cir, su direecién inicial en memoria real (Figura 7.19). MEMORIA LOGICA TABLA DE PAGINAS MEMORIA FISICA, — I Frames PI tf — PI P2 2| Fa 7 paginas ¢ | Pa 3] Fa Pa + P2 Pa alr Figura 7.19, Paginaci Cada direcci6n que genere el provesador serd interceptada y dividida en dos componen- tes, un méimero de pigina (p) y un desplazamiento en Ia psigina (@). Utilizando p como indice, el gestor de memoria del sistema recorrerd la tabla de paginas hasta localizar dicha pagina, y-a continuacidn sumaré d a la direccién de carga correspondiente, obteniendo asi la direc- cin real adecuada. El tratamiento anterior exige que se realice por hardware, pues de no ser asi, se intro- duciria un retraso excesivo (Figura 7:20), Cada programa se divide en péginas, y éstas se cargan en frames libres que no tienen por qué ser contiguos. En general, un frame sucle tener un tamaiio potencia de 2 como es habitual, y éste se establece en el disefio de la arquitectura de la computadora (por ejemplo, Ja computadora 370 de IBM dependiendo del sistema operativo que utilice, tiene paginas de 2.048 0 4.096 bytes). © Gestion de la memoria La paginacién es una forma de reasignar direcciones dindmicamente. El sistema analizaré cada muevo trabajo que se disponga a entrar para conocer el mimero de paginas que ocupa Gest de ts memoria principal — OB MEMORIA FISICA, procesapor |—>[p |_| fi 4a |= Tabla de paginas Figura 7.20. Hardware de paginacién. ¥y buscard en su lista de frames libres un nimero igual de ellos. Si éstos existen, eargar’i en ellos las paginas del programa y construiré la correspondiente tabla de paginas, actualizando la lista de frames libres. Cada trabajo en memoria tendrd su propia tabla de paginas apun- tada por el bloque de contro! del proceso. De esta manera, se logra evitar la fragmentacién externa ya que cualquier frame libre es asignable a un trabajo que lo necesite. Por otro lado, seguira existiendo fragmentacién interna puesto que, en general, los tra- bajos no ocupardn un tamafio miltiplo del tamafio de la pagina. Esta fragmentacién se re- duce si la pigina tiene un tamafio pequefio, pero se necesitaria una tabla de paginas mayor, = Rendimiento, Memoria cache. Registros asociativos Para agilizar la conversion de direociones, el sistema mantiene en memoria la tabla de pa ginas de cada uno de los trabajos activos, y utiliza un registro especial, llamado registro base, para indicar la direcciéa de la tabla de paginas del trabajo en ejecucién en ese momento. De esta forma cuando se conmute de un trabajo a otro, se restaura la direeeién de la tabla de péginas correspondiente. Para transformar cada direocién lgica (p.d) generada por el provesador en su direccién real, el sistema accede en primer lugar a la tabla de paginas correspondionte (Registro base + p)y posteriormente a la direccién real (frame + d), De esta manera, cada direccién pro- vvoca dos accesos a memoria y se duplican los tiempos de ejecueién, Con ello, hemos logra- do mejorar la utilizacién de la memoria, sin embargo, ls duracién on los procesos es mayor. Para solventar este problema, se recurre a memorias pequefias de muy alta velocidad (también muy cares) donde se pueden mantener las entradas a las tablas de paginas mas uti- lizadas, Esta memoria, conocida como memoria cache, es similar a la memoria principal pero con menor tiempo de acceso y con ello se logra reducir notablemente el retraso pro- ducido por la paginacién, En el caso de sistemas pequefios, con tablas de piiginas de pocas entradas, se puede uti- lizar un conjunto de registros hardware para contener dicha tabla. Estos registros son los. llamados registros asociativos (Figura 7.21). | 106 Sistemas Operadins rn divecoién real CE Figura 7.21. Registros asociativos. Se define como tiempo efcetive de acceso a memoria al tiempo medio de acceso de todas las direcciones esté o no su entrada de pdgina en la memoria cache. = Pginas compartidas La técnica de la paginacién permite que varios procesos o usuarios compartan piginas car- gadas en memoria, Esta posibilidad es especialmente positiva para los sistemas de tiempo compartido, Imaginemos un sistema con 20 usuarios que utilizan el programa editor de tex- tos, en él se cargaré una sola vez el programa correspondiente, y éste sera utilizado por to- dos ellos aunque los datos sean propios de cada uno. Para ello, cada usuario contendrd en su tabla de paginas las entradas correspondientes al editor, apuntando todas ellas a los mis- mos frames y a distintos para los datos. Puesto que es muy comin utilizar paginas compartidas, el contenido de éstas debe per- ‘manecer inalterado. Las paginas que se deseen compartir dében tener cédigo reentrante, es decir, que durante su ejecucién no se altera ningin valor interno. Si el contenido de las paginas compartidas no debe modificarse, debemos protegerlas con- tra todo intento de escritura. Necesitamos un sistema de proteccién de las paginas en me- moria que no sélo controle las direeciones a las que se puede acceder, sino también el modo en que se realiza dicho acceso. Para ello, se afiaden a las entradas de la tabla de paginas una serie de bits de proteceién. El esquema de proteccién se complementa con otro bit por entrada de la tabla de paigi- ‘nas que se denomina bit de validez. Con la paginacién se produce una quiebra importante entre Ta vision que tiene el usua- rio de la memoria y la forma en que la utiliza. El usuario desarrolla su programa conside- rando la memoria como algo contiguo, pero éste se carga troceado o paginado en zonas di contiguas de la memoria real, El encargado de hacer cortesponder el espacio logico de di recciones (continuo) y el espacio fisico de direcciones (discontinuo) es el hardware de trasla- cién dindmica de direcciones, Gestin de a miemoria peinipal — 107 7.4.4. Seomentacién La segmentacién es una técnica distinta de gestion de memoria que pretende acerearse mis al punto de vista del usuario, Los programas se desarrollan, generalmente, en torno a un niicleo central /principal) des- de el que se bifuurca a otras partes (rutinas) o se accede a zonas de datos (tablas, pilas, etc.) Desde este punto de vista, un programa es un conjunto de componentes légicos de tamaiio variable 0 un conjunto de segmentos, es decir, el espacio légico de direcciones se considera como un conjunto de segmentos, cada uno definido por su tamatio y un niimero (Figura 7.22). i eR a CONTADORES: Rutina de errores Rutina principal Tabla de datos [| Figura 7.22. Espacio logico de direcciones. La segmentacién de un programa la realiza el compilador y en ella cada direccién logica se expresard mediante dos valores: mimero de segmento (8) y desplazamiento dentro del seg- mento (4). © Hardware de segmentacion Puesto que la memoria fisica se direcciona linealmente, sera necesario transformar cada di- reecion légica (6d) en una dircccién real /r). Esta conversion la realiza un dispositivo espe- cial de hardware consultando la tabla de segmentos correspondiente (Figura 7.23) = Rendimiento Esta tGenica permite reducir la fragmentacién interna de la memoria provocada por Ta pa- sinacién, ya que asigna a cada programa la cantidad de memoria que requiere. eens 108 Sivemas Operantoe Tabla da suginentos > Th direccion Procesapon | ——> L I6giea st direocién COMPARACION> => > | MEMORIA REAL jr L ERROR Figura 7.23. Hardware de segmentaci6n, La carga de un programa en memoria exige la busqueda de los huecos adecuados a sus segmentos, y puesto que éstos son de tamafio variable, se ajustariin lo més posible a las ne- cesidades, produciéndose huecos pequedios. En este caso se produce fragmentacién externa, La eficacia de la segmentacién requiere, de igual forma que la paginacion, el uso de me- morias cache para lograr unos tiempos de acceso adecuados. De igual forma que en la paginacién, se pueden compartir segmentos entre varios pro- esos, Hemos visto que, tanto la paginacién como la segmentacién, tienen ventajes e inconvenien- tes, ¥ parece ldgico intentar combinar ambas técnicas para aprovechar sus caracteristicus po- sitivas. En todo sistema se define, por su arquitectura, un espacio maximo de direcciones logi- cas, tamafio maximo de cualquier programa que quicra ejecutarse, e implica un nimero de paginas. Por esto, algunos sistemas (Serie 370 de IBM) utilizan una técnica de pas segmentada consistente en segmentar la tabla de paginas adecuandola al amafio del progra- ma. Para ello, mantiene una tabla de segmentos cuyas eitradas indican la direccién de i de cada tabla de paginas y su tamafio. Se utiliza un hardware especial (Figura 7.24). Otros sistemas (MULTICS, GE 645) optan por paginar los segmentos, es decir, utilizan segmentos cuyo tamaiio siempre es un nimero entero de paginas, Esta técnica se denomina segmentacién paginada. La tabla de segmentos dela segmentacion pura cambia de contenido y sus entradas ya ‘no apuntan al inicio del segmento correspondiente indicando su tamafio, sino que apuntan a una tabla de paginas del segmento indicando su longitud (Figura 7.25). estén de a memoria principal — 109 1 _— a —— Komas> ive ERROR >) — > [ora TP. oe Tabla de ] péginas Table de = weer] amet LD ‘abla de segmantas 5 MEMORIA REAL Figura 7.24. Hardware de paginacién segmentada, PROCESADOR Direcsion eT 4 sid F Cowranscion pig R No | ORT ls MEMORIA tt REAL | Ele. ‘aireceion real Rogistio base segmenitos tabla da segmentos, Tabla do paginas Figura 7.25. Hardware de segmentacin paginada, 110 Sistemas Operatinas De esta forma se evita la fragmentacién externa propia de la segmentacién, pues cual aqier buoeo seré de una pégina como miimo, y por tanto utlizable para cualquier segmen- to que lo necesit 7.4.6. Memoria virtual Los sistemas de gesti6n de la memoria vistos hasta ahora estén sujetos a la exigencia de que tun programa, para ejecutarse, debe estar eargado en memoria principal en su totaidad. Sin embargo, no todas las partes del programa se ejecutan normalmente, EI programador diseia rutinas que sélo se cjecutan en determinadas circunstancias, Por ejemplo, aquellas que tratan situaciones de error. Con este enfoque no parece nevesario que todo el programa esté cargado en memoria para poder ser procesaio, ‘La memoria virtual es una técnica de gestion que, combinando hardware y software, per- mite la ejecucién de programas parcialmente cargados en memoria real ‘Feta forma de trabajar aporta ventajas importantes: «@ Silos programas se pueden ejecutar por partes, la memoria gien puede ser mayor aque la real disponible. « Puesto que cada programa ocupa menos memoria real, se puede elevar el indice de multiprogramaciéa, y por tanto, la eficiencia del sistema. Al cargar menos cantidad de cada programa, se nevesitan menos operaciones de en- trada/salida para las operaciones de carga e intercambio de los mismos, Las diferentes partes de un programa se van cargando en memoria a medida que se ne- cesitan, y por ello, esta técnica debe considerar tres aspectos importantes: «Carga. Las porciones del programa se cargan cuando se necesiten(peticion de pagina) oo bien se pueden cargar por adelantado (anticipacién o prepaginacion), «© Colocacién, Los sistemas de memoria virtual que utilicen segmientacién deben decidir, al cargar un nuevo segmento, silo hacen en el hueco mis adecuado o bien en el pri mero posible. © Sustitucién, Lo normal serd que toda la memoria real esté ocupada, y cuando se ne- snste cargar una nueva parte de un programa habré que reemplazar alguna de Tas exis- tentes. Es importante definir la seleccién de la parte a reemplazar. Esta técnica es dificil de evar a Ia prictica. Los sistemas que la utiizan son complejos, pero a la vez, deben ser muy eficientes, De lo contrario, la ejecucion de los programas pus de empeorar notablemente. = Carga por peticién de piginas Este es el esquema de carga mais comin cuando se utiliza la téenica de memoria virtual. Su fancionamiento es similar al de un sistema de paginacién con intercambio (Figura 7.26). Gestin de ta memavia principal — VAL MEMORIA SECUNDARIA MEMORIA PRINCIPAL > =a 1 a { snap ea Bz es - AL a et ma Figura 7.26. Paginas ¢ intercambio. Ahora el algoritmo de intercambio no llevara a memoria todo el programa, sino que slo cargaré aquellas paginas que se le pidan. Cuando el procesador genere una direccién que pertenezca a una pagina que no se en- cuentre en memoria falta de piiginas», la buscard, y a continuacién, la traetd a memoria desde ol correspondiente dispositivo de memoria secundaria, La técnica de la memoria virtual se puede levar a la préctica con ef mismo hardware que la paginacién de memoria real y un software mas complejo. El tratamiento de las faltas de pagina introduce un retraso adicional en la ejecucién de Jos programas y afecta por tanto al rendimiento general del sistema. El disefio del software necesario debe ser especialmente cuidadoso en este aspecto © Reemplazamiento de paginas La técnica de peticién de piginas permite reducir, como ya se ha dicho, la memoria ocupa- da por cada programa durante su proceso. Todos Jos sistemas que utilizan la técnica de memoria virtual sobrentilizan en mayor o menor medida la memoria fisica para obtener un mejor rendimiento. Pero para ello, deben hhacerse algo més complejos, veamos por qué. Supongamos que uno de esos programas intenta acceder a una direccién cuya pagina no esti en memoria. El hardware la intercepta y cede el control al sistema operalivo que, después de comprobar que es una direccién legal, la trata como una falta de pagina, Busca. iT pagina correspondiente en el almacenamiento secundario y, una ver, localizada, le bus- card un hueco en memoria, En. este punto al analizar la lista de frames libres comprucha que no hay hueco disponible y, como responsable de la gestién de la memoria, debe resolver la situacién sin afectar al programa, ‘Una posible solucién es sacar de memoria alguno de los programas cargados y utilizar los frames que deja libres, pero esto lleva consigo una sobrecarga importante en la opera cién de intereambio (wap). _ .. 112 Sistemas Operativos La solucién adoptada, generalmente, es sustituir alguna de las paginas cargadas (reem- plazar piginas). Para ello, la rutina del sistema que gestiona la interrupcién de falta de pé- gina deberd trabajar de la siguiente manera: * Encontrar la pagina solicitada en el almacenamiento secundario, * Encontrar un frame libre. * Si cxiste, utilizarlo. © Si no existe, utilizar un algoritmo de reemplazamiento para seleccionar la pigina a reemplazar. * Salvar la pagina reemplazada en el almacenamiento secundario, actualizando las tablas afectadas. Lievar la pigina solicitada al frame libre y actualizar las tablas correspondientes. ™ Algoritmos de reemplazamiento El algoritmo dptimo seri aquel que seleccione para su sustitucién la pagina que vaya a tar- dar mas en ser ulilizada. Cuando se produce una falta de pagina, la memoria est ocupada por un grupo de paginas y una de ellas, la que provocd la falta, va a ser usada inmediata- mente y, por tanto, no debe ser sustituida. De las otras, algunas se necesitarin al cabo de ‘unas pocas instrucciones, otras al cabo de algunas mas, Es evidente que la mejor solucién es reemplazar la que tarde mas instrucciones en ser necesitada, ya que su ausencia tardard mas en hacerse sentir y durante ese intervalo pueden acabar otros procesos con la consi- guiente liberacién de frames, La dificultad de esta solucién radica en Ia imposibilidad de prever el comportamiento futuro de los procesos, pero como en otras muchas situaciones de la vida cotidiana, se pue- de prever, en cierta medida dicho comportamiento, partiendo de la experiencia de! pasado, de las referencias a memoria que hasta e! momento han realizado los procesos. Los algoritmos que se han ideado para controlar el reemplazamiento parten de la utili- zacion pasada de las paginas para aproximarse a la solucién éptima, Su idoneidad quedard Gefinida por dos factores: mimero ce faltas de pagina que provoca y el coste de su utiliza- cién (la sobrecarga que produce en el sistema). ‘Un factor que condiciona el niimero de faltas de pagina es el niimero de frames dispo- nibles en el hardware, En general, a més frames menos faltas (Figura 7.27). FALTAS DE. PAGINA No FRAMES Figura 7.27. Niimero de frames y faltas de pagina, OOOO Gestin de ka memoria principal — WA3 © Algoritmo de reemplazamiento FIFO Fate es ol més sencillo. Cuando se necesite sustituir una pagina, se elegiré aquella que lleve mis tiempo en memoria (primera en llegar, primera en salit-First In, First Out). Para controlar el tiempo de permanencia en memoria de las paginas, este algoritmo uti- liza una cola de llegada a memoria de las mismas. La primera de la cola ser aquella que lieve més tiempo cargada y, segin el criterio FIFO, serd la primera en ser sustituida. Un criterio de seleccién tan simple es facil de programar y a la vez produciré poca so- brecarga en el sistema, pero su eficacia es relativa. No ¢s improbable que la razén por la que una pagina lleve més tiempo en memoria sea su mayor utilizacién, y en ese caso, este algoritmo sustituird la pagina menos adecuada, Pen- semos en un sistema de tiempo compartido con varios usuarios utilizando un editor de tex- tos, compartiendo paginas del mismo, Normalmente serdn estas las més antiguas en memo- ria y, aunque su utilizacién es muy alta, el criterio FIFO las reemplazara provocando inme- diatamente una sucesidn de falta de paginas. Este algoritmo es inadecuado para sistemas de tiempo compartido, pero puede ser ttil en entornos batch. ® Algoritmo LRU Este algoritmo es una buena aproximacién a la solucién Sptima, considerando que aquellas paginas muy usedas en el pasado reciente Jo serdn también en el futuro, En el mismo sen- tido, las paginas’ poco utilizadas en el pasado seguirin siéndolo en el futuro, y se deberd sus- tituir aquella que haya sido menos usada recientemente (Least Recently Used), En este caso, la utilizacién del tiempo de uso es un criterio que refleja mucho mejor el comportamiento de los procesos en su utilizacién de la memoria. ; Ponerlo en prictica es relativamente dificil, ya que el sistema debe contabilizar, de algu- na forma, cl tiempo en el que se produce cada referencia a memoria para poder clasificar Jas paginas segiin su uso. Este control se puede realizar de varias maneras: * Contadores de hardware. La solucién més simple es incorporar un contador de refe- rencias a memoria y aiiadir un campo a las entradas de la tabla de paginas que pueda almacenar el valor del contador. Para servir una falta de pagina, el sistema busca el valor del contador registrado que sea menor, © Matrices de hardware. En este caso, si la computadora dispone de N frames, el hard- ware debe mantener una matriz de N = N bits puestos inicialmente a cero. Al acceder- se a.una pagina K, el hardware pone a 1 todos los bits de la fila Ky a 0 todos los bits dela columna K. En cualquier momento, la pigina menos usada recientemente es aque- Ta cuya fila tenga el menor valor binario. * Pilas, Otra alternativa es mantener una pila de los niimeros de las paginas utilizadas, Cada vez que se utiliza una pagina, su mimero se coloca al principio de la pila. En un momento determinado la pagina menos recientemente utilizada sera la del fondo de la pila. 114 Sistemas Operativas En todas estas opciones del algoritmo LRU se exige disponer de un hardware especial, ¥ por ello, su aplicacién se limita a aquellas computadoras que dispongan de Ios elementos necesarios. ® Otros algoritmos Dadas las dificultades del algoritmo LRU, se ha tratado de encontrar algoritmos mas sen- cillos y menos costosos de realizar. Una prictica bastante extendida es la utilizacién de un bit de referencia asociado a cada entrada de la tabla de péginas. Cada vez que se utiliza una pagina, el hardware activa el bit, correspondiente. Conforme se van utilizando las distintas paginas cargadas en memoria se activan sus bits de referencia y, en un instante dado, aquellas cuyos bits estén a cero, serin candidatas a ser reemplazadas. En general, los bits de referencia se restauran cada cierto tiem- ‘po (puesta a cero). Otro algoritmo es el denominado menos frecuentemente usado (LFU-Least Frequently Used). Consiste en asociar un contador a cada pagina, de tal forma que, a intervalos regu- lares, se produce una interrupeién que pasa control al sistema y éste afiade al contador de cada pagina el valor del bit de referencia, poniendo después a () todos los mencionados bits de referencia, Cuando se produce una falta de pagina se sustituiré aquella cuyo valor del con- tador sea menor. En ocasiones, algunos algoritmos se complementan utilizando un bit de modificacién por cada pigina, indicando si el contenido de la misma ha variado 0 no desde que se cargé en memoria, Se deben sustituir preferentemente aquellas paginas que no se hayan modificado, pues asi se evita tener que salvar su contenido en el almacenamiento secundario, con el con- siguiente ahorro en operaciones de entrada/salida. 7.4.1. Criterios de reemplazamiento de paginas Si se produce una falta de pagina en nuestro sistema, cualquiera de los algoritmos analiza dos nos puede ayudar, con mayor o menor efectividad, a seleccionar la pagina a sustituir, Pero, jentre qué paginas elegimos?, las del propio proceso o entre todas las existentes? En el primer caso hacemos una seleeci6n local o por proceso, y en el segundo, lo haremos global o general. En Ja Figura 7.28 tenemos tres procesos: A, B y C, ocupando la memoria con una serie de paginas. Al lado de cada una de ellas se especifica la edad 0 tiempo que cada una lleva en memoria. Supongamos que el proceso A necesita traer otra de sus paginas a memoria produciendo la correspondiente fulta de pagina. Si aplicamos el criterio local de seleccion, {a pagina sustituida serd la tercera del proceso A(A3), y si se aplica el criterio global se sus- tituird la tercera de B(B3). Gestin de la memorie principal 115, Edad — 10 i 5 3 G—=———=—— SELECCION Local (Aa) a 4 6 2 == SELECTION GLOBAL (A4) 5 8 6 4 ‘Figura 7.28. Reemplazamiento local y general 7.4.8. Asignacién de memoria En el disefio de un sistema operativo se debe afrontar otro aspecto importante de la gestion de la memoria como es determinar cudintos frames asignar a cada proceso activo. La propia arquitectura de una computadora impone unos minimos de asignacién por proceso, por tan- 10, el propio sistema debe asegurar a todo proceso un nimero minimo de paginas en me- moria (minimo estructural). Si por cualquier raz6n un proceso se queda con menos frames de los indicados, el siste- ma deberd suspenderlo y sacarlo (swap-out). Aunque en principio el mimero de frames asignados a un proceso podri reducirse hasta ese minimo, de hecho, cualquier proceso en un momento dado esté utilizando un miimero mayor. Suponiendo que por su prioridad u otra razén, un proceso no pueda robarle frames 4 otros procesos, deberd sustituir una de sus piginas activas provocando, casi inmediata- mente, otra falta de pagina, y asi sucesivamente, A esta situacidn se le denomina hiperpagi nacidn o trashing en la que se consume mis tiempo paginando que procesando. * Localidad de los procesos Para evitar situaciones como las descritas, es necesario asignar a cada proceso el nimero de frames que necesite en cada momento de su ejecucidn. El problema radica en cémo conocer ese mimero. Afortunadamente, el comportamiento de los procesos permite afrontar el problema, ya que todo programa esta compuesto por varias partes o subrutinas de forma que su ejecu- cién se realiza por fases, una detras de otra. En cualquier momento el proceso direcciona, sélo una pequeita parte de sus paginas. Este comportamiento se conoce con el nombre de localidad de referencias de los pracesos, y con su ayuda, podemos conocer el niimero mini- mo de frames que requiere un proceso para evitar una situacién de hiperpaginacién. 116 Sisteanas Operatives ® Frecuencia de falta de pigina ‘Una forma directa de controlar la asignacién de memoria y evitar situaciones no deseadas se basa en el control de la frecuencia con que un proceso produce faltas de pagina. Puesto que la hiperpaginacién se caracteriza por un gran niimero de dichas faltas, el objetivo es man- tener la frecuencia de las mismas entre unos limites preestablecidos (Figura 7.29). FRECUENCIA De FALTAS DE PAGINAS, Ne FRAMES Figura 7.29. Frecuencia de faltas de pagina. Sila frecuencia de faltas de pagina de un proceso sobrepasa el limite superior, el sistema le asignaré mis frames, y si cae por debajo del limite inferior, indica que al proceso se le pueden reducir el mimero de frames asignados. 7.5. CONSIDERACIONES DE DISENO Disefiar el componente de gestién de la memoria de un sistema operativo no queda limitado a elegir los algoritmos mas adecuados para la asignacién de frames y reemplazamiento de paginas, hay otros factores que deben tenerse en cuenta para lograr un funcionamiento efec- tivo. Uno de esos factores es el tamafio de las paginas, que afecta notablemente al rendimien- to del sistema. Este factor esta limitado por las caracteristicas constructivas de la propia com- putadora y decidir su tamafio adecuado no es sencillo puesto que hay que equilibrar diver- s0s factores © Tabla de péginas. Estas se encuentran en memoria principal y es necesario reducir al maximo su tamafio, Jo que nos condiciona a diseftar paginas grandes (tablas con pocas filas). © Fragmentaciin, El tamafio de los programas no suele ser un miiltiplo exacto de pagi- nas, lo gue nos produce la ya mencionada fragmentacin de la memoria, Ello nos re- comienda paginas pequefias © Transferencia, Llevar una pagina del almacenamiento secundario a memoria y vicever- sa es una operacién larga, y el factor mas determinante es el tiempo de latencia y bis- queda del dispositive. Desde este punto de vista, es bueno que las piginas sean gran- des para transferir mas bytes en cada operacién de entrada/salida. * Faltas de pagina. A mayor tamafio de pis y ina se producirdn menos faltas de pagina reduciéndose la sobrecarga que conllevan. El tamaiio de las paginas es siempre una potencia de 2, variando entre 512 y 4.096 bytes, Cada fabricante optaréi por el més adecuado a los objetivos que se pretenden, La gestion de la memoria debe posibilitar también compartir piginas entre procesos y, Para ello, dichas paginas deberdn llevar un indicativo que les asegure un tratamiento especial. 7.6. TENDENCIAS ACTUALES El desarrollo tecnoligico actual ha permitido reducir considerablemente el coste de las uni- dades de memoria, y gracias a ello es posible disponer hoy de memorias de altas prestacio- es a costes aceptables. Consecuentemente, las exigencias de disefio impuestas por el tamz- fio de la memoria en el pasado han desaparecido. Eslas nuevas técnicas permiten no slo tener memorias mas grandes y de costos més ba- 4s, sino también més ripidas, permitiendo cambios notables en el disefio de los nuevos sis- temas operativos (mayores capacidades de direccionamiento, uso elevado de memorias ca- che, ete). Tas computadoras pequeiias y medias actuales ya tienen memoria de varios megabytes, Por lo que permiten sistemas operativos mayores como son, por ejemplo, UNIX y OS/2, En los de mayor tamaio, la tendencia esta marcada por la introduccidn de niveles de me. moria ultrarrépida para almacenar el c6digo mis utilizado. La utilizacion de estas nuevas facilidades del hardware han obligado a desarrollar nuevas 'éonicas de gestién de la memoria principal y, en definitiva, nuevos sistemas operativos. As Sistertus Operaitvos ‘Por qué se hace necesario compartir Ja memoria entre varios programas? {Cuiles son y qué representan los dos parémetros relacionados con la lectura y escritura de da- tos en la memoria principal? {Qué tipos de computadoras existen segiin el tamaiio de In memoria a la que se accede en cada operacion de lectura o escritura? En un sistema informético, ;qué tipos de memoria suclen existir y cudl es su jerarquia?

You might also like