Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Facultad de la Enerǵıa, las Industrias y los Recursos Naturales no Renovables Carrera de Computación Sistemas Operativos Ensayo Resumen de la unidad 2 Luis Daniel Cobos Arévalo luis.cobos@unl.edu.ec 1150404984 Brigith Antonela Lojan Cabrera brigith.lojan@unl.edu.ec 1150040846 Gerardo Manuel Quizhpe Chocho gerardo.quizhpe@unl.edu.ec 1106078833 Loja, Ecuador Enero 2022 Índice general 1. Desarrollo 2 1.1. Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4. Metodoloǵıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5.1. Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5.2. Hebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5.3. Planificación de la CPU . . . . . . . . . . . . . . . . . . . 5 1.5.4. Sincronización de procesos . . . . . . . . . . . . . . . . . . 5 1.5.5. Interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Referencias 8 1 Caṕıtulo 1 Desarrollo 1.1. Abstract El presente trabajo contextualiza sobre los temas desde el caṕıtulo 3 has- ta el caṕıtulo 7; Los Caṕıtulos 3 a 7 describen los conceptos de proceso y de concurrencia como corazón de los sistemas operativos modernos. Un proceso es la unidad de trabajo de un sistema. Un sistema consta de una colección de procesos que se ejecutan concurrentemente, siendo algunos de ellos procesos del sistema operativo (aquéllos que ejecutan código del sistema) y el resto, procesos de usuario (aquéllos que ejecutan código del usuario). Estos caṕıtulos exponen los métodos para la sincronización de procesos, la comu- nicación interprocesos y el tratamiento de los interbloqueos. También se incluye dentro de este tema una explicación sobre las hebras.Para lo cual, se hizo un análisis profundo del libro Fundamentos de Sistemas Operativos, con el fin de comprender los hallazgos previos ante los temas a tratar. Como conclusiones se señala que un proceso es un programa en ejecución, el cual puede estar en uno de los siguientes estados: nuevo, preparado, en ejecución, en espera o terminado; un interbloqueo puede producirse sólo si se dan simultánea- mente en el sistema cuatro condiciones necesarias: exclusión mutua, retención y espera, ausencia de mecanismos de desalojo espera circular. Para prevenir los interbloqueos, podemos hacer que al menos una de las condiciones necesarias nunca llegue a cumplirse; y también tanto la planificación por prioridades como la planificación SFJ presentan el problema de que los procesos pueden sufrir bloqueos indefinidos, en el cual se hace uso de la técnica de envejecimiento que trata, precisamente, de evitar los bloqueos indefinidos. 1.2. Antecedentes Los primeros sistemas informáticos sólo permit́ıan que se ejecutara un pro- grama a la vez. Este programa teńıa el control completo del sistema y teńıa acceso a todos los recursos del mismo. Por el contrario, los sistemas informáti- 2 cos actuales permiten que se carguen en memoria múltiples programas y se ejecuten concurrentemente. Esta evolución requiere un mayor control y aisla- miento de los distintos programas y estas necesidades dieron lugar al concepto de proceso, que es un programa en ejecución. Un proceso es la unidad de trabajo en los sistemas modernos de tiempo compartido. Ahora, la mayoŕıa de los sistemas operativos modernos proporcionan carac- teŕısticas que permiten que un proceso tenga múltiples hebras de control. Los mecanismos de planificación de la CPU son la base de los sistemas ope- rativos multiprogramados. Mediante la conmutación de la CPU entre distintos procesos, el sistema operativo puede hacer que la computadora sea más pro- ductiva.En los sistemas operativos que las soportan, son las hebras del nivel del kernel, y no los procesos, las que de hecho son planificadas por el sistema operativo. Sin embargo, los términos planificación de procesos y planificación de hebras se usan indistintamente. Un proceso cooperativo es aquel que puede afectar o verse afectado por otros procesos que estén ejecutándose en el sistema. Los procesos cooperativos pueden compartir directamente un espacio de direcciones lógico (es decir, tanto código como datos) o compartir los datos sólo a través de archivos o mensajes. El pri- mer caso se consigue mediante el uso de procesos ligeros o hebras. En un entorno de multiprogramación, varios procesos pueden competir por un número finito de recursos. Un proceso solicita recursos y, si los recursos no están disponibles en ese momento, el proceso pasa al estado de espera. Es posible que, algunas veces, un proceso en espera no pueda nunca cambiar de estado, porque los recursos que ha solicitado estén ocupados por otros procesos que a su vez estén esperando otros recursos. Cuando se produce una situación como ésta, se dice que ha ocurrido un interbloqueo. Quizá la mejor forma de ilustrar un inter- bloqueo es recurriendo a una ley aprobada a principios del siglo XX en Kansas, que dećıa: “Cuando dos trenes se aproximen a la vez a un cruce, ambos deben detenerse por completo y ninguno arrancará hasta que el otro haya salido”. La mayoŕıa de los sistemas operativos actuales no proporcionan facilidades para la prevención de interbloqueos, aunque probablemente se añadan pronto dichos mecanismos. Los problemas de interbloqueo cada vez van a ser más habituales dadas las tendencias actuales: el gran número de procesos, el uso de programas multihebra, la existencia de muchos más recursos dentro de un sistema y la preferencia por servidores de archivos y bases de datos con transacciones de lar- ga duración, en sustitución de los sistemas de procesamiento por lotes.(Gagne, 2006) 1.3. Objetivos Recopilar información acerca de procesos, hebras, planificación de la CPU, sincronización de procesos y interbloqueos. Establecer una visión clara, lo más precisa posible, acerca de los temas abordados. 3 Implementar un mapa conceptual por cada caṕıtulo tratado 1.4. Metodoloǵıa Materiales: Computadora, entorno virtual de aprendizaje (EVA), libros virtuales, páginas web, herramienta Cmaptools. Técnicas: Observación, documentación, descripción. Métodos: Método anaĺıtico, método descriptivo, método deductivo, méto- do inductivo. Metodoloǵıa de desarrollo El presente trabajo consta de 2 fases: Realizar una búsqueda documental, orientada a recolectar, analizar art́ıcu- los y documentos de trabajo relacionados con procesos, hebras, planifica- ción de la CPU, sincronización de procesos y interbloqueos. Analizar la información obtenida en relación a los temas mencionados y plasmar los resultados obtenidos en un mapa conceptual. 1.5. Resultados 1.5.1. Procesos Mapa conceptual de Procesos Figura 1.1: Procesos 4 1.5.2. Hebras Mapa conceptual de Hebras o hilos Figura 1.2: Hebras o hilos 1.5.3. Planificación de la CPU Mapa conceptual de la Planificación de la CPU Figura 1.3: Planificación de la CPU 1.5.4. Sincronización de procesos Mapa conceptual de la sincronización de procesos 5 Figura 1.4: Sincronización de procesos 1.5.5. Interbloqueos Mapa conceptual de interbloqueos Figura 1.5: Interbloqueos 1.6. Conclusiones Un proceso es un programa en ejecución, el cual puede estar en uno de los siguientes estados: nuevo, preparado, en ejecución, en espera o terminado. El algoritmo de planificación SJF (shortest-jab-first, primero el trabajo más corto) es el más óptimo, ya que proporciona el tiempo medio de espera más corto. Sin embargo, la implementación del mecanismo de planificación 6 SJF es complicada, ya que resulta dif́ıcil predecir la duración de la siguiente ráfaga de CPU. Tanto la planificaciónpor prioridades como la planificación SFJ presentan el problema de que los procesos pueden sufrir bloqueos indefinidos, en el cual se hace uso de la técnica de envejecimiento que trata, precisamente, de evitar los bloqueos indefinidos. Los semáforos se pueden emplear para solucionar varios problemas de sin- cronización y se pueden implementar de forma eficiente, especialmente si se dispone de soporte hardware para ejecutar las operaciones atómicamente. Una hebra es un flujo de control dentro de un proceso. Un proceso multihebra contiene varios flujos de control diferentes dentro del mismo espacio de direcciones. Las ventajas de los mecanismo, multihebra son que proporcionan una ma- yor capacidad de respuesta al usuario, la compartición de recursos dentro del proceso, una mayor economı́a y la capacidad de aprovechar las ventajas ellas arquitecturas multiprocesador. Un interbloqueo se da cuando un proceso necesite de ciertos recursos y estos no estén disponibles en el momento ya que a su vez los esta usando otro proceso. Los programas multihebra plantean muchos retos a los programadores, entre los que se incluye la semántica de las llamadas al sistema fork() y exec(). Un interbloqueo puede producirse sólo si se dan simultáneamente en el sis- tema cuatro condiciones necesarias: exclusión mutua, retención y espera, ausencia de mecanismos de desalojo espera circular. Para prevenir los in- terbloqueos, podemos hacer que al menos una de las condiciones necesarias nunca llegue a cumplirse. 7 Referencias Gagne, S. G. (2006). Fundamentos de sistemas operativos (7.a ed.). España. 8 Desarrollo Abstract Antecedentes Objetivos Metodología Resultados Procesos Hebras Planificación de la CPU Sincronización de procesos Interbloqueos Conclusiones Referencias
Compartir