Vous êtes sur la page 1sur 538
SISTEMAS OPERATIVOS: TEORIA Y PROBLEMAS ‘SISTEMAS OPERATIVOS: TEORIA Y PROBLEMAS No esta permitida la reproduceién total 0 parcial de este libro, ni su tratamiento informatica, ni ta transmision de nin- guna forma o cualquier medio ya sea electrOnico, por fotocopia, por registro u otro método, sin e! permiso previo y por eserito de los editores y autores, @ Joaquin Aranda Alamansa M. Antonia Canto Diaz Jesiis Manuel de la Cruz Gareia Sebastiin Dormido Bencomo Carolina Mafioso Hierro @ EDITORIAL SANZ Y TORRES, SL. Pinos Alta, 49 - 28029 Madrid “Teléfe.: 902 400 415-91 314 87 82 Fax: 91 323 15 59 wwwsanzytorres.com, editorial@sanzytorres.com libreriaG@sanzytorres.com ISBN: 84-88667-81-7 Depésito legal: M. 53.409-2002 Impreso por: EDIGRAFOS, S.A. c/ Volta 2, Poligono Industrial San Marcos 28906 Getafe (Madrid) Contenido 1 2 Prélogo.. Introduccién 1.1 {Qué es un sistema operativo? ee 1.1.1 Los sistemas operativos como maquinas virtuales... 1.2 El sistema operativo como gestor de recursos... 1.2 Historia de los sistemas operativos 1.3 Conceptos fundamentales 1.3.1 Procesos. manne 1.3.2 Gestién de la memoria y del sistema de archivos. 1.3.3 Llamadas al sistema... 1.3.4 Gestidn y planificacién de los recursos 1.3.5 Proteccién y seguridad de la informacién 1.4 Estructura de los sistemas operatives .... 1.5 Diseiio e implementacién de sistemas operativos. 1.6 Conclusiones.... 1.7 Cuestiones propuestas 1.8 Cuestiones resueltas.. Gestion de procesos ... 2.1 Introduccién a los procesos.. 2.1.1 Ejemplo. so 2.1.2 Distincién entre programas y procesos... 2.2 Relacién entre los procesos. 2.3 Especificacién de los procesos.. 2.3.1 Ejemplo | 2.3.2 Ejemplo 2 2.4 Estados de los procesos.. vill Sistemas Operativos: Teoria y Problemas 2.4.1 Transiciones entre los estados . ses . 32 2.5 El bloque de control de procesos ee 33 2.5.1 Listas de procesos, ov - 34 2.6 Procesos y hebras. a nnn 36 2.7 El planificador de procesos.... so 37 2.7.1 Algoritmos de planificacién 38 2.7.2 Criterios para la planificacién. 39 2.7.3 Planificacién por expropiacién 40 2.7.4 Planificacin por prioridades. 40 2.755 Planificacion FCFS: primero en llegar primero en Ser 8erVid0 vv.susuonsnsnnsannnsene40 2.7.6 Planificacién SJF: primera tarea més corta se on 41 2.7.7 Planificacién SRT: tiempo que queda més corto, 4 2.7.8 Planificacién RR: prioridad circular. Al 2.7.9 Planiticacion basadia en el reloj de tempo real a2 2.7.10 Planificacién MLQ: colas multinivel senna 4B 2.7.11 Planificacién MLFQ: colas multinivel con realimentacién eee) 2.8 Conelusiones ee ner 45 2.9 Cuestiones propuestas ssn a 47 2.10 Problemas propuest0s wn. ssnnnesnnnn oe) 2.11 Cuestiones resueltas... 37 2.12 Problemas resueltos. 68 3. Sincronizacién y comunicacién de procesos .. 104 3.1 Exclusién mutua... eee a 102 3.1.1 Ejemplo | . 102 3.1.2 Bloqueo mediante el uso de variables compartidas nnn 104 3.1.3 Ejemplo 2.-snmnn a so LOS 3.1.4 Ejemplo 3. 107 3.1.5 Ejemplo 4.. 108 3.1.6 Algoritmo de Peterson 108 3.1.7 Algoritmo de Dekker 110 3.2. Semaforos. 113 3.2.1 Exclusién mutua con semiforos 115 3.2.2 Bjemplo 5... 116 3.2.3 Sincronizacién “M7 3.2.4 Ejemplo 6. a senesnnnnnnnnes 1B. 3.2.5 Ejemplo 7. 119 3.2.6 Versién mis general de los seméforos 122 3.3 Monitores 124 3.3.1 Sintaxis del monitor. 126 3.3.2 Ejemplo 8. 126 3.3.3 Ejemplo 9. 127 3.3.4 Implementacién de un monitor... ne 29 3.4 Mensajes. 131 Contenido 3.4.1 Modos de referenciar a los procesos 3.4.2 Modelos de sincronizacién. 3.43 Almacenamiento y estructura del mensaje 3.4.4 Ejemplo 10 3.4.5. Ejemplo 11 5 Interbloqueo. 3.5.1 Caracterizacién del interbloqueo.. 3.5.2. Prevencién de interbloqueos .. 3.5.3 Evitacién de los interbloqueos 3.5.4 Ejemplo 12... : 3.5.5 Deteccién de los interbloqueos 3.5.6 Recuperacién de interbloqueos 3.6 Conclusiones. 3.7 Cuestiones propuestas 3.8 Problemas propuestos.... 3.9 Cuestiones resueltas. 3.10 Problemas resueltos 4 Gestion dela memoria... 4.1 Sistemas elementales de gestién de la memoria 4.2 Gestién de la memoria con particiones fijas. 4.2.1 Principio de operacién. 4.2.2 Bjemplo | 4.23 Intercambio, 4.2.4 Archivo de intereambio 4.2.5 Reubicacién y proteccién 4.26 Seleccién dei tamaao de la particidn: fragmentacion de la memoria 4.3 Gestién de la memoria con particiones variables .. 4.3.1 Principio de operacién. 4.3.2 Ejemplo 2 4.3.3 Sistemas de registro del uso de la memoria 4.3.4 Ejemplo 3 4.3.5 Anilisis de la gestion de la memoria con particiones variables 4.4 Paginacién 44.1 Principio de operacidn... 4.4.2 Implementacidn de las tablas de p: 4.4.3 Comparticién de paginas y proteccién 4.5 Segmentacion. 4.5.1 Principio de operacién. 4.5.2 Proteceién y comparticién. 4.5.3 Sistemas combinados de paginacién-segmentacién 4.6 Memoria virtual 4.6.1 Principio de operacién..... 4.7 Politicas de sustitucién de paginas 131 14 135 137 140 141 141 143, 143 14s 147 149, 151 152 158 167 .207 209 2 2u1 212 213 214 215 217 219 oe 219 219 221 223 225 sn 227 se 227 228 231 se 232 232 235 235 237 237 241 Sistemas Operativos: Teoria y Problemas 4.7.1 Algoritmo de sustitucién FIFO: primero en entrar, primero en salir 241 4.7.2 Algoritmo de sustitucién éptimo 242 4.7.3 Algoritmo de sustitucién LRU: la menos usada iltimamente 244 4.74 Algoritmo de sustitucién de la segunda oportunidad .. 245 47.5 Otros algoritmos de sustituci6M 0. 246 48 Politicas de asignacién..... 247 4.8.1 El modelo del conjunto de trabajo. 248 4.9. Aspectos de disefto para los sistemas de paginacién 251 49.1 Tamafio de pagina 251 4.9.2 Prepaginacin.... ss on a 252 493 Frecuencia de fallos de paginas... 252 4.10 Conclusiones... 254 4.11 Cuestiones propuestas. 256 4.12 Problemas propuestos 257 4.13 Cuestiones resueltas 266 4.14 Problemas resueltos. 2n Gestién del sistema de archivos 5.1 Archivos 5.1.1 Tipos y estructuras de los archivos 5.1.2 Operaciones con los archivos 5.2 Directorios de archivos 5.2.1 Operaciones con directorios ... 5.3 Realizacién del sistema de archivos..... 5.3.1 Gestién del espacio libre... 5.3.2 Método de asignacién contigua... 5.3.3 Método de asignacién mediante listas enlazadas. 5.3.4 Método de asignacién mediante indexacién 5.3.5 Algunos aspectos de disefio 5.3.6 Comparticién de archivos 5.4 Cachés de disco. 5.5. Seguridad y proteccién. 5.5.1 Integridad del sistema de archivos. 5.5.2 Ataques a la integridad y seguridad del sistema de archivos, 5.5.3 Principios de disefio de sistemas seguros.... 5.5.4 Identificacién de usuarios... 5.6 Mecanismos de proteccién y control de acceso 5.6.1 Dominios de proteccién.. 5.6.2 Matriz de acceso 5.6.3 Lista de accesos 5.64 Lista de capacidades 5.7 Conelusiones. 5.8 Cuestiones propuestas 5.9 Problemas propuestos Contenido 5.10 Cuestiones resueltas, 5.11 Problemas resueltos.. 6 Gestion del sistema de entrada/salida 6.1 Controlador de E/S. 6.1.1 Funciones del controlador de EIS... 6.1.2 Estructura del controlador de E/S. 6.1.3 Estructura del sistema de B/S. 6.2 E/S controlada por programa. 6.2.1 Ordenes de E/S 6.2.2 Instrucciones de E/S. 6.2.3 Ejemplo 6.3 EJS controlada por interrupciones 6.3.1. Clasificacién de las interrupciones.. 6.4 Acceso directo a memoria (DMA) 6.4.1 Controlador de DMA 6.4.2 Transferencia de datos mediante DMA 6.5. Procesador de E/S (PE/S) .. 6.5.1 Caracteristicas de los PE/S 6.5.2 Clasificacién de los PE’s 6.6 Gestién del sistema de F/S. 6.6.1 Principios generales de disefio del sistema operativo .. 6.6.2 Estructura logica de la funcién de E/S 6.7 Buffers de £/S... 6.7.1 Buffer simple. 6.7.2 Butter doble. 6.7.3 Comparacién de los tiempos de transferencia 68 Discos magnéticos 6.8.1 Estructura fisica 6.8.2 Ejemplo 6.8.3 Controlador del disco 6.9 Planificacién del disco . ss 6.9.1 Planificacién FCFS: primero en llegar, primero en ser servido 6.9.2 Planificacién SSTF: primero la de menor tiempo de posicionamiento 6.9.3 Planificacién SCAN 6.9.4 Planificacion C-SCAN 6.9.5 Planificacién LOOK y C-LOOK. 6.10 Conctusiones. 6.11 Cuestiones propuestas, 6.12 Problemas propuestos. 6.13 Cuestiones resueltas. 6.14 Problemas resueltos xi xii Sistemas Operativos: Teoria y Problemas A Multiprocesadores y sistemas distribuidos A.1 Ventajas ¢ inconvenientes de los sistemas distribuidos A.2 Hardware de los multiprocesadotes ....0. A.2.1 Multiprocesadores con bus compartido ‘A.2.2 Sistemas conectados mediante barras cruzadss.... ‘A.23 Sistemas conectados mediante una red de conmutacién multietapa: A.2.4 Conexiones hipercubo. A3 Sistemas operativos para multiprocesador 'A3.1 Clases de sistemas operativos para multiprocesadores ‘A.3.2 Gestién de los recursos. AA Redes de computadores. AA. Topologia de las redes.. A.A2 Protocolos de comunicacién y AA3 Redes locales. A4A Redes de area extensa, AS Tipos de sistemas operativos para sistemas distibuidos A.5.1 Sistemas operativos de redes.. 7 A.52 Sistemas operativos realmente distribuidos. A.5.3 Algunas consideraciones para el diseft. A6 Servicios remotos. ‘A.6.1 Mecanismo de llamada a procedimientos remotos ‘A.7 Gestion de procesos distribuidos... ‘7.1 Ordenacién de sucesos A.7.2 Exclusion mutua, A.73 Bloqueos, A744 Sistemas de archivos distribuidos 'A7.5 Un sistema comercial de archivos distribuidos: NFS A.7.6 El sistema de archivos Andrew... A.8 Conelusiones | modelo de referencia OSI Bibliografi Glosario. indice... Prologo Objetivos El objetivo basico del libro es ofrecer una descripcién, lo mas completa posible, de los conceptos fundamentales de los sistemas operativos. Un computador sin el “software” es una maquina sin utilidad, necesita de programas que le permitan gestionar bases de datos, realizar complicados calculos matematicos, ayudar en el disefio, procesar imagenes, comunicarse con computadores situados en cualquier parte del mundo y todas aquellas tareas que estamos acostumbrados que realicen, Pero un computador es un sistema complejo que se compone de procesadores, memoria central, discos, terminales, conexiones de red, dispositivos de E/S, etc. La gestion de todos estos elementos y su utiizacién correcta es una labor ardua y en extremo dificil. Si esta gestion la tienen que hacer los propios programas de aplicaci6n, que ademas pueden estar ejecuténdose simulténeamente, es muy probable que los programadores se vieran desbordados por la dificultad. No obstante, hace tiempo se vio la necesidad de distinguir dos tipos de programas: a) Los programas del sistema. b) Los programas de aplicacion. En un sentido amplio los programas del sistema se encargan de controlar las operaciones propias del computador, mientras que los programas de aplicacién son los que resuelven problemas especificos a los usuarios. De los programas del sistema el mas importante es el sistema operativo, su objetivo es que el computador se pueda utilizar de manera cémoda y eficiente, proporcionando a la maquina desnuda un caparazén que permite dar la vision de una maquina virtual, con la que es factible comunicarse al crearse un interfaz entre el usuario y la maquina y gestionar los recursos de la misma. El sistema operativo es en definitiva un programa que hace que el uso del computador sea sencillo ya que oculta toda la complejidad del hardware y, ademas, gestiona los recursos del sistema de forma que se utilicen de manera eficaz. xiv Sistemas operativos: Teoria y Problemas A quien va dirigido este texto “Sistemas Operativos: Teoria y Problems” esté concebido como texto base de la asignatura "Sistemas Operativos |" que tienen que cursar los alumnos de la Escuela Superior de Ingenieria Informatica de la UNED, en el 2° curso de las carreras de Ingeniero Técnico en Informatica de Sistemas y de Ingeniero Técnico en Informética de Gestién. Este motivo impone una serie de restricciones sobre la estructuracién de sus contenidos y la forma de desarollarlos debido a que en la medida de lo posible, deberia ser autosuficiente y comprensible a estudiantes que no asisten de forma habitual a clases de tipo presencial. También puede resultar itl a estudiantes de Facultades de Ciencias o Escuelas de Ingenierias que tengan en sus planes de estudio asignaturas relacionadas con los Sistemas Operativos. Organizacin del texto El texto consta de 7 Temas y un Apéndice. Ademas incluye un Glosario y una extensa Bibliografia, Los contenidos tedricos de cada tema son los siguientes: Tema 1: Introduccion Lo que hace que un computador sea una maquina utiles el software y no hay duda de que el programa més importante en este sentido es el sistema operativo. Definirlo no es facil, es por ello que lo que se realiza en este tema es una presentacién de sus principales funciones y objetivos, que son esencialmente dos: 1) Proporcionar una maquina virtual cara a los usuarios y a las aplicaciones, que resulte mas {facil de programar y de utilizar. 2) Ser el gestor de los recursos de la maquina (memoria, archivos, dispositivos de E/S, ...) de forma que se utilicen de manera eficiente ‘Tema 2: Gestion de procesos El tema trata, en primer lugar, de dar una idea lo més clara posible de lo que son y representan los procesos en un sistema operativo, de las relaciones que existen entre ellos y de la forma en que pueden especificarse. Se analizan también los diferentes estados por los que pueden pasar los procesos a lo largo de su ejecucién y las estructuras necesarias para su representacién, Se introduce el concepto de hebras, que representa una solucién software usada por algunos sistemas operativos modernos para mejorar su rendimiento y que supone un refinamiento del concepto de proceso. Por tiltimo, se estudia el planificador de procesos. Se llama asi a aquella parte del sistema operativo encargada de asignar los recursos, y en especial la CPU, a los procesos que la solicitan. Se presentan los tres tipos de planificadores que aparecen en un sistema operative y se describen los algoritmos més utilizados en la realizaci6n de los mismos. Prolog xv Tema 3: Sincronizacién y comunicacién de procesos Las tareas que corren en un sistema se disefian para llevar a cabo un objetivo comin y, por lo tanto, es necesario que algunas de ellas se comuniquen entre si; ademas, en su ejecucion competiran por conseguir los recursos de! sistema -una zona de datos especificos, 0 un dispositive de E/S- y dicha competicion se debe regular proporcionando los mecanismos adecuados para la sincronizacién de los procesos. También se precisa esta sincronizacion para establecer un orden de ejecucién de las tareas que sea coherente con el objetivo global del sistema. Existen dos métodos basicos de comunicacién entre procesos: comparticién de datos e intercambio de informacién. En este tema se trata inicialmente el problema de la comunicacién entre procesos mediante comparticién de datos y se realiza su introduccién estudiando el problema de la exclusién mutua. A continuacion se introducen herramientas tanto para la comunicacién como para la sincronizacién de los procesos, tales como los seméforos, los monitores y los mensajes. Finalmente se trata el problema del interbloqueo, que aparece frecuentemente en los sistemas con multiprogramacion y se dan varias estrategias para manejarlo. Tema 4: Gestion de la memoria La misién del gestor de la memoria es la asignacién de memoria principal a los procesos que la soliciten. El espacio vacante se puede utilizar para cargar procesos que estan ya preparados para su ejecucién, de forma que el planificador esté en mejores condiciones de preparar las tareas que se van a ejecutar. En este tema se estudian desde sistemas elementales de gestion de la memoria, para un solo proceso, hasta esquemas de comparticién de la memoria para la ejecucién concurrente de varios procesos. Entre estos ultimos esquemas se tienen técnicas de gestién de memoria basadas en asignacién contigua mediante particiones fijas 0 variables, técnicas en las que se elimina el requisito de la asignacién contigua como son la paginacién y segmentacién y finalmente la gestion de memoria virtual en la que se elimina la necesidad de que todo el proceso se encuentre cargado en la memoria Tema 5: Gestion del sistema de archivos Para muchos usuarios, el sistema de archivos es el aspecto mas visible de un sistema operativo. El sistema de archivos se puede estudiar desde diferentes puntos de vista. Asi, la preocupacién de los usuarios es la forma de nombrar a los archivos, las operaciones permitidas en ellos, la apariencia del 4tbol de directorios y otros aspectos de su interfaz. Por otra parte, los disefiadores ademas se interesan en la forma de almacenamiento de los archivos y directorios, la administracion del espacio en el disco y de! modo de que esto sea eficiente y de confianza al usuario en su utilizacion. La primera parte se centra mas en el punto de vista de los usuarios, mientras que en el resto del tema se estudia la vision que los disefiadores y programadores del sistema poseen del sistema de archivos. La ultima parte esta dedicada al estudio de la seguridad y los mecanismos de proteccion xvi temas operativos: Teoria y Problemas Tema 6: Gestion del sistema de entrada/salida Un computador careceria de utilidad si no dispusiera de alguna unidad de entrada/salida (E/S). Las operaciones de E/S se pueden realizar mediante una gran variedad de dispositivos exteros que proporcionan diferentes formas de intercambiar datos entre el mundo exterior y el computador. Una de las principales funciones del sistema operativo es la de controlar todos los dispositivos de entrada/salida (también llamados periféricos), proporcionando un interfaz entre los dispositivos y el resto del sistema que sea sencilla y facil de usar. La primer parte esta dedicada al estudio de los mecanismos con los que un controlador de E/S interacciona con el resto del computador. Se utilizan las siguientes técnicas: a) E/S controlada por programa b) E/S por interrupciones c) Acceso directo a memoria d) Procesadores de E/S. En el resto del tema se analiza la gestién del sistema de E/S desde el punto de vista del sistema operativo, exponiéndose un modelo conceptual por capas que va desde los propios periféricos hasta los procesos de los usuarios. El tema finaliza con un estudio dedicado a los discos magnéticos presentandose aspectos relativos tanto a la estructura fisica como a su software. Apéndice A: Multiprocesadores y sistemas distribuidos Este tema se dedica al estudio de los sistemas MIMD (Multiple Instruction Multiple Data) asi como a los diferentes esquemas que se han propuesto para distribuir el calculo, Se comienza comentando las ventajas y desventajas de los sistemas distribuidos. A continuacion se estudian los conceptos relativos a los sistemas multiprocesadores, considerados como sistemas de hardware fuertemente acoplado. En primer lugar se presentan sus aspectos de interconexién y después los sistemas operativos. Como paso previo al estudio de los sistemas débilmente acoplados, se introducen los conceptos de redes de computadores y se analizan los distintos tipos de sistemas operativos para los sistemas distribuidos, clasificandolos en SO de redes y SO realmente distribuidos. Por ultimo, se muestran los, sistemas de archivos distribuidos, comentando dos ejemplos de los mismos, uno de uso comercial (el sistema de archivos en red) y otro en desarrollo (el sistema de archivos Andrew). Metodologia Se ha tratado de cuidar de manera muy especial los aspectos especificos de la ensefianza a distancia. Los conceptos se introducen de forma progresiva, de manera que el estudiante pueda ir progresando en el estudio a su propio ritmo. La estructuracién de los temas es uniforme pudiéndose distinguir en ellos una parte tedrica y una parte préctica. El médulo te6rico comienza con una seccién en la que se exponen los objetivos a cubrir. ‘A continuacién se introducen los conceptos de una manera sencilla, progresiva y acompafiados de ejemplos aclaratorios. Finalmente se presenta una seccién de conclusiones en la que se resumen los, conceptos introducidos en el tema, Prélogo xvii La parte practica esta dividida en una seccién de cuestiones y otra de problemas, ambas muy extensas. Los ejercicios de dichas secciones inicialmente se proponen para que el alumno haga el esfuerzo de trabajarlos por si mismo y a continuacién se resuelven para que pueda servir de autoevaluacién. La seccién titulada cuestiones recoge los conceptos mas sencillos introducidos en el capitulo. De esta forma el alumno puede determinar si ha adquirido los conocimientos basicos trasmitidos en esa unidad tematica. Por el contrario, en la secci6n titulada problemas se resuelven ejercicios de mayor grado de dificultad, pues en ellos se relacionan conceptos, se solicitan calculos, etc. Después de realizar estos ejercicios el alumno podré comprobar que maneja con soltura lo aprendido en el capitulo. Agradecimientos Los autores expresan su agradecimiento mas sincero a sus compafieros en los Departamentos de las. Universidades Complutense y UNED en los que han desarrollado su actividad universitaria por su apoyo en todo momento. En el desarrollo del libro hemos empleado una gran parte de nuestro tiempo libre durante los timos afios. Este tiempo robado a nuestros familiares supone una deuda con ellos que esperamos. que algun dia sepan comprender. Sélo nos queda agradecerles desde lo mas profundo de nuestro: corazén su carifio y comprensin y dedicarles modesiamente este texto Madrid, enero de 2002 Los Autores Introduccién Un computador sin el “software” es una maquina sin utilidad, necesita de programas que le permitan gestionar bases de datos, realizar complicados célculos matematicos, ayudar al diseilo, procesar imagenes, comunicarse con computadores situados en cualquier parte del mundo y a todas las tareas que estamos acostumbrados que realicen, Pero un computador es un sistema complejo que se compone de procesadores memoria central, discos, terminales, conexiones de red, dispositivos de E/S, ete. La gestién de todos estos elementos y su utilizacién correcta es una labor ardua y en extremo dificil. Si esta gestion la tienen que hacer los propios programas de aplicacién, que ademas pueden estar ejecutindose simultineamente, es muy probable que los programadores se vieran desbordados por la dificultad. No obstante, hace tiempo que se vio la necesidad de distinguir dos tipos de programas: a) Los programas del sistema bb) Los programas de aplicacion En un sentido amplio los programas del sistema se encargan de controlar las operaciones propias del computador, mientras que los programas de aplicacién son los que resuelven problemas especificos a los usuarios, De los programas del sistema el més importante es el sistema operativo cuyo objetivo es que el computador se pueda utilizar de una manera cémoda y eficiente, proporcionando un caparazén a la maquina desnuda que permite dar la vision de una maquina virtual, con la que es factible comunicarse al er interfaz entre el usuario y la maquina y gestionar los recursos de la misma. nse un La Figura 1.1 muestra un diagrama con esta situacidn, En la parte inferior se encuentra e! hardware, en el que esti incluido el procesador, la memoria y los dems periféricos, como la consola, los discos, etc, ademas, si el procesador esti implementado mediante ldgica microprogramada también hay que considerar la microprogramacién (firmware) y el lenguaje maquina (ver Dormido et al., 2000), El sistema operative oculta toda esta complejidad del hardware y proporciona un interfaz mas adecuado para usar el sistema. Actiia como un mediador, de forma que los programadores y los programas de aplicacién Puedan acceder y utilizar los recursos y servicios del sistema de una forma mas facil, sin preocuparse de la ‘gestidn de los mismos, 1 Introduccion dear Figura 1.1: Capasen las ue se pueden dividir los componentes de un computador Los programadores emplean otros programas del sistema, como compiladores, editores o depuradores. Las aplicaciones que estos desarroltan también usan los programas del sistema que efectiian lamadas al S yal sistema de archivos. sistema operativo, alas funciones de £ cima de los programas del sistema, se encuentran las 1 computador a tray En el extremo superior de la Figura 1.1, por et aplicaciones, El usuario final, que no es consciente de la arquitectura del sistema, v de estas aplicaciones desarrolladas por el programador de aplicaciones. 1-4 LQué es un sistema operativo? 3 éQué es un sistema operativo? ——— En términos generales no hay una definicién de sistema operativo completamente adecuada y que sea aceptada universalmente, En los alos sesenta se deca que era ef software que controlaba al hardware, sin embargo esta definicién ha quedado totalmente desfasada en Ia actualidad, Ahora quizis sea mas ficil decir que hacen los sistemas operativos que decir que son, Por ello, mas que dar una definicidn diciendo que es un sistema operativo, lo que se va a realizar es exponer cuales tienen que ser sus funciones u objetivos. En la Figura 1.1 se ha situado al sistema operativo como una capa por encima del hardware, de forma que Jo oculta al resto de los programas y a los usuarios. Desde esta perspectiva el sistema operative no es mas que tn programa que controla la ejecucién de los programas de aplicaciones y acta como un interfaz entre los usuarios del computador y el hardware del mismo, Sus objetivos bisicos son: 1) Comodidad para los usuarios. El SO hace que el computador sea més ficil de utilizar. En este caso hace que los usuarios vean una maquina virtual o extendida, que es mas sencilla de programar y de utilizar que la maquina desnuda. 2) Bficiencia, FSO gestiona los recursos del sistema de forma mas eficaz. Su funcién es en este la de un gestor de recursos. A continuacién se analizan cada uno de estos objetivos, 1.1.1 Los sistemas operativos como maquinas virtuales La utilizacién directa del hardware es dificil, especialmente para la realizacién de las operaciones de £/S. Por ejemplo, para operar directamente con el controlador de un disquete hay que manejar del orden de 16 ordenes, y donde cada una puede tener més de una docena de parimetros, que hay que empaquetar en un registro del dispositivo de 8 bytes, devolviéndose después de la operacién un registro de 7 bytes con los estados y los campos de errores. Para hacer una escritura en el disquete hay que verificar si el motor esta funcionando, si no lo esté dar la orden de arranque, esperar a que gire a la velocidad adecuada, entonces dar las Grdenes de posicionamiento del brazo en el sector y pista adecuada, ordenar la escritura, te. El Programador, y usuario en general, no desea enfrentarse a toda esta problematica, sino que desea una abstraccién sencilla y facil de entender. Por ejemplo, veral disco como un conjunto de archivos, de forma que cuando se quiere escribir algo s6lo hay que indicar el nombre del archivo. Para ocultar toda esta problemitica del hardware esta el sistema operativo, de forma que el programador y el usuario ven una abstraccién del mismo que se les presenta como una maquina virtual que entiende Ordenes a un nivel superior. En este sentido, el sistema operativo tiene que proporcionar servicios para las funciones siguientes: 4 1 Introduccion 1) Creacién de programas. Existen otros programas del sistema, como son los depuradores, los editores y los enlazadores, que no son parte del sistema operativo, pero que son accesibles a través de él 2) Bjecucién de programas. Para poder ejecutar un programa se tiene que realizar una serie de funciones previas, tales como cargar el cédigo y los datos en la memoria principal, inicializar los dispositivos de E/S y preparar los recursos necesarios para la ejecucién, Todo esto lo gestiona el sistema operativo, 3) Operaciones de entrada/salida. Un programa puede requerir una operacién de E/S sobre un periférico. Pero cada uno tiene sus peculiaridades y un controlador especifico con su conjunto de instrucciones. Como en el ejemplo del controlador de la disquetera anterior, es el propio sistema operativo el encargado de hacer todas esas funciones que permiten Ta lectura, escritura y comunicacién con los periféricos 4) Manipulacién y control del sistema de archivos. Ademés de comunicarse con el controlador del periférico en donde esta el sistema de archivos, el sistema operativo debe conocer la propia estructura (formato) de almacenamiento y proporcionar los mecanismos adecuados para su control y proteccién. 5) Deteccién de errores. Hay una gran cantidad de errores, tanto del hardware como del software, {que pueden ocurrir. Por ejemplo: un mal funcionamiento de un periférico, fallos en la transmision de los datos, errores de ealeulo en un programa, divisiones por cero, rebose, fallos de la memoria, violaciones de permisos, etc. El sistema operativo debe ser capaz de detectarlos y solucionarlos 0 por lo menos hacer que tengan el menor impacto posible sobre el resto de las aplicaciones. 6 Control del acceso al sistema. En sistemas de acceso compartido o en sistemas publicos, el sistema operativo debe controlar el acceso al mismo, vigilando quién tiene acceso y a qué recursos. Por este motivo tiene que tener mecanismos de proteccién de los recursos ¢ implementar una adecuada politica de seguridad, de forma que no pueda acceder quién no esté autorizado. Debido a la gran conectividad que tienen hoy dia los sistemas informaticos, este es un aspecto que cada vez esti teniendo mayor interés. Elaboracién de informes estadisticos. Resulta muy conveniente conocer el grado de la utilizacién de los recursos y de los distintos pardmetros del sistema, como el tiempo de respuesta. De esta forma se dispone de informacién que permite saber con antelacidn las necesidades futuras y configurar al sistema para dar el mejor rendimiento. 4.1.2 Elsistema operativo como gestor de recursos La visién anterior de un sistema operativo es una visién de abajo hacia arriba. Un punto de vista alternativo, considera al SO como el gestor de todos los elementos que componen el sistema. En este caso su funcién es proporcionar a los programas que compiten por ellos una asignacién ordenada y controlada de los procesadores, la memoria y los periféricos. El sistema operativo realiza este control de una forma muy peculiar, si se compara con los m que utilizan otros sistemas. Por ejemplo, el control de temperatura de un edificio se hace mediante un termostato que esti totalmente diferenciado del sistema de distribucién de calor (los radiadores) y del mecanismo de generacién de calor (Ia caldera). Esta separacién no existe en el caso del sistema operativo, 4-1 eQué es un sistema operative? 5 que funciona de la misma forma que otro programa (al cual tiene que controlar y dar servicio); es decir. el sistema operativo se ejecuta en el procesadar lo mismo que el resto de los programas. Otra caracteristica que lo hace peculiar es que con cierta frecuencia pierde el control sobre el procesador y debe esperar a disponer ded Desde este punto de vista, el sistema operative no es mas que otro programa del computador que el procesador no distingue del resto. La gran diferencia esta en la finalidad, ya que ta CPU dedicarat parte de su tiempo a ejecutar otros programas segtin lo planifique el sistema operativo y también controla el acceso a los otros recursos del sistema, Sin embargo, esto requiere que el propio sistema operativo ceda el control del procesador a otra “tarea” y cuando posteriormente lo recupera otra vez. debe preparar la siguiente tarea que Vata ejecutarse en el procesador. 6 1 Introduccion Historia de los sistemas operativos En la evolucién de los sistemas operativos, al igual que en la del hardware de los computadores, podemos ‘marcar una serie de etapas evolutivas 0 generaciones, La denominada generacidn cero abarca la década de los afios 40 y se caracteriza por la ausencia de sistemas operativos en los computadores. El usuario tenia acceso completo al Lenguaje méquina y todas las instrucciones se codificaban manualmente. Los propios usuarios eran quienes controlaban la ejecucién de sus programas. La primera generacién abarca los afios 50. La creacién del primer sistema operativo se le atribuye a los laboratorios de investigacién de General Motors, y fue desarrollado para su computador IBM 701. En 1955 General Motors y North American Aviation colaboraron para desarrollar un sistema operativo para el [BM 704. Hacia 1957 ya se habian desarrollado, de manera particular, distintos sistemas operativos para ese modelo de computador. El fin de estos primeros sistemas operativos era permitir en la maquina la secuencia automatica de los trabajos de los usuarios. De esta forma se conseguia evitar el tiempo que se perdia, y que podia ser considerable, desde que un proceso terminaba su ejecucién hasta que comenzaba el siguiente. Para ello los trabajos se organizaron en lotes. Un trabajo en ejecucién tenia el control total de la miquina y no comenzaba otro hasta que se Hegaba al final del que estaba en ejecucién u ocurria un error. En este tiltimo caso el sistema operativo daba alguna explicacién rudimentaria sobre lo que habia ido mal y procedia inmediatamente con el siguiente trabajo del lot. Debido al elevado coste que tenian los computadores de aquella época se intenté mejorar el rendimiento cn su utilizacién y aumentar el nimero de trabajos ejecutados en un intervalo de tiempo dado. Esto se consiguié fundamentalmente con la introduecién de la multiprogramacién y el multiprocesamiento, dando lugar a la segunda generacién que ocupa la primera parte de la década de los aftos 60, El elemento clave en la concepcién de la multiprogramacién fue la diferencia de velocidades entre los dispositivos de entrada y salida y el procesador. Un programa que realizaba una peticidn de una operacién de E/S, y que no podia continuar hasta que esta se hubiera completado, dejaba al procesador, el recurso mas valioso del sistema, desocupado durante todo el tiempo de espera. Con la multiprogramacién varios programa podian residir a 1a vez en memoria y el procesador se podia conmutar répidamente entre ellos, lo que permitia que un trabajo pudiera estar realizando célculos a la ver-que otro lefa de una cinta magnética, un tercero escribia en un disco, etc. En los sistemas con multiprocesamiento se utilizaban varios procesadores en un nico computador para lograr tna mayor potencia de célculo en la maquina. También aparecieron en esta época los primeros sistemas de tiempo real dedicados al control de procesos industriales y para monitorizar miles de puntos con 1-2 Historia de los sistemas operativos 7 fines militares. En estos sistemas, mis que tenerlos muy ocupados, se requerfa que su respuesta ante una serie de sucesos externos fuera rapida, Por ejemplo, el aumento de la temperatura en un punto de una refineria de petréleo deberia comunicarse inmediatamente para tomar las acciones oportunas para evitar una explosién, Los sistemas mas significativos de esta época fueron el Master Control Program (MCP) de Burroughs disefiado para su computador B5000 y el sistema SABRE de IBM y la American Airlines destinados a las reservas de viajes. El MCP fue escrito en un lenguaje de alto nivel y posefa muchas de las caracteristicas que proporcionan los sistemas actuales: multiprogramacién, multiprocesamiento, memoria virtual y la capacidad de depurar el lenguaje fuente. El sistema SABRE era un sistema de tiempo compartido, con miles de terminales distribuidos por toda la geografia norteamericana, desde los cuales se podia interactuar directamente con el sistema. El usuario hacia una peticién desde un terminal y el computador procesaba la peticién y respondia a través del terminal tan pronto como podia, a veces en un tiempo inferior a un segundo. El sistema SABRE estaba dirigido a una tnica funcion. EI primer sistema de tiempo compartido de propésito general fue el Compatible Time-Sharing System (CTSS) desarrollado en el Instituto Tecnolégico de Massachusetts (MIT) bajo la direccién de Fernando Corbaté y que corria en un [BM 709/7090. El proyecto se inicié en 1961 y se puso en funcionamiento en 1963. Entre las caracteristicas de este sistema estaban: 8) Empleo de numerosos terminates conectados al computador que se podian usar al mismo tiempo b) Cada terminal de usuario parecia tener disponible toda la potencia de la maquina y todo el software del computador ©) El tiempo necesario para realizar tareas no muy grandes era lo suficientemente pequeio como para hacer pensar a tos usuarios que tenian la maquina slo para su servicio 4d) Disponia de varios compiladores, utilidades para el manejo de archivos y aplicaciones especificas. La tercera generacién comienza con la introduccién en 1964 de la familia de computadores |BM/360, El sistema operativo de esta familia de computadores era el OS/360. Aunque el sistema operativo no poseia algunas de las caracteristicas mas avanzadas de otros sistemas, como el MCP de Burroughs, excedia con mucho al resto de los sistemas en el area de apoyo al cliente. El sistema operativo disponia de In mayor cantidad de programas de utilidad para facilitar el uso del computador que se habia suministrado hasta la fecha, Ademés, el sistema permitia avanzar en la serie, segiin aumentaban las necesidades de potencia de Alculo, sin que fuera necesario cambiar de sistema operativo. La generacién se extiende hasta mediados los afios 70. Se caracteriza por el desarrollo de sistemas operativos grandes y costosos que pretendian incorporar todas las posibilidades. Algunos proporcionaban simulténeamente el procesamiento por lotes, el procesamiento en tiempo real, el procesamiento en tiempo compartido y el multiprocesamiento, El inconveniente era que obligaban a muchos usuarios a pagar un precio muy elevado y aprender ms de lo que realmente necesitaban. La cuarta generacién corresponde al estado actual del campo. La mayorfa de los sistemas operativos de los computadores grandes son descendientes directos de los de la tercera generacidn, tales como el Multies de Honeywell, VMS y VM/370 de IBM y el Scope de Control Data, Todos estos sistemas disponian de: a) Multiprogramacién b) Tiempo compartido ©) Memoria virtual 8 4 Introduccién 4) Procesos secuenciales que cooperan por medio de seméforos €) Sistemas de archivos jerinquicos 1) E/S independiente del dispositive, Posiblemente el mas influyente de los sistemas operativos actuales sea Unix, Su desarrollo se realizé adoptando muchas de las ideas que se introdujeron en Multies. Una diferencia esencial entre ambos es que éste se desarrollé para grandes computadores. Unix se diseiié a principio de los afios 70 en los laboratorios de la Bell en torno al minicomputador mas caracteristico de la época, el PDP-1 de Digital y con una dimension de un orden de magnitud inferior a aquel. A pesar de su menor tamafio Unix retiene la mayor parte de las, caracteristicas més utiles de su predecesor, tales como procesos, sistema de archivos jerdrquicos, independencia de los dispositivos, redireccién de la entrada-salida y un lenguaje de intérprete de érdenes (shell) de alto nivel. La mayor parte de Unix se escribid en el lenguaje C, lo que le ha permitido ser transportado a una gran variedad de procesadores, desde grandes méquinas a computadores personales. En el ‘Tema 8 se estudia este sistema operativo con mas detalle En los afios 80 se desarrollaron un gran nlmero de sistemas operativos para computadores personales, entre los que destacan el MS-DOS, Apple-DOS, CP/M y Xenix. Todos estos sistemas estaban muy limitados cen sus funciones. Se desarrollaron inicialmente para microprocesadores de 8 y 6 bits con poca capacidad de ‘memoria. Sin embargo, la velocidad y la capacidad de memoria actuales son ahora suficientes como para soportar sistemas operativos con todas sus posibilidades. Dos aspectos que caracterizan los sistemas actuales son las redes de computadores y los sistemas distribuidos. Los usuarios de la cuarta generacién no estin limitados ya a comunicarse con un sélo computador en tiempo compartido, Los computadores personales estan equipados con programas de comunicaciones que les permiten acceder a informaciones localizadas en bases de datos dispersas ‘geogrificamente. Sistemas operativos como Unix y VMS de Digital creados originalmente con el fin de servir a una tinica maquina han evolucionado para adaptarse a las redes de computadores. El sistema de archivos de red de Sun Microsystems conocido como NFS (Network File System) fue uno de los primeros sistemas de archivos basado en Unix en ofrecer un espacio tinico de nombres de archivos situado por encima de una red de servidores y estaciones de trabajo. Actualmente el disefio de Io sistemas operativos encuentra nuevos retos con la construccién de computadores paralelos que disponen de miles de procesadores. Para estas maquinas los SO deben dar soporte a la comunicacién y a la sincronizacién extremadamente répida de miles de procesadores. Cada procesador puede disponer de sus propios dispositivos, lo que hace que el sistema operativo deba controlar a Ja vez a miles de canales de £/S. Conceptos tales como memoria virtual y tiempo compartido deben extenderse para adaptarse al paralelismo masivo. Quizds el desafio mis importante es conseguir que el entorno de programacién de estos sistemas permita desarrollar programas paralelos con un esfuerz0 sélo ligeramente superior al de la eseritura de un programa secuencial. 1-3 Conceptos fundamentales 9 ie Conceptos fundamentales AA lo largo de la historia de los sistemas operativos se han ido desarrollando una serie de conceptos, que son sus mayores aportaciones. Entre estos conceptos estan los de: 1) Proceso 2) Gestién de la memoria 3) Sistema de archivos 4) Llamadas al sistema 5) Gestién y planificacién de los recursos 6) Proteccién y seguridad de la informacié: ‘Aunque estos conceptos se van desarrollando a lo largo del texto, a continuacién se da una somera idea de los mismos 1.3.4 Procesos Uno de los conceptos mas fundamentales en los sistemas operativos es el de proceso. Fue introducide por los, disefiadores de Multics en los afios 60, como un término mas general que el de srabajos (jobs). Desde entonces se han dado muchas definiciones de lo que es un proceso. Se puede decir que basicamente un proceso es un programa en ejecucién. Pero hay quien prefiere una definicién més formal y lo define como “la entidad que puede ser asignada a un procesador y ejecutada por al”, También hay quién da a la definicién un aire mas espiritual y habla del “espiritu animado de un programa”, El concepto se ird aclarando en los Temas 2 y 3, pero se puede considerar ya como un programa en ejecucién, que consta del programa ejecutable, de los datos necesarios para el programa (variables, espacio de trabajo, buffers, etc.) y del contexto de ejecucién del programa. En esto ultimo se incluye toda la informacién que necesita el sistema operativo para gestionar al proceso y que requiere el procesador para ejecutarlo apropiadamente, asi se incluye en el contexto de ejecucién la pila del programa, el contador de programa, el puntero ala pila, los registros de datos, la prioridad del proceso, ete. Una forma fécil e intuitiva de entender el concepto de proceso es considerar un sistema de tiempo compartido. En estos sistemas, cada cierto tiempo el sistema operativo tiene que parar el proceso en ejecucién y arrancar otro, de forma que cada proceso tenga asignado el procesador durante un intervalo de tiempo prefijado, 10 1 Introduccion En esta situacién, el proceso que se ha detenido temporalmente se dice que se ha suspendido y sera arrancado posteriormente en el mismo estado en el que se suspendis. La informacién sobre cada proceso se almacena en una tabla de procesos construida y mantenida por el propio sistema operativo, y que se puede implementar como una lista enlazada con una entrada por cada proceso. Cada entrada a la tabla incluye un puntero a la ubicacién del bloque de memoria que contiene al proceso, también puede contener parte 0 todo el contexto de ejecucién del proceso. Como mantener la informacién de los procesos y cémo gestionarlos se estudia en el Tema 2, mientras que el Tema 3 se dedica a presentar como realizar la comunicacién entre los procesos y cémo sincronizar, su ejecucién se estudia en el Tema 3, 1.3.2 Gestion de la memoria y del sistema de archivos Los usuarios y los programadores han ido viendo como necesidad el disponer de un soporte para la programacién modular y para un uso flexible de los datos. Ademas el administrador del sistema necesita un control ordenado y eficiente del almacenamiento asignado. Para satisfacer estos requerimientos, el sistema operativo tiene que responsabilizarse de 1) Aislar los procesos, de manera que un proceso no interfiera en los datos o en la memoria de otro. 2) Ubicar y gestionar automaticamente a los procesos, de una manera que sea transparente a los programadores. El sistema asignaré memoria a los procesos segiin las limitaciones que se tengan y teniendo en cuenta las necesidades de los distintos trabajos, 3) Soportar una programacién modular, de forma que se puedan definir médulos de programas en los que se puedan alterar dindmicamente sus tamaiios. 4) Controlar el acceso y proteger la memoria, Aunque se comparta la memoria, un programa no acceda al espacio de ditecciones de otro, o que @ ciertas partes de la memoria puedan acceder distintos usuarios pero controlando el acceso. 5) Disponer de un medio de almacenamiento de larga duracién, Para cumplir con estas responsabilidades el sistema operativo cuenta con la nocién de memoria virtual y las funciones del sistema de archivos. Con el concepto de memoria virtual los programas pueden direccionar la memoria desde un punto de vista logico, sin considerar la cantidad de memoria principal realmente instalada en el sistema; cuando un programa se ejecuta, solo se carga en memoria principal la parte de cédigo y datos que se van a utilizar. Este 5 un concepto que se estudiard en el Tema 4, cuando se expliquen los distintos mecanismos de gestién de la ‘memoria principal. Un almacenamiento de larga duracién se construye el sistema de archivos. La informacién se almacena en archivos y estos archivos se mantienen en directorios, que puede tener una estructura arborescente deniro de otros directorios. En el Tema 5 se estudian los conceptos de archivo y directorio y la implementacién de los mismos 1.3.3. Llamadas al sistema Una buena forma de conocer lo que hace un sistema operative es analizar las llamada al sistema, Este concepto corresponde a la interfaz entre el sistema operativo y los programas y los usuarios. 1-3 Conceptos fundamentales " Las llamadas al sistema se pueden hacer de varias formas, dependiendo del computador. Para hacer la llamada se requiere cierta informacién, aparte de la identidad de la llamada, esta informacién depende del sistema operativo y de la llamada en concreto. Por ejemplo, una tlamada de lectura de un archivo desde un programa seria del tipo: cuenta = read (archivo, buffer, nbytes); En este caso la llamada es read, que tiene tres pardmetros, archivo que es el nombre del archivo que se ‘quiere leer, buffer es un buffer o almacenamiento temporal en el que se colocan los datos leidos, nhytes es el rnlimero de bytes que se quieren leer. La funcién devuelve un valor, cuenta, que es el niimero de bytes leidos. Generalmente coincidird con nbytes, pero puede ser menor, por ejemplo si hay un error de lectura 0 se ha egado al final del archivo. Las llamadas al sistema se pueden agrupar en cinco categorias: 1) Control de procesos 2) Manipulacién de archivos 3) Manipulacién de periféricos 4) Mantenimiento de la informacién 5) Comunicaciones. En la Tabla 1.1 se resumen algunos de los tipos de llamadas al sistema que se suelen hacer para cada categoria, Control de | Maniputacién de | Manipulacién de | — Mantenimiento dela Comunicaciones rocesos archivos perifercos Informactn ‘Crear proceso (Crear archive Solicarperiferieo | Obtener horafeehs ‘Crear conesion Carga Abrir seri Establecer hora-feehs Enviar mensajes Fjecutar Escribie Leer Obtener datos del sistema | Recibie mensajes Obtener asibuios | Leer Obsener atibutos | Establecer datos del sisterra | Transfrr informacion det estado EEsiablecer atributos | Obteneratrbutos | Establecer tributes | Obtener aibutos liminar conexién Esperarun tiempo | Estableceratributos | Liberarperiférico | Establecer atributos Esperarun suceso | Cerar Liherar memoria | Eliminar archivo Abortar ‘Terminar proceso ‘Tabla 1.1: Llamadasal sistema, 1.3.4 Gestiény planificacién de los recursos Entre las tareas claves de un sistema operativo esti la de gestionar los diferentes recursos que disponga el sistema (procesadores, memoria, periféricos, ete.) y planificar la utilizacién de los mismos de la forma mis eficiente por los procesos en ejecucién, La politica de planificacién y de asignacién de recursos tiene que ser justa y eficiente. Esto supone que 12 4 Introduccién todos los procesos que compiten por la utilizacin de un determinado recurso, deben disponer de él de una forma equitativa, esto se debe cumplir sobre todo en trabajos de la misma clase que poseen la misma prioridad, Por otro lado, hay situaciones en las que es necesario distinguir entre diferentes clases de trabajos con diferentes exigencias de servicio. El sistema operativo debe intentar hacer la planificacién y la asignacién considerando el total de los requerimientos. Estas decisiones se hacen dinémicamente, por ejemplo, si un proceso esta esperando para utilizar un periférico, el sistema operativo debe planificar su ejecucién de forma que lo libere lo antes posible para poder satisfacer peticiones posteriores de otros procesos. 1.3.5. Proteccién y seguridad de la informacion Una de las cuestiones que més interés ha despertado iiltimamente, con el auge de los sistemas de tiempo compartido y con las redes de computadores, es la relativa a la proteccién de la informacion. El National Bureau of Standards (Branstad, 1978) describié una serie de amenazas tipicas que se pueden producir de forma intencionada por parte de las personas, muchas veces con el objetivo principal de obtener un beneficio econémico. Hay muchos ejemplos de individuos u organizaciones (o de estas por medio de sus empleados) que han realizado ataques a los sistemas informaticos de la administracién piblica o de otras organizaciones. En el Tema 5 se comentan algunas politicas de seguridad y mecanismos de prote 1-4 Estructura de los sistemas operativos 13 Estructura de los sistemas operativos Los sistemas operativos han ido creciendo legando a un tamaiio tan vasto y complejo, que su construccién debe hacerse con cuidado para que funcionen correctamente y puedan modificarse con facilidad. Un sistema tan grande sélo se puede construir si se particiona en componentes mis pequefios. Aunque no todos los sistemas operativos tienen la misma estructura, es bastante usual dividirlos en el siguiente conjunto de componentes bisicos: 1) Gestor de procesos, 2) Gestor de la memoria principal, 3) Gestor del almacenamiento secundario y del sistema de archivos. 4) Gestor del sistema de £/S. 5) Sistema de proteccién 6) Sistema de comunicacién 7) Intérprete de drdenes. Algunos de estos componentes se suministran como programas de utilidades, mas que como un componente propio del sistema operativo. Es el caso del intérprete de drdenes de Unix, denominado shell, que es un programa de utilidad que puede cambiarse hasta por uno que lo haya diseiiado el propio usuario. En Ja Tabla 1.1 se dieron ejemplos de Hlamadas al sistema en una clasificacion que puede corresponder a una divisidn de este tipo. La estructura del sistema corresponderd a como interconectar estas partes de modo que formen un mticleo. Una de las primeras estructuras que se consideraron fue la de hacer sistemas monoliticos (son aquellos sistemas que no tienen una estructura bien definida), que es un caso que se da en muchos sistemas operativos. Un ejemplo bien conocido es el de MS-DOS, que se diseiié sin pensar ni siquiera remotamente en la popularidad que alcanzaria y en las capacidades del hardware en el que llegaria a ejecutarse. Comenz6 como un sistema pequefio y ha sobrepasado el campo inicial de su aplicacién, En una estructura de este tipo, el sistema operativo se puede construir compilando por separado los diferentes procedimientos que lo constituyen y enlazindolos después en un tinico archivo. La primera version de Unix posefa también una estructura de este tipo, con dos partes separadas: el micleo y los programas del sistema, Estos sistemas tenian un disefio de estructura modular, sin embargo para grandes sistemas operativos, de cientos de miles 0 de millones de lineas de cédigo, a modularidad solamente no es suficiente y se ha ido 14 1 Introduccién imponiendo la utilizacién de conceptos tales como los de niveles jerérquicos y abstraccién de la informacién La estructura jerdrquica de un sistema operative modemo diferencia sus funciones de acuerdo a su complejidad, sus caracteristicas en el tiempo y su nivel de abstraccién. En este caso se puede ver el sistema como una serie de niveles. Cada uno implementa un subconjunto de las funciones requeridas por el sistema ‘operative y a su vez dependen del nivel inmediato inferior para realizar funciones mas elementales y ocultar sus detalles a los niveles superiores a los que proporciona un servicio. Los niveles se tienen que definir de forma que los cambios que se hagan en un nivel no supongan modificaciones en los otros. Un enfoque de este tipo se utilizé por primera vez en el sistema operativo THE en la Technische Hogeschool Eindhoven. THE se definis en los seis niveles que se muestean en la Tabla 1.2. Nivel 5 gramas de los usuarios Nivel 4 |] Manejador de asposiivos y buters de BS Nivel 3 |] Manejador de la consola Nivel? |] Gestor dela memoria Nivel | |] Ptoniicador del procesador NivelO |] Hardware lL J Tabla 1.2: Estructura de niveles del sistema operative THE Otros sistemas operativos también han utilizado este enfoque. Venus se diseié utilizando un enfoque anilogo al de THE. La mayor dificultad en el disefio de estas estructuras es definir los niveles, ya que cada uno s6lo pueden utilizar los servicios del nivel inferior. 1-5 Disefio e implementacién de sistemas operativos 15 Disefio e implementacién de sistemas Operativos Cuando se va a disefar un nuevo sistema operativo, el primer problema es definir adecuadamente sus objetivos y especificaciones. Hay que tener en cuenta que se verd afectado por el hardware elegido y por el tipo de sistema que se quiere implementar (monousuario, multiusuario, distribuido, multiprocesador, de tiempo real, de propésito general, ctc.). Por otra parte hay que especificar sus requisitos que se pueden dividir en dos grandes grupos: 1) Requisitos del usuario, El usuario desea que el sistema sea cémodo, facil, sencillo de utilizar y aprender, fiable, seguro y rapido 2) Requisitos del sistema, El sistema debe ser facil de disefiar, implementar y mantener, flexible, fiable, sin errores y eficiente. ‘A la hora de disefiar ¢ implementar un sistema operativo, también hay que tener en cuenta otra exigencia del sistema, que es su capacidad de evolucidn, de forma que se permita la introduecién de nuevas funciones sin interferir con los servicios ya disponibles. Hay diferentes razones por las que hay que considerar en el disefio de un sistema operativo su posible evolucién 1) Las actualizaciones del hardware y la aparicién de nuevos tipos de maquinas. 2) La posibilidad de aftadir nuevos servicios solicitados por los usuarios. 3) Lane esidad de corregir fallos detectados después de un tiempo de funcionamiento. En realidad, todos estos requisitos resultan vagos y no hay una solucién general como lo prueba la amplia gama de sistemas operativos existentes. Si bien no existe una ‘olucién general, si se han desarrollado algunos principios generales. El érea que se ‘ocupa de estas cuestiones ¢s la ingenierta del sofware, que tiene en los sistemas operativos un gran campo de aplicacién de muchas de sus ideas. Una vez disefiado el sistema operativo, hay que implementarlo, En este punto hay que elegir el lenguaje que se piensa utilizar para escribirlos. Inicialmente se codificaban integramente en lenguaje ensamblador, pero en la actualidad es cada vez mas normal escribirlos en un lenguaje de alto nivel, aunque ciertas partes, muy dependientes del hardware, se escriban en ensamblador. Esta idea de escribirse el sistema operative en un lenguaje de alto nivel se utilizé ampliamente en la reescritura de Unix para VAX, pero antes ya se habian escrito otros sistemas operativos con esta misma filosofia, El primer sistema que se escribié en un lenguaje de alto nivel fue MCP (Master Control Program) para los computadores Burroughs (se utilizé una variante de ALGOL). También Multies se hizo en PL/I 16 1 Introduccion Las ventajas de utilizar un lenguaje de alto nivel para construir un sistema operativo son las mismas que las de utilizarlos para generar las aplicaciones, Entre estas ventajas se pueden resaltar: 1) El cédigo se puede escribir mas répidamente 2) Facilidad de comprender y depurar el eédigo 3) Transportabilidad del SO a otras plataformas Como inconvenientes se suelen indicar los derivados de un cédigo compilado, que puede estar menos optimizado (menor velocidad y mayores requisitos de almacenamiento) que si se realiza en ensamblador por un programador experto. También es cierto, que si se dispone de un buen compilador el cédigo resultante mejora apreciablemente. No obstante, se consiguen mejores rendimientos con estructuras de datos apropiadas y utilizando buenos algoritmos, que con s6lo una optimizacién del eédigo. Las partes mas eriticas para lograr un buen rendimiento del sistema operativo son el gestor de memoria y el planificador del procesador. Se pueden hacer analisis y ver que rutinas pueden degradar el sistema y sustituirlas por otras més optimizadas, o reescribirlas directamente en ensamblador. 16 Conclusiones 7 Conclusiones —————————<$—__ i i.” .__ Lo que hace que un computador sea una maquina iitil es el software y no hay duda de que el programa mis importante en este sentido es el sistema operativo, Definirlo no es ficil y lo que se hace es decir cuales deben ser sus funciones y objetivos. Sus principales funciones y objetivos son esencialmente dos: 1) Proporcionar una méquina virtual cara a los usuarios y a las aplicaciones, que resulte mas facil de programar y de utilizar 2) Ser un gestor de los recursos de Ia méquina No siempre ha sido esta la forma de ver a los sistemas operativos, de hecho ha evolucionado segiin se han ido introduciendo nuevos conceptos a lo largo de su desarrollo. Entre estos merecen destacarse por su importancia los siguientes: a) Proceso b) Gestién de la memoria ¢) Sistema de archivos ) Llamadas al sistema ©) Gestién y planificacidn de los recursos £) Proteccidn y seguridad de la informacién. (0s conceptos, y los que han surgido a partir de ellos, se irén estudiando a lo largo del texto. Los sistemas operativos considerados como un programa han alcanzado un tamafio muy grande, debido a que tienen que hacer muchas cosas. Por esta razén para construir un SO es conveniente dividirlo en ‘componentes mas pequefios y hacer una estructura en niveles. 18 » 2» 3 4 5) 6 1 Introduccion Cuestiones propuestas {.Cuales son los dos objetivos principales de un sistema operativo? EI sistema operativo permite que el usuario vea una maquina virtual. Cuales son los servicios que tiene que proporcionar en este caso el sistema operativo? {,Qué diferencias hay entre el sistema operativo emo una maquina virtual y el sistema operative cémo gestor de recursos? {Cua es el objetivo de las Hamadas al sistema? {Cuales son las caracteristicas de una estructura jerdrquica en niveles de un sistema operativo? {Por qué es necesario considerar en el disefto de un sistema operative posibles cambios futuros en el mismo? 1-8 Cuestiones resueltas 19 Cuestiones resueltas Cuestion 6-1 {Cuales son los dos objetivos principales de un sistema operativo? Solucién Los objetivos basicos de un sistema operativo son: 1) Porporcionar una mayor comodidad para los usuarios, haciendo que el computador sea mas facil de utilizar, Los usurios veran una maquina virtual o extendida, que es mas facil de programar y de utilizar que la méquina desnuda, 2) Aumentar la eficien gestor de recursos, . gestionando los recursos del sistema. En este caso su funcién es la de un n 6-2 Cuest El sistema operativo permite que el usuario vea una maquina virtual. ;Cuales son los servicios que tiene que proporcionar en este caso el sistema operative? Solucion El sistema operativo tiene que proporcionar servicios para las siguientes funciones: 1) Creacién de programas. La creacién de un programa supone editarlo, compilarlo, depurarlo, enlazarlo, etc. Para ello hay programas del sistema, que no son parte del sistema operativo, pero que son accesibles a través de él y que realizan estas funciones. 2) Ejecucién de programas. La ejecucién de un programa supone: cargar el e6digo y los datos en la memoria principal, inicializar los dispositivos de £/S y preparar los recursos necesarios para la ejecucidn, Todo esto lo gestiona el sistema operativo. 3) Operaciones de entrada/salida. Las operaciones de E/S que requiera un programa en ejecucién son 20 1 Introduccion encargadas al sistema operativo, el cuil es el encargado de hacer las funciones que permiten la lectura, escritura y comunicacién con los periféricos. 4) Manipulacién y control del sistema de archivos. El sistema operativo se ocupa también de la manipulacién y el control del sistema de archivos, que puede encontrarse en un disco (memoria secundaria). Ademas de comunicarse con el controlador del periférico en donde esta el sistema de archivos, el sistema operativo debe conocer la propia estructura (formato) de almacenamiento y proporcionar los mecanismos adecuados para su control y proteccién, 5) Deteccién de errores. El sistema operativo debe ser capaz de detectar y solucionar aquellos errores, tanto de hardware como de software, que pueden ocurrir. Por ejemplo: un mal funcionamiento de un periférico, fallos en Ia transmisién de los datos, errores de calculo en un programa, divisiones por cero, rebose, fallos de la memoria, violaciones de permisos, ete. 6) Control del acceso al sistema. En un sistema compartido el control del acceso es también responsabilidad del sistema operativo, vigilando quign tiene acceso y a qué recursos. Para ello dispone de mecanismos de proteccién de los recursos y de politicas de seguridad. laboracién de informes estadisticos. Esta puede ser una tarea secundaria, pero es conveniente también conocer la utilizacién de los distintos recursos del sistema. De esta forma se dispone de informacién que permite saber con antelacién las necesidades futuras y configurar al sistema para dar el mejor rendimiento. ee Cuestion 6-3 {Qué diferencias hay entre el sistema operative cémo una méquina virtual y el sistema operative como gestor de recursos? Solucion Al considerar al sistema operative como una maquina virtual, este debe proporcionar una serie de funcionalidades que hagan mas amigable a utilizacién del computador, ocultando toda la problemitica del hardware, en este sentido el sistema operativo debe proporcionar las funciones indicadas en la cuestién anterior. Cuando se considera al sistema operativo como un gestor de recursos, es un programa mis cuya funcién ¢ proporcionar a los otros programas que compiten por los recursos una asignacién ordenada y controlada de los mismos. Cuestion 6-4 {Cuiles el objetivo de las Hamadas al sistema? 1-8 Cuestiones resueltas a Solucion Cuando se quiere que el sistema operativo haga determinada funcién, requerida por ejemplo por el programa en ejecucién, se consigue haciendo una llamada al sistema. Esto corresponde al interfaz entre el sistema operative y los programas. Con las llamadas al sistema se pueden controlar los procesos (creandolos y abortindolos), manipular los archivos y los periféricos, etc. Cuestin 6-5 {Cuales son las caracteristicas de una estructura jerirquica en niveles de un sistema operativo? Solucion La caracteristica de una estructura jerirquica es que diferencia las funciones de acuerdo a su complejidad, sus caracteristicas en el tiempo y su nivel de abstraccién, Vigndose el sistema como una serie de niveles, en cada tuno se implementa un subconjunto de la funciones del sistema operativo Cuestién 6-6 {Por qué es necesario considerar en el disefio de un sistema operativo posibles cambios futuros en el mismo? Solucién Son varias las razones por las que hay que considerar cambios futuros en un sistema operative 1} Las actualizaciones del hardware y 1a aparicidn de nuevos tipos de méquinas. 2) La posibilidad de afiadir nuevos servicios soli dos por los usuarios. 3) La necesidad de corregir fallos detectados después de un tiempo de funcionamiento. Gestion de procesos Aunque existen muchas definiciones de lo que se entiende por proceso, la mas utilizada es la de programa en ejecucién, Hay sin embargo una distincién explicita entre un programa y un proceso. Un programa es una entidad estitica constituida por sentencias del programa que definen la conducta del proceso cuando se ejecutan utilizando algin conjunto de datos. Un proceso es una entidad dinémica que ejecuta un programa sobre un conjunto particular de datos ulilizando los recursos que le proporciona el sistema operativo. Dos 0 as procesos podrian estar ejecutando el mismo programa, empleando sus propios datos y recursos. Este concepto de proceso, que seri explicado ampliamente en este tema, es esencial en Ia construccién de los sistemas operativos multiprogramados. Los objetivos principales de estos sistemas se pueden expresar en los términos siguientes: 1) Permitir la creacién y comunicacién entre los procesos. 2) Gestionar entre los procesos la utilizacién de la CPU y del resto de los recursos del sistema (tales como la memoria y los dispositivos de £/S). El tema trata, en primer lugar, de dar una idea lo mds clara posible de lo que son y representan los procesos en un sistema operativo, de las relaciones que existen entre ellos y de la forma en que pueden especificarse. Se analizan a continuacién los diferentes estados (activo, preparado, bloqueado, nonato y ‘muerto) por los que pueden pasar los procesos a lo largo de su ejecucién y las estructuras necesarias para su representacin. Se introduce después la nocidn de hebras, que representan una solucién software usada por algunos sistemas operatives modernos para mejorar su rendimiento y que supone un refinamiento del concepto de proceso. Finalmente, se estudia el planificador de procesos. Se llama asi a aquella parte del sistema operativo encargada de asignar los recursos, yen especial la CPU, a los procesos que la solicitan. Se destacan dos tipos de planificadores que coexisten en un sistema operative: 1) Planificador a largo ple (PLP) 0 planificador de trabajos 2) Planificador a corto plazo (PCP) 0 planificador del procesador describiéndose los algoritmos mas utilizados en la realizacién de los mismos. 24 2 Gestion de procesos Introduccién a los procesos Un sistema operative (SO) se define como “un conjunto de extensiones software del hardware original, que culminan en una maquina virtual que sirve como un entorno de programacién de alto nivel que gestiona el flujo de trabajo en una red de computadores” (Ralston y Reilly, 1993). El SO proporciona una serie de servicios y una interfaz a dichos servicios. En la programacién convencional se dice que los programas son secuenciales, ya que cabe imaginar al procesador ejecutando el cédigo sentencia a sentencia. En cada instante pensamos que la maquina esta ejecutando una tinica sentencia. Sin embargo, hay muchas aplicaciones en las que varios célculos pueden ejecutarse potencialmente en paralelo o procesarse de forma concurrente. Los sistemas operativos sustentan este tipo de operacién inherente a todos los sistemas de tiempo real La mayor parte de los computadores actuales proporcionan mas recursos de los que suele necesitar un programa convencional. En los primeros computadores slo se ejecutaba un programa o trabajo a la vez. Sin embargo, se puso ripidamente de manifiesto que algunos programas estaban limitados en su velocidad de ejecucién por el uso continuado de unidades de E/S, como lectores de tarjetas o unidades de cinta magnética. Por el contrario, habfa otros programas en los que su velocidad estaba limitada por la unidad de procesamiento ya que hacian poco uso de las unidades de £/S. Ninguno de los programas de este tipo utilizaba toda la potencialidad del computador, unos por tener liberado de trabajo al procesador y otros por tener desocupadas las unidades de E/S. Este problema se intents resolver con la multiprogramacién, en la que con el entrelazado y el solapamiento de la ejecucién de mas de un programa, se intenta mantener del modo més ocupado posible a todos los recursos del sistema. Asi, con fa ejecucién concurrente de mas de un trabajo o programa se puede obtener una mejor utilizacion del sistema, Por ejemplo, una vez que un computador ha comenzado a leer datos de un disco el procesador puede ejecutar instrucciones al mismo tiempo que los datos se van transfiriendo, por acceso directo a memoria (ver Seccién 6-4), a una zona utilizada como memoria intermedia (buffer). Si se dispone de un tinico procesador, éste puede realizar labores para distintos trabajos pasando de uno a otro, mientras que en un determinado instante esté dedicado en exclusiva a una tarea. En este caso, el progreso de los dos programas se debe a que uno utiliza el procesador mientras que el otro utiliza una unidad de AS. Una vez que el programa que realiza la £/S de datos ha terminado de efectuar su tarea, debera esperar a que el procesador cambie a él para seguir progresando. Este cambio entre dos programas se puede extender a otros programas que estén esperando a ejecutarse, De este modo, solamente con cambiar la atencién de un tinico procesador entre varios programas y dejando que cada uno de ellos se ejecute unas milésimas de segundo antes de ir a otro, permite crear la ilusién de la ejecucién concurrente o al unisono de los programas. Se dice entonces que es un sistema con ‘multiprogramacién. Los sistemas con multiprogramacién interactiva, en los que se asigna a cada programa un mismo 2-4 Introduccién a los procesos 25 intervalo de tiempo de ejecucién se denominan sistemas de tiempo compartido, Si se dispone de un computador con varios procesadores se puede hacer que varios programas o partes de un mismo programa se ejecuten en paralelo, cada uno de ellos en un procesador. En el caso de un tinico procesador se puede obtener la percepcién de que algunos programas o partes de un Gnico programa se ejecutan en paralelo haciendo que, como se ha indicado en los sistemas de tiempo compartido, todos ellos dispongan del procesador un intervalo de tiempo, de modo que ninguno utilice dos veces el procesador sin que todos los demas hayan dispuesto de él. Se consigue asi una cierta imagen del concepto de paralelismo. Sin embargo, la nocién de procesamiento concurrente va més alla de la idea de ir ejecutando en paralelo partes de algunos programas convencionales 0 alternando un tinico procesador entte diferentes zonas de un sélo programa. Asi, de forma mas precisa, se puede afirmar que un sistema operativo cambia el procesador entre muchos cileulos denominados procesos, tareas o trabajos (processes, tasks o jobs). La denominacién suele variar segin los sistemas operativos y autores; en lo que sigue los usaremos indistintamente Se utiliza el término multitarea para referirse a la capacidad que tienen los sistemas operativos de tar de forma simultinea varios procesos, reservindose el término multiprocesamiento a un computador que dispone de varios procesadores. E] término multiprogramacién es conceptualmente mis general que el de multitarea, pues tiene en cuenta ademas de la posibilidad de multitarea, los requisitos necesarios para ella, como son la capacidad de gestién de memoria y del sistema de ficheros!, Para fijar las, ideas consideremos el siguiente ejemplo ilustrativo de los conceptos que acabamos de introducir SER: 24.4 Ejemplo Supongamos un estudiante que tiene que preparar varias asignaturas durante el curso. Relacionamos al estudiante con un computador con un iinico procesador, su cerebro. Una organizacién secuencial del estudio de las asignaturas podria ser estudiar una asignatura durante un niimero de dias hasta aprenderla, despues otra asignatura y asi sucesivamente hasta preparar la iltima, Otra organizacién podria ser estudiar cada dia un poco de cada asignatura. En cada instante de tiempo estara estudiando una tnica asignatura, pero visto el trabajo a una escala macroscépica al cabo del curso podriamos afirmar que el estudiante ha Mevado las asignaturas en paralelo o de forma concurrente. Durante el proceso de aprendizaje habra momentos en que tendra que abandonar temporalmente éste para realizar otras fareas, como atender una llamada de teléfono o abrir la puerta. Al aftadir estas nuevas tareas de su quehacer cotidiano el estudiante necesita una cierta planificacién que le permita determinar cuando debe pasar de la ejecucién de una farea a otra. Dicha planificacién forma parte de su “modus operandi” o sistema operativo; segtin éste, el estudio de una asignatura se realizar durante un cierto intervalo de tiempo, transcurrido el cual se produciré el cambio a otra asignatura. Si durante el estudio se produce, por ejemplo, una Hamada te el estudiante la atendera y salvo que la llamada le obligue a realizar otra tarea, como salir a comprar comida para los amigos que le acaban de comunicar que van a venir a cenar, proseguira con el estudio. 1. En la mayoria de los textos, los téeminos multtarea y multiprogramacién se ulilizan indistintamente, considerindose 26 2 Gestion de procesos 24.2. Distincién entre programas y procesos El ejemplo anterior podemos enmarcarlo dentro de la realizacién de distintos programas convencionales alternando entre ellos. Pensemos ahora en la ejecucién de un programa de edicién de textos en un sistema que esté multiprogramado y es multiusuario. El programa de edicién puede ser ejecutado por varios usuarios al mismo tiempo. El programa es inico, pero cada invocacién a él genera un proceso distinto e independiente, que utilizar unas estructuras de datos diferentes a las de otros procesos que resulten de la utilizacién del editor por otros usuarios. Cuando uno de ellos termina la edicién, se elimina el proceso asociado sin que esto influya en el resto de los procesos de edicidn de otros usuarios. A su vez, los procesos de edicién pueden generar nuevos procesos independientes; por ejemplo guardar los datos en un fichero. Una vez creado el proceso para almacenar los datos, su ejecucién tiene lugar de forma concurrente con el resto de los procesos. Aunque los procesos de edicién se pueden considerar como independientes, lo cierto es que éstos compiten por el uso de los recursos del sistema, de manera que se necesitan herramientas que permitan la sincronizacién y la comunicacién entre los mismos. A veces dos 0 mas procesos cooperan para alguna operacién comin, ‘Vemos pues, que el concepto de proceso es por su propia naturaleza dinémico, ligado intimamente a la ejecucién de un programa y que normalmente pasa por varios estados antes de finalizar su ejecucién. Asi, en cualquier instante, sélo un proceso estaré en eecucién mientras que los otros estarin preparados para acceder al procesador cuando lo disponga el SO, 0 bloqueados, esperando que ocurra algin evento que les, permita volver a estar dispuestos para acceder al procesador. 2-2 Relacién entre los procesos ar Relacion entre los procesos El sistema operativo debe suministrar los servicios necesarios que permitan el procesamiento concurrente. Basicamente estos servicios proporcionan los medios para la realizacién de las siguientes actividades: 1) Ejecucién concurrente de los procesos. b) Sincronizacién entre procesos. ©) Comunicacién entre procesos. Ademis, el sistema operativo debe disponer de algoritmos de planificacién y gestidn de procesos que se encarguen de las siguientes acciones: 1) Decidir qué proceso se ejecutard 0 tomaré el procesador 2) Llevar cuenta de los estados de los procesos, sus prioridades y toda la restante informacién relevante acerca de ellos. Dependiendo de la interaccién entre los procesos, éstos se pueden clasificar de la forma siguiente: a) Procesas independientes. Los procesos independientes no se comunican o sincronizan entre ellos. En un sistema con un s6lo procesador, los procesos independientes en sentido estricto no existen, ya que todos compiten por la posesién del procesador y posiblemente por la memoria y los. dispositivos de £/S. b) Procesos cooperativos. Los procesos cooperatives se comunican y sincronizan sus actividades para realizar una labor comiin. Por ejemplo, en ef computador a bordo de un avién hay procesos encargados de vigilar el funcionamiento de los motores, actualizar los instrumentos de vuelo, procesar las seftales de los instrumentos de navegacién y mantener el rumbo, Todos los procesos cooperan durante el vuelo del avién, lo que puede requerir frecuentes interacciones entre todos ellos. c) Procesos competitivos. Al compartirse los recursos de un computador todos los procesos necesariamente deben competir entre ellos. El acceso ordenado a estos recursos necesita de la sincronizacién y a veces también de la comunicacién entre los procesos. En este sentido cabe considerar al sistema operativo como un verdadero director de orquesta que trata de armonizar, priorizar y ordenar la ejecucién de los diferentes procesos que compiten por los recursos limitados, del computador con el objetivo final de permitir el procesamiento concurrente de todos ellos. Se trata en definitiva de optimizar el rendimiento del computador en la realizacién de su trabajo, 28 2 Gestion de procesos Especificacién de los procesos En algunos sistemas operativos como en los de tiempo compartido, cada programa que se pasa a ejecucién, por ejemplo mediante una orden de “ejecutar” dada por el usuario, se trata como un proceso independiente. Estos procesos generados por el SO se denominan implicitos. Una vez terminada la ejecucién de los mismos, su eliminacién tambien la realiza el propio SO. Asi mismo, el SO proporciona en tiempo real los servicios que son necesarios para que el usuario pueda definir procesos de forma explicita, Los programas acceden a estos servicios realizando tamadas al sistema (system calls). Estas llamadas pueden aparecer incrustadas en el cédigo de un programa de usuario o del propio sistema, en cuyo caso, se asemejan a llamadas a procedimientos o funciones que dan lugar a transferencias de rutinas del SO cuando se invocan en tiempo real. Las Hamadas al sistema se realizan también, pero de forma indirecta, cuando se dan 6rdenes al SO a través de un terminal: la rutina de monitorizacién del terminal (que es su vez un proceso) se encarga de transformar la orden en llamadas al sistema, De este modo, al comienzo de la ¢j cucién del programa principal de un usuario se inicia la ejecucion de tun proceso, A su vez el proceso podria crear nuevos procesos. En este caso, el proceso que crea otro nuevo se denomina proceso padre (parent process), y el proceso creado se denomina proceso hijo (child process). Una vez creado un proceso hijo, la ejecucién de padre e hijo transcurre de manera concurrente. De esta forma, se puede crear una jerarquia arborescente de procesos, en la que un padre puede tener varios hijos y éstos, pueden tener otros hijos, ete, pero donde cada hijo sélo tiene un padre memruanuaaenare, 2.3.1 Ejemplo4 A continuacién se muestra un programa principal y dos procedimientos prd/ y prd2 de un programa en C ejecutado con el SO Xinu, El programa principal crea dos procesos mediante la llamada al sistema operativo create. El primer argumento de esta llamada es la direccién donde empezaran a ¢jccutar las instrucciones cada uno de los procesos ereados, que en este caso, seran los procedimientos prd/ para el primer proceso y prd2 para el segundo proceso. Ademas de esta direccién de comienzo de ejecucidn, en la llamada se especifican otros atributos necesarios para la creacién del proceso. Entre ellos en Xinu estan: el espacio de pila necesario pata el proceso, su prioridad, un nombre o descriptor de! mismo, el nimero de argumentos y Jos argumentos, La funcién create devuelve un nimero entero que identifica de forma iinica al proceso creado. A este valor se le denomina id del proceso, 0 pid del proceso. En este SO, la creacién del proceso no hace que éste se ejecute inmediatamente, sino que queda preparado en el estado de bloqueado hasta que se ejecute la llamada al sistema resume. Esta funcién recibe como argumento el pid que devuelve create y pasa al proceso al estado de preparado para que pueda ejecutarse. 2-3 Especificacién de los procesos 29 /*Bjempl.c main, prdl, prd2*/ include t prdl (void); int prd2 (void): void main (void) ( resume (create (prd1, 400, 10, "proc!" 0)): resume (create (prd2, 400, 10, "proc2", 0); } /*prd1 -Imprime °A’ indefinidamente*/ int prd (void) { while (1) pute (consola, A’); 1 /*prd2-Imprime °B’ indefinidamente*/ int prd2 (void) ( while (1) pute (consola, "B"); } La ejecucién de la funcién resume deja al proceso compitiendo por utilizar el procesador del sistema con el resto de los procesos que estén preparados para ejecutarse y eventualmente se ejecutari., Asi, una vez finalizada la ejecucién de la funcién resume del proceso ligado al programa principal, éste seguir’ su ejecucién de forma concurrente con el proceso proc/. Una vez ejecutada la segunda sentencia resume, el pro eso proc? se ejecutari concurrentemente con el resto de los procesos, E| programa principal, que también es un proceso, aleanza el final y se elimina su proceso asociado, Dicha eliminacién supone el cese de su ejecucién y la liberacién de la memoria ocupada. No obstante, los dos procesos creados siguen ejecutindose concurrentemente de forma indefinida. {Como se pueden eliminar estos procesos?. En Xint la llamada del sistema kill permite terminar un proceso. Esta funcién, que se puede considerar la inversa de la funcién create, sélo necesita como argumento el pid del proceso que se desea eliminar. Esta llamada al sistema suele formar parte de ta terminacién ordenada de un programa Normalmenie la mayoria de los sistemas con procesamiento concurrente permiten que un proceso se pueda suprimir a si mismo, utilizando en la llamada a la funcién kill su propio pid. Muchos compiladores normalmente transforman el end de un programa principal en una Hamada a kill con el pid de su proceso asociado. eomenmmimnaossesert 2.3.2 Ejemplo2 Para reflejar mds la diferencia entre programa y proceso, en el ejemplo siguiente, que es una moditicacién del anterior, se muestra como los procesos no tienen por qué ejecutar cédigos independientes. Ahora, un mismo procedimiento da lugar a dos procesos independientes, 30 2 Gestion de procesos /*Bjemp2.c main, prd/ #include int prd (char); void main (void) { resume (create (prd, 400, 10, "proct", 1,"A’)); resume (create (prd, 400, 10, "proc2”, 1,°B")); ) pd -Imprime un caracter int prd (char ch) t while (1) pute (consola, ch): I indefinidamente*/ La primera sentencia ereate crea un proceso, proc!, para ejecutar el cédigo del procedimiento prd. Al proceso se le pasa como argumento el cardcter °A’. El niimero anterior a este cardcter en la sentencia create, indica el nimero de argumentos que se le pasan al proceso, en este caso s6lo 1. El proceso comienza la ejecucién del cédigo del procedimiento con el cardcterch igual al cardcter "A” EI proceso proc? comienza con ch igual a "B’. Los dos procesos se ejecutan concurrentemente sin ningiin efecto del uno sobre el otro. Esto es posible gracias a que el sistema operative hace que los argumentos y variables locales del procedimiento o funcidn que da lugar al proceso, se asocian a éste y no al cédigo en el que aparecen. De esta manera, el sistema crea para cada proceso un conjunto independiente de variables locales, de pardmetros formales y de llamadas a los procedimientos y a las funciones. Algunos lenguajes de programacién como Ada, Modula y Occam disponen de estructuras para la declaracién explicita de procesos y de su ejecucién concurrente y por ello no es necesaria la invocacién directa de las llamadas al sistema. 2-4 Estados de los procesos 34 Estados de los procesos Como sc ha puesto de manifiesto, el proceso es un elemento dindmico que puede pasar por diferentes estados alo largo de su “existencia”, De forma general, un proceso puede encontrarse en un instante determinado en uno de los siguientes estados: a) Active. b) Preparado. ©) Bloqueado o suspendido, 4) Nonato, ©) Muerto, La tarea activa es la que esta ejecutindose en un instante dado. En el caso de sistemas con un inico procesador, silo puede haber una tarea en dicho estado en cada instante. En el estado de preparado, se encuentran todas las tareas que estin listas para ejecutarse pero que cesperan a que un/el procesador quede libre (hay otros procesos més prioritarios en ejecucién). Las tareas que estin a la espera de que se cumpla alguna condicién y que por lo tanto, no estin preparadas para ejecutarse, se dice que estin en el estado de bloqueado o suspendido; algunos ejemplos de condicién son: que se termine una operacidn de £/S 0 que se reciba una setial de sincronizacién. Un proceso esta muerto cuando ha terminado su ejecucién o bien el sistema operativo ha detectado un error fatal y lo ha transferido a dicho estado. También es posible que haya entrado en él como resultado de un fallo del propio sistema operativo (cuestién que desgraciadamente suele ocurrir con harta frecuencia en algunos SO). Elestado de nonato indica que el programa realmente existe pero todavia no es conocide por el SO. Se denomina estado global del sistema en un instante determinado, al conjunto de recursos y procesos existentes con sus estados correspondientes. El sistema operativo cambia el estado global del sistema, modificando el estado de los procesos y la asignacién de los recursos, en respuesta a eventos externos 0 internos. Algunos ejemplos de eventos son las llamadas al sistema operativo (para solicitar un recurso 0 realizar alguna operacién sobre un proceso) o cualquier interrupcién hardware. EI sistema operativo dispone de algoritmos de planificacién y de gestién de los procesos y de los recursos de modo que, considerando como entradas al algoritmo los eventos y el estado global del sistema en un instante, genera un nuevo estado global reasignando los recursos entre los procesos, intentando optimizar el comportamiento del sistema de acuerdo con unos objetivos de disefio. 32 2 Gestion de procesos 244 Transiciones entre los estados La Figura 2.1 muestra de forma general las transiciones entre los distintos estados. Este es un modelo “elemental”, cuando posteriormente se entre en més detalles serd preciso refinarlo aiin mas con algin nuevo estado y transiciones (ver Seccién lanificador, Figura 2.1: Estados y ransiciones de los proceso. El sistema operativo posee un médulo, el planificador que se encarga de activar los procesos que estan en el estado preparado, de acuerdo con unos criterios determinados (por ejemplo en funcidn de sus prioridades). Toda interrupcidn hace que la tarea que esté activa en ese instante deje de ejecutarse en favor del sistema operativo que decidira de entre los procesos que ya estin preparados, cual de ellos tiene que ponerse en el estado activo (pasa a usar el procesador). Por ejemplo un proceso activo puede efectuar Hamadas al sistema para solicitar servicios de éste, tales como realizar una operacién de E/S, crear o eliminar ‘otro proceso, etc. Como resultado una vez terminado el servicio, el sistema operativo puede devolver el control al proceso que esti en ejecucién o transferirlo a uno de los otros estados, El proceso en ejecucién también puede volver al estado preparado por la accién del planificador (scheduler) del SO, sin que medie una llamada al sistema; ésta seria la situacién de un sistema de tiempo compartido en el que se hubiera terminado el intervalo de tiempo asignado al proceso en ejecucidn 0, en otros sistemas, el caso de que pasara al estado de preparado un proceso con una prioridad mayor. Un proceso pasa del estado nonato al estado preparado cuando el sistema a través del planificador to decide. Si el proceso esta en el estado bloqueado, puede pasar al estado preparado si tiene lugar un evento que estuviera esperando para poder proseguir la ejecucién. Es decir, si un proceso esta bloqueado, sélo puede activarse cuando desaparezca la causa de su bloqueo y esto sucederé cuando se ejecute la rutina de interrupcién al final del evento que el proceso esta esperando; el proceso pasara a estar preparado. Un proceso en ejecucién puede pasar a bloqueado si solicita el servicio de un recurso sin cuyos resultados no puede continuar, por ejemplo una operacién de E/S, o bien, si necesita que tenga lugar algin evento para poder continuar. También puede pasar a este estado un proceso al ser creado 0, si estando en el estado de preparado, tiene lugar alguna accién determinada, como una llamada al sistema operativo del proceso que esti en ejecucidn en ese momento para suspenderle. Un proceso pasa al estado muerto cuando finaliza 0 cuando queda eliminado por otro proceso. 2-5 El bloque de control de procesos 33 — Seccién 2-5 EI bloque de control de procesos EI sistema mantiene toda la informacién sobre un proceso en una estructura de datos denominada bloque de control de procesos (BCP) (ver Figura 2.2). La creacién de un proceso origina la creacién de su BCP que sirve para describirle hasta que se elimina 0 pasa al estado muerto, donde los procesos no poseen su BCP. En el BCP se guards la informacién que necesita el sistema para controlar al proceso y dar cuenta de sus recursos y toda la que influye en la ejecucién de un programa. Por ejemplo: 8) El identificador tnico del proceso (pid), b) El estado del proceso (activo, preparado, bloqueado). ©) La prioridad @) El estado hardware (contador de programa, cédigos de condicién, punteros de pila, ete). ¢) La informacién para gestionar la memoria (punteros, tablas, registros). f) La informacién de estado del sistema de E/S (dispositivos de E/S asignados al proceso, lista de archivos abiertos, etc). 2) La informacién de contabilidad y plan id del proceso estado del proves provid contador de programa reaisios Figura2.2: Bloque de control de pracesos Cuando el sistema operative cambia el procesador entre tareas, utiliza una zona del BCP en la que deja toda la informacién necesaria para que se pueda proseguir la ejecucién de la tarea cuando ésta retome el procesador. Por ello, no sélo se necesita guatdar el contador de programa, sino todos aquellos registros que 34 2 Gestion de procesos contengan resultados intermedios y cualesquiera otros registros que influyan en la ejecucién, tales como el registro de condicién y los punteros de pila. En la informacién contable, se mantiene la informacién necesaria para permitir que los algoritmos de planificacién del SO puedan conseguir organizar Jos procesos de modo que se obtenga el mejor comportamiento posible del sistema o lo que es equivalente, el rendimiento éptimo en el uso del procesador (0 de los procesadores) del sistema y de los recursos. Informaciones relevantes para este fin son, entre otras, la hora de inicio del proceso, el tiempo real de uso del procesador, el tiempo de espera para conseguir un determinado recurso y el tiempo medio transcurrido desde que el proceso esta preparado hasta que consigue el procesador 2.5.1 Listas de procesos El SO mantiene fistas de BCP para cada uno de los estados del sistema, Cada proceso pertenece a una tnica lista, Asi, posee una lista de los procesos que estin en el estado preparado, una lista de los procesos en el estado bloqueado o suspendido y en el caso de sistemas multiprocesador, una lista de los procesos activos o en ejecucidn. Si el sistema es uniprocesador la lista de los procesos activos se reduce a una sola entrada Normalmente las listas de los estados preparado y bloqueado se organizan como listas enlazadas (ver Figura 23). Lista de procesos [Cabssens —}—> [pia poe oa) Gata Lista de procesos [Cabecera—}—> [pate pre. #3] p> [pits proe. ot | [pid proc ae preparados aa 1 Lista de procesos [Cabscera_—}—> [pick prow. #2 id poe #7 | ->[ pit proc. #6 Dlaqueados cae ___—/ ~ Figura 2.3: Listas de los estados en os que se encuentran las diferentes procesos 2.5 El bloque de control de procesos 35 EL planificador del SO se encarga de gestionar el paso de los procesos de una lista a otra, manteniendo las istas ordenadas y actualizadas de la forma mas conveniente para las rutinas que operan sobre ellas. Asi la lista de procesos en el estado preparado se puede gestionar como una cola con prioridad, mientras que la lista de procesos bloqueados es posible hacerlo como una cola FIFO. Las causas por las que un proceso esti suspendido pueden ser muy variadas, En principio, c: dispositive de E/S puede hacer que un proceso que desee utilizarlo deba esperar algin tiempo hasta que se realice su operacién. De este modo, un proceso que quiera, por ejemplo, acceder a un disco del sistema que esté ocupado con la solicitud de algiin otro proceso, debe permanecer a la espera de que quede libre. El proceso puede estar en una lista Gnica de estados bloqueados o en una lista de estados suspendidos ligada en exclusiva a un dispositivo o evento (ver Figura 2.4) Lista de procesos [Cahecen bloqueados (aispositivo 1) }—> [ ia: proe. 02 ik proc. #7 Cola =m, 1 Lista de procesos [Cabecorn > [pal pw 0 bloqueados om (dispositive 2) Lista de procesos bloqueados (dispositive 3) Figura 2.4: Listas de los estados bloqueados asociadas a dispositivos 36 2 Gestion de procesos Procesos y hebras Tal como se han presentado los procesos hasta ahora, aparecen como la unidad basica de trabajo dentro de un sistema operativo, el cual se encarga de que se ejecuten y de proporcionarles los recursos necesarios para elo. Ambos aspectos, ejecucién y posesién de recursos, pueden verse como dos conceptos independientes y que pueden tratarse de forma separada. De esta forma, podemos ver el proceso como una entidad formada por una ‘més unidades de ejecucién denominadas hebras (threads) y un conjunto de recursos asociados. A las hebras también se las denomina procesos primitivos. Si un proceso pasa al estado activo una hebra toma posesién del procesador; ésta se puede interrumpir para que se pase a ejecutar otra hebra, y asf sucesivamente hasta que e! proceso sale de dicho estado. Por esta razén, cada hebra posee su propio vector de estado, esto es, el contenido de los registros del procesador (contador de programa, puntero de pila, registros de propésito general, cddigos de condicién, ete). Una hebra no existe fuera de un proceso y sélo pertenece a uno de ellos. Los recursos no estin asociados a las hebras si no al proceso; éste es el que puede acceder de forma protegida a los recursos del sistema y se encarga de su gestiGn entre las hebras, El proceso se puede ver ahora como un espacio de direccidn virtual que contiene la imagen de un programa y es la unidad propietaria de los recursos para un conjunto de hebras. El proceso sirve asi de entorno para la ejecucién de las hebras Con esta concepeisn se obtiene una mejora en el comportamiento del sistema operative. La creacién de tuna hebra dentro de un proceso requiere menos tiempo que la creacién de un proceso nuevo, ya que su estado se ve reducido con respecto al del proceso. También mejora el tiempo de conmutacién entre hebras con respecto al de los procesos. Adem, las hebras comparten la memoria y los ficheros asignados al proceso, lo ‘que facilita su comunicacién y sincronizacién. Asi, en aquellas aplicaciones que puedan realizarse como unidades de ejecucién relacionadas, es mas eficaz hacerlo de esta manera que mediante procesos separados. Las hebras se han utilizado con éxito en los servidores de ficheros en una red local. Cada vez que se realiza una peticion de un fichero el gestor genera una hebra para atender la peticién correspondiente. En un sistema con una fuerte demanda de servicio se crean y eliminan muchas hebras en un corto periodo de tiempo, por lo que la implementacién en base a hebras en lugar de procesos aumenta la velocidad del sistema, En un sistema multiprocesador las hebras se podrian ejecutar simultineamente en varios procesadores, En Jos sistemas con hebras parte de la planificacién se realiza tomando como base a éstas. Un proceso esti en ejecucién cuando se esta ejecutando al menos una de sus hebras. En el estado preparado alguna hebra debe de estarlo para poder pasar a ejecucién, Por eso, la mayor parte de la informacion que tiene que ver con la ejecucidn del proceso se guarda a nivel de hebras, La suspensién del proceso, sin embargo, afecta a todas las hebras, ya que el sistema operativo lo transfiere fuera de la memoria principal y la gestién se realiza, por lo tanto, anivel de proceso, Lo mismo ocurre cuando se termina la ejecucién del proceso. En los SO antiguos las nociones de hebra y de proceso son equivalentes: el proceso se considera constituido por una sola hebra. Las hebras aparecen en algunos de los SO actuales, por ejemplo Windows NT 2.7 El planificador de procesos 37 EI planificador de procesos Se denomina planificador al software del SO encargado de asignar los recursos de un sistema entre los procesos que los solicitan, Siempre que haya que tomar una decision, el planificador debe decidir cual de los procesos que compiten por la posesién de un determinado recurso lo recibira. En la definicién se considera como un recurso mas del sistema, Fijaremos ahora nuestra atencién en este recurso. procesador Hay dos tipos fundamentales de planificadores que coexisten en un sistema operativo: el planifieador a largo plazo (PLP) planificador de trabajos y el planifieador a corto plazo (PCP) o planificador del procesador (ver Figura 2.5), Dogue Figura 2.5: Esquema de la planificacién en un sistema operativo EI PLP determina qué trabajos se admiten en el sistema para su procesamiento y son, por lo tanto, cargados en la memoria disponible. En los sistemas por lates normalmente se presentan mas trabajos de los que pueden ser admitidos para una ejecucién inmediata. Estos trabajos se guardan en un dispositive de almacenamiento para su ejecucién posterior. El PLP se encarga de seleccionar de ese almacenamiento los trabajos que considera mas adecuados evar a la memoria para su ejecucién, de acuerdo con una cierla politica de gestién EI PLP es el principal responsable de que se cumplan los criterios de gestién establecidos para la utilizacién global del sistema; para ello debe realizar una mezcla adecuada de trabajos “destinados” al procesador y trabajos “destinados” al sistema de £/S, con el fin de mantener en todo momento un uso adecuado de los recursos. Lo més usual es definir una funcién de prioridad y asignarle a cada programa un valor para la misma que se actualiza en instantes determinados por el PLP. Las tareas con mayor prioridad se evan al estado preparado, 38 2 Gestion de procesos Entre dos instantes de gestién del PLP los procesos se gestionan por el planificador PCP, més sencillo que aquel ya que no soporta la sobrecarga del caleulo de las prioridades. Existen sistemas que no tienen algoritmo PLP 0 éste es minimo, como es el caso de algunos sistemas de tiempo compartido que se limitan a poner en el estado de preparado cualquier proceso nuevo. En estos sistemas se consigue un comportamiento adecuado con la limitacién del nimero de terminales disponibles 0 con la autorregulaci6n de los usuarios, de modo que si el sistema no va muy bien algunos dejaran sus tareas para otro momento. Como norma general se puede afirmar que el PLP sélo existe en sistemas que admiten procesamiento por lotes. EI PCP selecciona al proceso que pasara al estado activo de entre todos los procesos residentes en ‘memoria que estin en el estado preparado. Como ya se ha indicado, este algoritmo se ejecuta muchas veces entre dos invocaciones al PLP. Su elevada frecuencia de uso hace que el algoritmo suela ser sencillo para evitar gastar mucho tiempo del procesador en su ejecucién. En la practica este algoritmo se llama, siempre que un evento origina un cambio en el estado general del sistema, para determinar si dicho evento implica un cambio en el proceso que debe pasar al estado activo. Entre los eventos que suelen producir una invocacién al PCPestin: a) Las sefiales del reloj del sistema b) Las interrupciones. ©) La final in de las operaciones de E/S. 4) Las Hamadas al sistema operativo. e) El envio y la recepeién de senales. £) La activacién de programas interactivos, En algunos sistemas al PCP también se le denomina distribuidor (dispatcher), sin embargo, en otros se reserva este nombre a aquella parte del PCP encargada en exclusiva de realizar las g pasar el procesador a la tarea seleccionada para su ejecucién, tiones oportunas para Algunos sistemas introducen un planificador de nivel intermedio (ver Figura 2.6) denominado planificador a medio plazo (PMP). Este tipo de planificador se basa en el hecho de que a veces es conveniente llevar a la memoria secundaria un proceso que ha sido suspendido en su ejecucién por algin evento, lo que permite liberar la memoria principal para otros procesos que estén en disposicion de ejecutarse. Otro motivo para llevar un proceso suspendido a la memoria secundaria es el de conseguir una ‘mezcla adecuada de procesos “destinados” al procesador y procesos “destinados” al sistema de E/S. El proceso de salvar una tarea suspendida en la memoria secundaria se denomina intereambio (swapping). E PMP sélo se encuentra en aquellos SO que utilizan esta técnica de gestidn de la memoria. 2.7.4 Algoritmos de planificacin Se han propuesto un niimero elevado de algoritmos de planificacién cuya adecuacién a un sistema completo depende del tipo de planificador que se desee y de los objetivos que se persigan. Por ello en los sistemas actuales es posible encontrar una gran variedad de algoritmos. Nos limitaremos a exponer las caracteristicas generales de los mas importantes, prestando atencidn a los que se utilizan en el PCP, si bien en la mayoria de los casos esos mismos algoritmos se pueden utilizar en el PLP. 2-7 El planificador de procesos 39 ~~ (Cola del evade | preparado " Cola del Figura 2.6: Planificavién con uso de memoria secundaria 2.7.2 Criterios para la planificacién Los algoritmos tienen distintas propiedades segiin los criterios en los que se basen para su construccién, lo cual se refleja en que un tipo de procesos se puede ver favorecido frente a otro en la disputa por el procesador. Asi, antes de realizar la eleccidn de un algoritmo se deben considerar las propiedades de éstos frente al criterio de disefto elegido, Algunos de estos son: a) Eficacia. Se expresa como un porcentaje del tiempo medio de utilizacién. Aunque puede parecer logico intentar mantener este parimetto préximo al 100%, con un valor tan elevado ottos aspectos importantes de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera b) Rendimiento (throughput). Es una medida del niimero de procesos completados por unidad de tiempo, Por ejemplo, 10 procesos por segundo, ©) Tiempo de retorno o regreso (turnaround). Es el intervalo de tiempo que transcurre desde que lun proceso se crea o presenta hasta que se completa por el sistema. q) Tiempo de espera. Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida mas adecuada de la eficiencia del sistema, ya que se elimina de la ‘medida el tiempo que tarda en ejecutarse él mismo. ‘Tiempo de respuesta a un evento, Se denomina asi al intervalo de tiempo que transcurre desde que se sefiala un evento hasta que se ejecuta la primera instruccién de la rutina de servicio de dicho evento. El criterio de seleceién de un algoritmo se suele basar en a maximizacién o minimizacién de una funcién de los pardmetros anteriores. Por ejemplo, maximizar la eficacia y el rendimiento y minimizar el tiempo de espera, o bien, minimizar la varianza del tiempo de respuesta 40 2 Gestion de procesos 2.7.3 Planificacion por expropiacién En los algoritmos de tipo expropiativo, el proceso que se esté ejecutando puede ser interrumpido y pasado al estado de preparado por parte del SO. La decisién de aduefiarse de la CPU puede llevarse a cabo cuando llega lun nuevo proceso, cuando se produce una interrupcién o periédicamente. En los algoritmos con estrategia de no expropiacién el proceso que esté activo permanece con el procesador hasta que él mismo devuelve el control al SO. Este tipo de estrategia suele hacer un uso menos frecuente del PCP que la estrategia con expropiacién, lo que implica una mayor dedicacién a los procesos de los usuarios frente a los del sistema 2.7.4 Planificacién por prioridades En los algoritmos de planificacién por prioridades cada proceso tiene asignada una y el de mayor prioridad en l estado preparado es el que toma el procesador. EI valor inicial puede ser asignado por el usuario 0 porel sistema, La asignacién puede ser de dos tipos: a) Estitica, en cuyo caso no cambia durante el tiempo en que el proceso existe b) Dincimica, que es cuando la prioridad puede ser modificada por el propio usuario o por cl sistema. La modificacién se suele realizar en funcién de ciertos parémetros como la cantidad de memoria que utiliza, el namero de acciones de E/S que lleva realizado, el tiempo medio de utilizacién del procesador hasta ese momento, el niimero de ficheros abiertos, etc. Por ejemplo, los procesos con una gran cantidad de operaciones de £/S ocupan la mayor parte de su tiempo en el estado bloqueado, en espera de que estas, concluyan. Cada vez que uno de estos procesos desee utilizar el sistema de £/S, puede ser conveniente concedérselo con rapidez, para que se pueda ir realizando esta operacién en paralelo con otra que necesite el procesador y lograr, de esta manera, un uso intensivo de la mayoria de los recursos. Los algoritmos con planificacién por prioridades pueden ser de tipo de expropiacién 0 no expropiacién, En el caso de expropiacién, si un proceso pasa al estado de preparado y tiene una prioridad mayor que el que est en ejecucién, el PCP llevar al proceso en ejecucidn al estado de preparado y pasaré el procesador al nuevo proceso. En una estrategia no preferente el nuevo proceso, aunque con mayor prioridad, tendra que esperar a que el proceso en ejecucién se suspenda para poder acceder al procesador. Los algoritmos con expropiacién y con prioridades se dice que estan guiados por eventos (event-driven), En los algoritmos con prioridades se puede plantear el problema de que los procesos con menor prioridad queden relegados y sin posibilidades de utilizar el procesador; si se desea evitar esto, la solucién que se suele adoptar es la de it aumentando la prioridad de aquellos procesos que llevan un tiempo de espera muy elevado. Esta estrategia se conoce como prioridad por envejecimiento (aging). 2.7.5 Planificacién FCFS: primero en llegar primero en ser servido El modo més sencillo de planificacién es aquel en el que los procesos en el estado preparado acceden al procesador en el orden en que llegan a dicho estado, FCFS es el acronimo de: First-Come-First-Served (primero en llegar primero en ser servido). El método no es de expropiacién. Rara vez se utiliza en la actualidad, pero se emplea dentro de otros esquemas, por ejemplo, el algoritmo de planificacién puede basarse en prioridades, pero dentro de los que poseen la misma prioridad los procesos se pueden gestionar del modo FCFS. 2.7 El planificador de procesos a 2.7.6 Planificacién SJF : primera tarea mas corta Es una estrategia de planificacién no expropiativa en Ia que a cada trabajo 0 proceso se le asocia una estima del tiempo que le resta para finalizar su ejecucién y la seleccién se realiza en base a dicho tiempo: se selecciona el trabajo con el menor valor de tiempo restante de ejecucién. SFJ es el acrénimo de Shortest-Job-First (primera tarea més corta). Si dos trabajos tienen el mismo tiempo se seleccionan segiin la estrategia FCFS. Esta estrategia es éptima desde el punto de vista de minimizar el tiempo medio de espera de los trabajos pendientes de ejecucién, Su dificultad real estriba en conocer el tiempo que le queda a cada trabajo para terminar su ejecucién. En entomos de produccién donde los trabajos se ejecutan regularmente es posible tener una estima aceptable, pero en entornos de desarrollo rara vez se conoce el tiempo que tardara en ejecutarse un programa, 2.7.7 Planificacién SRT: tiempo que queda mas corto El método SIF es no expropiativo y por lo tanto no resulta adecuado en entomnos de tiempo compartido en tos que se requiere tener garantizado un tiempo de respuesta razonable. Fl algoritmo SRT corresponde a la version expropiativa del método SJF: es el método en el que se elige a continuuacidn aquel proceso al que le queda menos tiempo para terminar su ejecucién, ineluyendo a los nuevos que Heguen, SRT es el aerénimo de Shortest-Remaining-Time (tiempo que queda mas corto). Este método tiene, frente al SJF, mayor frecuencia de invocacién del planificador, a la vez que una carga superior en las labores que tiene que realizar, to que puede Hevar a un menor rendimiento y eficacia del procesador ioridad 2.7.8 Planificaci6n RI ular En la planificacién por prioridad circular o de reparto de! tiempo, también denominada “round robin” (RR), todos los procesos en el estado preparado se les asigna un tiempo de ejecucién denominado cuanto. El planificador va asignando el procesador a cada tarea de forma secuencial por el cuanto de tiempo definido. Si un proceso necesita un tiempo de ejecucién mayor que su cuanto asociado, una vez transcurrido éste y si existen mas procesos en espera de ejecucién, se coloca al final de la lista del estado preparado y el procesador pasa al proceso que queda en cabeza de la lista. También lo hace si el proceso en ejecucién cambia al estado preparado (ver Figura 2.7). El estado 4 pasa a ejecucién, una vez transcurrido un cuanto vuelve a la cola del estado preparado. Lista dl estado preparado Fin ewan Figura 2.7: Planificacién RR por prioridad circular 42 2 Gestion de procesos Este método de planificacién resulta muy adecuado en sistemas de tiempo compartido, en los que se necesita garantizar un tiempo de respuesta razonable a todos los usuarios que estén actuando de forma interactiva con el sistema. La realizacion de la planificacién RR necesita de un temporizador que controle el cuanto asignado a los procesos y genere una interrupcidn siempre que se produzca su finalizacién. La interrupeién hace que se ame al PCP que se encarga de guardar el contexto del proceso en ejecucién, fo lleva al final de la lista de procesos preparados para ejecutarse y pasa a ejecucidn al proceso cabecera de la lista El problema mas importante que se plantea en un algoritmo del tipo RR, es el de fijar el valor del cuanto ya que su eleccién supone llegar a un compromiso entre la eficacia del procesador (que exigiria un valor no demasiado pequeio) y el tiempo de respuesta (que silo exigiria). ‘Supongamos un sistema con un cuanto de 10 ms en el que las operaciones del PCP emplean un tiempo de 2 ms. Cada 10 ms es necesario utilizar 2 ms en gestiones, lo que supone que un 20% del tiempo del procesador se gasta en tareas de tipo administrativo. Para mejorar los tiempos del sistema podemos incrementar el cuanto hasta 200 ms lo que hace que s6lo se desperdicie un 1% del tiempo del procesador. Si suponemos ahora que el sistema es interactivo y que veinte usuarios inician simultaneamente una comunicacién a la vez, entonces, admitiendo que s6lo hay esos veinte procesos para ejecutarse, el tiempo que tendra que esperar el «ltimo usuario para ser servido, en el caso de que todos usen completamente su cuanto, es de casi cuatro segundos, Este tiempo puede resultar excesivo para dicho usuario, 2.7.9 _ Planificacién basada en el reloj de tiempo real ‘Ademiis del reloj que controla la velocidad a la que un procesador ejecuta las instrucciones, la mayoria de los sistemas disponen de un reloj de tiempo real (RTR) que se encarga de generar una sefial de forma periédica utilizada para producir una interrupcién a un intervalo de tiempo fijo, previamente establecido. EI RTR no posee un contador que vaya acumulando el nimero de interrupciones producidas, sino que esta cuenta es responsabilidad del sistema. La atencién a estas interrupciones se debe disefiar para que se realice rapidamente ya que si se tarda mucho tiempo en atenderla, o si se opera con la interrupcién inhibida durante mas de un ciclo de reloj, ésta se perderd. Para evitar esto, los procesadores suelen dar la mayor prioridad a las, interrupciones del reloj En muchos casos puede ser conveniente ralentizar al reloj para, a pesar de perder precision, lograr una funcionalidad més rica. Supongamos por ejemplo un sistema cuyo RTR produce cien interrupciones por segundo y que la atencién a esta frecuencia de interrupciones produce una carga muy fuerte sobre el sistema. Para simular un reloj con una frecuencia menor, por ejemplo 10 interrupciones por segundo, el gestor de las interrupciones debe aceptar todas las interrupciones; nueve veces se limita a decrementar un contador y salir rapidamente del tratamiento de la interrupcién, pero a la décima se ejecuta el cddigo real de tratamiento de la interrupcién, logrando de esta manera una frecuencia de tratamiento de 10 He frente a la de 100 Hz del RTR. A Ia velocidad real de ejecucién efectiva del céddigo de tratamiento se la conoce como velocidad de tic (10 Hzen el ejemplo), El sistema operativo utiliza el RTR para las funciones siguientes: a) Limitar el intervalo de tiempo en el que un proceso puede estar en ejecucién b) Proporcionar servicios a los usuarios, como iniciar tareas ciclicas y la funcién retardo, La rutina de tratamiento de la interrupeién del RTR se encarga de mirar la lista de los procesos 2-7 El planificador de procesos 43 retardados y de pasar al tado preparado a aquellos para los que haya transcurrido el tiempo de retardo. La mayoria de los sistemas poseen ademas del RTR, un reloj con la hora del dia que podriamos asimitar un reloj de pulsera. Con esta finalidad se dispone de un reloj (puede servirel propio RTR)y un contador que acumula los pulsos del reloj. Unos programas se encargan de determinar la hora y la fecha y otros de escribir en el contador del reloj por si es necesario inicializarlo, lo que ocurre raras veces, ya que el reloj continda contando correetamente mientras tenga alimentacién de corriente, independientemente de que funcione o no la CPU. De este modo es posible, tanto para el sistema como para el usuatio, conocer la fecha y la hora y utilizar estos datos para desencadenar eventos. 2.7.10 Plani En estos métodos se utilizan algoritmos de planificacién en los que se clasifican las tareas en diferentes grupos @ los que se aplican distintas estrategias de planificacidn. MLQ es el acrénimo de Multi-Level-Queus (colas multinivel), Para ello se crean colas de tareas separadas que se gestionan por criterios diferentes. Cada tarea se asigna a una sola cola de acuerdo con alguna propiedad de la tarea. Por ejemplo, los procesos del SO y de servicio a las interrupciones se pueden organizar segin una planificacién guiada por sucesos, los programas interactivos por el método RR y las tareas por lotes por FCFS. Ademés, debe existir un criterio de planificacién entre las colas. Normalmente éste suele ser el de prioridad fija con expropiacién, De este modo no puede ejecutarse ninguna tarea de una cola si las que la preceden en prioridad tienen alguna tarea pendiente. Por ejemplo, la cola de procesos del SO debe tener prioridad absoluta sobre la de los programas interactivos y por lotes y slo se ejecutara una tarea de lotes si las otras dos colas estin vacias. Si una tarea de lotes esti en ejecucin y una tarea asignada a una cola de mayor prioridad pasa a estar preparada para ejecutarse, lo haré tras expropiar a la primera Otra posibilidad de gestidn de las colas es la de compartir el tiempo entre las colas: a cada una de ellas se le asigna una porcién de tiempo que debe utilizar para planificar entre las distintas tareas de su cola, La porcién de tiempo asignada se puede realizar, por ejemplo, de modo proporcional a las prioridades de las, colas. 2 En los algoritmos de tipo MLQ @ las tareas se les asigna una cola de forma fija, de modo que estas no se mueven entre las colas. Sin embargo en las colas multinivel con realimentacién (MLFQ) si se permite la movilidad entre las colas. Para ello, las colas se organizan segiin sus caracteristicas de uso del procesador. Las tareas que emplean poco el procesador se mantienen en las colas de mayor prioridad y las que lo utilizan mucho se sittan en las colas de menor prioridad. El movimiento de las tareas entre las colas se realiza segtin su comportamiento dinémico a lo largo de su tiempo de vida efectiva Como ejemplo, consideremos un planificador MLFQ con tres colas denominadas de nivel 1,2 y 3 respectivamente y con orden de priotidad segiin se las ha numerado (ver Figura 2.8). Las colas de niveles | y 2.se gestionan por RR. El cuanto del nivel 1 es de 10 milisegundos y el del nivel 2 es de 20 milisegundos. El nivel 3 se gestiona por FCFS. El planificador ejecuta en primer lugar todas las tareas de la cola del nivel 1 y sélo cuando esta cola esta vacia ejecuta las tareas del nivel 2; finalmente las tareas del nivel 3 sélo entran en ejecucién cuando las colas de los niveles anteriores estan vacias. Una tarea del nivel 2 expropia a una del nivel 3 y una del nivel 1 a cualquiera de los niveles 2 y 3. Una tarea que entra en el estado preparado se coloca en el nivel 1. Sino 14. Planificacién MLFQ: colas multinivel con realimentacion 44 2 Gestion de procesos finaliza su ejecucidn en 10 milisegundos se pasa a la cole del nivel 2. Si la cola del nivel | esta vacia se pasa a ejecutar la tarea que se encuentra en cabeza de la cola del nivel 2. Si ésta no finaliza su ejecucién en los 20 milisegundos que tiene asignada resulta expropiada y pasa. la cola del nivel 3 e nel? ______+/% Figura 2.8: Colas multinivel con realimentacién Mediante este algoritmo se da la mayor prioridad a las tareas que no consumen de una vez més de 10 milisegundos del procesador. Las que tienen un tiempo de ejecucidn de mas de 10 milisegundos, pero menos de 30, también consiguen una ejecucién répida, y las que necesitan mas tiempo caen en el nivel 3 y sélo se sirven cuando todas las tareas que les preceden han sido ejecutadas y no hay tareas de niveles | y 2 que estén preparadas, Alternativamente, también se podria haber pensado en la posibilidad de subir de nivel a aquellas {areas que terminan su ejecucién en un tiempo inferior al del nivel que les precede. Existen muchos algoritmos posibles de planificacién por MLFQ que pueden definirse de forma mas general por los parimetros siguientes: a) El numero de colas. b) Elalgoritmo de planificacién de cada cola, ©) Los métodos que determinan el movimiento de las tareas entre las colas. d) El método que indica la cola en la que entra una tarea cuando necesita un servicio. 2-8 Conclusiones 45 — Seccién 2-8 Conclusiones El concepto de proceso tiene una connotacién dindmica y va ligado a la ejecucién de un programa, Durante su ejecucién un proceso compite con el resto de los procesos del sistema por el uso de los recursos. El reparto de estos entte los distintos procesos y su ejecucién concurrente se conoce como multiprogramacién. Los procesos pueden ser generados por el SO o definirse de forma explicita por os usuarios, con el fin de aprovechar las posibilidades de ejecucién concurrente dentro del sistema. Los SO disponen de los servicios necesarios para la gestién de los pracesos, tales como su creacién, terminacién, ejecucidn periédica, cambiar la prioridad, etc. Estos servicios pueden invocarse tanto por el usuario como por el propio SO. Durante su existencia los procesos pasan por distintos estados cuyas transiciones estén controladas por el sistema operativo. De ta forma ms sencilla posible un proceso puede estar en tres estados: activo, preparado y bloqueado. El proceso que esta en el estado activo es aquel que tiene un procesador. Un proceso en el estado preparado se caracteriza porque podria usar un procesador si hubiera alguno disponible. Un proceso bloqueado esté a la espera de que se cumpla alguna condicién para poder pasar al estado preparado. Toda la informacién de un proceso que el SO necesita para controlarle, se mantiene en una estructura de datos conocida como bloque de control de procesos y que puede considerarse como una representacién del mismo, El sistema operativo mantiene listas de bloques de control de procesos para cada uno de los estados, del sistema, Se denomina planificador a aquella parte del sistema operative encargada de asignar los recursos del sistema de manera que se consigan unos objetivos de comportamiento especificados. Hay tres tipos de planificadores que pueden coexistir en un sistema operativo: planificadores a largo, medio y corto plazo. Su denominacién hace referencia a la frecuencia relativa con la que se utilizan, El planificador a largo plazo determina los programas que se admiten en el sistema para su procesamiento. El planificador a medio plazo es el responsable de la transferencia de los procesos desde la memoria principal a la memoria secundaria, hasta que suceda algin evento que implique su paso al estado bloqueado, y también desde este estado al de preparado. El planificador a corto plazo selecciona al proceso que pasar al estado activo de entre todos los proces La eleccién de los algoritmos de planificaciin se realiza teniendo en cuenta sus caracteristicas frente @ los criterios de disefto elegido. Las propiedades de los algoritmos se expresan en término de aspectos tales como la eficacia en el uso del procesador, el rendimiento o niimero de procesos completados por unidad de medida temporal, el tiempo de espera de un proceso y el tiempo de respuesta a un evento. Se han presentado distintos algoritmos de planiticacién. Un algoritmo se denomina tun proceso en ejecucién pasa al estado de preparado por decision del SO. ‘0s que estan en el estado preparado. expropiative cuando En la planificacién por prioridades cada proceso tiene asignada una. El proceso de mayor prioridad en el 46 2 Gestion de procesos estado preparado es el que toma el procesador. La prioridad puede ser estatica o dinémica. A los algoritmos con prioridades y expropiacién se les denomina guiados por eventos. El método de planificacién mas sencilla es el de dar servicio segin el orden de legada (FCFS), pero también es el de menor rendimiento, El algoritmo SJF es una estrategia no expropiativa en la que la seleccién de los procesos se realiza teniendo en cuenta el tiempo que le resta de ejecucién. La versién expropiativa del algoritmo es la planificacién SRT La planificacién con prioridad circular o por reparto del tiempo (RR) es la més utilizada en los sistemas de tiempo compartido. En ella se asigna un tiempo de ejecucién 0 cuanto a todos los procesos que estin en el estado preparado, El procesador se va rotando entre los procesos por el cuanto de tiempo definido. El reloj de tiempo real del sistema proporciona las interrupciones que permiten la expropiacién de un proceso cuando ha transcurrido su cuanto. Ademis, permite iniciar los procesos que requieren una ejecucién ciclica, asi como implementar Ia funcién retard. En la planificacién por colas multinivel los procesos se clasifican en diferentes grupos a los que se aplican distintas estrategias de planificacién. En la variante con realimentacién se permite la movilidad de los procesos entre las distintas colas. ” 2) 3) 4) 5) 6) ” 8) 9) 10) 41) 12) Explicar brevemente que significa el término multiprogramacién y que se entiende por grado de multiprogramacién, Discutir si existen ventajas en el uso de sistemas operativos con multiprogramacién, en vez de procesamiento en serie, en un computador dedicado a servir las necesidades de un tinico usuario. En los primeros computadores cada byte de datos de lectura o escritura era directamente manejado por la CPU (es decir, no habia Acceso Directo a Memoria o DMA). ,Qué implicaciones tiene esta organizacién con respecto a la multiprogramacién? El cambio del procesador de un proceso a otro juega un papel fundamental en la gestién de éstos. Deseribir los pasos que debe seguir un proceso cuando tiene lugar un cambio de contexto. Indicar las transiciones que se producen entre los diferentes estados de un proceso por actuacién del planificador a corto plazo (PCP), el planificador a medio plazo (PMP) y el planificador a largo plazo (PLP), Los criterios de planificacién més utilizados son el tiempo de retorno o regreso, el tiempo de espera, el rendimiento y la eficacia, Explicar dichos conceptos de manera sencilla y breve. Dar una ecuacién que relacione los siguientes periodos de tiempo de un trabajo: tiempo de retorno, tiempo de ocupacién de la CPU y tiempo de espera, Expresar mateméticamente los conceptos de la eficacia y el rendimiento. Establecer una breve definicién de los principales algoritmos de planificacién a corto plazo. Un sistema operative de tiempo compartido utiliza planificacién basada en prioridades para procesos criticos y planificacién por prioridad circular 0 por reparto de tiempo para procesos de usuarios interactivos. En un momento determinado, se mejora el hardware reemplazando la CPU con tun modelo funcional equivalente que es dos veces mas répido, Discutir los cambios que experimentan las diferentes clases de usuarios. ;Deberian modificarse algunos de los parémetros del sistema operative? Se tienen 3 procesos, P). Py y Py con tiempos de ejecucién, 85, 45 y 118 ms, re el planificador a corto plazo segiin el algoritmo SJF determinar el orden en que se encuentran en la lista de preparados. En que se diferencia si el planificador fuera a largo plazo? yectivamente. Si actia {Cémo se suele representar fficamente la planificacién de procesos? 48 2 Gestion de procesos 43) Para los tres procesos de la Cuestién 2-11 calcular sus tiempos de retormo, de espera, rendimiento y eficacia del sistema. Dibujar el diagrama de Gantt o diagrama temporal de la posesién del procesador. 14) Siccl tiempo de retomo o regreso de un proceso, P}, es de 30 ms y el de ejecucién real de 10 ms, ,Cual es su tiempo de espera, la eficacia y el rendimiento de este sistema? 45) Se tienen dos procesos, P; y P2, de tiempos de ejecucién 25 y 30 ms, respectivamente. El planificador a corto plazo actia segin el algoritmo RR o de prioridad circular con cuanto de 10 ms. ¢Cual serd el tiempo de retorno o regreso de P; y Py? 46) Sean dos procesos, P; con tiempo de ejecucién de 20 ms y P, con 15 ms. El planificador a corto plazo actia segin el algoritmo de prioridad circular con cuanto de 10 ms y tiempo de conmutacién de tarea de 5 ms, Marcar el tiempo de retorno (regreso) de Py y P> 2-10 Problemas propuestos 49 Problemas propuestos 1) Se desea mantener el bloque de control de los procesos (BCP) en una estructura de datos denominada ‘tabla de procesos. La tabla tendré una entrada por cada uno de los procesos. El pid de eada proceso es lun entero entre 0 y que proporeiona su entrada en la tabla, Una de las entradas correspondera siempre a la del proceso en ejecucién, y el resto a procesos que esperan por una u otra causa, Cada entrada de la tabla dispondré de toda la informacién necesaria del proceso: a) Direccidn inicial del eédigo del proceso. b) Numero identificador del proceso (pid), ©) Unarray con el nombre del proceso. 4) Estado de! proceso (ejecucién, preparado, suspendido y entrada sin proceso -para una entrada no ‘ocupada por proceso-), e Prioridad del proceso (de 0 9). 1) Un campo que contiene el estado del proceso que se salvara al hacer el cambio de contexto, y que contiene: + El contador del programa * El estado de la CPU. * El segmento de datos. + El segmento de cédigo. *+ El segmento de pila + El puntero de pila. 2) Un puntero al BCP del siguiente proceso Declarar en un pseudocddigo de alto nivel una estructura adecuada para el BCP que se ha definido. 2) Se dispone de un sistema operativo con planificacién por prioridades y con expropiacién en el que el estado preparado dispone de N prioridades, cada una de las cuales tiene asociada una cola. El estado suspendido tiene M colas, cada una de ellas asociada a un suceso distinto. Iustrar mediante un diagrama las transiciones de estados del planificador del sistema operativo. 3) Para mantener las listas de procesos utilizadas en un sistema operative se utiliza una tabla con dos ‘entradas consecutivas para cada lista: la primera para la cabeza de la lista y la segunda para la cola de {a lista, La misma tabla contiene una entrada para cada uno de los procesos. Se supone que un proceso sélo puede estar en una lista, Las entradas de los procesos ocupan las 2 Gestion de procesos primeras posiciones de la tabla, cada una segiin su identificador 0 pid. A continuacién van las entradas de las cabeceras y colas de les listas. Cada entrada a la tabla tiene tres campos. Un campo con la prioridad del proceso, otro con un entero que seftala Ia entrada en la tabla del proceso que sigue en la lista y, el dltimo, un campo con un entero que seffals fa entrada en la tabla del anterior en la lista. El campo del anterior del primer proceso de la lista apunta a la entrada de la cabeza de la lista, y el campo siguiente del Ultimo de la lista apunta a la entrada de la cola de Ia lista Lita deprocoos [Cater pape tale — Lina depreces [Exar a} > [BERET] p [Pome] Tape preparer FS 7 + Lisa deprecsn [Girese —} > [Fimo] > [rrp AT biowweaae PS tapos 1 h — L Lina deprecas [Ciena] [paren 06 towed Lo tiene 2) \ ae Lista deprecens [Cite bloqueados (aisposttive 3) LES Figura 2.9: Listas de los estados en los que se encuentran los procesos del Problema 2-3 Para las entradas a la tabla que corresponden a las cabezas y colas de las listas, el campo correspondiente a la prioridad llevan los valores del menor y del mayor entero, respectivamente, Al puntero nulo se le asigna el valor -1 2-40 Problemas propuestos 51 4) Supéngase un sistema con 5 procesos tal que el estado global del sistema corresponde a una lista de procesos preparados en la que aparecen los procesos 2, 3 y I, en este orden, el proceso activo es el Sy el 4 esta bloqueado. Representar grificamente estas listas y hacer un esquema del contenido de una tabla como la que se ha descrito, b) Mostrar la evolucién que tendria una tabla con esta estructura para el estado global del sistema que se muestra en la Figura 2.9 4) La lista de los estados suspendidos no esti organizada por prioridades. Exponer algunas razones de por que no se utiliza la prioridad e indicar bajo que eircunstancias podria resultar itil su empleo. 5) En la estructura de listas del Problema 2-3 se pone la condicién de que un proceso s6lo puede aparecer en una lista. Expliquese lo que sucederia si con una estrategia de tiempo compartido un proceso apareciera dos veces en la lista de preparado. Indicar razones que podrian llevar a tomar esa decisién. Prescindir del tipo de estructura que se haya utilizado para implementarla, 6) Supdngase un tipo de computador en el que pueden ejecutarse simulténeamente » procesos, utilizando una variante de algoritmo de prioridad circular (Round Robin), llamada Particién del procesador Después de cada instruccién tiene lugar un cambio de proceso de forma que la instruceién 1 viene del proceso 1, la instruccién 2 del proceso 2 etc. El cambio de proceso no produce un costo extra, Si un proceso necesita T segundos para terminar en ausencia de otros. ;Cuanto tiempo sera necesario si se emplea particidn del procesador entre los n procesos? 7) En un sistema operativo con planificacién por prioridad circular, sea E el tiempo medio de ejecucién de un proceso antes de solicitar una peticin de entrada/salida (E/S) y C es el tiempo invertido en la conmutacién entre procesos, donde £ >> C, Analizar el efecto que sobre los procesos y el rendimiento del sistema tienen cada una de las situaciones siguientes, en las que varia el valor del cuanto, 0: ) Cuanto arbitrariamente grande. b) Cuanto muy pequetio, ligeramente superior a cero, ©) Cuanto muy cereano a £, tal que C< < E. 4) Cuanto igual a C. 8) Scan £ y C cantidades definidas de forma similar a la realizada en el problema anterior. Para la planificacién por prioridad circular con un valor de cuanto igual a Q, calciilese Ia eficiencia del procesador para cada uno de los siguientes a) Qes infinito, b) OFE. 0) C fms BS Oms pt > Figura2.10: Ejecucidn secuencial de los res procesos En la Tabla 2.3 se indica el instante de Hegada al sistema de cada proceso y su tiempo necesario pata finalizar su ejecucion (en ms): Trabajo Tiempo de Negada ‘Tiempo méximo necesario 1 ° 2 8 3 a 7 Tabla2.3 Resumen de los procesos a gjecutar a) Dibujar la evolucién temporal de los procesos del sistema, sefialando el estado en el que se encuentra cada proceso. Asi como la ocupacién temporal de la CPU 0 diagrama de Gantt 54 2 Gestion de procesos ) Calcular para cada proceso Ia eficiencia 43) Se deben ejecutar cinco trabajos: P}, Pz, P3, Ps y Ps. Sus tiempos de ejecucién (en ms) previstos son: 9, 6,3, Sy X. (En que orden se deberian de ejecutar aplicando el algoritmo SJF?. Calcular el tiempo de espera medio para cada uno de los casos. (Obviamente, la solucién propuesta dependerd de X), 44) En la Tabla 2.4 se muestra el orden en el que estin las tareas en Ia lista de preparados (todas tienen la misma prioridad), los cuantos que se conceden a cada tarea cada vez que obtiene la CPU (un valor fijo para cada tarea), los tiempos que tardaran las tareas en completarse si fueran las jinicas del sistema, y los tiempos maximos permitidos (tiempo maximo entre el comienzo de la tarea hasta su finalizacién), “Trabajo | Ordenan la cola | Cuantos asignados | Tiempo de cjccucin (ms) | Tiempo miximo permite (ms) 4 1 3 160 sa 2 2 280 1000 c 3 3 200 x00 > 4 2 200 900 e 5 1 400 Tafa | ‘Tabla 24: Resumen de las earacteristicas de los procesos para ejecucién Suponiendo que ninguna tarea realiza ninguna operacién de entrada/salida, decir si todas las tareas se realizardn sin problemas (es decir, se realizan antes de su tiempo maximo permitido, no dando un error denominado time_out). Para ilustrar la solucién: * Dibujar un diagrama de Gantt de las tareas. * Caleular los tiempos de retomno de cada una de ellas. + Explicar brevemente las diferencias del algoritmo prioridad circular (RR) y el algoritmo aplicado. Tener en cuenta que el cuanto es de 40 ms y el tiempo de conmutacidn de tarea es de 10 ms. 415) Se tiene un SO de tiempo real con tres tareas critieas (tienen que terminar en un tiempo maximo llamado tiempo critico). Estos tiempos junto con los tiempos de ejecucién por tarea se definen en la Tabla 2.5. ‘Teabajo | Tlempocrtico | Tiempo de ejcucion A 2008 80m a 1W0 ms 01m 25018 10m ‘Tabla 2.5: Resumen de las caracteristicas de ls procesos para ejecucién Se pide: a) Representar el orden de las tareas después de la actuacién del planificador a largo plazo. 2-40 Problemas propuestos 55 b) Representar el orden de ejecucién de las tareas en un diagrama de Gantt. ©) Calcular el tiempo de retomo de las tareas, su tiempo de espera y decir si todas las tareas se gjecutan antes de finalizar su tiempo critico. Para ello se debe de conocer que: * Las tres tareas han llegado a la vez y el planificador a largo plazo actaa segim el algoritmo SIF. * La planificacién a corto plazo es por prioridad circular con cuanto de 25 ms, utilizando el algoritmo FSFC para determinar cual es el siguiente proceso que pasa al estado de activo, + El tiempo de conmutacién de proceso es de 0.5 ms. + Si una tarea no ha terminado al finalizar su tiempo critico, continéa hasta completar la ejecucién. + Las tareas no reatizan peticiones de entrada/salida 416) La Tabla 2.6 recoge la informacién de cinco procesos que se van a ejecutar en un sistema, ‘Tranajo | Tiempo detegada ms) | Tiempo de efcuctin ms) a ° 0 2 1 2 © 3 D 3 1 e 4 5 ‘Tabla 2.6: Resumen de las caracteristicas de los procesos para ejecucién Calcular el tiempo de retorno de cada uno de los trabajos y representar la ejecucién en diagramas de Gantt para los siguientes algoritmo: a) FCFS b) SRT ¢) RR, con cuanto de 2 ms. Si el cuanto de un proceso en ejecucién expira a la vez que la legada de tun nuevo proceso, entonces el nuevo proceso se aflade a la cola de procesos preparados antes que el proceso que termina, Despreciar el tiempo necesario para el cambio de contexto, 47) La Tabla 2.7 muestra informacién de cinco procesos. Calcular el tiempo de retorno de eada uno (despreciar el tiempo de cambio de contexto) y representar fa ejecucidn en diagramas de Gantt para los algoritmos: a) SIF 'b) RR, con cuanto de 4 ms, Si el cuanto de un proceso en gjecucién expira a la vez que Ia Hegada de un nuevo proceso, entonces el nuevo proceso se afade a la cola de procesos en espera de 56 2 Gestion de procesos ejercutarse antes que el proceso que termina, ‘Trabajo | Tiempo de tegeda (ms) | Tiempo de cjcucién ms) a ° 4 # 3 2 © 5 7 > 7 4 E » 7 ‘Tabla 2.7: Resumen de ls caracteristicas de los proceses paragjecucién 48) La Tabla 2.8 recoge la informacién de cinco procesos que se van a ejecutar en un sistema. Calcular el tiempo de retorno de cada uno de los trabajos y representar la ejecucién en diagramas de Gantt para los siguientes algor a) FCFS b) SIF ©) RR, con cuanto de 2 ms. Si el cuanto de un proceso en ejecucién expira a la vez que la llegada de lun nuevo proceso, entonces el nuevo proceso se aflade a Ia cola de procesos en espera de gjercutarse antes que el proceso que termina. 4) Idem, pero RR con prioridades, teniendo en cuenta que la maxima prioridad corresponde a4 y la minima a1 Despreciar el tiempo necesario para el cambio de contexto. Trabajo | Tiempode legada (ms) | Tiempo decjecueién (ms) | Petoridad A 1 5 2 ° 2 2 4 ¢ 3 1 3 D + 2 4 E 5 5 1 ‘Tabla 2.8: Resumen de as caractristicas de os procesos para ejecueiin 2-11 Cuestiones resueltas 57 Cuestiones resueltas Cuestion 2-4 Explicar brevemente que significa el término multiprogramacién y que se entiende por grado de multiprogramacién. Solucién Durante la ejecucién de un programa, éste transcurre entre fases de caleulo y fases de entrada/salida Como es sabido los dispositivos de £/S son lentos comparados con el procesador, ello hace que el proce esté desocupado a menudo, durante bastante tiempo, esperando que termine la operacién de £/S antes de seguir con la ejecucién de dicho programa. En la Figura 2.11 se representa la ejecucidn idealizada de dos programas. Por simplificacién se supone que ambos programas tienen un comportamiento idéntico con respecto al procesador y a las operaciones de E/S. Se puede observar que el procesador pasa parte del tiempo ejecutando el programa hasta que encuentra una instruceién de £/S. Entonces debe esperar a que ésta concluya antes de continuar. y ” Figura 2.11: Ejecucién de dos programas en serie Como se puede observar el tiempo total que han necesitado los dos procesos para terminar su ejecucién ha sido el tiempo necesario del proceso P; (31), del proceso P, (31) y el tiempo que han tenido que estar en espera por las cuatro operaciones de E/S que se han realizado y en las que el procesador ha estado desocupado, (4c), Este desaprovechamiento del procesador puede solucionarse. Si se dispone de suficiente memoria para alojar a los dos programas, cuando un proceso en ejecucidn necesite esperar por una operacién de E/S, el procesador puede pasar a ejecutar el otro trabajo, que probablemente no estard esperando por una E/S. Esta situacidn se puede observar en la Figura 2.12. 58 2 Gestion de procesos Figura 2.12: Ejecucién de dos programas coneurrentemente ‘Como puede compararse ambos procesos finalizan su ejecucién con antelacién al caso representado en la Figura 2.11. Esto se debe a que se utilizan los periodos en los que el procesador estaria desocupado al estarse realizando una operacién de £/S, (espacios con trama) para pasar a ejecutarse otro proceso. De esta forma si se realizan las operaciones de £/S del proceso P; se pasa a ejecutar el proceso P (trama gruesa) y si se realizan las operaciones de £/S de Pel procesador pasa a ejecutar el proceso P; (trama fina), Cuestion 2-2 Discutir si existen ventajas en el uso de sistemas operativos con multiprogramacién, en vez de procesamiento en serie, en un computador dedicado a servir las necesidades de un tnico usuario, Solucion La multiprogramacién resulta también beneficiosa en entomos monousuario, Aunque el usuario del sistema sea nico, siempre existe mas de un trabajo o tarea por realizar. Por lo tanto, si se permite el entrelazado y el solapamiento de la ejecucién de dichas tareas, es decir, si el sistema permite la multiprogramacién, se mantendré del modo mas ocupado posible a todos los recursos del sistema, obteniéndose una mejor utilizacién del mismo. Por ejemplo, una vez que el computador ha comenzado a leer datos del disco, el procesador puede ejecutar instrucciones de un programa al mismo tiempo que los datos se van transfiriendo por Acceso Directo a Memoria (DMA). Asi, en entornos con un sistema operativo con multiprogramacién se va a permitir, ademas de la ejecucién de las actividades particulares del usuario, gestionar concurrentemente el trifico de la red, soportar miltiples ventanas activas, imprimir, etc. La desventaja es el ineremento en la complejidad y los requerimientos de recursos de la operacién multitarea. Sin embargo, esto no supone un grave problema usualmente en entomos monousuario donde la CPU y la mayoria de los otros recursos experimentan comparativamente bajos niveles de utilizacién, Cuestion 2-3, En los primeros computadores cada byte de datos de lectura o escritura era directamente manejado por la CPU (es decir, no habia Acceso Directo a Memoria o DMA). Qué implicaciones tiene esta organizacion con respecto a la multiprogramacién? 2-44 Cuestiones resueltas 59 Solucién En un computador con un médulo DMA cuando el procesador desea leer o escribir un bloque de datos, emite una orden a este médulo envidndole la informacién necesaria (si requiere una lectura o escritura, la direecin del dispositivo de £/S involucrado, la direccién inicial de memoria desde la que se va a leer 0 escribir y el nimero de palabras a leer o escribir). El procesador, a partir de este instante, continua con su trabajo, puesto que ha delegado la operacién de £/Sen el médulo de DMA y es dicho médulo el que tendré que encargarse de ésia, De esta forma el médulo de DMA transfiere la informacidn directamente hacia o desde la memoria, sin pasar por el procesador. Cuando se completa la transferencia, el médulo de DMA envia una sefial de interrupcién al procesador. De esta forma, el procesador se ve involucrado s6lo al principio y al final de ta transferencia estando desocupado en el transcurso de la operacién de £/S. De ahi surge la necesidad del uso de la multiprogramacién, ocupar la CPU con la ejecucién de otro proceso, mientras espera a que una ‘operacién de entradalsalida termine. Sino existe Acceso Directo a Memoria (DMA), se requiere de la intervencién activa del procesador para transferir los datos entre la memoria y el médulo de £/S y, ademas cualquier transferencia de datos debe recorrer un camino que pasa por el procesador. Por lo tanto, es la CPU la encargada de realizar dicha operacién, y puesto que la CPU esté ocupada, no tiene sentido la multiprogramacién puesto que, independientemente de cuantas operaciones de £/S conlleve la ejecucién de un programa, la CPU estar ‘ocupada al 100 por ciento. Cuestion 2-4 El cambio del procesador de un proceso a otro juega un papel fundamental en la gestién de éstos, Deseribir los pasos que debe seguir un proceso cuando tiene lugar un cambio de contexto. Solucién La transicién del procesador entre dos procesos residentes en memoria en un sistema de multiprogramacién se denomina conmutacién de proceso o conmutacién de tarea. Esta transicién requiere una serie de pasos que de forma simplificada son los siguientes: + Salvar el contexto del procesador, incluyendo el contador del programa y otros registros. + Actualizar el bloque de control del proceso que se estaba ejecutando. + Mover dicho bloque a la lista apropiada. + Seleccionar otro proceso para su ejecucién de acuerdo con el algoritmo de planificacion correspondiente. + Actua izar el bloque de control del proceso seleccionado para ejecutarse. * Actualizar las estructuras de datos de gestion de memoria. + Restaurar el contexto del procesador al estado en el que se hallaba el proceso sel Ultima vez que se ejecut6. 60 2 Gestion de procesos La conmutacién de proceso conlleva la transferencia del control al sistema operativo para la ejecucién de todas estas acciones. Puesto que un sistema operativo de multiprogramacién se ejecuta generalmente en modo protegido y en un espacio de direcciones aparte del espacio de direcciones del usuario, la transicién desde el proceso de usuario al sistema operativo requiere cruzar la frontera de proteccién. A esta operacién se le denomina cambio de modo. Por lo tanto una conmutacién de proceso conlleva un cambio de modo. _——_ Cuestion 2-5 Indicar las transiciones que se producen entre los diferentes estados de un proceso por actuacién del planificador a corto plazo (PCP), el planificador a medio plazo (PMP) y el planificador a largo plazo (PLP), El planificador a corto plazo selecciona, en base a un determinado algoritmo, el proceso que pasaré al estado activo de entre todos los procesos que estan en el estado de preparado. Esta definicién queda reflejada en la Figura 2.13. pep Tis / cestados reparados Figura 2.13: Transicin entre estados a que da lugar la accidn del planificador a corto plazo El planificador a medio plazo selecciona el proceso que pasar al estado preparado de entre todos los Procesos que estan en el estado bloqueado pero que ademas se encuentran en memoria secundaria. La caracteristica de este planificador es que forma parte de la funcién de intercambio 0 swapping relativa a la gestidn de memoria. (Ver Figura 2.14). PMP estados blaqueados. [>| _estadas en memoria secundaria preparados Figura 2.14: Transicion entre estados a que da lugar la acei6n del planificador a medio plazo El planificador a largo plazo determina que procesos se admiten en el sistema es por ello que el proceso pasarai del estado nonato al estado de preparado, (Observar la Figura 2.15). 2-11 Cuestiones resueltas 61 Lista de cestados preparados Figura 2.15: Transicién entre estados a que da lugar ta accién del planificador a largo plazo Cuestion 2-6 Los criterios de planificacién mas utilizados son el tiempo de retomo o regreso, el tiempo de espera, el rendimiento y la eficacia. Explicar dichos conceptos de manera sencilla y breve. Solucién Entre las medidas de rendimiento y los criterios de optimizacién més habituales que los planificadores pueden utilizar en su intento de maximizar el rendimiento del sistema se incluyen: + El tiempo de retorno o regreso es el tiempo que transcurre desde que un proceso se crea hasta su finalizacién, + El tiempo de espera es el tiempo que un proceso o trabajo consume esperando Ia asignacién de recursos debido a la competencia con ottos en un sistema multiprogramacién, En otras palabras, el tiempo de espera es la penalidad impuesta por compartir recursos con otros procesos. + El rendimiento 0 productividad es el niimero de procesos terminados por unidad de tiempo. Esta medida indica la cantidad de trabajo que se esta llevando a cabo. + La efieacia 0 utilizaci6n es el porcentaje de tiempo en el que el procesador esta ocupado. Cuestion 2-7 Dar una ecuacién que relacione los siguientes periodos de tiempo de un trabajo: tiempo de retorno, tiempo de ‘ocupacidn de la CPU y tiempo de espera. Solucién De acuerdo con sus definiciones existe una relacién entre estos conceptos. Asi, el tiempo de retomo, R. es la suma del tiempo de ejecucién real o de ocupacién del procesador, U, y el tiempo consumido en la espera por los recursos, £, incluido el procesador. Expresado mateméticamente: R=E+U 2-11 Cuestiones resueltas 61 pup Z Lista de estados preparados Figura 2.18: Transicién entre estados a que da lugar la accidn del planificador a largo plazo Cuestion 2-6 Los criterios de planificacién mas utilizados son el tiempo de retorno o regreso, el tiempo de espera, el rendimiento y la eficacia, Explicar dichos conceptos de manera sencilla y breve. Solucién Entre las medidas de rendimiento y los criterios de optimizacién mas habituales que los planificadores pueden utilizar en su intento de maximizar el rendimiento del sistema se incluyen + El tiempo de retorno o regreso es el tiempo que transcurre desde que un proceso se erea hasta su finalizacién. + El tiempo de espera es el tiempo que un proceso o trabajo consume esperando la asignacién de recursos debido a la competencia con otros en un sistema multiprogramacién. En otras palabra el tiempo de espera es la penalidad impuesta por compartir recursos con otros procesos, + Elrendimiento 0 productividad es el nimero de procesos terminados por unidad de tiempo. Esta medida indica la cantidad de trabajo que se esté llevando a cabo. + La eficacia o utilizacién es el porcentaje de tiempo en el que el procesador esté ocupado. Cuestion 2-7 Dar una uacién que relacione los siguientes periodos de tiempo de un trabajo: tiempo de retorno, tiempo de ‘ocupacién de la CPU y tiempo de espera. Solucién De acuerdo con sus definiciones existe una relacin entre estos conceptos. Asi, el tiempo de retorno, R. es la suma del tiempo de ejecucién real o de ocupacién del procesador, U, y el tiempo consumido en la espera por los recursos, E, incluido el procesador. Expresado matematicamente: R E+U 62 2 Gestion de procesos Otros criterios para la planificacién pueden ser la eficacia, el rendimiento y el tiempo de respuesta a un evento. Cuestion 2-8 Expresar matemiticamente los conceptos de la eficacia y el rendimiento, Solucién Dentro del conjunto de criterios con los que se evaliia las diversas estrategias de planificacién se encuentra la eficiencia (E,) que corresponde al tiempo medio de utilizacién del procesador. Matematicamente se puede expresar como la fraccién entre el tiempo de itil o real, U, y el tiempo de uso de CPU total, 7, de ese proceso (expresado en tanto por cient) Parece légico intentar que este parimetro esté proximo al 100% ya que si se mantiene el procesador ‘ocupado tanto tiempo como sea posible, los factores de utilizacién de los restantes componentes también serin elevados. Desgraciadamente al aproximarse al 100% de utilizacién del procesador, otros aspectos importantes de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo, el tiempo de espera medio tiende a crecer excesivamente. El rendimiento 0 productividad, P, es una medida de! nimero de trabajos completados por unidad de tiempo, De esta forma, si es N, el nlimero de procesos completados en S segundos, la expresién matemitica que calcula el rendimiento sera: Cuestion 2-9 Establecer una breve definicién de los principales algoritmos de planificacién a corto plazo. Solucion Entre los algoritmos de planificacién se pueden encontrar los siguientes: + FCFS (primero en Megar, primero en ser servido) (First-Come-First seleccionado para ser ejecutado es el mas antiguo de los preparados. ferved): EI proceso + SIF (primero la tarea mas corta) (Shortest-Job-First): Es una estrategia de planificacién no expropiativa, Se selecciona el proceso con el menor valor de tiempo restante de ejecucién, 2-11 Cuestiones resueltas 63 + SRT (Tiempo que queda més corto) (Shortest-Remaining-Time): Es una estrategia de planificacién expropiativa. Se selecciona el proceso al que le queda menos tiempo para terminar su ejecucién, incluyendo los procesos nuevos que se incorporen, *+ RR (Prioridad circular 0 reparto de tiempo) (Round Robin): El procesador se asigna a cada proceso de forma secuencial durante un periodo de tiempo definido denominado cuanto. + Prio Jades: El proceso scleccionado para pasar a ejecucion es aquel que posee mayor prioridad entre las asignadas a los procesos ya sea bien por el usuario o por el sistema nese nrren e Cuestién 2-10 Un sistema operativo de tiempo compartido utiliza planificacién basada en prioridades para procesos criticos y planificacién por prioridad circular o por reparto de tiempo para procesos de usuarios interactivos. En un ‘momento determinado, se mejora el hardware reemplazando la CPU con un modelo funcional equivalente que es dos veces mas ripido, Discutir los cambios que experimentan las diferentes clases de usuarios. {Deberian modificarse algunos de los parimetros del sistema operativo? Solucién En el algoritmo por prioridad circular la cuestidn principal de disefio es la longitud del cuanto de tiempo 0 fraccién que se va a usar, ya que su eleccién supone llegar a un compromiso entre fa eficacia del procesador (que exigiria un valor no demasiado pequeiio) y el tiempo de respuesta (que si lo exigiria). Si el cuanto es ‘muy pequeito, los procesos cortos pasan por el sistema ripidamente. Por otro lado, se produce una sobrecarga en la gestién de las interrupeiones del temporizador y en la ejecucién de las funciones de planificacion y cexpedicién Una euota de 2 ms en un sistema donde una conmutacién de proceso tarda 500 us supone un cargo del 25%, Por otra parte, una cuota de tiempo demasiado larga reduce el cargo por expropiacién pero aumenta el tiempo de respuesta. Por ejemplo una cuota de 100 ms en un sistema con 50 usuarios actives implica un rmolesto tiempo de respuesta de 5 s. En el extremo, una cuota de tiempo muy larga transforma un planificador prioridad circular en un planificador FCFS (primero en llegar, primero en ser servido). Al cambiar la velocidad del procesador se logra diferente cantidad de trabajo dentro de la cuota de tiempo de duracion determinada, es decir, el ntimero de instrucciones ejecutadas por cuanto es diferente, mayor. Ademés, la sobrecarga por intercambio de proceso es menos problematica con la CPU mas ripida, Por estas razones, el parmetro del sistema que se debe probablemente cambiar es la longitud del cuanto usado en el algoritmo prioridad circular. El cuanto debe ser reducido Por otra parte, en la planificacién por prioridades, el nivel de prioridad puede ser determinado como un resultado en el que influyen el valor inicial, las caracteristicas y necesidades de los recursos y el comportamiento en tiempo de ejecucién del proceso. Es por ello, que estos parimetros no deberian cambiar yaque son establecidos independientemente de la velocidad de la CPU 64 2 Gestién de procesos Cuestion 2-11 Se tienen 3 procesos, P, P) y P3, con tiempos de ejecucién, 85, 45 y 118 ms, respectivamente. Si actda el planificador a corto plazo segimn el algoritmo SJF determinar el orden en que se encuentran en la lista de preparados. ,En que se diferencia si el planificador fuera a largo plazo? Solucién De acuerdo a la definicidn previamente seftalada el proceso seleccionado seré aquél que posea menor tiempo de ejecucidn. De esta forma el primer proceso que pasaré al estado activo de entre estos tres procesos sera P2, pues 45 ms es el menor tiempo de ejecucién, Cuando este proceso finaliza su ejecucién sori de nuevo llamado el algoritmo de planificacién que en este caso seleccionard al proceso P; para sui ejecucién. Finalmente cuando este proceso muera se pasara a ejecutar P, Si es el planificador a largo plazo el que utiliza este algoritmo, la estrategia no varia y, por lo tanto, et orden de seleccién seri el mismo, P,P; y P3, ahora bien, esta seleccién no es para pasar a ejecucién sino para pasar la lista de procesos en estado de preparados. Cuestion 2-12 ;Cémo se suele representar grificamente la planificacién de procesos? Solucién La planificacién de los procesos se suele representar graficamente utilizando los diagramas de Gantt Como es sabido, en éstos se representa en el eje de abcisas el tiempo y en el eje de ordenadas los procesos que se planifican para su ¢jecueién por la CPU. Para cada proceso, una linea 0 un rectingulo muestra el tiempo en que dicho proceso dispone de la CPU. A continuacién se muestra el diagrama de Gantt de tres procesos, Pj, Pay Ps que se ejecutan en este orden, con tiempos de ejecucién, r,,f2y f5 ¥ de conmutacién de tareas, . hte te He HHH Soms Cuestion 2-13 Para los tres procesos de la Cuestién 2-1 | calcular sus tiempos de retomno, de espera, rendimiento y eficacia del sistema, Dibujar el diagrama de Gantt o diagrama temporal de la posesién del procesador. 2-41 Cuestiones resueltas 65 Solucion Laevolucién temporal del procesador queda reflejada en el siguiente diagrama’ afin [on | s 10 248 ms Los pariimetros que se solicitan para estos procesos son los siguientes: Proceso, P; + Tiempo de retomo, Ry: 130 ms + Tiempo de espera, Fy: Ry ~ Uy = 130-85 = 45 ms + Eficacia, Eq Proceso, Py + Tiempo de retorno, Ry: 85 ms + Tiempo de espera, Ey: Ry - Uy = 85 - 85 = 0 ms icacia, Ey: Proceso, P3 + Tiempo de retorno, Ry: 248 ms + Tiempo de espera, £5: Ry~ U;= 248 ~ 118 = 30 ms * Bficacia, Ey Ys Lis Ey = 2x UB, 100 = 47, 58% f 100 = yx 100 = 47, $8 Elrendimiento del sistema es: ale 3 = = 0,01 3qg = 0-012 66 2 Gestién de procesos ec Cuestion 2-14 Siel tiempo de retomo o regreso de un proceso, P), ¢s de 30 ms y el de ejecucién real de 10 ms, {Cul es sti tiempo de espera, la eficacia y el rendimiento de este sistema? Solucion La expresion que relaciona el tiempo de retomo con el tiempo de espera es: R=E+U Porlo tanto, 30-10 = 20ms La eficacia sera’ u 10 , = ¥x100 = 12x 100 = 33.33% SB x 100 = 33, 33% El rendimiento seri: Cuestion 2-15 Se tienen dos procesos, P; y P>, de tiempos de ejecucién 25 y 30 ms, respectivamente, El planificador a corto plazo actiia segin el algoritmo RR o de prioridad circular con cuanto de 10 ms. ;Cual sera el tiempo de retomo 0 regreso de P; y P2? Solucién De acuerdo a este algoritmo los procesos en Ia lista de preparados iran pasando a ejecucién de manera secuencial durante un tiempo definido igual a 10 ms. Cuando terminan de tomar el procesador todos los, procesos de la lista durante el tiempo establecido vuelven a comenzar, de ahi el nombre de prioridad circular. Siel orden en la lista de preparados es primero Py y después P3, entonces pasaré a ejecutarse P; durante 10 ims y despues P, durante otros 10 ms, De nuevo comienza el ciclo con P durante 10 ms, ya continuacién P, con el mismo cuanto, Finalmente comienza su ejecucién P; pero no necesita todo el cuanto asignado para terminar, solamente 5 ms, Al terminar este proceso, el estado global del sistema varia por lo que de nuevo se vuelve a lamar al planificador, como s6lo el proceso P2 esta en la lista de preparados pasara a ejecucién requiriendo todo el cuanto asignado para terminar su ejecucién por completo. De esta forma el tiempo de retomo para el proceso P; es el tiempo que transcurre desde que se crea (se supone que ambos procesos se 2-11 Cuestiones resueltas 67 crean al tiempo 0 ms) hasta que finaliza su ejecucién. Por lo tanto, se debe contabilizar el tiempo en el que finalizan su ejecucién ambos procesos, Para P; cottesponde a dos ciclos totales més 5 ms, en total 45 ms y para P2 serin 10 ms mas, es decir 55 ms. Si se representa el diagrama de Gantt se pueden observar de forma ‘mas clara e intuitiva los tiempos de retorno: y Ps y mL 0 20 0 © Ss a een nt cennenannenaneenntenen Cuestion 2-16 ‘Sean dos procesos, P; con tiempo de ejecucién de 20 ms y P; con 15 ms. El planificador a corto plazo actita segtin el algoritmo de prioridad circular con cuanto de 10 ms y tiempo de conmutacién de tarea de 5 ms Marcar el tiempo de retomno (regreso) de P; y Ps Solucién En Ia resolucién de este ejercicio se debe tener en cuenta el tiempo de conmutacién o tiempo en que el sistema operativo realiza el cambio de contexto. El proceso P; comienza su ejecucién, trascurrido el cuanto de 10 ms tiene lugar el cambio de contexto que tarda S ms y cambia a la ejecucién del proceso P2 durante otros 10 ms. A continuacién tiene lugar otro ciclo, pasa a ejecutarse el proceso P, que finaliza su ejecucién con el cuanto, por lo que su tiempo de retomo es de 40 ms, Trascurrido el tiempo de conmutacidn de tarea necesario para que el proceso P sea planificado, comienza éste a ejecutarse, pero no necesitard todo el cuanto sino que transcurridos 5 ms finaliza su jecucién, por lo que el tiempo de retomno es de $0 ms, Si directamente se dibuja el diagrama de Gantt, se puede observar que el tiempo de retomo para el proceso P; es de 40 ms y para el proceso P3 es de 50 ms. " ” Wo is 2s Sms 68 2 Gestion de procesos Problemas resueltos Problema 2-4 Se desea mantener el bloque de control de los procesos (BCP) en una estructura de datos denominada tabla de procesos, La tabla tendrd una entrada por cada uno de los procesos. El pid de cada proceso es un entero entre 0 y que proporciona su entrada en la tabla, Una de las entradas correspondera siempre a la del proceso en ejecucién, y el resto a procesos que esperan por una u otra cause Cada entrada de la tabla dispondra de toda la informacién necesaria por el proceso, que supone que es: 4) Direccién inicial del cédigo del proceso. b) Niimero identificador del proceso (pt) ©) Un array con el nombre del proceso. 4) Estado del proceso (ejecucién, preparado, suspendido y entrada sin proceso -para una entrada no ‘ocupada por proceso) ©) Prioridad del proceso (de 0 a 9), f) Un campo que contiene el estado del proceso que se salvaré al hacer el cambio de contexto, y que contiene + El contador del programa + Elestado de la CPU, + El segmento de datos, + El segmento de cédigo. + El segmento de pila + El puntero de pila, 2) Un puntero al BCP del siguiente proceso. Declarar en un pseudocddigo de alto nivel una estructura adecuada para el BCP que se ha definido. Solucion El sistema operativo agrupa toda la informacién que necesita conocer respecto a un proceso particular en una estructura de datos denominada descriptor de proceso 0 bloque de control de proceso (BCP). Cada vez que se erea un proceso, el sistema operativo crea un BCP correspondiente para que sirva como descripeién en 2-12 Problemas resueltos 69 tiempo de ejecucién durante toda la vida del proceso. Cuando el proceso termina, su BCP es liberado y destruido. Un proceso resulta conocido y, por lo tanto, elegible para competir por los recursos del sistema solo cuando existe un BCP activo asociado a él. El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecucién del proceso y de la utilizacién de recursos. A continuacién se va a escribir en pseudocédigo la estructura del BCP de este sistema, es decir, la definicion de datos para el BCP: type context cord; /* estructura que recoge el contador_programa: word; Estado: byte: seg_dato: word; seg_codigo: word; Seg_pila: word; punt_pila: word; end: stado del proceso en la conmutacién de contexto"/ estado = set of {ejecucion, preparado, suspendido, entada_sin_proceso} /*estado del proceso*/ nombre = array [1 ..max_cadena] of ehar:/*cadena que define el nombre del proceso" puntero_BCP = pointer of BCP: /* puntero a BCP*/ BCP =record /*estructura que define el BCP*/ pid_proceso: integer; nombre_proceso: nombre; estado_proveso: estado; prioridad: integer; estado_contextual: contexto; siguiente_proceso: puntero_BCP; codigo: pointer; end; La estructura de datos denominads tabla de procesos, formada por los bloques de control de procesos seri la siguiente: tabla procesos = array [0..max_pid_proceso ~ I] of BCP; Problema 2-2 Se dispone de un sistema operativo con planificacién por prioridades y con expropiacidn en el que el estado preparado dispone de N prioridades, cada una de las cuales tiene asociada una cola. El estado suspendido tiene M colas, cada una de ellas asociada a un suceso distinto. Iustrar mediante un diagrama las transiciones de estados del planificador del sistema operativo. 70 2 Gestion de procesos Solucion cada proceso del sistema esté asignado a un nivel, En los algoritmos de planificacién basados en prioridade: de prioridad, y el planificador siempre elige el proceso preparado con prioridad mas alta, Las prioridades pueden ser estiticas (no cambia durante el tiempo en que el proceso existe) o dindmicas (puede ser modificada). En cualquier caso, sus valores iniciales son asignados por el usuario o por el sistema en el ‘momento de la creacién del proceso. Este algoritmo puede ser de tipo expropiativo o no expropiativo. En el caso de expropiacién, si un proceso pasa al estado de preparado y tiene una prioridad mayor que el que esta en ejecucién, el planificador a corto plazo Hlevard al proceso que estaba en ejecucién al estado de preparado y cedera el procesador al ‘huevo proceso con prioridad més alta. Los algoritmos con prioridades y expropiacién se dice que estan guiados por eventos. En una estrategia no expropiativa, el nuevo proceso, aunque con mayor prioridad, deberd esperar a que el proceso en ejecucidn se suspenda para poder acceder al procesador. La Figura 2.16 muestra el uso de prioridades. Ein vez de una tinica cola de procesos en estado preparado se representan varias colas en orden de prioridad descendente: Cola de Prioridad 1, Cola de Prioridad 2. Cola de Prioridad N, donde Prioridad i es mayor que Prioridad j para i < j. Cuando se vaya a realizar una seleceién de planificacién, el planificador comenzara por la cola de preparados con mayor prioridad (Cola de Prioridad 1). Si hay uno 0 mas procesos en esta cola, se selecciona uno de ellos mediante alguna politica de planificacién, Si Cola de Prioridad I esti vacia, se examina Cola de Prioridad 2,y asi sucesivamente. Preparado — “5 ~ Cola de Provided 1 Cola de Priovidad 2 te Prioridad | deure sucess : Speen soe T / Colac suceso 7 \ ees? sven suckso2 | Cola del saves? - \ } / Esperasoceso essai | ~ loll seve Mo ee Figura 2.16: Diagrama de transici6n de estados 2:12 Problemas resueltos m Un problema de este esquema de planificacién es que los procesos de prioridad mas baja pueden suftir inanicién, es decir, quedar relegados indefinidamente. Este problema tiene lugar si hay un flujo continuo de procesos preparados de prioridad mais alta, La solucién que se suele adoptar es la de ir aumentando la prioridad de aquellos procesos que llevan un tiempo de espera muy elevado. Esta estrategia se denomina prioridad por envejecimiento (aging). Para finalizar et diagrama de planificacién del sistema operativo se va a analizar el estado suspendido o bloqueado. Se define el estado bloqueado, como aquel estado que no se puede ejecutar hasta que se produzca cierto suceso, como, por ejemplo, la terminacién de una operacin de IS. De esta forma, cuando se produce un suceso el sistema operativo debe recorrer toda la cola de procesos bloqueados buscando a aquellos procesos que esperan ese suceso. En un sistema operativo grande puede haber miles de procesos en dicha cola. Es por ello que es mis eficiente la solucién que se propone: tener una serie de colas, una para cada suceso (Cola del suceso I, Cola del suceso 2... Cola del suceso M). Asi, cada vez que se produce un suceso, la lista entera de procesos de la cola correspondiente al suceso pasa al estado de preparado. Problema 2-3, Para mantener las listas de procesos utiizadas en un sistema operativo se utiliza una tabla con dos entradas consecutivas para cada lista: la primera para la cabeza de la lista y la segunda para la cola de la lista, La misma tabla contiene una entrada para cada uno de los procesos. Se supone que un proceso slo puede estar enuna lista, Las entradas de los procesos ocupan las primeras posiciones de la tabla, cada una segiin su identificador o pid. A continuacién van las entradas de las cabeceras y colas de las listas. Cada entrada a la tabla tiene tres campos. Un campo con la prioridad del proceso, otro con un entero que sefiala la entrada en la tabla del proceso que sigue en la lista y. el dltimo, un campo con un entero que sefala la entrada en la tabla del anterior en la lista. El campo del anterior del primer proceso de la lista apunta ala entrada de la cabeza de Ia lista, y el campo siguiente del dltimo de la lista apunta a la entrada de la cola de la lista, Para las entradas a la tabla que corresponden a las cabezas y colas de las listas, el campo correspondiente a la prioridad llevan los valores del menor y del mayor entero, respectivamente. Al puntero nulo se leasigna el valor —1 a) Supdngase un sistema con 5 procesos tal que el estado global del sistema corresponde a una lista de procesos preparados en la que aparecen los procesos 2, 3 y 1, en este orden, el proceso activo es el 5 y el 4 esté bloqueado. Representar grificamente estas listas y hacer un esquema del contenido de una tabla como la que se ha deserito, b) Mostrar la evolucién que tendria una tabla con esta estructura para el estado global del sistema que se muestra en la Figura 2.17. Solucién a) Un estado de un proceso es slo un componente del estado global del sistema, que engloba a todos los procesos y recursos. Para seguir la pista a todos los procesos, el s.0. mantiene listas de BCP clasificados segiin los posibles estados de los mismos. Asi, existe una lista de procesos preparados que contiene los BCP de todos los procesos en este estado y una lista de procesos suspendidos o 72 2 Gestién de procesos tun conjunto de listas de procesos suspendidos, ligada cada una de ellas a un suceso diferente que produjo la suspensién. En sistemas multiprocesadores también habrd una lista de procesos en ejecucidn global que en sistemas monoprocesador degenera en una sola entrada. Lista de procesos [Cabscera —]—> [pi proc. #5 Cola Lista de procesos [ Cabecers_—}—> [pis proe. #3] > [pets proe #1 | ->[ pid pros. Fa preparados a Lista de procesos [Cabscema —}—> [pidiprow. 2] p-[ pit proe Dloqueados oa (aispostivo ny LS Lista de procesos [[Cabsccra_—}—> [pia roe. #0 bloguesdos ca (cispositve 2) Lista de procesos bloqueados {dispositive 3) Cabeeera Cola Figura 2.17: Listas de los estados en los que se encuentran los diferentes procesos De acuerdo con el enunciado, las listas que hay que gestionar son las que se muestran en la Figura 2.18. Estas listas se pueden implementa en una tabla. Las primeras posiciones de la tabla estén ‘ocupadas por los procesos, con sus pid: 1, 2, 3, 4, 5 indicando el orden de entrada. A continuacién se representan las cabezas y las colas de las listas (cabeza y cola de lista de preparados, cabeza y cola de lista de bloqueados y cabeza y cola de lista de activos). 2-12 Problemas resueltos 73 b) Lista deestados — [Cabecera_ —}_—> [pide proc. #5 actives Cate a Lista deestados [Eaiecen—} [pape | > [pao preparades — LI —4 V7 aa Lista deestndos [Gibarxa => [frp bioauesdos = aa Figura2.18: Estado global del sistema de acuerdo a ls especificaciones del apartado a) Cada una de estas entradas tiene tres campos. El primer campo representa la prioridad del prox (A), Hy, Hy, Hay Hs) y cuando las entradas son las cabezas y las colas de las list npo es el menor y mayor entero que exista en la tabla, respectivamente, es decir, | y 11 seste Los otros dos -ampos son el siguiente, que representa la entrada del proceso que le sigue en la lista y el anterior que representa la entrada en la tabla del proceso que esti antes en Ia lista. Asi, el proceso 3, ocupa la tercera entrada en la tabla y los campos son su prioridad /7, fa entrada en la tabla del proceso que le sigue en la lista, como el proceso que le sigue en la lista es el proceso | la entrada es la primera y la entrada del proceso anterior en Ia lista, al ser el proceso 2 la entrada es la segunda. El campo anterior del primero de una lista apunta a la cabeza (el proceso 2 es el primero de la lista de preparados, su campo anterior sera la cabeza de la lista, cuya entrada en la tabla es 6) y el campo ‘siguiente del iltimo de una lista apunta a la cola (el proceso | es el iltimo de la lista de preparados, su campo siguiente viene representado por la cola de la lista cuya entrada en la tabla es 7) Los campos anterior y posterior de las cabezas y las colas de las listas se representan por el puntero nulo (-1). La Tabla 2.9 es la resultante. Si se repite la construccién de la tabla de acuerdo con las especificaciones del enunciado para las listas de la Figura 2.17 se obtiene la Tabla 2.10. 74 2 Gestion de procesos Entrada Prioridad | Siguiente | Anterior Teip= Hh 7 3 2¢hI2) we 3 © 3013) % oi z aba) He 9 5 5 (ris) Ws 1 0 6 teabeza_preparados) T 1 =I 7 cola propradon) 1 =I =I '(eabera_hloqucados) 7 =I = 9 (cola Moqueados) 1 = = Ti eabera_ativos) i =I = 11 ola_actvos) Ti =r = ‘Tabla 2.9: Tabla representante del estado global de sistema de acuerdo con la Figura 2,18 Entrada Priovidad Sigulente Anterior Tbs) m 4 3 2 (P12) te 7 10 3(PID3) in r ® (PIDs) He 9 T 5 (PDS) Ws "7 6 6PID6) We a 2 7 (PID) th 0 2 8 (cabeza_preparados) 7 = 9 (cola_preparados) 7 10 (cabeza, Blogueades!) i 1H (eala Ploqueadost) a T 12 (eabera_Blogueadon2) 1 = = 1B (cola_Blogueados2) 0 = 1 (cabera_bioqueadosd) 1 = = 15 (cola Plogueados3) 7 = = To (eabeza actives) v = = 17 (eola_activos) 7 = = 2-42 Problemas resueltos 75 Problema 2-4 La lista de los estados suspendidos no esté organizada por prioridades. Exponer algunas razones de por que ‘no se utiliza la prioridad e indicar bajo que circunstancias podria resultar itil su empleo. Solucion La lista de procesos suspendidos est formada por aquellos procesos que ademas del procesador carecen de ottos recursos. Tales procesos estin normalmente excluidos de la competencia de la ejecucidn hasta que desaparezca la condicién de suspensién, por ejemplo, que termine una operacién de E/S 0 que reciba una sefial de sincronizacién. En la Figura 2.19 se observa un ejemplo de una lista de estados bloqueados, los procesos ¥, ¥, Zhan sido bloqueados por diferentes eausas y se encuentran a la espera de diferentes sucesos, Lista de procesos [Catecora —}—> [pits prow. ] > [ pid: proc AY | > [ pide prow. 02 bloqueados ae ree ca Figura 2.19: Unica lista de procesas suspendidos o bloqueados tra alternativa es tener diferentes listas de procesos suspendidos. Cada una ligada en exclusiva al dispositivo que produjo la suspensidn. En la Figura 2.20, los procesos Py O, estén a la espera del dispositive I,el proceso R del dispositivo 2 y no existe ningin proceso bloqueado por la espera del dispositive 3 Lista de procesos loqueados tiaras Pil pos oP ids prom HO (dispositive ty [Cola Lista de procesos [ Tabacwre blaqueados (dispositive 2) Pid: proc Cola Lista de provesos bloqueados (alispositive 3) Cabecera Cola Figura 2.20: Diferenteslisas de bloqueados o suspendides 76 2 Gestion de procesos En cualquier caso, el sistema operativo tiene anotado la razén de la suspensién de modo que pueda reanudar al proceso 0 procesos cuando Ia condicién de suspensién desaparezca por efecto de las acciones de algunos de los otros procesos o por la llegada de un suceso externo. Es por ello que la lista no esta ordenada por prioridades porque s6lo importan los sucesos que bloquearon a los procesos para desbloquearlos. A hora bien, si se tienen a varios procesos esperando el mismo suceso para desbloquearse, si se podria asignar prioridades para que se desbloqueen cuando aparezca el suceso correspondiente segiin el orden que establezcan las prioridades. Asi, por ejemplo, si se tienen dos procesos en espera de acceder a un mismo disco del sistema que se haya ocupado por la solicitud de algiin otro proceso, cuando el disco quede libre, desaparece Ia condicién de suspensién y pasaran a estado preparado, en el orden que establezcan sus prioridades, primero el que posea mayor prioridad, que ser el que acceda al disco, volviendo el segundo proceso a bloquearse. —_— Problema 2-5 En la estructura de listas del Problema 2-3 se pone la condicién de que un proceso sélo puede aparecer en una lista. Expliquese lo que sucederia si con una estrategia de tiempo compartido un proceso apareciera dos veces, en la lista de preparado. Indicar razones que podrian llevar a tomar esa decisién, Prescindir del tipo de estructura que se haya utilizado para implementarla. Solucién En la planificacién por tiempo compartido (Round Robin, RR), basicamente, el tiempo del procesador se divide en cuotas o euantos que son asignados a los procesos peticionarios. Ningin proceso puede ejecutarse durante mas de una cuota de tiempo cuando hay otros esperando en la cola de preparados. Si un proceso necesita més tiempo para completarse después de agotar su cuota de tiempo, se coloca al final de la lista de preparados para esperar la asignacién siguiente. De esta forma se logra una comparticién equitativa de los recursos del sistema. Los procesos cortos pueden ser ejecutados dentro de una tinica cuota de tiempo y por tanto, exhiben buenos tiempos de respuesta, Los procesos largos pueden requerir varias cuotas y, por lo tanto, set forzados a circular a través de la lista de preparados unas cuantas veces antes de terminar, es por ello que, sus tiempos de retorno y de espera son relativamente largos de forma que se discriminan frente a los cortos. A continuacién, se muestra un ejemplo de la aplicacién de este algoritmo. Para ello se parte de la lista de procesos preparados de la Figura 2.21, en la que se supone que el proceso necesita para su ejecucién tres cuantos, el proceso ¥ requiere un cuanto y finalmente el proceso Z, dos cuantos, Lista de procesos [Cahooen preparados pid: proc ] [pide poe. AF | p>[ pide proc a2 Cole —_7 1a 2.21: Bjemplo de lista de procesos preparados 2:12 Problemas resueltos 7 En la Figura 2.22 se representa el diagrama temporal de Ia posesidn del procesador (diagrama de Gantt), es decir, el orden en que los procesos estan en estado listo o en ejecucidn de acuerdo con este algoritmo, En una primera vuelta se ejecutan los procesos X, Y y Z. De esta ejecucién se concluye que el proceso ¥ ha finalizado y los procesos X’y Zse encuentran de nuevo en la lista de preparados. A continuacién, tiene lugar una segunda vuelta pasando a ejecutarse ambos procesos. Como resultado finaliza el proceso Z y el proceso X se mantiene en la lista de preparados. Finalmente, tiene lugar una tercera vuelta en la que se ejecuta y finaliza el proceso X. x y z x x ' 2 u " st or Figura 2.22: Diagrama de Gantt dela aplicacién del algoritmo siempo compartio alos procesos de Ia Figura 2.21 Si se modifica el algoritmo, de forma que se permite a un proceso aparecer més de una vez. en la lista, se Je asociariin més cuantos de tiempo por ciclo que al resto de los procesos en la misma. Esto indica que. se le adjudicar’ mayor tiempo de ejecucidn por ciclo que al resto. Este método podria ser usado para dar mis prioridad de ejecucidn a determinados procesos, bien sea porque interesa su pronta ejecucién 0 porque son procesos largos para evitar su discriminacién Asi, para el ejemplo anterior, supdngase que se afiade de nuevo el proceso X al final de la lista de procesos preparados de la Figura 2.21. Entonces, el diagrama de Gantt tras la aplicacién de algoritmo por tiempo compartido sera el representado en la Figura 2.23. En una primera vuelta se ejecutan los procesos X, ¥, Zy X. En este ciclo de ejecucién finaliza el proceso Yy los procesos X, Zy X’se encuentran de nuevo en [a lista de preparados. En una segunda vuelta, se ejecutan los procesos X’y el Zy ambos finalizan (No hace falta que el proceso 1 se ejecute otra vez, pues el proceso ha finalizado y al pasar a estado de muerto desaparece de la lista de preparados). Como puede observarse el proceso X ha terminado su ejecucién con anterioridad que en el caso previo, es decir se le ha dado mas prioridad a su ejecucién. x y z | x x z ; 2 * x w Figura 2.23: Diagramade Gant de la aplicacién de algoritmo riempo compartido modifieado a los procesos de la Figura 221 Problema 2-6 Supéngase un tipo de computador en el que pueden ejecutarse simulténeamente n procesos, utilizando una variante de algoritmo de prioridad circular (Round Robin), llamada particién del procesador. Después de cada instruccién tiene lugar un cambio de proceso de forma que la instruccién 1 viene del proceso I. la instruccién 2 del proceso 2 etc. El cambio de proceso no produce un costo extra. Si un proceso necesita T” segundos para terminar en ausencia de otros. ;Cudnto tiempo sera necesario si se emplea particién del procesador entre los n procesos? 78 2 Gestion de procesos Solucion Si en ausencia de otros procesos un proceso necesita T segundos para ejecutarse, y suponiendo que esti formado por X instrucciones, es obvio que el procesador tardara en ejecutar cada instruccién 7/X segundos. Si, ademas, se supone que los » procesos son iguales, al final de la primera vuelta del algoritmo de prioridad circular, se habran ejecutado 1 instrucciones, pot lo que habré tardado en realizar este primer ciclo n(7/X) segundos. Como serin necesarias V vueltas para finalizar todos los procesos, tantas como instrucciones se ha supuesto que tiene cada proceso, entonces el tiempo total sera: Xx a(TiX nT segundos En la Figura 2.24 se puede observar un diagrama temporal de la ocupacion de la CPU (diagrama de Gant), | |e Px nnn oan (enn (=DerDTX aT Figura 2.24: Diagrama de Gantt de los » procesos bajo el algoritmo de particién del procesador eer Problema 2-7 En un sistema operativo con planificacién por prioridad circular, sea E el tiempo medio de ejecucién de un proceso antes de solicitar una peticién de entrada/salida (E/S) y C es el tiempo invertido en la conmutacién entre procesos, donde £>> C. Analizar el efecto que sobre los procesos y el rendimiento del sistema tienen cada una de las situaciones siguientes, en las que varia el valor del cuanto, O: 4) Cuanto arbitrariamente grande. b) Cuanto muy pequefio, ligeramente superior a cero. ©) Cuanto muy cereano a E, tal que CE. ) C E, el proceso se ejecuta sin interrupcién dentro del valor de la cuota de tiempo asignada hasta su finalizacién. A continuacién el sistema operativo planificara otro proceso para ejecucién, esta operacién corresponde a la conmutacién de procesos cuya duracién es C. Por To tanto, la eficacia sera: Dado que el tiempo de ejecucién del proceso es mucho mas grande que el tiempo invertido en la conmutacién de tareas, es decir, E >> C, la eficacia es précticamente de! 100% (#-~100%). Este valor de la eficiencia resulta evidente dado que la CPU ha empleado todo su tiempo en la ejecucién del proceso, Por otra parte, como se ha comentado otros procesos no han podido comenzar stu ejecucién, por lo que sus tiempos de espera son grandes. ©) Eneste caso el valor del cuanto es inferior al tiempo de ejecucién real del proceso, por lo que éste debera ser planificado £/Q veces. Estas conmutaciones de tareas necesarias conllevan una perdida de tiempo de C x (E/Q). Por lo tanto, sustituyendo en la expresién de Ia eficiencia los valores anteriores a 2 100% & a+e x 100 b+cx& 4) En este caso el valor del cuanto es igual al tiempo de conmutacién de tareas, @ = C, que corresponde a un caso particular del apartado anterior, por lo tanto si se sustituye en su expresion, se tiene: E j= 50% Este resultado es totalmente esperado, ya que si el cuanto es igual al tiempo de conmutacién, el procesador se pasa la mitad del tiempo ejecutando el proceso y la otra mitad conmutando. €) Finalmente se va a considerar el caso en el que el valor del cuanto es proximo a cero. Si, de la misma forma, se sustituye en la expresién del apartado c), este valor, Q = 0, se tiene: Ey-% De nuevo este resultado es predecible. La CPU pasa todo el tiempo conmutando tareas y no las ejecuta, dado que el tiempo asignado para ello es nulo. Por lo tanto, toda su labor resulta inétil, 2-12 Problemas resueltos 31 ee Problema 2-9 {Quéalgoritmo minimiza el tiempo de espera medio? Demuéstrelo, Solucion Elalgoritmo que minimiza el tiempo de espera medio es el algoritmo SIF (primero la tarea mas corta). Para la demostracin supéngase un sistema con m trabajos cuyos tiempos de ejecucién son 1), f3, f+ ¥ fy Sin perdida de generalidad se va a considerar que el orden de ejecucién es P;, Pa, ... y Py y que el tiempo de conmutacién de tarea es despreciable, Bajo estas suposiciones, el tiempo de espera de cada proceso se puede calcular y queda recogido en la Tabla 2.11 Trabajo Tiempo de espera Py o ‘Tabla 2.11: Tiempo de espera de los n procesos De acuerdo con los resultados de la Tabla 2.11, el tiempo de espera medio es (suma de los tiempos de espera de cada proceso dividido entre el niimero total de procesos): = aD t(D) nt Para minimizar este tiempo, 1) debe er el ndimero mas pequefio de la serie {1}, 13,13... stn} porque es el que contribuye mas a E (al ir mutiplicado por el factor mayor (1 ~ 1)), a continuacién fy debe ser el mas pequefio de {1p, 13, fy} y asi sucesivamente. Entonces 1, debe ser el trabajo de menor tiempo de ejecucién, después fy, ete, Orden que es el que determina el algoritmo SJF. _ Problema 2-10 Supéngase que se tienen que realizar cinco trabajos cuyas caracteristicas se muestran en la Tabla 2.12. Estos trabajos llegan en el orden descrito en esta tabla, Se pide: a) Realizar los diagramas de Gantt que ilustren Ie ejecucién de estos trabajos utilizando los algoritmos siguientes: FCFS (primero en llegar primero en ser servido), SJF (primera tarea mis 82 2 Gestion de procesos corta), SRT (tiempo que queda mas corto), RR (prioridad circular) con un cuanto de 1 ms y, finalmente, una planificacion por prioridades no expropiativo. b) Determinar para cada uno de los procesos con cada uno de los algoritmos de planificacién anteriores el tiempo de retoro, Calcular la media resultante para cada algoritmo ¢) Idem para la eficiencia 4) Idem para el tiempo de espera €) Idem para el tiempo de respuesta 1) Analizar los resultados anteriores y extraer consecuencias. Trabajo Tlempo de wo de CPU Prioid To 1 2 10 4 3 2 3 Soluciin a) El algoritmo FCFS (primero en llegar primero en ser servido) (First-Come-First-Served) corresponde a la disciplina de planificacién en la que los procesos en estado preparado acceden al procesador en el orden en que llegan a dicho estado, sin expropiaciones. La implementacién del planificador FCFS es bastante directa, y su ejecucién da lugar a pocos recargos, Los procesos argos hacen esperar a los cortos. El diagrama de Gantt a que da lugar esta planificacién es el uiente: 1 2 [> [3] s 1 u 3 1s 2 El algoritmo SJF (primera tarea mis corta) (Shortest-Job-First) es una disciplina de planificacién no expropiativa en el cual el trabajo (0 proceso) en espera con el tiempo estimado de ejecucién hasta su terminacién més corto, es el siguiente en ser ejecutado, SJF favorece a los trabajos cortos a costa de los mas largos. Si dos trabajos tienen el mismo tiempo se seleccionan segiin la estrategia FCES. Asi, los procesos 3 y 4 requieren del mismo tiempo de ejecucién luego el orden de ejecucién de acuerdo a su orden de Ilegada sera primero el proceso 3 y luego el 4. 2:12 Problemas resueltos 83 b) °) Iv]os «| 5 2 13 5 ut Ea EL algoritmo SRT (tiempo que queda més corto) (Shortest-Remaining-Time). Es la contraparte expropiativa del SJF. El proceso con el tiempo estimado de ejecucion menor para legar a su terminacién es el siguiente en ser ejecutado, incluyendo las nuevas llegadas. En nuestro caso como estin planificados los trabajos (no Ilegando ninguno nuevo), y como se parte del mas corto en tiempo, siempre seguird siendo el mis corto a medida que se ejecuta, por lo que es igual que el algoritmo SJF La diferencia tiene lugar cuando los trabajos no estin planificados, ya que de esta forma se pone de manifiesto la cualidad expropiativa de este algoritmo, que es lo que le diferencia del SIF, por ejemplo, si se esta ejecutando un proceso con un tiempo de ejecucién de 6 s y han pasado 3 s, y entra un proceso que requiere 2 s para ejecutarse, le expropiard EL algoritmo RR (prioridad circular) (Round Robin) los procesos se despachan en FCFS pero se Jes otorga una cantidad limitada de tiempo de CPU llamada cuanto. Si un proceso no termina antes de expirar su tiempo de CPU, entonces la CPU es expropiada y otorgada al siguiente proceso en espera. EE 123 45 678 9 © EL algoritmo de prioridades (no expropiativo) En esta estrategia de planificacién por prioridades cada proceso tiene asignada una y el de mayor prioridad es el que toma el procesador. Asi, suponiendo que el orden de maxima prioridad es para el de prioridad | y asi sucesivamente y que 4 igualdad de prioridades se seleccionan segiin la estrategia FCFS se tiene el siguiente diagrama de Gantt: Ci ; ; ; 1 7 9 0 2 EL tiempo de retorno corresponde al tiempo transcurrido desde el lanzamiento de un proceso hasta su finalizacién, La Tabla 2.13 muestra el tiempo de retorno de cada proceso para cada algoritmo, como se puede observar de cada diagrama de Gantt anterior. La eficiencia (Ep es la fraccién de tiempo medio durante el cual el procesador esté ocupado de ‘manera ttil en la ejecucién de un proceso: 84 2Ge n de procesos donde el tiempo de ejecucién titil o real es Uy el tiempo de uso de CPU total es 7. A la hora de calcular la eficiencia del procesador para un proceso se ha tenido en cuenta que el tiempo itil, U, corresponde al tiempo de ejecucién real de ese proceso (dado por la Tabla 2.12) frente al tiempo total de uso de la CPU, 7, (ejecucién y conmutacién) o tiempo que transcurre hasta que el proceso en concreto finalice su ejecucién, que corresponderd al tiempo de retorno de dicho proceso (dado por la Tabla 2.13), En la Tabla 2-14 se resume los resultados encontrados. [trabajo FCS RR SF Prioridad 1 1 1 1 1 2 2 2 0 3 3 7 3 9 4 is s | os 21 - 5 21 1" 7 Tiempo medio aa | ins 82 ua ‘Tabla 2.13: Fltiempo de retomo para los cinco procesos segin los diferentes algoritmos de planificacién Trabajo rerse%) | RR) | suFQ% | Prioridaa rs) 1 100 100 100 109 2 90.90 a1 a761 3 3 15,38 28,57 ” 66,66 22,22 4 T 13,33 28 40 952 5 | 257 3529 454 es | _ Tempo meio oe 4129 e176 S401 ‘Tabla 2-14 La eficiencia para los cinco procesos segiin los diversos algoritmos de planificacin 4d) El tiempo de espera corresponde al tiempo que un proceso consume esperando la asignacién de recursos debido a a competencia con otros en un sistema con multiprogramacién. Mateméticamente se puede expresar como el tiempo de retorno menos el tiempo de ejecucién. En la Tabla 2.15 se recogen los célculos realizados. ¢) El tiempo de respuesta a un evento corresponde al intervalo de tiempo que transcurre desde que se sefiala un evento hasta que se ejecuta la primera instruccién de la rutina de servicio de dicho evento, En definitiva es el tiempo que esti esperando en el estado de preparado o bloqueado para empezar a ejecutarse. Asi, a partir de estos resultados se puede calcular el tiempo de respuesta, 2:12 Problemas resueltos 85 como queda recogido en la Tabla 2.16 Trabajo FCES RR SIF Priovidad i o ° ° ° 3 " 5 1 7 4 5 6 3 9 15 " 5 Tiempo medio 5 66 4 72 ‘Tabla 2.18: El tiempo de espera pata los cinco procesos sexin los diversosalgoritmos de planificacién r — Trabajo Fors RR SIF 1 ° 0 ° 0 [ 2 1 1 u 9 3 " 2 1 7 4 3 3 > ° 5 1s 5 5 1 f Tiempo medio 8 2 4 | ‘Tabla 2.16: El tiempo de respuesta para los cinco procesos segin los diversosalgoritmos de planificacién 4) Del anilisis de las tablas anteriores se puede concluir que los mejores resultados se obtienen para el algoritmo SIF: + El menor tiempo de retorno medio (8,2) + La mayor eficiencia media de la CPU (61,7%) + El tiempo de espera medio més pequefio (4) — eee Problema 2-14 Supdngase que se tienen que realizar cinco trabajos cuyas caracteristicas se muestran en la Tabla 2.17. Estos trabajos llegan en el orden descrito en esta tabla, Sepide: 4) Realizar un diagrama de Gantt que ilustre Ia ejecucién de estos trabajos para los algoritmos: FCFS (primero en llegar primero en ser servido), RR (prioridad circular) con cuanto de | ms, SIF (primera tarea mas corta), prioridades no expropiativo. 2 Gestion de procesos b) {Cual es el tiempo de retorno de cada trabajo para cada uno de los algoritmos anteriores de planificacién?, {Cudl es el tiempo de espera de cada trabajo para cada uno de los algoritmos, anteriores de planificacién? Razonar sobre el tiempo de espera medio de cada algoritmo. Trabajo “Tiempo de uso de CPU Priridad H 10 3 2 1 1 3 2 3 4 1 4 5 5 2 ‘Tabla 2.17; Resumen de los procesos a ejecutar con sus prioridades y tiempos de ejecucién Solucion ) A continuacién se presentan los diagramas de Gantt para los algoritmos indicados: + Algoritmo FCFS: la carga de trabajo se procesa simplemente en orden de llegada, sin expropiaciones. 1 0 + Algoritmo RR: E! planificador va asignando el procesador a cada proceso de forma secuencial durante el cuanto de tiempo definido. 2-42 Problemas resueltos 87 * Algoritmo de Prioridades (no expropiativo): Cada proceso tiene asignada una prioridad y el de mayor prioridad en el estado preparado es el que toma el procesador. 2 5 1 3s fa t 6 16 «1 b) El tiempo de retomo es el tiempo que transcurre desde que un proceso se crea hasta que se completa por el sistema, Entonces, el tiempo de retorno es el indicado en Ia Tabla 2.18, Trabajo CRS. RR SIE Prioridad 1 0 9 9 16 2 a 1 ' 3 1B 7 4 1s 4 4 4 2 6 19 a 9 6 Tiempo medio Ba of? 2 ‘Tabla 2. El tiempo de retorno para los cinco procesos segin los diversos algor 9s de plan El tiempo de espera, como se ha definido previamente se calcula como el tiempo de retorno menos el de ejecucién. De acuerdo con esta definicién el tiempo de espera se recoge en la Tabla 2.19. Trabajo FcRS, RR SIF Prioridad 1 ° ° ° © 0 1 ° 0 3 i 5 2 16 4 B 3 1 «| 5 a ° 4 1 Tiempo medio 46 sa 32 82 ‘Tabla 2.19; El tiempo de espera para los cinco procesos segin los diversos algoritmos de planificacién El tiempo de espera mas pequefio corresponde al algoritmo SJF, como era de esperar, ya que esta esirategia es Optima desde el punto de vista de minimizar el tiempo medio de espera de los trabajos ‘en espera de ejecucién. 88 2 Gestion de procesos Problema 2-12 En un sistema operativo multiproceso se dispone de un planificador que emplea el algoritmo por prioridad circular, RR, con gestidn de la lista de preparados por FCFS y con valor de cuanto de 10 ms. (Se supone despreciable el tiempo de conmutacidn de tarea). Sean tres procesos, cuya ejecucién si no existieran otros seria la representada en la Figura 2.25. Figura 22 + Ejecucién secuencial de los tres procesos El tiempo para realizar la operacién de entrada y salida es de 4 ms y para simplificar s6lo se hace sobre un nico dispositivo, Un proceso puede estar en los siguientes estados: + Esperando en la cola de preparados: P + Ejecuténdose: £ + Esperando a que el dispositivo de E/S quede libre: W” + Realizando una operacin de E/S: O En la Tabla 2.20 se indi finalizar su ejecucién (en ms): el instante de legada al sistema de cada proceso y su tiempo necesario para Trabajo Tiempo méximo necesario. 1 0 26 20 v ‘Tabla 2.20: Resumen de los provesos a ejecutar a) Dibujar la evolucién temporal de los procesos del sistema, sefialando el estado en el que se encuentra cada proceso. Asi como la ocupacién temporal de la CPU 0 diagrama de Gantt. b) Calcular para cada proceso la eficiencia. 2:12 Problemas resueltos 89 a) A continuacién se presentan los estados por los que pasa cada proceso, asi como Ia evolucién temporal de la CPU, medido en milisegundos: Proceso I: E ’ FE o jel « 0 20 28 2 Me Proceso 2: Pp elwl] o - e 2 rr a si , e]o |r ze | | 28 no 8 Pa PU: 1 2 1 a fey a 3 2 ‘| w 20 8 2 Me 2 3 b) La eficiencia para los diferentes procesos es la siguiente: Proceso 1: u 26 E=¥ = 28x 100 = 68.42% 7x 100 = 2 % Proceso 2: Proceso 3: 90 2 Gestién de procesos Problema 2-13 Se deben ejecutar cinco trabajos: P}, P2, P3, Py y Ps. Sus tiempos de ejecucién (en ms) previstos son: 9, 6,3, Sy X. ;En que orden se deberian de ejecutar aplicando el algoritmo SJF?. Calcular el tiempo de espera medio para cada uno de los casos. (Obviamente, la solucién propuesta dependerd de X). Solucion A continuacién se va a aplicar el algoritmo SJF para los diferentes casos del valor del tiempo de ejecucién, X, que establece diferentes drdenes de ejecucidn de los procesos. El resultado de la planificacion se representara ‘mediante diagramas de Gantt. Asi, 1) Para el caso 0 <.X <= 3, el diagrama de Gantt es el siguiente: Ps % ” ” ” x x3 Xe8 xe X42 De acuerdo con esta planificacién, el tiempo de espera y el tiempo de retorno se recogen en la Tabla 2.21 ‘Trabajo | T.deretorna(ms) | T. de espera (ms) [a x23 xe 14 Py or % x8 x03 Ps x 0 ‘Tabla 2.21: Tiempo de retorno y de espera de los distintos procesos El tiempo de espera media es: T, ‘espera media = (AX+25)/5 ms 2) Para el caso 3 <'<= 5, se obtiene el siguiente diagrama de Gantt 3 x03 xe xe ve23 Construyendo la misma tabla que en el caso anterior se obtiene el tiempo de espera medio: 2-12 Problemas resueltos 31 espera media = (BX+28)/S ms 3) Para el caso 5 < X <= 6, de nuevo se calcula el diagrama de Gantt: Ps % Ps a ™ 3 5 x48 xe Rehaciendo los céleulos se puede obtener de igual forma el tiempo de espera medio: Tespera_media = (2X+33)/5 ms 4) Para el caso 6 < V'<=9 se obtiene el siguiente diagrama de Gantt: ry % a Ps » 3 8 i Xe) Construyendo una tabla similar a la Tabla 2.21 se calcula el tiempo de espera medio: Tespera media = (X+39)/S ms 5) Finalmente, para el caso 9 [ pide pro #A > [pit pme ac preparados eau Figura 2.27: Lista de estados preparados después dela ejecucién del algoritmo SIF Como la politi elegida para el planificador a corto plazo es por prioridad circular, los procesos hardin uso de la CPU, es decir, pasaran al estado de ejecucién segimn indica el siguiente diagrama de Gantt A «T<] SOS % SSR RSD 2S as El tiempo de retorno se calcula a través del diagrama de Gantt o mediante los calculos siguientes: Proceso A: 96,S425x445 x 10=199ms Proceso B: 25x34 15+3%0,5=91,5 ms Proceso C: 209+25 + 18+2%0,5=245 ms Como se puede observar, todas las tareas finalizan antes de su tiempo critico. El tiempo de espera es el tiempo de retorno menos el tiempo de ejecucisn: Proceso A: 199-80= 119 ms Proceso B: 91,5-40=51,5 ms Proceso C: 245—120= 125 ms én de procesos Problema 2-16 La Tabla 2.25 recoge la informacion de cinco procesos que se van a ¢jecutar en un sistema, Tiempo de legada (ms) | Tempo de ejeeuelén (ms) ° 0 8 t 2 c 2 3 D 3 1 FE 4 5 ‘Tabla 2.25; Resumen de las caracteristicas de los procesos para gjecucién Calcular el tiempo de retorno de cada uno de los trabajos y representar la ejecucién en diagramas de Gantt para los siguientes algortimos: a) FC b) SRT ©) RR, con cuanto de 2 ms. Si el cuanto de un proceso en ejecucién expira a la vez que la llegada de lun nuevo proceso, entonces el nuevo proceso se aflade a la cola de procesos preparados antes que el proceso que termina. Despreciar el tiempo necesario para el cambio de contexto. Solu n A continuacién se presentan los diagramas de Gantt para los algoritmos indicados a) Algoritmo FCFS: La carga de trabajo se procesa simplemente en orden de llegada, sin expropiaciones. 4 8 c D 10 B 5 Fa b) Algoritmo SRT: Se selecciona el trabajo con el menor valor de tiempo restante de ejecucién, incluyendo los nuevos que Heguen. Corresponde a la versién expropiativa del algoritmo SIF. [-L= lef « e 4 - 2:12 Problemas resueltos 97 ©) Algoritmo RR: A todos los procesos en estado preparado se les asigna un tiempo de ejecucién co | E 2 4 Is 25 3 4 b) Algoritmo RR: A todos los procesos en estado preparado se les asigna un tiempo de ejecucién denominado cuanto. planificador va asignando el procesador a cada tarea de forma secuencial por el cuanto de tiempo definido, na = Ee 4 8 2 6 20 24 «OMS yo 4 LLos tiempos de retorno de los procesos se caleulan teniendo en cuenta el tiempo en el que acaban los procesos, medido en los diagramas de Gantt, menos los tiempos de llegada. Estos tiempos quedan recogidos en la Tabla 2.28 ‘Trabajo SIF RR 4 4 a [8 at %6 ec | » |» D i 5 se | 3 [| 3 Problema 2-18 La Tabla 2.29 recoge la informacién de cinco procesos que se van a ejecutar en un sistema, Calcular el tiempo de retorno de cada uno de los trabajos y representar la ejecucién en diagramas de Gantt para los siguientes algoritmos: a) FCS b) SIF ©) RR, con cuanto de 2 ms. Si el cuanto de un proceso en ejecucién expira a la vez que la llegada de un nuevo proceso, entonces el nuevo proceso se afiade a la cola de procesos en espera de ejecutarse 2-12 Problemas resueltos 99 antes que el proceso que termina. 4) Idem, pero RR con prioridades, teniendo en cuenta que la méxima prioridad corresponde a4 y la minima a 1. Despreciarel tiempo necesario para el cambio de contexto, ‘Trabajo | ‘Thempode egada(ms) | Tiempo de eecucton (ms) | Prorkdad a 1 8 2 2 2 2 Cc 3 1 3 D 4 2 4 z 5 5 1 ‘Tabla 2.29: Resumen de las caracterstieas de los procesos paraejecucin Solucion ‘Accontinuacién se presentan los diagramas de Gantt para los algoritmos indicados. En todos los casos, hasta transcurrido Ims no se tiene ningtin proceso en la lista de preparados por lo que la CPU estar inactiva, a) Algoritmo FCES: la carga de trabajo se procesa simplemente en orden de Ilegada, sin expropiaciones. b) Algoritmo SUF: Se selecciona el trabajo con el menor valor de tiempo restante de ejecucién, sin incluir los nuevos que Hleguen. ©) Algoritmo RR: A todos los procesos en estado preparado se les asigna un tiempo de ejecucién denominado cuanto, EI planificador va asignando el procesador a cada tarea de acuerdo con el orden de Hlegada que se mantiene en la lista de preparados. Asi, por ejemplo, cuando finaliza el proceso 4, han transcurrido 3 ms, por lo que en la lista de procesos preparados se tendri a los procesos B y Cy se incorpora de nuevo el proceso 4. Ahora bien, de estos tres procesos el que 100 2 Gestion de procesos tiene mayor antighedad es el B, por lo que sera el que pase a ejecucién. 4 | @ jel a | ov | e& | a | eg joa fe ros Ss 6 8 0 2 4 16 rn 4) Algoritmo RR con prioridades: En este caso el planificador va asignando el procesador a cada tarea de acuerdo con el orden que establecen las prioridades en la lista de preparados. De esta forma cuando finaliza el proceso 4, han transcurrido 3 ms, por lo que en la lista de procesos preparados se tendré a los procesos B y C y se incorpora de nuevo el proceso 4. Ahora bien, de estos tres procesos el que tiene mayor prioridad es el B, por lo que sers el que pase a ejecucién. a4 | 6 | op je} a | a | oa | ek | ec le ro s 7 8 2 a 16 wo Los tiempos de retorno de los procesos se calculan teniendo en cuenta el tiempo en el que acaban los procesos, medido en los diagramas de Gantt, menos los tiempos de llegada, Estos tiempos quedan recogidos ena Tabla 2.30. Trabajo CFS su RR RR com priridades 4 ® 8 7 B 5 ° 0 3 3 © 9 7 3 5 D 10 0 6 3 e 4 1 is a ‘Tabla 2.30: El tiempo de retorno para los cinco procesos segimn los diversos algoritmos de planific Sincronizacion y comunicacion de procesos Las tareas que corren en un sistema se diseflan para llevar a cabo un objetivo comin y, por lo tanto, es necesario que algunas de ellas se comuniquen entre sf; adems, en su ejecucién competiran por conseguir los recursos del sistema, una zona de datos especificos, o un dispositivo de £/S y dicha competicién se debe regular proporcionando los mecanismos adecuados para la sincronizacién de los procesos. También se precisa esta sincronizacién para establecer un orden de ejecucién de las tareas que sea coherente con el objetivo global del sistema, Las técnicas de sincronizacién que se presentan en este tema son el fundamento del procesamiento concurrente. Existen dos métodos bisicos de comunicacién entre procesos: comparticiin de datos e intereambio de informacién, En este tema se trata inicialmente el problema de la comunicacién entre procesos mediante comparticién de datos y se realiza su introduccién estudiando el problema de la exclusién mutua, Se introducen después los semdforos, que son un procedimiento sencillo, pero potente, para la solucién de los problemas de Ia exclusién mutua y de la sincronizacién entre procesos. Los semaforos constituyen el mecanismo basico fundamental para el problema de la sincronizacion, A continuacion se sigue con el estudio de los monitores. Estos proporcionan un mecanismo alternativo al de los semiforos, con una solucién més estructurada al proporcionar abstraccién de los datos que se comparten, Los mensajes proporcionan una solucién al problema de la concurrencia de procesos que integra Ia sincronizacién y la comunicacién entre ellos y resulta adecuado tanto para sistemas centralizados como para distribuidos. El método de intercambio de informacién mediante mensajes necesita siempre de un proceso emisor, de otro receptor asi como de la informacién que debe intercambiarse. inalmente se trata el problema del interbloqueo (deadlock), que aparece frecuentemente en los sistemas, multitarea y en los multiprogramados. Una situacion de interbloqueo se produce cuando dos o mas procesos entran en un estado que imposibilita a cualquiera de ellos salir del estado en que se encuentra. A dicha situacién se llega porque cada proceso adquiere algin recurso necesario para su operacion a la vez que espera aque se iberen otros recursos que retienen otros procesos, llegandose a una situacién que hace imposible que ninguno de ellos pueda continuar. Se analizan las cuatro condiciones que, de forma simultanea, se deben cumplir para que se produzca un interbloqueo y se proponen diferentes estrategias para manejar dicho problema,

Vous aimerez peut-être aussi