INSTITUTO TECNOLÓGICO SUPERIOR “JUAN MONTALVO”
TECNOLOGÍA EN INFORMÁTICA
DOCENTE: ING. BETTY PALACIOS
SISTEMAS OPERATIVOS 1 LOJA – ECUADOR OCTUBRE 2015 -Marzo 2016
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
INTRODUCCIÓN El computador ha producido muchos cambios en las actividades del ser humano: ha cambiado la forma de vida, la manera de hacer negocios de la mayoría de empresas, de una u otra forma el computador ha facilitado la forma de realizar las tareas cotidianas de cada ser humano. En otro ámbito el computador es una máquina y como tal no puede comunicarse con el ser humano, pero ¿cómo se comunican entre ellos? ¿Cómo logran interactuar? ¿Qué programa hace operar los circuitos del computador para que este pueda servir de herramienta de trabajo al ser humano. Para que los estudiantes de informática puedan entender cómo funciona internamente el computador, como el sistema operativo administra cada uno de los dispositivos del computador, cuales son las diferentes tareas que este realiza para realizar un simple cálculo o proceso, como interactúa con los dispositivos periféricos. El sistema operativo es una parte esencial dentro de un sistema informático. Administra los recursos del sistema y ofrece un entorno de programación y operación a los usuarios, permitiendo trabajar con la máquina de forma cómoda y eficaz. Es imprescindible que los estudiantes conozcan los conceptos fundamentales vinculados a los sistemas operativos, sus funciones, su estructura y su implementación. En esta sección se detalla el contenido de clase de esta guía para la materia Sistema Operativo I. El programa está organizado en cuatro unidades. En la primera unidad se estudian los antecedentes históricos, los conceptos fundamentes de sistemas operativos, funciones de los sistemas operativos. En la unidad dos se estudian conceptos básicos de los procesos, estados, relación entre procesos, etc. ; la unidad tres trata de la planificación de procesos a corto plazo, mediano plazo y largo plazo y algoritmos de planificación. La unidad cuatro analiza la sincronización de procesos, exclusión mutua, sincronización concurrencia, etc.
Contenido UNIDAD 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS .................................... 5 1.1.
¿QUÉ ES UN SISTEMA OPERATIVO?.......................................................... 6
1.2.
TIPOS DE SISTEMAS OPERATIVOS............................................................ 8
1.3.
HISTORIA DE LOS SO ............................................................................. 9
1.3.1 GENERACIÓN CERO (DÉCADA DE 1940) ............................................ 10 1.3.2 PRIMERA GENERACIÓN (1945-1955): BULBOS Y CONEXIONES ............... 10 1.3.3 SEGUNDA GENERACIÓN (1955-1965): transistores y sistemas de procesamiento por lotes (batch): .................................................................. 10 1.3.4 TERCERA GENERACIÓN (1965-1980): circuitos integrados y multiprogramación: .......................................................................................11 1.3.5 CUARTA GENERACIÓN (1980-1990): computadoras personales: ............. 12 1.3.6 QUINTA 1.4.
GENERACIÓN ......................................................................... 13
CARACTERÍSTICAS DE LOS SISTEMAS OPERATIVOS ................................. 13
AUTOEVALUACIÓN 1.5.
1 ......................................................................................14
CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS...................................... 16 2
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I Resumen de sistemas operativos .................................................................... 20 1.6.
FUNCIONES DE UN SISTEMA OPERATIVO .................................................. 22
1.7.
ESTRUCTURA DE UN SISTEMA OPERATIVO ................................................ 22
RESUMEN ....................................................................................................... 26 AUTOEVALUACIÓN 2 ........................................................................................26 UNIDAD 2. PROCESOS Y ADMINISTRACIÓN DEL PROCESADOR............................... 31 2.1.
CONCEPTO DE PROCESO ..........................................................................31
2.2.
ESTADO DE UN PROCESO......................................................................... 34
2.3.
TRANSICIONES DE ESTADOS.- Cambio de un estado a otro ........................ 36
AUTOEVALUACIÓN 3 ........................................................................................37 2.4.
BLOQUE DE CONTROL DE PROCESOS ........................................................ 38
2.5.
OPERACIONES ENTRE PROCESOS ............................................................. 39
2.6.
HILOS (thread) ...................................................................................... 41
2.6.1.
DIFERENCIAS ENTRE HILOS Y PROCESOS ........................................... 42
2.6.2.
FUNCIONALIDAD DE LOS HILOS ......................................................... 43
2.6.3.
ESTADOS DE UN HILO ....................................................................... 43
Cambio de estados ........................................................................................43 2.6.4.
VENTAJAS DE LOS HILOS CONTRA PROCESOS ..................................... 43
Por ejemplo, un procesador de palabras es multihilo, .......................................... 44 2.6.5.
BENEFICIOS DE LA PROGRAMACIÓN MULTIHILOS ................................ 44
2.6.6.
ADMINISTRACIÓN DE HILOS EN JAVA ................................................. 44
RESUMEN ....................................................................................................... 45 AUTOEVALUACIÓN 4 ........................................................................................45 UNIDAD 3. ALGORITMOS DE PLANIFICACIÓN DE PROCESOS ................................. 48 3.1.
PLANIFICACIÓN DE PROCESOS ............................................................. 49
3.2.
CONCEPTO DE PLANIFICACIÓN .................................................................49
3.3.
OBJETIVOS DE LA PLANIFICACIÓN ........................................................ 49
3.4.
CRITERIOS DE PLANIFICACIÓN ................................................................. 49
3.5.
NIVELES DE PLANIFICACIÓN ....................................................................50
3.5.1.
Planificador a corto plazo (PCP) .......................................................... 50
3.5.2.
Planificador a medio plazo (PMP) ......................................................... 51
3.5.3.
Planificador a largo plazo (PLP) ........................................................... 51
3
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I 3.6.
TIPOS DE PLANIFICACIÓN ......................................................................52
AUTOEVALUACIÓN 3.7.
5 ......................................................................................53
ALGORITMOS DE PLANIFICACIÓN ............................................................54
3.7.1. PLANIFICACIÓN FCFS, PRIMERO EN LLEGAR, PRIMERO EN SER ANTENDIDO (FIRST COME, FIRST SERVER) ................................................... 54 3.7.2.
SJF (SHORTEST-JOB-FIRST, PRIMERO EL TRABAJO MÁS CORTO) ......... 56
3.7.3.
PLANIFICACIÓN POR PRIORIDAD ...................................................... 59
Inanición y Envejecimiento ...................................................................... 60 Ejemplo 1: Planificación por Prioridades no Expropiativo suponiendo que todos llegan al mismo tiempo. Tiempo de llegada = 0, El de mayor prioridad es el que tiene el menor número................................................................................. 60 Ejemplo 2: Planificación por Prioridades expropiativo ...................................... 61 3.7.4.
PLANIFICACIÓN POR TURNO CIRCULAR O ROUND ROBIN (RR) ............ 62
3.7.5.
MLQ (MULTIPLE LEVEL QUEVES, VÍAS MÚLTIPLES) ............................. 64
3.7.6.
PLANIFICACIÓN CON MÚLTIPLES COLAS REALIMENTADAS ................... 65
RESUMEN ....................................................................................................... 66 AUTOEVALUACIÓN
6 ......................................................................................68
UNIDAD 4. COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS ...................... 73 4.1.
DEFINICIÓN DE SINCRONIZACIÓN DE PROCESOS .................................... 74
4.2.
RAZONES PARA SINCRONIZAR PROCESOS ............................................... 74
4.3.
COMUNICACIÓN ENTRE PROCESOS (CP) ................................................. 74
4.4.
COOPERACIÓN ENTRE PROCESOS ....................................................... 75
4.4.1
COMPETENCIA ENTRE PROCESOS...................................................... 75
4.5.
TIPOS DE COMUNICACION ................................................................. 76
4.6.
EXCLUSIÓN
MUTUA............................................................................... 77
4.6.1.
INTRODUCCIÓN .................................................................................77
4.6.2.
CONCEPTO DE EXCLUSIÓN MUTUA .................................................... 79
4.6.3.
SECCIÓN
4.6.4.
REQUISITOS PARA LA EXCLUSIÓN MUTUA ......................................... 81
4.7.
CRÍTICA ........................................................................... 79
SOLUCIÓN POR SOFTWARE ................................................................ 81
4.7.1.
ALGORITMO DE DEKKER ................................................................... 82
4.7.2.
ALGORITMO DE PETERSON ........................................................... 83
4.8.
SOLUCIONES 4
HARDWARE .......................................................................84
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I 4.9.
SEMÁFOROS .......................................................................................... 86
4.9.1.
TIPOS DE SEMÁFOROS ..................................................................... 87
4.9.2.
ALGORITMO
4.9.3.
FUNCIONAMIENTO
4.9.4.
Desventajas ................................................................................. 90
DE LOS SEMÁFOROS ................................................. 88 DE LOS SEMÁFOROS ......................................... 89
4.10.
MONITORES ........................................................................................ 91
4.11.
PASO DE MENSAJES ........................................................................... 92
UNIDAD 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. Introducción En esta unidad se estudia los conceptos básicos sobre sistemas operativos, los antecedentes históricos, las funciones de los sistemas operativos, los diferentes tipos o categorías de los mismos y un análisis de los sistemas operativos más comunes para los computadores personales. En este tema se incluyen una serie de consideraciones generales sobre los sistemas operativos que sirven de base para comprender mejor los contenidos de los restantes capítulos. En primer lugar, se define qué es un sistema operativo y se enumeran sus objetivos y servicios. En segundo lugar, se describe la evolución histórica de los sistemas operativos. En tercer lugar, se enumeran y describen los diferentes tipos de sistemas operativos. En cuarto lugar, se describen las llamadas al sistema. Finalmente, se analizan las principales estructuras que puede presentar el núcleo de un sistema operativo. Problematización Desconocimiento de los conceptos fundamentales vinculados a los sistemas operativos, sus funciones y su estructura. Productos esperados
Aplica los conceptos aprendidos para diagnosticar problemas que se presentan en el computador.
Competencias
Comprende conceptos de los sistemas operativos sus funciones, objetivos, servicios y componentes principales Conocer la evolución histórica de los sistemas operativos. Analiza los diferentes tipos de sistemas operativos.
5
Análisis Interpretación Representación Responsabilidad Puntualidad Creatividad
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1.1.
¿QUÉ ES UN SISTEMA OPERATIVO?
Un sistema operativo es un programa (software) encargado de poner en funcionamiento el ordenador, puesto que gestiona los procesos básicos del sistema. Así mismo se encarga de gestionar para el usuario el hardware. El sistema operativo comienza a trabajar en cuanto se enciende el ordenador y es completamente fundamental para que el usuario trabaje con él. Los sistemas operativos realizan tareas básicas y, sin ellos, el ordenador no funcionaría. Así, por ejemplo, el sistema operativo reconoce la conexión del teclado, organiza y ordena los archivos, controla la impresora, la pantalla, etc. Es como un policía de tráfico pues, se encarga de que los programas no interfieran entre ellos. Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema. En una definición informal es un sistema que consiste en ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos. A pesar de que todos nosotros usamos sistemas operativos casi a diario, es difícil definir qué es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan dos funciones diferentes. Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y complejidades del hardware. Administrar eficientemente los recursos del computador. Sobre el sistema operativo se instalan los programas que vaya a usar el usuario. Los programas, también llamados aplicaciones son muy diversos. Ejemplo: El procesador de textos Word, reproductores de música, etc. El objetivo primario de un Sistema Operativo es: Optimizar todos los recursos del sistema para soportar los requerimientos. A los efectos de situar a los S. O. en el conjunto del software para computadoras, podemos clasificar a este de la siguiente manera: -
Programas desistema: Controlan la operación de la computadora en sí. Programas de aplicación: Resuelven problemas para los usuarios.
En este contexto, el Sistema Operativo es el programa fundamental de todos los programas de sistema. El S. O. protege y libera a los programadores de la complejidad del hardware, colocándose un nivel de software por sobre el hardware para:
Controlar todas las partes del sistema. Presentar al usuario una interfaz o máquina virtual. 6
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
El esquema típico de un sistema de cómputos incluye:
Sistema bancario, reservaciones en una línea aérea, juegos,
SISTEMA DE CÓMPUTO
ESQUEMA TÍPICO DE UN
Programas de
Programas de
-
Hardware
Compiladores, editores, intérpretes de comandos. Sistema Operativo. Lenguaje de máquina. Microprogramación. Dispositivos físicos
Recursos administrados por el S.O.
7
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1.2.
TIPOS DE SISTEMAS OPERATIVOS:
a) Sistemas operativos de Lotes Los Sistemas Operativos por lotes, procesan un conjunto de trabajos (con características afines) al mismo tiempo, es decir, con poca o ninguna interacción entre los usuarios y los programas en ejecución. Estos sistemas no son convenientes para el desarrollo de programas de poco tiempo de respuesta sino que están diseñados para conjuntos de programas de largos tiempos de ejecución los cuales no pueden ser interrumpidos. Un ejemplo de estos lotes pueden ser: análisis estadísticos, nóminas de personal, etc.). Los sistemas que utilizan esta variante son sistemas de objetivo específico, con un fin común, son por ejemplo sistemas capaces de controlar ciertas maquinarias y ciertas tareas que no pueden ser interrumplibles. Es por ello que el usuario no puede interactuar con el sistema cuando hay un lote ejecutándose. Algunos ejemplos de Sistemas Operativos de Procesamiento por Lotes son: el SCOPE, el cual está orientado a procesamiento científico pesado, y el EXEC II, orientado a procesamiento académico. b) Sistemas operativos de multiprogramación Soporta la ejecución de dos o más trabajos activos al mismo tiempo. Su objetivo es tener varias tareas en la memoria principal. Las características de un Sistema operativo de multiprogramación son las siguientes: • Mejora productividad del sistema y utilización de recursos • Multiplexa1 recursos entre varios programas • Soporta múltiples usuarios • Requiere validación de usuario para seguridad y protección Estos sistemas operativos se caracterizan por tener múltiples programas activos, compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos. c) Sistemas de tiempo compartido Estos sistemas permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario. • Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S; son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Las características de los sistemas operativos de tiempo compartido son:
1
Multiplexación es la combinación de dos o más canales de información en un solo medio de transmisión usando un dispositivo llamado multiplexor 8
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
• Dan la ilusión de que cada usuario tiene una máquina para sí • La mayoría utilizan algoritmo de reparto circular • Los programas se ejecutan con prioridad rotatoria que se incrementan con la espera y disminuye después de concedido el servicio • Gestión de memoria proporciona protección a programas residentes d) Sistemas de tiempo real Los sistemas operativos de tiempo real son aquellos en donde no tiene importancia el usuario, sino los procesos. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. • Son construidos para aplicaciones muy específicas, tales como: tráfico aéreo, bolsas de valores, etc. Algunos campos de aplicación son los siguientes: Control de trenes Telecomunicaciones Sistemas de fabricación integrada Control de edificios, etc. Algunas características de los sistemas operativos de tiempo real son: Su objetivo es proporcionar rápidos tiempos de respuesta Procesa ráfagas de miles de interrupciones por segundo sin perder algún proceso Poco movimiento de programas entre almacenamiento secundario y memoria Proceso de mayor prioridad expropia recursos e) Sistemas operativos distribuidos Estos sistemas permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores; este conjunto de procesadores puede estar en un equipo o en diferentes, en este caso es transparente para el usuario. Sus características de los sistemas operativos distribuidos son: • Colocación de sistemas autónomos capaces de comunicación y cooperación mediante el hardware y software. • Proporcionan medios para la compartición global de recurso • Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos. f)
Sistemas operativos de red
Son aquellos que mantienen a dos o más computadoras unidas a través de algún medio de comunicación, con el objetivo de poder compartir los diferentes recursos y la información del sistema. • Por lo regular son utilizados en: Novell Netware, Personal Netware, Lan Manager, etc.
1.3.
HISTORIA DE LOS SO
Los S.O han estado relacionados históricamente con la arquitectura de las computadoras en las cuales se ejecutan. 9
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1.3.1 GENERACIÓN CERO (DÉCADA DE 1940): Los primeros sistemas computacionales no poseían sistemas operativos. Para los usuarios eran complejos por que trabajaban con lenguaje máquina. Todas las instrucciones eran codificadas manualmente.
1.3.2 PRIMERA GENERACIÓN (1945-1955): BULBOS Y CONEXIONES: Los sistemas operativos de los años cincuenta fueron diseñados para que sean más ágiles. Antes de que los sistemas fueran diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenía control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y leía e iniciaba el trabajo siguiente. Al inicio de los 50's esto había mejorado un poco con la introducción de tarjetas perforadas (las cuales servían para introducir los programas de lenguajes de máquina). Se crearon máquinas suficientemente confiables las cuales se instalaban en lugares especialmente acondicionados, aunque sólo las grandes universidades y las grandes corporaciones o bien las oficinas del gobierno se podían dar el lujo de tenerlas. Para poder ejecutar un trabajo (programa), tenían que escribirlo en papel (lenguaje ensamblador) y después se perforaría en tarjetas. Enseguida se llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigiría a la impresora y desprendería la salida y la llevaría al cuarto de salida, para que la recogiera el programador. Eran más complejos controlar los componentes. Cuando se ejecutaba alguna tarea, ésta tenía control total de la máquina. Al terminar cada tarea, el control era devuelto al sistema operativo, el cual limpiaba, leía e iniciaba la siguiente tarea.
1.3.3 SEGUNDA GENERACIÓN (1955-1965): transistores y sistemas de procesamiento por lotes (batch): En los años sesenta aparecen los S.O para sistemas compartidos con: Desarrollo de Sistemas Operativos compartidos con multiprogramación y principios de multiprocesamiento. Se desarrollaron los sistemas de tiempo compartido. Surgieron sistemas de tiempo real.
10
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Sistemas de Tiempo Real: Básicamente los sistemas de tiempo real se definen como sistemas informáticos que tienen la capacidad de interactuar rápidamente con su entorno físico, el cual puede realizar funciones de supervisión o control para su mismo beneficio. Todos los sistemas de tiempo real tienen la facultad de ejecutar actividades o tareas en de intervalos de tiempo bien definidos. Todas las tareas son ejecutadas inmediatamente en una forma concurrente, esto es para sincronizar el funcionamiento del sistema con la simultaneidad de acciones que se presentan en el mundo físico. Tiempo real no es necesariamente sinónimo de rapidez; un sistema de tiempo real garantiza que el rendimiento temporal del sistema es el suficiente para resolver el problema al que está dedicado. Multiprogramación: varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, cambiando el procesador rápidamente de un trabajo a otro. Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para incrementar el poder de procesamiento. El S.O. asigna los dispositivos correspondientes según los requerimientos y las disponibilidades. Método de programación: ensamblador y lenguajes de alto nivel (FORTRAN) sobre tarjetas perforadas. Aparece UNIX capaz de hacer multitarea y multiprogramación, no era tan amigable entre usuario – máquina.
1.3.4 TERCERA GENERACIÓN (1965-1980): circuitos integrados y multiprogramación: Los sistemas operativos de esta generación eran de modos múltiples, tiempo compartido, procesamiento en tiempo real y multiprocesamiento. Comienza con la introducción de computadoras IBM Sistema 360 e introducen su sistema operativo para ese equipo (OS/360).A partir de esta aparición de máquina surgieron otros sistemas operativos, medianos y grandes; OS/MVT para los sistemas 360 grandes, CP-67/CNOS para el poderoso sistema 360/67 de tiempo compartido, ISS para el 360/67,VMOS de RCA, KRONOS de CD para su serie 6000 Difusión de la multiprogramación: -
Partición de la memoria en porciones, con trabajos distintos en c/u de ellas. Aprovechamiento del tiempo de espera consecuencia de operaciones de E/S, para utilizar la CPU para otros procesos. Son sistemas de modos múltiples: deben soportar sistemas de propósitos generales: son grandes y complejos pero muy poderosos. Interponen una capa de software entre el usuario y el hardware. 11
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
-
Aparecen los lenguajes de control de trabajos: necesarios para especificar el trabajo y los recursos requeridos. Aparecen los sistemas de tiempo real: requieren tiempos de respuesta muy exigentes, especialmente para usos industriales o militares.
Ejemplos: OS/360, MULTICS, UNIX. 1.3.5 CUARTA GENERACIÓN (1980-1990): computadoras personales: Aparición de software amigable con el usuario: destinado a usuarios no profesionales y con una interface grafica muy desarrollada. Desarrollo de sistemas operativos de red y sistemas operativos distribuidos. Sistemas operativos de red:
Los usuarios están conscientes de la existencia de varias computadoras conectadas. C/ maquina ejecuta su propio S.O. local. Son similares a los S.O. de un solo procesador pero con el agregado de: Controlador de interfaz de la red y su software de bajo nivel. Software para conexión y acceso a archivos remotos, etc.
Sistemas operativos distribuidos:
Aparece ante los usuarios como un S.O. de un solo procesador, aun cuando de soporte a varios procesadores. Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se encuentran sus archivos, Lo debe administrar el s. o. automáticamente. Deben permitir que un programa se ejecute mediante varios procesadores a la vez, maximizando el paralelismo. Aparición de emuladores de terminal para el acceso a equipos remotos desde computadoras personales (PC). Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos. El S. O. crea un ambiente de trabajo según el concepto de máquina virtual, que lo aísla del funcionamiento interno de la máquina. Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación.
12
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1.3.6 QUINTA GENERACIÓN Son los sistemas que permiten el manejo de interfaces gráficas (GUI´S), POO (Programación Orientada a Objetos ) con JAVA, DELPHI, etc Ejemplos: Windows 95, Windows 98, Windows NT, Linux, etc.
1.4.
CARACTERÍSTICAS DE LOS SISTEMAS OPERATIVOS.
Principales características de los S.O.: Definir la “Interfaz del Usuario”.
Compartir el hardware entre usuarios. Permitir a los usuarios compartir los datos entre ellos. Planificar recursos entre usuarios. Facilitar la entrada/salida. Recuperarse de los errores. Principales recursos administrados por los S.O: - Processadores. - Almacenamiento. - Dispositivos de E/S. - Datos. Los S.O son una interfaz con: - Operadores. - Programadores de aplicaciones. - Programadores de sistemas (administradores del S.O.). - Programas. - Hardware. - Usuarios. Hoy día los sistemas operativos son siempre multiusuario y multitarea. ¿qué significa esto? 13
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Multiusuario: Un sistema operativo es multiusuario cuando puedes tener configurados en él varios usuarios distintos. Por ejemplo en casa, un usuario para ti, otro para tu hermano y otro para tus padres. Multitarea: Un Sistema operativo es multitarea cuando puede ejecutar varios programas a la vez. Está claro que Windows lo es ya que, por ejemplo, mientras escribes un texto en el Word, puedes estar escuchando música y navegando por Internet.
AUTOEVALUACIÓN 1 1. Defina que es sistema operativo. ………………………….…………………………………………………………………………………….. ……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………… 2. Señale tres funciones de los Sistemas Operativos. ……………………………………….…………………………………………………………………………………….. ……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………… 3. Mencione tres ejemplos de sistemas operativos. ………………………….…………………………………………………………………………………….. ………………………………………………………………………………………………………………… 4. Elaborar un cuadro sinóptico de las generaciones de los Sistemas Operativos. ………………………….…………………………………………………………………………………….. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………….…………… ……………………………………………………………………….. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………….…………… ……………………………………………………………………….. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………… ………………………….…………………………………………………………………………………….. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………….…………… ……………………………………………………………………….. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………….…………… ……………………………………………………………………….. 14
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… …………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 5. Cite las dos características que crea que mejor definen las siguientes generaciones de sistemas operativos: a) Sistemas por lotes:……..…………………………………………………………………………….. ………………………………………………………………………………………………………………… b) Sistemas de tiempo compartido ………………………………………………………………….… ………………………………………………………………………………………………………………… c) Sistemas operativos actuales para computadores personales. ……………………………….. ………………………………………………………………………………………………………………… 6. ¿Cuál de los siguientes es el Sistema Operativo que no maneja Interfaz Gráfica? a. Windows 2000 b. Mac OS c. Unix d. Windows XP 7. ¿Cuál de las siguientes es una función del Sistema Operativo? a. Administrar los recursos de la computadora b. Organizar la información que se almacena en la computadora c. Ser una interfaz entre la computadora y el usuario d. Todas las anteriores 8. ¿Qué es un Sistema Operativo? a. Programa especial integrador, administrador y gestor entre el hardware y el software b. Sistema que permite hacer algunas tareas de mantenimiento c. Todas son correctas d. Ninguna es correcta 9. ¿Cuál de los siguientes no es un sistema operativo? a. Cobol b. Linux c. Windows XP d. MS-DOS Consultar 1.
Qué diferencia hay entre un sistema operativo de 32 o 64 bits. 15
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………….…………… ……………………………………………………………………….. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………….…………… ……………………………………………………………………….. …………………………………………………………………………………………………………………
1.5.
CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
Los Sistemas Operativos por sus servicios, se clasifican por:
1. Sistemas operativos monousuario Sólo pueden atender a un único usuario, que es el que haya iniciado sesión en el sistema. Esto ocurre en el sistema operativo DOS e incluso en el actual Windows XP y sus predecesores.
16
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
2. Sistemas operativos multiusuario Pueden atender simultáneamente las peticiones de dos o más usuarios, que comparten los recursos del sistema informático al que se conectan. Este tipo de sistemas se emplean especialmente en redes, ya que cada usuario necesita de un terminal independiente para conectarse con el equipo que tiene instalado el sistema. Esto ocurre con Unix, Linux o la familia Windows 2003 y predecesores. 3. Sistemas operativos monotarea Sólo pueden manejar un proceso, es decir , las tareas deben ejecutarse una tras otra. Por ejemplo, el sistema DOS es monotarea, al no poder ejecutar varias aplicaciones simultáneamente, aunque existieron varios intentos de añadirle esta capacidad. 4. Sistemas operativos multitarea La computadora puede procesar varias tareas al mismo tiempo. Podemos distinguir: Conmutación de contextos: Es un tipo simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero sólo se procesa la que se encuentra en primer plano, que es la que está utilizando el usuario. Cuando el usuario cambia de aplicación , se produce un intercambio entre ambas tareas, pasando la aplicación activa a segundo plano, efectuándose un almacenamiento del estado en el que se encuentra. Por otro lado la aplicación que estaba en segundo plano pasa a reanudar su procesamiento recuperando la situación en la que se había detenido. Multitarea cooperativa: Las tareas en segundo plano reciben tiempo de proceso durante los tiempos muertos de la tarea que se encuentra en primer plano. Esto ocurre cuando dicha aplicación espera información del usuario para poder continuar. Multitarea de tiempo compartido: Cada tarea recibe un tiempo de procesamiento durante una fracción de segundo. Se puede establecer un orden de prioridades entre las tareas o simplemente seguir un orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador , las operaciones de multitarea en tiempo compartido parecen ser simultáneas. Todos los sistemas operativos actuales (Linux, toda la familia Windows, Mac OS, OS/2 de IBM¼) utilizan esta técnica. En concreto, el sistema operativo Windows, y alguno de los mencionados anteriormente, crean un entorno de ejecución propio e independiente para cada tarea, como si cada aplicación corriese en una máquina independiente llamada máquina virtual. Cada una de de estas máquinas virtuales posee sus correspondientes dispositivos virtuales, que representan a cada uno de los recursos del ordenador (memoria, disco duro, impresora). Por ejemplo, cuando un programa ejecuta la instrucción de impresión, se realiza sobre la impresora virtual de su máquina virtual. Esta petición es recibida por el sistema operativo, que está coordinando todos los dispositivos virtuales y lanza el comando sobre la impresora real. Esto facilita enormemente la programación de aplicaciones, ya que se realiza sobre dispositivos virtuales, siendo el sistema operativo el encargado final de realizar la operación. 5. MonoProceso 17
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
El ordenador en el cual se utiliza el sistema operativo solo tiene un procesador y el sistema operativo solo es capaz de manejar un procesador. Todos los procesos del sistema pasaran por dicho procesador Aunque el sistema pueda denominarse multitarea y multiusuario, y de hecho varias personas puedan trabajar con el mismo equipo, teniendo este un solo procesador, realmente los procesos que es capaz de ejecutar el procesador a la vez, es solo uno, aunque se reparte el tiempo de uso del procesador entre todos los procesos activos del sistema, simulando un multiproceso. 6.
MultiProceso
Si el sistema informático cuenta con dos o más procesadores, existen sistemas operativos capaces de gestionar varios procesadores a la vez, de esta forma se aprovecha mejor la capacidad del equipo en la ejecución de procesos entre varios procesadores, la utilización de los procesadores por parte del sistema puede ser de dos tipos: MultiProceso Simetrico: En el cual el sistema operativo utiliza los procesadores por igual alternando el uso de los mismos de forma simultánea. MultiProceso Asimetrico: El sistema reparte las tareas que están realizando los procesadores, determinando que procesos ejecuta cada procesador. Ejemplos de Sistemas Operativos: Sistemas operativos hay muchos, aunque mucha gente piensa que sólo existe el famoso Windows. Veamos algunos: Windows (en sus diferentes versiones): Windows XP, Windows Vista. Es un sistema operativo propiedad de la empresa MicroSoft que es privativo (de pago).
18
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1. Mac OS: Es un sistema operativo propiedad de la empresa Apple, (el creador del Ipod) que es privativo.
2. Unix: Sistema operativo empleado por las supercomputadoras y ordenadores de grandes empresas, propiedad de la empresa AT&T y es privativo. Es un sistema muy seguro. 3. Linux: Sistema operativo que está en alza, completamente gratuito. Cualquiera lo puede modificar según sus necesidades. Además, es bastante seguro.
19
Resumen de sistemas operativos.
Sistema Windows Window Windo operativo 7 s Vista ws XP
Creador
Microsoft
Año de primera distribuci ón
2009
Windo Mac OS X ws 2000
Microsof Microsof Microsof t t t
2006
2001
2000
Mac OS
Debian Fedora SUSE Haiku GNU/Lin (Linux) Linux ux
Mageia FreeBSD
Apple
Apple
Haiku Project
Universid Theo de Mageia ad de Raadt California
2001
1984
2009
1993
2003
1994
2010
1993
1996
9.2.2
R1 Alpha 3
6.0 Squeeze
16
12.1
1
8.2
4.9
Proyecto Proyecto Debian Fedora
SuSE
OpenBS D
Aspectos generals Última versió n estable
Costo
6.1 build 6.0 build 5.1 build 5.0 build Mac OS X v10.8.2 7601 6002 2600 2195 Service Service Service Service ("Mountain Lion") Pack 1 Pack 2 Pack 3 Pack 4 U$S 199.99 (Home Premium) 299.99 (Profession al) 319.99
U$S 90 (Home Basic) 179 (Home Premium ) 229
143,526 € $2 152.89 MX (Home) 217,593 € $3
?
Gratuit o 19,99€ o hasta preinstalad Gratuito Gratuito Gratuito Gratuito Gratuito Gratuito Gratuito 7.5.5, o 9.2 cuesta 15,60 € para
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I (Ultimate) (Busines 263.895 s) 349 MX(Pro) (Ultimat e)
Licencia
Tipo de usuario
21
No Libre
No Libre Parcialmen No Libre No Libre No Libre te software libre
dueño s de Mac OS X
No Libre
Libre: Libre: Licencia Libre: GPL GPL MIT
Hogar, Hogar, diseño, Hogar, ciencia, Hogar, ciencia, Hogar, Hogar, Hogar, Hogar, ciencia, negocio diseño, negocios Negocio negocios, s negocios y negocios negocios negocios y s negoci , servidores redes y redes y redes redes , os servidor y redes servidor es y es y redes redes
Libre: GPL
Hogar, ciencia, negocio s , servidor es y redes
Libre: GPL
Libre: BSD
Libre: BSD
Hogar, ciencia, negocio Servidore Servidore s s, ciencia s, ciencia , servidor es y redes
1.6.
FUNCIONES DE UN SISTEMA OPERATIVO Una de las principales funciones del S. O. es ocultar toda esta complejidad y brindar al programador un conjunto más conveniente de instrucciones para trabajar. El S.O. se ejecuta en modo central o modo de supervisión, con máxima prioridad y generalmente con protección por hardware. Los compiladores, editores y demás programas se ejecutan en modo usuario. El S. O. es la serie de programas, dispuestos ya sea en el software o en la memoria fija, que hacen al hardware utilizable. Los S. O. ponen el “poder computacional básico” del hardware convenientemente a disposición del usuario, pero consumen parte de ese poder computacional para funcionar. Los S. O. son, en primer lugar, administradores de recursos, siendo el recurso primario el hardware del sistema. Gestionan la memoria RAM de los distintos procesos. Un proceso es simplemente, un programa en ejecución, es decir, una tarea que realiza el ordenador. Gestiona el almacenamiento de información de forma permanente en unidades de disco (disco duro, disquetes, pen drives, etc). Gestiona el sistema de archivos que nos permite crear, eliminar y manipular archivos y carpetas (también llamadas directorios). Crea mecanismos de protección para evitar el acceso de intrusos a recursos o servicios no autorizados. Dispone de un intérprete de comandos. Es un recurso que permite al usuario comunicarse con el sistema operativo a través de órdenes o comandos que son escritos. También se llama consola o shell. El Sistema Operativo gestiona los sistemas de entrada/salida, es decir, controla los diferentes dispositivos conectados al ordenador (monitor, impresora, etc) al procesador siguiendo un orden y administrando los tiempos que lleva cada tarea.
La parte más importante del Sistema Operativo se llama núcleo o kernell. Asigna tareas al procesador siguiendo un orden y administrando los tiempos que lleva cada tarea.
1.7.
ESTRUCTURA DE UN SISTEMA OPERATIVO
La estructura interna de los sistemas operativos pueden ser muy diferentes, ya que se debe tener en cuenta las metas de los usuarios (fácil uso, confiable, rápido, etc.) y las del sistema (fácil de diseñar, implementar y mantener, eficiente, etc.). Veremos 3 posibles diseños del sistema. 1. Sistema Monolítico Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde cualquier procedimiento puede invocar a otro. Ejemplos de estos sistemas pueden ser MS-DOS o Linux (aunque incluye algo de capas). Es importante tener en cuenta que ningún sistema es puramente de un tipo. Características
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Es muy común: no existe estructura propiamente dicha o es mínima. El S. O. es una colección de procedimientos que se pueden llamar entre sí. Cada procedimiento tiene una interfaz bien definida en términos de parámetros y resultados. Para ejecutar los servicios del S. O. (llamadas al sistema): - Se solicitan colocando los parámetros en lugares bien definidos (registros o pilas) - Se ejecutan una instrucción especial de trampa: llamada al núcleo o llamada al supervisor. - Se transfiere el control al S.O. - El S.O. examina los parámetros de la llamada para determinar cuál de ellas se desea realizar. - El S.O. analiza una tabla que contiene en la entrada “k” un apuntador al procedimiento que realiza la “k-énesima” llamada al sistema: identifica al procedimiento de servicio de llamado La llamada al sistema termina y el control regresa al programa del usuario.
23
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
2. Sistema en capas El diseño se organiza en una jerarquía de capas, donde los servicios que brinda una capa son consumidos solamente por la capa superior. La capa 0 es del Hardware y la N es la de los procesos de Usuario. Estos sistemas tienen como ventaja que son modulares y la verificación se puede hacer a cada capa por separado (son más mantenibles). Sin embargo el diseño es muy costoso y es menos eficiente que el sistema monolítico ya que pierde tiempo pasando por cada capa.
Capa 0: 3. Trabaja con la asignación del procesador. 4. Alterna entre los procesos cuando ocurren las interrupciones o expiran los cronómetros. 5. Proporciona la multiprogramación básica. Capa 1: Administra la memoria. Asegura que las páginas (porciones de memoria) requeridas de los procesos lleguen a memoria cuando fueran necesarias. Capa2: Administra la comunicación entre cada proceso y la consola del operador Por sobre esta capa, cada proceso tiene su propia consola de operador. Capa 3: Controla los dispositivos de e / s y almacena en buffers los flujos de información entre ellos. Por sobre la capa 3 cada proceso puede trabajar con dispositivos abstractos de E/ S en vez de con dispositivos reales. Capa 4: Aloja los programas del usuario. Los programas del usuario no tienen que preocuparse por el proceso, memoria, consola o control 24
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
de E/ S. Capa 5: Localiza el proceso operador del sistema. Presenta una estructura en anillos concéntricos, siendo los interiores los privilegiados. Un procedimiento de un anillo exterior, para llamar a un procedimiento de un anillo interior, debe hacer el equivalente a una llamada al sistema. 3. Modelo cliente-servidor Una tendencia de los sistema operativos modernos es la de trasladar el código a capas superiores, y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. El punto de vista usual es el implantar la mayoría de las funciones del sistema operativo como procesos de usuario. Para solicitar un servicio, como la lectura de un bloque de cierto fichero, un proceso de usuario (denominado en este caso proceso cliente) envía la solicitud a un proceso servidor, que realiza el trabajo y devuelve la respuesta.
En este modelo, que se muestra en la figura 5.3, lo único que hace el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a ficheros, servicio a procesos, servicio a terminales o servicio a la memoria; cada parte es pequeña y controlable. Además, puesto que todos los servidores se ejecutan como procesos en modo usuario, y no en modo núcleo, no tienen acceso directo al hardware. En consecuencia, si hay un error en el servidor de ficheros éste puede fallar, pero esto no afectará en general a toda la máquina. Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptación para su uso en sistemas distribuidos. Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el mensaje se gestiona de forma local, en su máquina, o si se envía por medio de una red a un servidor en una máquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se envió una solicitud y se recibió una respuesta.
25
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
RESUMEN. Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema. Un sistema operativo está formado por varios programas que en conjunto presentan al usuario una vista integrada del sistema, los componentes principales de un sistema operativo son los siguientes módulos: Manejo de procesos, Manejo de E/S, Manejo de Memoria y Manejo del Sistema de Archivos. Existen sistemas operativos pagados y gratuitos, entre los pagados tenemos La familia Windows, MAC OS, etc. y Debian, Fedora, Suse, Mageia, etc. son libres. Los sistemas operativos han ido evolucionando generación, tras generación, cuando apareció el primer computador no tenía sistema operativo, luego apareció el sistema operativo por lotes, de multiprogramación, de tiempo real, tiempo compartido, etc. y actualmente todos los sistemas operativos son de multitarea y multiusuario.
AUTOEVALUACIÓN 2. 1. Los Sistemas Operativos, según su disponibilidad se clasifican en: a) b) c) d) e)
Hardware y software Pagados y libres Núcleo y usuario Todas son correctas Ninguna es correcta
2. Dentro de los Sistemas Operativos comerciales, encontramos: a) Son aquellos que tenemos uso libre de sus bondades incluidos en sus programas 26
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
b) Son aquellos que tenemos uso a través de una pago para utilizar las bondades de sus programas c) Todas son correctas 3. Dentro de los sistemas operativos existen funciones principales como ser: a) b) c) d) e) f) g) h)
Gestión de entradas y salidas Gestión de archivos Gestión de información Gestión de aplicaciones Gestión de memoria Gestión de usuarios Todas son correctas Ninguna es correcta
4. Complete: Un sistema multitarea: a) Permite que varios usuarios puedan ejecutar programa a la vez. b) Permite ejecutar diversos programas al mismo tiempo. c) Permite que un mismo ordenador pueda tener varios microprocesadores que deben utilizarse simultáneamente. d) Nada de lo anterior.
5.
De las siguientes alternativas, que representa el concepto de Kernel es: a) Un proceso almacenado en memoria principal. b) Un software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. c) Una llamada al sistema d) Un sistema operativo de de tiempo compartido
6. Complete: Un sistema multiusuario: a) Permite que varios usuarios puedan ejecutar programa a la vez. b) Permite ejecutar diversos programas al mismo tiempo. c) Permite que un mismo ordenador pueda tener varios microprocesadores que deben utilizarse simultáneamente. d) Nada de lo anterior. 7. Que es un Sistema Monolítico? Un sistema operativo perfecto Un sistema operativo único 27
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I Un sistema operativo donde no existe una estructura Un sistema de un procedimiento único
8. Explique ¿Para qué sirve un sistema operativo?. ………………………………………………………………………………………………………………………………………………..... ………………………………………………………………………………………………………………………………………………..... ………………………………………………………………………………………………………………………………………………..... ………………………………………………………………………………………………………………………………………………..... ……………………………………………………………………………………………………………………………………………….....
9. Señale la diferencia entre sistema monolítico y sistema por capas. ………………………………………………………………………………………………………………………………………………..... ………………………………………………………………………………………………………………………………………………..... ………………………………………………………………………………………………………………………………………………..... ………………………………………………………………………………………………………………………………………………..... ……………………………………………………………………………………………………………………………………………….....
28
Completar el mapa conceptual de la clasificaciรณn de los sistemas operativos
Bibliografía Específica
Fundamentos de Sistemas Operativos. CANDELA, Santiago. Disponible en: .http://books.google.com.ec/books?id=fRK3lbTrNy4C&pg=PA236&hl=es &source=gbs_selected_pages&cad=3#v=onepage&q&f=false PÉREZ, Fede. Fundamentos de los S.O. Disponible en: http://www.disa.bi.ehu.es/spanish/ftp/material_asignaturas/Sistemas_I nformaticos/Transparencias/Fundamentos%20de%20Sistemas%20Oper ativos.pdf Definición de Sistemas Operativos. Disponible en: http://iesvillalbahervastecnologia.files.wordpress.com/2009/09/sistemas -operativos.pdf Sistemas Operativos. Disponible en: http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/co mputot.PDF LA RED MARTINEZ, David Luis. Agentina. Disponible en: http://campus.dokeos.com/courses/1017/document/libro.pdf?cidReq=10 17 ROMERO, Gustavo Historia de los Sistemas Operativos, 12 de febrero de 2009. Disponible en: http://geneura.ugr.es/~gustavo/aco/teoria/historia/historia.pdf Sistema operativo, 2003 -10 -29. Disponible en: http://html.rincondelvago.com/sistemas-operativos_36.html Generación de los Sistemas Operativos, 15 de Marzo de 2004. Disponible en: http://148.204.211.134/polilibros/portal/Polilibros/P_terminados/SISTE MAS%20_OPERATIVOS/UNIDAD2/2.3.2.HTM Clasificación de los Sistemas Operativos. 10 de Diciembre de 2009. Disponible en: http://www.pacojesus.com/index.php?option=com_content&view=article &id=8:clasificacion-de-los-sistemas-operativos&catid=7:sistemaoperativo Clasificación de los Sistemas operativos. Disponible en: http://html.rincondelvago.com/clasificacion-de-sistemas-operativos.html Estructura de un Sistema Operativo, 29 de Agosto de 2011. Disponible en: http://www.fing.edu.uy/tecnoinf/cursos/so/material/teo/so03estructura_sist_oper.pdf Estructura sistemas operativos. Disponible en: http://www.mflor.mx/materias/comp/cursoso/sisope1.htm
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
UNIDAD 2. PROCESOS Y ADMINISTRACIÓN DEL PROCESADOR. Introducción La gestión de procesos es la tarea fundamental de cualquier sistema operativo moderno. El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de información entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronización de procesos. Para alcanzar estos objetivos, el sistema operativo mantiene una estructura de datos para cada proceso que describe su estado y los recursos que posee y que permite al sistema operativo imponer un control sobre los procesos. En un monoprocesador multiprogramado, debe intercalarse en el tiempo, la ejecución de múltiples procesos. En un multiprocesador, no sólo puede intercalarse la ejecución sino que los procesos se pueden ejecutar simultáneamente. Ambos, intercalación y ejecución simultánea, son formas de concurrencia y llevan a una multitud de problemas complejos, tanto para el programador de aplicaciones como para el sistema operativo. El sistema operativo debe llevar a cabo la función de planificar y ofrecer mecanismos para compartir y sincronizar procesos. En esta unidad en primer lugar se trata la descripción de los procesos, es decir, su definición, tipos y estados. En segundo lugar se describen las estructuras de datos y las principales tareas del sistema operativo asociadas con el control de procesos. Además se describen los diferentes niveles de planificación existentes. Problematización Dificultad para identificar un proceso, los estados en que se pueden encontrar, y desconocimiento de la importancia de conocer los diferentes criterios de planificación para la ejecución de un proceso y aprovechar al máximo los recursos del sistema. Productos esperados
Diferencia los procesos que se ejecutan en el computador y como el Sistema Operativo los ejecuta para aprovechar los recursos del sistema.
Competencias Comprende qué es un proceso, sus ventajas e inconvenientes del modelo de proceso monohilo multihilo. Conoce cuáles son los principales estados en que puede encontrarse un proceso. Conoce las características del modelo de proceso multihilo. Conoce y distingue los diferentes niveles de planificación de procesos existentes en un sistema operativo
Análisis Interpretación Representación Responsabilidad Puntualidad Creatividad
2.1. CONCEPTO DE PROCESO Programas.- Colección de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no volátiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente estático. 31
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Multitarea: la capacidad que tienen los sistemas operativos de ejecutar de forma simultánea varios procesos Multiprocesamiento: un computador que tiene varios procesadores. Multiprogramación: incluye además de la posibilidad de multitarea, la capacidad de la gestión de memoria y de los ficheros. En un sistema con multiprogramación el procesador ejecuta cada programa durante un periodo de tiempo simultáneamente muy corto, para luego conmutar al siguiente programa; si somos estrictos en el concepto de multiprogramación a este nivel y para computadoras con un solo procesador, en cada instante solo existirá un programa en ejecución, pero en un periodo de tiempo relativamente corto se pueden haber ejecutado varios programas, dando al usuario la sensación de paralelismo. El objetivo de la multiprogramación es que en todo momento se ejecute un proceso para maximizar la utilidad del procesador. En un sistema monoprocesador nunca habrá más de un proceso en ejecución en cada instante. Si hay más procesos en el sistema, tendrán que esperar a que el procesador se encuentre libre. Los beneficios de la multiprogramación son un aumento de la utilización del procesador y una mayor productividad. Procesos.-Programa en ejecución, el sistema operativo les asigna recursos (CPU, memoria dispositivos E/S), Se consideran un ente dinámico. Es el concepto central de todos los Sistemas Operativos. Conocida también como Unidad de Trabajo. El proceso es una abstracción creada por el SO, que se compone de: Código de Programa: sección texto Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos. Sección de Datos, que contiene variables globales Recursos del sistema.
32
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Características
Permite modularizar y aislar errores de programas durante su ejecución Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos Denominaremos como procesos tanto a los trabajos (jobs) en sistemas de lotes, como a las tareas (task) en sistemas de tiempo compartido
Modelo (Ejemplo de proceso) La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es obvia y crucial para entender el funcionamiento de los SO. Imaginemos un mecánico de autos en un taller donde se reparan carros con averías complejas en las que se hace necesario consultar el manual de cada modelo, que contiene las instrucciones para reparar cada posible avería. Además, se permiten reparaciones rápidas a las que se les da mayor prioridad. Existe un almacén de refacciones y herramientas suficientes para las reparaciones. Comparando esta situación con un sistema de cómputo se pueden establecer las siguientes analogías: El mecánico sería el CPU (procesador) que realizará el trabajo. El manual de cada reparación sería el programa. Las herramientas serían los recursos disponibles Las refacciones serían los datos. La actividad de usar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras nuevas siguiendo las instrucciones del manual equivaldría al proceso. Suponiendo que en un momento dado el mecánico está realizando una reparación compleja (de las que llevan tiempo) y aparece un carro que solicita una reparación de las rápidas (ha aparecido una interrupción). El mecánico suspende momentáneamente la reparación compleja anotando en qué situación se queda dicha reparación y qué operación estaba realizando en ese momento (guarda el estado del proceso). Asimismo, sustituye el manual que estaba realizando por el de la nueva reparación que se dispone a realizar (cambio de programa). Comienza la nueva reparación (cambio de proceso), en la que las herramientas no serán las mismas que antes (distintos recursos); las indicaciones del usuario, las refacciones (datos) y las indicaciones del manual (programa) llevarán a feliz término la reparación para que el mecánico regrese a la reparación inicial. 33
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Con este ejemplo se resalta que un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa.
2.2. ESTADO DE UN PROCESO.
Los estados se pueden dividir en: Activos e inactivos Activos los que compiten por el procesador. Tipos: Ejecución.- Cuando el proceso tiene el control del CPU. Preparado (Listo).- Tienen las condiciones para ser ejecutados pero no están en ejecución por alguna causa. Bloqueado.- No pueden ejecutarse porque necesitan algún recurso no disponible DIAGRAMA BÁSICO DE TRANSICIÓN DE LOS ESTADOS DE LOS PROCESOS.
34
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Inactivos.- No pueden competir por el CPU. Los 3 estados principales pueden no ser suficientes Justificación: Si todos los procesos están en bloqueados esperando un suceso y no hay memoria disponible para nuevos procesos, el procesador estará desocupado, sin uso. La Solución: procesos suspendidos: • Permitir la ejecución de más procesos • Ampliar la memoria principal • Intercambio de procesos entre memoria y disco (swapping) Surgen 2 nuevos estados de un proceso: Suspendido listo: el proceso está suspendido, pero se encuentra listo para ejecutarse Suspendido bloqueado: el proceso está suspendido y además está esperando que suceda un evento • El sistema operativo puede poner en suspendido un proceso y transferirlo a disco. • El espacio liberado en la memoria principal es usado para traer otro proceso ¿Qué proceso elegir para cargar en memoria? Uno nuevo Uno previamente suspendido (debemos elegir los que se encuentran en suspendido listo y no en suspendido bloqueado) Otras razones por las que un proceso puede pasar a estado suspendido: 35
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
• • •
El sistema está en riesgo de fallo. El sistema suspende todos los procesos activos para poder corregir errores y volver a activarlos cuando el sistema funcione correctamente Un proceso sospechoso de mal funcionamiento puede ser suspendido hasta verificar su correcto funcionamiento. El planificador puede suspender los procesos de baja prioridad en momento de carga excesiva del sistema
2.3. TRANSICIONES DE ESTADOS.- Cambio de un estado a otro: Comienzo (Creación).- Un proceso comienza al ser dada la orden de ejecución insertándose en la lista de listos o preparados. Ejecución.- Cuando el CPU está inactivo y en la cola de listos haya un proceso en espera de ser ejecutado. (Pasa al CPU) Bloqueado.- Un proceso en ejecución solicita una operación a un dispositivo, durante la espera el proceso se bloqueará. Su PCB se insertará en la lista de bloqueados. Preparado.- 4causas: 1 Orden de ejecución de un programa en espera 2 Si un proceso está bloqueado esperando una operación de entrada/salida y ésta termina. 3 Si un proceso está en ejecución y aparece una interrupción que fuerza al sistema operativo a ejecutar otro proceso, el 1º pasará a listo y su PCB se inserta en la lista de listos (Quantum, proceso de mayor prioridad) Activación.- Un proceso suspendido listo pasará a listo al ser reactivado 36
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Suspendido bloqueado.- Un proceso está bloqueado y el sistema operativo lo suspende Suspendido listo.- 3 causas: 1 Suspensión de un proceso listo 2 Suspensión de un proceso en ejecución 3 Desbloqueo de un proceso suspendido bloqueado al desaparecer la causa de su bloqueo
AUTOEVALUACIÓN 3 1. ¿Puede pasar un proceso del estado preparado al estado suspendido? Razone la respuesta. ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 2. Que es un Proceso? a) Un algoritmo de planificación especial b) Un programa en ejecución c) Un procedimiento único paralelo d) Un conjunto de instrucciones que no van al procesador 3.
Cuáles son los Estados de un Proceso? a) En ejecución, Listo o preparado, Bloqueado, Nuevo, Sin termino b) En ejecución, Listo para terminar, Bloqueado, Nuevo, Espera. c) En ejecución, Listo o preparado, Bloqueado, suspendido. d) En ejecución, Listo o preparado, Bloqueado, Viejo, Espera. 4. ¿Cuál de estas transiciones de estados de un proceso jamás se produce en un sistema normal? a) de “bloqueado” a “preparado” b) de “preparado” a “bloqueado” c) de “ejecución” a “preparado” d) de “ejecución” a “bloqueado” 5. Indique las razones por las que un proceso puede pasar a estado suspendido ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 6. Señale la diferencia entre programa y proceso ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 37
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………
2.4. BLOQUE DE CONTROL DE PROCESOS El bloque de control de proceso es la estructura de datos central y más importante de un sistema operativo. Cada bloque de control de proceso contiene toda la información de un proceso que necesita un sistema operativo para su control. Estos bloques son leídos y/o modificados por casi todos los módulos de un sistema operativo, incluyendo aquellos que tienen que ver con la planificación, la asignación de recursos, el tratamiento de interrupciones y el análisis y supervisión del rendimiento. Puede decirse que el conjunto de los bloques de control de procesos definen el estado del sistema operativo. El conjunto de todos los PCB’s se guarda en una estructura del sistema operativo llamada tabla de procesos, la cual se puede implementar como un vector o un lista enlazada. La tabla de procesos reside en memoria principal, debido a su alta frecuencia de consulta. Objetivos Que el sistema operativo localice la información sobre el proceso Mantener registrados los datos del proceso en caso de suspensión o reanudación de la ejecución
Componentes del BCP. Puede clasificarse en cuatro categorías: · Información de identificación 38
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Esta información está integrada básicamente por el identificador del proceso (PID), que es un número que identifica al proceso. Este número es diferente para todos los procesos que se encuentran en ejecución. · Información de estado de la CPU Se trata de un conjunto de campos que almacenan el estado de los registros de la CPU cuando el proceso es suspendido. · Información de control del proceso Se trata de un conjunto de información que es utilizada por el sistema operativo para controlar diversos aspectos de funcionamiento del proceso. Pertenecen a esta categoría de información los siguientes campos: Estado del proceso: Listo, en ejecución, etc. Información de manejo de memoria: Como por ejemplo, la dirección física de memoria en la que se ubica la tabla de páginas del proceso. Información de E/S: Lista de ficheros abiertos, ventanas utilizadas, etc. Información de uso de recursos: Se trata de un conjunto de información relativa a la utilización realizada por el proceso de los recursos del sistema, como por ejemplo, el porcentaje de utilización de la CPU, la cantidad de memoria usada o los bytes de E/S escritos y leídos por el proceso.
2.5. OPERACIONES ENTRE PROCESOS
39
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1.- Creación.- Se produce con la orden de ejecución del programa, usa argumentos (nombre, prioridad). En este momento aparece el PCB y es insertado en la lista de listos
Al proceso que solicita el servicio Create-Process se le denomina proceso padre, y al proceso que es creado mediante este servicio, proceso hijo.
Crear un proceso implica muchas operaciones, tales como: Buscarle un identificador Insertarlo en la tabla de procesos Determinar la prioridad inicial del proceso Crear el PCB Asignar los recursos iniciales al proceso 2.- Destrucción.- Orden de eliminación del proceso, el sistema operativo destruye el PCB y libera los recursos empleados. 40
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
– Normalmente lo hace un antepasado directo (p.e. el proceso padre) – Significa la terminación de toda su “descendencia” (terminación en cascada) – Pasos que sigue el S.O. 1. Envío de datos del proceso finalizado al creador. (p.e. Código de finalización) 2. El SO desasigna los recursos que tiene. 3.- Suspensión.- Paralización de un proceso que puede ser reanudado posteriormente, se aplica en ocasiones de mal funcionamiento o sobrecarga de trabajo (Guarda su PCB en disco) 4.- Reanudación.- Activación de un proceso suspendido (Reinserta el PCB en memoria) 5.- Cambio de prioridad.- Reasignación de un nuevo rango de prioridad 6.- Temporizar la ejecución.- Un proceso se ejecuta cada cierto periodo de tiempo, por etapas o de una vez. 7.- Despertar un proceso.- Desbloqueo de un proceso 8.- Bloqueo.- puesta en espera de un proceso
2.6. HILOS (thread) ¿Qué es un hilo? u También llamado hebra, proceso ligero, flujo, subproceso o “thread”. Programa en ejecución que comparte la imagen de memoria y otros recursos del proceso con otros hilos. Desde el punto de vista de programación: Función cuya ejecución se puede lanzar en paralelo con otras. Un hilo de ejecución, en sistemas operativos, es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente. Lo que es propio de cada hilo es el contador de programa, la pila de ejecución y el estado de la CPU (incluyendo el valor de los registros). El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo. Cuando el proceso finaliza, todos sus hilos de ejecución también han terminado. Asimismo en el momento en el que todos los hilos de ejecución finalizan, el proceso no existe más y todos sus recursos son liberados. 41
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Un proceso puede contener uno o más hilos
Los sistemas operativos modernos permiten que un proceso tenga más de un hilo de control. •
“ Un hilo es una unidad básica de utilización de la CPU “ Constituido por: – ID del hilo – Contador de programa – Conjunto de registros y, – Una pila.
•
El hilo comparte con otros hilos, del mismo proceso: – Su sección de código – Su sección de datos y – Otros recursos del sistema operativo
2.6.1.
DIFERENCIAS ENTRE HILOS Y PROCESOS
Los hilos se distinguen de los tradicionales procesos en que los procesos son generalmente independientes, llevan bastante información de estados, e interactúan sólo a través de mecanismos de comunicación dados por el sistema. Por otra parte, muchos hilos generalmente comparten otros recursos de forma directa. En muchos de los sistemas operativos que dan facilidades a los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Este fenómeno se debe a que los hilos comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes, no lo hacen. Al cambiar de un proceso a otro el sistema operativo genera lo que se conoce como overhead, que es tiempo desperdiciado por el procesador para realizar un cambio de contexto, en este caso pasar del estado de ejecución (running) al estado de espera (waiting) y colocar el nuevo proceso en ejecución. En los hilos, como pertenecen a un mismo proceso, al realizar un cambio de hilo el tiempo perdido es casi despreciable. 42
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Sistemas operativos como Windows NT, OS/2 y Linux (2.5 o superiores) dicen tener hilos "baratos", y procesos "costosos" mientras que en otros sistemas no hay una gran diferencia. 2.6.2.
FUNCIONALIDAD DE LOS HILOS
Al igual que los procesos, los hilos poseen un estado de ejecución y pueden sincronizarse entre ellos para evitar problemas de compartimiento de recursos. Generalmente, cada hilo tiene una tarea específica y determinada, como forma de aumentar la eficiencia del uso del procesador. 2.6.3.
ESTADOS DE UN HILO
Los principales estados de los hilos son: Ejecución, Listo y Bloqueado. No tiene sentido asociar estados de suspensión de hilos ya que es un concepto de proceso. En todo caso, si un proceso está expulsado de la memoria principal (RAM), todos sus hilos deberán estarlo ya que todos comparten el espacio de direcciones del proceso. Cambio de estados
Creación: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instrucción y los argumentos del nuevo hilo. El hilo tendrá su propio contexto y su propio espacio de la columna, y pasará al final de los Listos.
Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podrá pasar a ejecutar otro hilo que esté en la final de los Listos mientras el anterior permanece bloqueado.
Desbloqueo: Cuando el suceso por el que el hilo se bloqueó se produce, el mismo pasa a la final de los Listos.
Terminación: Cuando un hilo finaliza se liberan tanto su contexto como sus columnas.
2.6.4.
VENTAJAS DE LOS HILOS CONTRA PROCESOS
Si bien los hilos son generados a partir de la creación de un proceso, podemos decir que un proceso es un hilo de ejecución, conocido como Monohilo. Pero las ventajas de los hilos se dan cuando hablamos de Multihilos, que es cuando un proceso tiene múltiples hilos de ejecución los cuales realizan actividades distintas, que pueden o no ser cooperativas entre sí. Los beneficios de los hilos se derivan de las implicaciones de rendimiento. 1. Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en crear un proceso. 2. Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un proceso se debe eliminar el BCP del mismo, mientras que un hilo se elimina su contexto y pila. 3. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso 43
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4. Los hilos aumentan la eficiencia de la comunicación entre programas en ejecución. En la mayoría de los sistemas en la comunicación entre procesos debe intervenir el núcleo para ofrecer protección de los recursos y realizar la comunicación misma. En cambio, entre hilos pueden comunicarse entre sí sin la invocación al núcleo. Por lo tanto, si hay una aplicación que debe implementarse como un conjunto de unidades de ejecución relacionadas, es más eficiente hacerlo con una colección de hilos que con una colección de procesos separados. Por ejemplo, un procesador de palabras es multihilo, • • •
Mediante un hilo, lee las pulsaciones desde el teclado, realizadas por el usuario. Mediante otro hilo exhibe gráficos Mediante otro hilo verifica ortografía
2.6.5. BENEFICIOS DE LA PROGRAMACIÓN MULTIHILOS Grado de respuesta: una operación multihilos, puede permitir que mientras realiza una operación tardada, se ejecute otra operación en paralelo. Por ej, un navegador web con multihilos, mientras carga una imagen, puede permitir la interacción con el usuario. Compartir recursos. Comparten memoria y los recursos del proceso al que pertenecen. Economía: como los hilos comparten recursos. Utilización de arquitecturas de microprocesadores: Con un procesador, un hilo se ejecuta a la vez, pero se produce la sensación de paralelismo. Con multiprocesadores, se produce paralelismo, pues cada hilo se ejecuta en cada uno. 2.6.6. ADMINISTRACIÓN DE HILOS EN JAVA. Java proporciona varios APIs para administrar hilos: • Suspend() suspende la ejecución del hilo que actualmente está en ejecución. • Sleep(): pone a dormir durante una cantidad específica de tiempo, al hilo que actualmente está en ejecución. • Resumen( ): reanuda la ejecución del hilo que había sido suspendido. • Stop(): detiene la ejecución de un hilo, una vez que un hilo había sido detenido, no puede ser reanudado o iniciado. Estado de un Hilo en Java Existen cuatro estados posibles. 1. Nuevo: un hilo se encuentra en ese estado cuando se crea un objeto para el hilo (new). 2. Ejecutable: el método Star() asigna memoria para el nuevo hilo en la máquina virtual java JVM, llama al método run(), al cual cambia el estado New al estado ejecutable. 3. Bloqueado: el hilo se bloquea si se ejecuta una sentencia de bloqueo, como una operación de E/S , o se invocan ciertos métodos de java, como sleep() o suspend(). 4. Muerto: cuando termina su método run(), o se llama a su método stop(). 44
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
RESUMEN. Un proceso es un programa en ejecución, se encuentra en estado activo. Puede pasar por los estado de preparado o listo, ejecución, suspendido, bloqueado. Cada proceso que solicita recursos al sistema operativo es controlado por el bloque de control de procesos que contiene toda la información del proceso, el estado del CPU, información del control del proceso como: estado del proceso, manejo de memoria, información de E/S, e información de uso de los recursos. Con un proceso se pueden realizar las operaciones de: creación, destrucción, cambio de prioridad, bloquear, despachar, permitir la comunicación entre procesos, suspender o reanudar un proceso. Solamente otro proceso puede suspender un proceso listo. Un proceso puede hacer que otro proceso que se encuentre en el estado suspendido_listo pase al estado listo. Un proceso puede suspender a otro proceso que esté bloqueado, y hacerlo pasar de suspendido_bloqueado a bloqueado. Se podría alegar que en lugar de suspender un proceso bloqueado, sería mejor esperar hasta que ocurriera el evento que esperaba; entonces el proceso podría suspenderse y pasarse al estado suspendido_listo. Por desgracia, puede ser que nunca ocurra el evento o que se postergue indefinidamente. Así pues, el diseñador debe decidir si realiza la suspensión del proceso bloqueado o establece un mecanismo mediante el cual se realice la suspensión desde el estado listo cuando ocurra la finalización de la operación. Como la suspensión es, por lo normal, una actividad de alta prioridad, se debe realizar de inmediato. Cuando ocurre finalmente el evento, el proceso suspendido_bloqueado pasa a suspendido_listo. Además de los procesos, se encuentra los hilos o también llamado hebras son programas en ejecución que comparten recursos con otros hilos. Un proceso puede estar compuesto por muchos hilos, mientras un hilo siga en ejecución el proceso sigue activo. Al igual que los procesos los hilos tienen un estado de ejecución y pueden sincronizarse para evitar problemas de compartimiento de recursos. Los hilos presentan mayores ventajas que los procesos en cuanto al rendimiento, puesto que se tardan menos tiempo en crear un nuevo hilo, en terminar, en cambiar de un hilo a otro y aumentan la eficiencia entre los programas en ejecución.
AUTOEVALUACIÓN 4. 1. Un proceso que está esperando que se le asigne un procesador está en estado: a) Suspendido b) En ejecución c) Preparado d) Terminado 2. Un thread (hilo de ejecución) es: a) Una entidad planificable con recursos independientes (registros, memoria, ficheros) b) Una función dentro de un programa c) Un puntero a una función d) Una secuencia de código planificable de forma independiente dentro de un proceso 3. Cuál es la falsa? 45
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
a) Si dos hilos del mismo proceso comparten una variable y la modifica, será necesario proteger su acceso. b) El cambio entre hilos del mismo proceso implica coste que el cambio entre hilos de procesos diferentes. c) Dos hilos de un mismo proceso comparten el mismo bloque de control del hilo. d) La creación de un nuevo hilo dentro de un proceso existente implica menor coste que la creación de un nuevo proceso. 4. Las ventajas del uso de threads frente a los procesos para implementar la concurrencia son: a) b) c) d)
Disminuir el tiempo de cómputo de las tareas Disminuye el tiempo de respuesta Acceso más eficiente a los recursos del núcleo Todas las anteriores
5. El modelo de control de threads a nivel de núcleo: a) Mantiene una entidad planificable a nivel de núcleo por cada thread b) Cuando un thread ejecuta una llamada del sistema bloqueante, el resto de threads no son bloqueados c) Pueden aprovechar al paralelismo de sistema con múltiples CPUs d) Todas las anteriores 6. Indique por qué un cambio de modo entre hilos puede ser menos costoso que un cambio de modo entre procesos. ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 7. ¿Qué recursos comparten, normalmente, los hilos de un proceso? ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 8. Por lo general hacen que el algoritmo planificador de procesos bloquee a un proceso P1 que esté en ejecución. Indique cuál situación no necesariamente bloquea a P1. a) Cuando P1 debe esperar datos de un dispositivo E/S. b) Cuando expira el tiempo de ejecución que el planificador le habría asignado a P1. c) Cuando P1 debe enviar datos a un dispositivo E/S. d) Cuando se debe ejecutar un proceso de mayor jerarquía que P1 9. Un proceso en estado de bloqueo: a) Siempre espera por la ocurrencia de un evento. b) Siempre espera la terminación de una actividad de E/S 46
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
c) Reside en la cola de procesos de baja prioridad d) Reside en la cola de listos para entrar a la CPU 10. Un bloque de control de proceso (BCP) contiene al menos: a) El grafo de multiprogramación de procesos. b) El número de fallos de página durante su ejecución. c) El estado y el identificador del proceso. d) El código, los datos y la pila de un proceso. 11. La misión que realiza un bloque de control de proceso. a) Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecución o reanudarla. b) Es un conjunto de datos donde se incluyen el estado en cada momento, recursos utilizados, registros, etc. c) Ambas a y b. d) Localización de la información sobre el proceso por parte del sistema operativo. 12. Cuáles son las operaciones que en general pueden hacerse sobre el proceso para manipulación a través del sistema operativo. a) Cambiar la prioridad de un proceso y temporizar la ejecución de un proceso. b) Todas son correctas c) Suspender un proceso y reanudar un proceso d) Crear y destruir un proceso.
Bibliografía Específica
SERAFIN, Darío Victoriano. INTRODUCCIÓN A LA SISTEMAS OPERATIVOS. 4-10-10. Disponibel en: http://es.scribd.com/doc/109194273/10/Division-implicita-y-explicita-de-tareas ADMINISTRACIÓN DE PROCESOS Y DEL PROCESADOR. 07 – 09 – 11. Disponible en: http://ac.itdurango.mx/acreditacion/4Proceso_E_A/LI/Evidencias/4.5%20M%E9todos%20de %20Ense%F1anza/APUNTES%20DEL%20MAESTRO/Sistemas%20Operativos/ApuntesU2 _SistemasOperativosISC.pdf DESCRIPCIÓN DE UN PROCESO. 07 de Octubre de 2005. Disponible en: http://wwwdi.ujaen.es/~lina/TemasSO/DEFINICIONYCONTROLDEPROCESO/3Descripciond eunproceso.htm RED MARTINEZ, David Luis. ADMINISTRACIÓN DE PROCESOS Y DEL PROCESADOR. 10-10-2008. Disponible en: http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO2.htm#IDSP PROCESOS. 23 de Julio de 2012. Disponible en: http://www.atc.uniovi.es/telematica/2ac/Apuntes-y-Ejercicios/T08-Procesos.pdf Hilos. 17 de Marzo de 2012. Disponible en: http://252m2so.blogspot.com/2009/ 10/25procesos-e-hilos.html 47
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Hilos de ejecución 10 de Octubre de http://es.wikipedia.org/wiki/Hilo_de_ejecuci%C3%B3n
2012.
Disponible
en:
UNIDAD 3. ALGORITMOS DE PLANIFICACIÓN DE PROCESOS. Introducción En épocas pasadas de los sistemas de procesamiento por lotes (batch), la idea que existía sobre la planificación era bastante simple y consistía en aplicar un algoritmo secuencial. Esto producía un desaprovechamiento muy importante de las capacidades del procesador ya que la ejecución de un proceso alternaba entre dos estados de ejecución: utilizando la CPU o esperando a que se realice una operación de E/S, por lo que mientras se trabajaba con un dispositivo, el procesador se encontraba inactivo. Más tarde, surgieron los sistemas multiprogramados, en donde se intentó maximizar la utilización de la CPU. Esto se pudo conseguir manteniendo varios procesos en la memoria, y cuando un proceso tenía que esperar, el sistema operativo le quitaba la CPU y se lo asignaba a otro proceso que se encontraba en dicha memoria. Por lo tanto, la tarea de la planificación cobró gran importancia por su incidencia directa sobre el rendimiento del sistema, ya que el sistema operativo debía decidir qué proceso esperaría y qué proceso continuaría. Para realizar la planificación se utilizan Algoritmos de Planificación, Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solución para un problema o procedimiento, se utiliza para calcular los recursos que consumen otro algoritmo o conjunto de algoritmos al realizar una tarea. En esta unidad en primer lugar se describen los diferentes niveles de planificación existentes. A continuación se enumeran y explican los criterios generales considerados en la planificación de procesos. Y finalmente se describe el funcionamiento y las características de los principales algoritmos de planificación de procesos. Problematización Falta de conocimientos sobre los algoritmos que utiliza el sistema operativo para ejecutar los procesos que solicita el usuario. Productos esperados Implemente el funcionamiento de los algoritmos de planificación, y realiza una simulación de cómo el sistema operativo trabaja. Competencias Conoce y distingue los diferentes niveles de planificación de procesos existentes en un sistema operativo. Sabe criterios generales se consideran en la planificación de procesos en general y en la planificación del procesador en particular. Conoce el funcionamiento y las características de los principales algoritmos de planificación de procesos. 48
Análisis Interpretación Representación Responsabilidad Puntualidad
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Creatividad
3.1. PLANIFICACIÓN DE PROCESOS
3.2. CONCEPTO DE PLANIFICACIÓN La planificación hace referencia a un conjunto de políticas y mecanismos incorporados al SO que gobiernan el orden en que se ejecutan los trabajos que deben ser completados por el sistema informático. Un planificador es un módulo del SO que selecciona el siguiente trabajo a admitir en el sistema y el siguiente proceso que tomará el control sobre el procesador. El objetivo primario de la planificación es optimizar el rendimiento del sistema de acuerdo con los criterios considerados más importantes por los diseñadores del mismo.
3.3. OBJETIVOS DE LA PLANIFICACIÓN La Planificación de procesos tiene como principales objetivos la equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento.
Equidad: Todos los procesos deben ser atendidos. Eficacia: El procesador debe estar ocupado el 100% del tiempo. Rendimiento: Maximizar el número de tareas que se procesan por cada hora. Imparcialidad. Política justa. Predecibilidad en la ejecución. Equilibrio en el uso de los recursos.
3.4. CRITERIOS DE PLANIFICACIÓN Para comparar los algoritmos de planificación se han propuesto varios criterios.
Utilización de la CPU: Es el porcentaje de uso (en cuanto a ejecución de tareas de usuario o del sistema que son consideradas útiles) que tiene un procesador. Rendimiento (Throughput): Es el número de procesos que ejecutaron completamente por unidad de tiempo (una hora p.ej.). 49
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Tiempo de retorno (Turnaround time): Es el intervalo de tiempo desde que un proceso es cargado hasta que este finaliza su ejecución. Tiempo de espera (Waiting time): Es la suma de los intervalos de tiempo que un proceso estuvo en la cola de procesos listos (ready queue). Tiempo de respuesta (Response time): Es el intervalo de tiempo desde que un proceso es cargado hasta que brinda su primer respuesta. Es útil en sistemas interactivos.
Siempre vamos a intentar maximizar la productividad (el tiempo de C.P.U) y se intenta minimizar el tiempo de retorno, de respuesta y el de espera.
3.5. NIVELES DE PLANIFICACIÓN Es cuando los procesos tienen parte de sus datos en memoria secundaria, con un acceso más lento por lo que tenemos los siguientes niveles: 3.5.1. Planificador a corto plazo (PCP) Es la ejecución de varios procesos en memoria principal. Este planificador decide que procesos toman el control de la CPU. El PCP asigna el procesador entre el conjunto de procesos preparados residentes en memoria. Su principal objetivo es maximizar el rendimiento del sistema de acuerdo con el conjunto de criterios elegidos. Al estar a cargo de la transición de estado preparado a ejecución, el PCP deber ser invocado cuando se realice una operación de conmutación de procesos 2 para seleccionar el siguiente proceso a ejecutar. En la práctica el PCP es llamado cada vez que un suceso Interno o externo hace que se modifique alguna de las condiciones que definen el estado Actual del sistema. Algunos de los sucesos que provocan una re planificación en virtud de su capacidad de modificar el estado del sistema son: 1. Tics de reloj, es decir, interrupciones basadas en el tiempo. 2. Interrupciones y terminaciones de operaciones de E/S. 3. Llamadas de operación al sistema operativo frente a llamadas de consulta. 4. Envió y recepción de señales. 5. Activación de programas interactivos En conclusión los Planificadores a Corto Plazo son, los que trabajan directamente sobre el microprocesador, con procesos, en ejecución y preparado. Las políticas de trabajo pueden ser apropiativas o no apropiativas.
2
Una transición entre dos procesos residentes en memoria en un sistema multitarea se denomina conmutación de procesos o conmutación de tareas. 59
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
3.5.2. Planificador a medio plazo (PMP) El PMP tiene por misión traer procesos suspendidos a la memoria principal. Este Planificador controla la transición de procesos en situación de suspendidos a situación de Preparados. El PMP puede permanecer “a inactivo” mientras se mantenga la condición que dio lugar a la suspensión del proceso, sin embargo, una vez desaparecida dicha condición el PMP intenta asignar al proceso la cantidad de memoria principal que requiera y volver a dejarlo en situación de preparado. Para funcionar adecuadamente, el PMP debe disponer de información respecto a las necesidades de memoria de los procesos suspendidos, lo cual no es complicado de llevar a la práctica ya que el tamaño real del proceso puede ser calculado en el momento de suspenderlo almacenándose en el BCP. En conclusión: Los Planificadores a Mediano Plazo son los que deciden sacar de memoria central y llevar a disco (Swap-Out) a aquellos procesos inactivos o a los activos cuyos estados sean bloqueados momentáneamente o temporalmente o los suspendidos y luego, cuando desaparezcan las causas de sus bloqueos, traerlos nuevamente a memoria (Swap-In) para continuar su ejecución. 3.5.3. Planificador a largo plazo (PLP) Es planificar de antemano y sobre datos como estadísticas, los procesos que habrá que cargar a memoria principal de la secundaria. Su misión consiste en controlar la admisión de procesos nuevos al sistema. Cuando está presente este tipo de planificador, su objetivo principal es proporcionar una mezcla equilibrada de trabajos. El PLP decide cuando se da la entrada al sistema a un nuevo Proceso para que este sea ejecutado. Este proceso puede proceder de la respuesta al envió de un trabajo por lotes o bien a la orden de ejecución realizada por el usuario. Los Planificadores a Largo Plazo, o planificador de trabajos, es un administrador que se encarga de organizar la ejecución con un adecuado planeamiento de recursos para que el trabajo se ejecute ordenadamente y eficientemente según la modalidad de procesamiento.
Desde el punto de vista del hardware, el Corto Plazo estará asociado al microprocesador y a la memoria, el Mediano Plazo a la memoria y al Swapping3 y el Largo Plazo al Swapping y a la memoria auxiliar. Diferencias de los planificadores:
3
Swapping: O Swap es equivalente a la memoria virtual de un sistema y consiste en la Porción de disco destinado a guardar imágenes de proceso que no se mantienen en la memoria ram. 51
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Planificador a largo plazo: Selecciona procesos de la cola de procesos que están esperando ser ejecutados y los carga en memoria. Controla el grado de multiprogramación. Se ejecuta con poca frecuencia. Planificador a medio plazo: se encarga de controlar qué procesos, de entre todos los iniciados deben estar en memoria y qué otros deben estar en el espacio de intercambio. El planificador a medio plazo se encarga de sacar el proceso y volverlo a introducir más tarde. Planificador a corto plazo: selecciona un proceso de la cola de procesos preparados para ejecución y le asigna la CPU. Se ejecuta con mucha frecuencia, cuando ocurre un evento que conduce a la interrupción del proceso actual, expulsando el proceso a favor de otro.
3.6. TIPOS DE PLANIFICACIÓN. 1. PLANIFICACIÓN NO APROPIATIVA: Una vez que el CPU ha sido asignado a un proceso, ya no se le puede arrebatar. Características
Significa que los trabajos “largos” hacen esperar a los trabajos “cortos”. Logra más equidad en el tratamiento de los procesos. Logra hacer más predecibles los tiempos de respuesta puesto que los trabajos nuevos de prioridad alta no pueden desplazar a los trabajos en espera.
Ejemplo: FIFO, Primero trabajo más corto PLANIFICACIÓN APROPIATIVO (Una vez que se le ha otorgado la CPU a un proceso, le puede ser retirada) Generalmente conocida como política de planificación por torneo. El proceso que se está ejecutando actualmente puede ser interrumpido y pasado al estado de listos (preparados) por el sistema operativo. La decisión de sustituirlos por otro proceso puede llevarse a cabo cuando llega un nuevo proceso, cuando se produce una interrupción que lleva a un proceso bloqueado al estado listo o periódicamente, en función de una interrupción del reloj. Características
Es útil cuando los procesos de alta prioridad requieren atención rápida. Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.
La apropiación tiene un precio. El cambio de proceso implica gasto extra. Para que la técnica de apropiación sea efectiva deben mantenerse muchos procesos en memoria principal de manera que el siguiente proceso se encuentre listo cuando quede disponible la CPU. Conservar en memoria principal procesos que no están en ejecución implica gasto extra. 52
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Ejemplo: Round Robin, Prioridades, Tiempo restante más corto, Colas múltiples.
AUTOEVALUACIÓN 5. 1. Una cola de planificación es: 1. Una lista de programas esperando que se les asigne recursos 2. Una lista de procesos esperando en cada estado 3. Una lista de recursos usados por los procesos del sistema 4. Una lista con todos los procesos esperando por cualquier recurso del sistema 2. ¿Cuáles son los objetivos que intentan cubrir las Políticas de Planificación del Procesador? ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 3. Indica los tres tipos de planificadores que existen cuando el recurso a asignar es la CPU y en qué se diferencian. ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 4. Defina los siguientes términos: Tiempo de Espera:………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… Tiempo de retorno:………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 5. Las políticas de planificación apropiativas se caracterizan porque: a) Permiten que un proceso con mayor prioridad retire el CPU al proceso que la tenía asignada sin finalizar su ejecución. b) Una vez que el proceso obtiene CPU no le puede ser requisada hasta que acaba la ráfaga. 53
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
c) Son políticas donde todos los procesos deben ser tratados de igual forma impidiendo el bloqueo de un proceso. d) Alternativa a y c. 6. Cuales son algoritmos de planificación? a) b) c) d)
FIFO, Round Robin JSF, SRT, Prioridades. Plazo Fijo, FIFO, Round Robin JKF, SRT Plazo Fijo, FIFO, Round Robin JSF, CRT Plazo Fijo, FOFI, Round Robin JSF, SRT
7. En un sistema informático, los procesos recién creados entran en un cola de espera. Entran en la cola de preparados solo cuando el uso de la CPU es menor del 20%. a) b) c) d)
Aplica envejecimiento de procesos. Utiliza planificación basada en el compartimiento. Utiliza planificación a largo plazo o alto nivel Aplica multicola de dos niveles con realimentación
8. Los algoritmos de planificación de la CPU afectan: a) b) c) d)
Al tiempo total que el proceso para en estado de ejecución Al tiempo total que el proceso pasa en la cola de procesos bloqueados. Al tiempo total que el proceso pasa en la cola de procesos preparados / listos. Al tiempo total que el proceso pasa bloqueado y suspendido
9. Son las distintas políticas y mecanismos más comunes que poseen los sistemas operativos para realizar la gestión del procesador. a) Archivos b) Planificador del procesador c) Memoria d) Todas son verdades.
3.7. ALGORITMOS DE PLANIFICACIÓN Un algoritmo de planificación se utiliza para calcular los recursos que consumen otro algoritmo o conjunto de algoritmos (programa) al realizar una determinada tarea. Ej: Tiempo de finalización, porcentaje de utilización de la CPU, etc...)
3.7.1. PLANIFICACIÓN FCFS, PRIMERO EN LLEGAR, PRIMERO EN SER ANTENDIDO (FIRST COME, FIRST SERVER).
Planificación de servicio por orden de llegada. 54
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Calcular el tiempo de espera, tiempo de retorno y tiempo medio de espera si aplicamos el algoritmo FCFS suponiendo que los procesos siguientes llegan en el mismo instante y en el orden: P1, P2, P3. ¿Y si el orden de llegada es: P2, P3, P1?
Características
Planificación de servicio por orden de llegada. Es el algoritmo más sencillo, el primer proceso que solicita la CPU es el primero en recibirla. Fácil de implementar con una política FIFO para la cola de preparados. Tiempo de espera promedio bastante largo. Es no apropiativo. Es conflictivo, para sistemas compartidos donde es importante que cada usuario obtenga la CPU a intervalos regulares. Es justa.
Desventajas:
Es tiempo de espera es bastante largo.
Evaluación de FCFS Proceso A B C D 55
T. llegada 0 1 3 9
T. ráfaga 3 5 2 5
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
E
12
5
Diagrama de Gantt
Proceso
T. llegada
T. ráfaga
T. espera
T. fin.
A 0 3 0 3 B 1 5 3 8 C 3 2 8 10 D 9 5 10 15 E 12 5 15 20 Tiempo espera promedio = (0 +3 +8 + 10 + 15)/5 = 7.2
T. retorno (T. fin – t. llegada 3 7 7 6 8
3.7.2. SJF (SHORTEST-JOB-FIRST, PRIMERO EL TRABAJO MÁS CORTO). Características
Asocia cada proceso la longitud de la siguiente ráfaga de CPU. Cuando la CPU está disponible, se le asigna al proceso que tiene la ráfaga siguiente más corta. Entra en la CPU el proceso con la ráfaga de CPU más corta. Si dos procesos tienes la misma longitud de ráfaga siguiente, se emplea FCFS. Minimiza el tiempo de espera.
Ejemplo: Supongamos que todos los procesos llegan el mismo tiempo: Proceso P1 P2 P3 P4
Tiempo de ráfaga 6 8 7 3
Aplicando SJF: Busca el proceso con menor tiempo de ráfaga, en este caso toma primero P4, luego P1, P3, y por último P2. Proceso P1 P2 P3 P4
56
Tiempo de ráfaga 6 8 7 3
T. espera 3 16 9 0
T. Retorno 9 24 16 3
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
0
3
P4
9
P1
16
P3
24
P2
Tiempo de Espera Promedio: (0+3+9+16+24)/4 = 7 milisegundos. Aplicando FCFS: Atiende según el orden de llegada Proceso P1 P2 P3 P4
0
P1
Tiempo de ráfaga 6 8 7 3
6
P2
14
P3
T. espera 0 6 14 21
T. Retorno 6 14 21 24
21
24
P4
Tiempo de Espera Promedio: (0+6+14+21)/4 = 10.25 milisegundos.
Conclusión: El algoritmo de planificación SJF es más óptimo que el de FCFS. Puede ser apropiativo o no apropiativo La elección surge cuando llega un nuevo proceso a la cola de listos, mientras un proceso previo se está ejecutando. Un nuevo proceso puede tener un ráfaga de CPU más corta que la que resta del proceso que en la actualidad se está ejecutando.. Apropiativo o Expropiativo.- Suspenderá el proceso que actualmente en ejecución, esta planificación se denomina también Primero el de tiempo restante más corto (SRTF). Cuando es expropiado el proceso se une a la cola de preparados. No apropiativo o no expropiativo.- permitirá que dicho procesos termine su ráfaga de CPU. Es invocado cada vez que se completa un trabajo o que el proceso en ejecución cede control al S.O. Se lo conoce también como: Primero el trabajo más corto (SJF). Ejemplo 1.
57
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
SJF NO PROPIATIVO
Proceso T. llegada P1 P2 P3 P4
0 2 4 5
T. T. ejecución Comienzo 7 0 4 8 1 7 4 12 Tiempo de espera promedio
T. fin
T. espera
T. retorno
7 12 8 16
0 6 3 7 4
7 10 4 11 8
Fórmulas: Cuando los procesos llegan en diferente tiempo de llegada se aplica la siguiente fórmula para calcular el tiempo de espera. Tiempo de espera: Tiempo retorno – T. ejecución Tiempo de retorno: T. fin – t. llegada. SRTF (SJF APROPIATIVO)
Proceso
T. llegada
P1 P2 P3 P4
0 2 4 5
T. ejecución
T. Comienzo
7 0 4 8 1 7 4 12 Tiempo de espera promedio
T. fin
T. espera
16 7 5 11
9 1 0 2 3
T. retorno
16 5 1 6 7
Tiempo de espera = t. retorno – t. ejecución Aplicando SJF Apropiativo iniciamos con P1 porque es el el primero en llegar. P2 llega en el instante dos. Como el tiempo de P2 es menor que P1, este se suspende y se ejecuta P2. En el instante 4 llega P3, y como el tiempo es menor a P2 este se suspende y se ejecuta P3, Luego retoma P2 que le resta un tiempo de ejecución de 2. Posteriormente se ejecuta el P4 y el Proceso 5. Ejemplo 2
Shortest Job First (SJF) – No expropiativo Proceso T. llegada 58
T. ráfaga
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
P1 P2 P3 P4
0.0 2.0 4.0 5.0
7 4 1 4
Shortest Job First (SJF) – Expropiativo Proceso P1 P2 P3 P4
T. llegada 0.0 2.0 4.0 5.0
T. ráfaga 7 4 1 4
Conclusión: el algoritmo de planificación SJF Apropiativo es más óptimo que JSF No Apropiativo.
3.7.3. PLANIFICACIÓN POR PRIORIDAD. En este algoritmo a cada proceso se le asocia un número entero de prioridad. Mientras menor sea este entero pues mayor prioridad tiene el proceso, por lo que la escencia del algoritmo es planificar la entrada de procesos a la CPU de acuerdo a la prioridad asociada de cada uno de ellos. Un caso particular del algoritmo por prioridad es el SJF, donde el valor del próximo ciclo de CPU representa la prioridad. El algoritmo por prioridad corrige algunas deficiencias del SJF, particularmente el retraso excesivo de procesos largos y el favoritismo por procesos cortos. 59
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador escogerá aquel proceso con mayor prioridad. Cuando un proceso debe ser seleccionado, el planificador por prioridades seleccionará aquel proceso que tenga mayor prioridad. Si hay más de un proceso con la misma prioridad se planifican en un orden de FCFS. Un problema que presenta un esquema de planificación por prioridades puro es que los procesos con la prioridad más baja pueden sufrir de inanición o bloqueo indefinido. Un proceso que está listo para correr pero espera porque siempre hay procesos con prioridad más alta. Para evitar este problema, se puede ir incrementando gradualmente la prioridad de los procesos (envejecimiento). Las prioridades pueden ser estáticas o dinámicas Estáticas: se asigna antes de la ejecución y no cambia Dinámicas: cambia con el tiempo
Puede ser apropiativo y no apropiativo. En el caso de apropiativo, cuando un proceso llega a la cola de procesos listos, su prioridad es comparada con la prioridad del proceso que está corriendo. Si la prioridad del nuevo proceso es mayor, entonces se atiende al nuevo proceso. SJF es un caso especial de planificación por prioridad, donde la prioridad es el inverso del valor estimado del próximo ciclo de CPU (a menor ciclo, mayor prioridad) Desventaja Inanición y Envejecimiento Uno de los problemas que puede presentar esta planificación es la de un bloqueo indefinido. Es decir, pudiera darse el caso que existan procesos de prioridad alta que harían que los procesos de prioridad baja queden bloqueados esperando por ellos, solo se desbloquearían cuando estos procesos de prioridad baja logren colocarse en la CPU y por ello puede darse una espera indefinida. Es aquí donde se puede aplicar una técnica conocida como envejecimiento que irá incrementando la prioridad de los procesos en espera cada determinado tiempo hasta que estos se ejecuten. Ejemplo 1: Planificación por Prioridades no Expropiativo suponiendo que todos llegan al mismo tiempo. Tiempo de llegada = 0, El de mayor prioridad es el que tiene el menor número.
60
Proceso
Prioridad
Ráfaga
P1 P2 P3 P4 P5
3 1 3 4 2
10 1 2 1 5
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Diagrama de Gantt
Proceso T. ejecución Prioridad T. Comienzo T. retorno P1 10 3 6 16 P2 1 1 0 1 P3 2 3 16 18 P4 1 4 18 19 P5 2 2 1 6 Tiempos promedio 12 Tiempo de espera = T. retorno – T. ejecución Tiempo Promedio de espera = (6 + 0+16+18+1)/5 = 8.2 Tiempo Promedio de retorno = (16 + 1 + 18 + 19+ 6 )/5 = 12
T. espera 6 0 16 18 1 8.2
Ejemplo 2: Planificación por Prioridades expropiativo Proceso T. llegada Prioridad T. ejecución A 0 3 3 B 2 1 4 C 5 2 2 D 4 1 3
T. Comienzo 0 2 9 6
T. fin 12 6 11 9 12
Diagrama de Gantt
Tiempo de espera: T. retorno – T. ejecución Tiempo de retorno: t. finalización – t. llegada. Tiempo Promedio de espera: (9 + 0 +4 +2)/4 = 3.75 Tiempo Promedio de retorno: (12 + 4 + 6 + 5)/4 = 6.75 Ejemplo 3: Sea la siguiente descripción de carga: Trabajo A B C 61
Ráfaga CPU 8 4 9
Prioridad 2 1 4
T. llegada
0 1 2
T. espera 9 0 4 2 3.75
T. retorno 12 4 6 5 6.75
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
D
5
2
3
Calcular tiempo de espera y tiempo de retorno de cada trabajo, tiempo medio de espera y retorno, cuando la planificación se realiza mediante el algoritmo de prioridades. Proceso
Prioridad
T. Ráfaga
T. Comienzo
T. finaliza
T. Espera
T. retorno
A B C D
2 1 4 2
8 4 9 5
0 22 8 17
12 5 26 17 15
12 – 8 =4 5 - 4 =0 26 – 9 = 15 17 – 5= 9 17
12 4 24 14
Con prioridades (apropiativo)
Tiempo de espera = t. de retorno – t. ráfaga. Tiempo de retorno = t. finalización – t. llegada Tiempo de espera promedio: (4 + 0 + 15 + 9 )/4 = 28/4 = 7 Tiempo de retorno promedio: (12 + 4 +24 +14)/4 = 54 / 4 = 13.5
Comparación con SRTF ( SJF Apropiativo): no se toman en cuenta las prioridades sino el menor tiempo de ráfaga. Proceso
T. llegada
A B C D
0
T. Comienzo
0 8 0 1 4 1 2 9 17 3 5 5 Tiempo de espera promedio
1
A
T. ejecución
5
B
10
D
T. finaliz.
T. Espera
17 5 26 10
9 0 15 2 6.5
C
Tiempo de espera promedio = (9+ 0 + 15 +2 )/ 4 = 6.5 Tiempo de retorno promedio: (17 + 4 + 24 + 7)/4 = 52/ 4= 13
3.7.4. PLANIFICACIÓN POR TURNO CIRCULAR O ROUND ROBIN (RR). Es de los más utilizados, sencillos y equitativos. 62
17 4 24 7
26
17
A
T. retorno
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
A cada proceso se le asigna un intervalo de tiempo llamado cuanto o quantum.(de 10 a 100ms) Un proceso se ejecuta durante ese cuanto de tiempo. Si cuando acaba el cuanto no ha terminado su ejecución, se le expulsa de la CPU dando paso a otro proceso y lo ingresa al final de la cola de preparados. Si un proceso termina antes del cuanto, se planifica un nuevo proceso. Tiene el comportamiento como FCFS, con la diferencia de que cada proceso dispone de un cuanto de tiempo máximo. El tamaño óptimo del quantum depende de: El tipo de sistema Las cargas que vaya a soportar el sistema El número de procesos en el sistema y su tipo. Es la política más usada para tiempo compartido. Mantiene equilibrada las colas de los procesos listos y bloqueados. El tiempo de respuesta para procesos cortos es bueno. Si el quantum es muy grande se comporta como un FCFS. No se produce inanición (debilidad). Trato equitativo entre procesos, bueno para interactividad. Fácil de implementar Desventaja: El tiempo de espera promedio bajo la política de RR, es largo. El tiempo está dado en milisegundos. El tiempo de entrega promedio aumenta para un quantum más pequeño debido a que se requerirá más conmutaciones. Ejemplo 1:
63
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Ejemplo 2. Calculo del tiempo de espera y de retorno de cada proceso y el tiempo promedio de espera
Tiempo de espera = t. fin – t. llegada – t. de servicio. Diagrama de Gantt (RR)
3.7.5. MLQ (MULTIPLE LEVEL QUEVES, VÍAS MÚLTIPLES) Los procesos se pueden clasificar fácilmente en distintos grupos (interactivos, por lotes, etc.). La cola de procesos preparados consiste en realidad en diversas colas. Cada cola ha de tener su propio algoritmo de planificación. Ha de haber un algoritmo de planificación entre colas. Ejemplo de algoritmo de planificación entre colas: Prioridades estáticas: Los procesos en cola con menor prioridad no se ejecutan mientras haya procesos en cola con mayor prioridad. Posibilidad de inanición. Cuotas de tiempo: Cada cola está asignada a un porcentaje de tiempo de CPU. Ejemplo: 80% a trabajos interactivos, 20% a trabajos por lotes
64
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Procesos del sistema: pueden ser copiar archivos, apertura de una aplicación, mensajes. Procesos interactivos: comunicación entre la máquina y el usuario: Ejemplo: algoritmos, programas, reproductor de música, aplicaciones con hojas de cálculo. Procesos por lotes: grupo de transiciones a la vez. Ejemplo: archivos.bat, impresión, etc. 3.7.6. PLANIFICACIÓN CON MÚLTIPLES COLAS REALIMENTADAS Existen diferentes colas de procesos preparados. Cada cola posee: e) Política de planificación. f) Una prioridad asignada. Un proceso puede cambiar de cola de acuerdo con un esquema de actualización de prioridades: a) Los procesos con un tiempo de espera acumulado son promocionados a una cola con prioridad superior.(envejecimiento). b) Los procesos con una utilización de la CPU elevado son degradados a una cola de prioridad inferior Parámetros de las colas realimentadas: a) Número de colas. b) Prioridad de cada cola. c) Método de promoción de cada cola. d) Método de degradación de un proceso. e) Método para determinar la cola de entrada de un proceso
65
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
RESUMEN Los mecanismos de planificación de la CPU son la base de los sistemas operativos multiprogramación, gracias a estos la unidad central de proceso puede conmutar entre distintos procesos logrando así que la computadora sea más productiva. En lo que respecta a la planificación de la CPU, o planificación de procesos, se tienen varios algoritmos de planificación que nos ayudan a resolver los problemas que se presentan a la hora de hacer la planificación de procesos. En un entorno multiprogramación se pueden tener varios procesos ejecutándose a la vez, maximizando así el uso de la CPU, mediante la planificación de procesos la CPU no pasa inactiva y así se aprovecha siempre el tiempo y los recursos de la CPU, manteniendo varios procesos en memoria a la vez, para que cuando se estén ejecutando, por ejemplo, si uno de estos tiene que esperar, el sistema operativo retira el uso de la CPU a ese proceso, y le asigna a otro proceso para que se ejecute, conmutando así entre los diferentes procesos cargados en memoria. En lo que respecta a la planificación de la CPU, cuando esta está inactiva, el sistema operativo debe seleccionar un proceso de la cola de procesos preparados para ejecución, el planificador a corto plazo tiene esta función. Para la planificación de la CPU, se toman en cuenta cuatro aspectos sobre los que se puede tomar decisiones para hacer la planificación: 1. 2. 3. 4.
Cuando un proceso cambia del estado de ejecución, al estado de espera. Cuando un proceso cambia del estado de ejecución al estado preparado. Cuando un proceso cambia del estado de espera al estado preparado. Cuando un proceso termina de ejecutarse.
En el primer y último punto, solamente se debe seleccionar otro proceso para que sea ejecutado, en este caso el esquema de planificación se denomina sin desalojo o cooperativo, mientras que en el segundo y tercer punto se debe realizar una debida planificación, a lo que se denomina esquema apropiativo. Dentro de los criterios de planificación, y a la hora de hacer la elección de un algoritmo para una situación en particular, debemos tener en cuenta los siguientes criterios:
Utilización de la CPU: Sistema real 40%, en un sistema intensamente utilizado 90%.
Tasa de procesamiento: Medida de trabajo que se completa por unidad de tiempo.
Tiempo de ejecución: Tiempo en que un proceso se ejecuta desde que se ordena la ejecución, hasta que esta termina.
Tiempo de espera: Suma de los periodos invertidos en esperar en la cola de procesos preparados. 66
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Tiempo de respuesta: Tiempo en el que el proceso tarda en empezar a responder.
Algoritmos de planificación, existen varios algoritmos de planificación de la CPU, entre ellos tenemos: Planificación FCFS (Primero en llegar, primero en ser servido), es el algoritmo más simple de planificación. Planificación SJF, algoritmo de planificación con selección de trabajo más corto, cuando la CPU está disponible, se asigna el proceso que tiene la siguiente ráfaga de CPU más corta, si la siguiente ráfaga de CPU de dos procesos son iguales, se utiliza la planificación FCFS para hacer el desempate. Planificación por prioridades, el algoritmo SJF, es un caso especial del algoritmo de planificación por prioridades, a cada proceso se le asigna una prioridad, y la CPU se asigna al proceso que tenga la prioridad más alta. Planificación por turnos, el algoritmo de planificación por turnos RR (round robin), es un algoritmo diseñado para los sistemas de tiempo compartido, aquí se define una pequeña unidad de tiempo “Cuanto de tiempo”, que se encuentra comprendido en un rango entre 10 y 100 ms. La cola de procesos preparados se trata como una cola circular, el planificador de la CPU recorre esta cola asignándose a cada proceso durante un intervalo de tiempo de hasta 1 cuanto de tiempo, luego si el proceso no terminó de ejecutarse en ese lapso de tiempo, se produce un fin de cuenta del temporizador, y este envía una interrupción al sistema operativo, entonces el proceso se coloca al final de la cola de procesos preparados. Planificación mediante colas multinivel, esta planificación se da cuando hay situaciones en las que los procesos pueden clasificarse en grupos, por ejemplo, la de diferenciar entre procesos de primer plano (interactivos) y segundo plano (por lotes). En este tipo de planificación se divide la cola de procesos preparados, en varias colas distintas, los procesos se asignan a una de estas colas mediante alguna propiedad del proceso, como por ejemplo, el tamaño de la memoria, la prioridad del proceso o el tipo de proceso. Cada cola tiene su propio algoritmo de planificación. Entre las colas multinivel podemos tener:
Procesos del sistema Procesos interactivos Procesos de edición interactivos Procesos por lotes Procesos de estudiantes
67
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
AUTOEVALUACIÓN 6. EJERCICIOS. 1. Considere el siguiente conjunto de procesos, cuyas longitudes de ráfaga de UCP se expresan en milisegundos:
Se supone que los procesos llegaron en el orden P1, P2, P3, P4, P5 todos en el instante 0. a) Dibuje cuatro gráficas de Gantt que ilustren la ejecución de estos procesos utilizando la planificación FCFS, SJF, una prioridad no apropiativa (un menor número de prioridad representa una prioridad mayor) y RR (cuanto = 1). FCFS
SJF
Prioridad
68
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
RR b) ¿Cuál es el tiempo de retomo de cada proceso para cada uno de los algoritmos de planificación del apartado a)?
FCFS……………………………………………………………………………………………………. SJF………………………………………………………………………………………………………. Prioridad………………………………………………………………………………………………. RR………………………………………………………………………………………………………. c) ¿Cuál es el tiempo de espera de cada proceso para cada uno de los algoritmos de planificación del apartado a)?
FCFS……………………………………………………………………………………………………. SJF………………………………………………………………………………………………………. Prioridad………………………………………………………………………………………………. RR………………………………………………………………………………………………………. d) ¿Cuál de los esquemas de planificación del apartado a) ofrece el menor tiempo promedio de espera (para todos los procesos)?
…………………………………………………………………………………………………………. 2. Suponga que los procesos siguientes llegan para su ejecución en los momentos indicados. Cada proceso se ejecutará en el tiempo indicado. Al responder a estas preguntas, utilice la planificación no apropiativa y base todas sus decisiones en la información que tenga en el momento de tomar la decisión.
69
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
a. ¿Cuál es el tiempo de retorno promedio para estos procesos con el algoritmo de planificación FCFS?
b. ¿Cuál es el tiempo de retorno promedio para estos procesos con el algoritmo de planificación SJF?
3. Aplicando Round Robin calcular el tiempo de espera, de retorno, de cada proceso y el tiempo de espera promedio. Representar en diagrama de Gantt. Proceso P1 P2 P3 P4
70
T. ráfaga 7 4 3 2
T. llegada 0 2 3 5
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4. Calcular el tiempo de espera, de retorno, de cada proceso, tiempo medio de espera y de retorno aplicando FCFS, SJF, Prioridades. E indicar cuál es más óptimo. Utilizar diagramas de Gantt. Proceso T. llegada T. ráfaga A 0 8 B 1 4 C 2 9 D 3 5 PREGUNTAS
1. Sean dos procesos: P1 con tiempo de ejecución de 20ms y P2 con 15ms. El planificador a corto plazo actúa según un Round Robin con quanto de 10ms. 1. 30ms 2. 40ms 3. 45ms 4. 50ms 2. El planificador a medio plazo selecciona un proceso 1. De entre los recién llegados para pasar a la cola de preparados 2. De entre los de la cola de preparados para pasar a ejecución 3. De entre los suspendidos en memoria principal para pasar a la cola de preparados 4. De entre los suspendidos en memoria secundaria para pasar a la cola de preparados 3. Se tienen 3 procesos: P1, P2 y P3, con tiempos de ejecución: 65, 45 y 120 ms, respectivamente. Si actúa el planificador a largo plazo según el algoritmo SJF (Short Job First) se obtiene que: 1. Los procesos se encuentran en la lista de preparados en el orden de llegada: P1, P2 y P3 2. Los procesos se encuentran en la lista de preparados en el orden: P2, P1 y P3 3. Los procesos se ejecutan en el orden de llegada: P2, P1 y P3 4. Los procesos se ejecutan según la prioridad que posean los procesos 4. En la planificación por Round Robin: 1. El proceso preparado que pasa a ejecución corresponde al de tiempo de ejecución restante más corto 2. De acuerdo a su prioridad cada proceso preparado pasa a ejecución durante una cota de tiempo llamada cuanto 3. De forma secuencial cada proceso preparado pasa a ejecución durante una cota de tiempo llamada cuanto. 4. El proceso preparado que pasa a ejecución corresponde al de mayor prioridad asignada 5. El tiempo de retorno o regreso corresponde: 1. Al tiempo que el proceso espera hasta que se le concede el procesador 2. Al tiempo que transcurre desde que un proceso se crea hasta que se completa por el sistema 3. Al porcentaje del tiempo medio de utilización del procesador 71
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4. A la medida del número de procesos completados por unidad de tiempo 6. El planificador a corto plazo selecciona: 1. El proceso que pasa al estado activo de entre todos los procesos en estado preparado 2. El trabajo que se admite en el sistema para su procesamiento 3. La página en memoria que se debe sustituir por la página que se solicita cuando se produce un fallo de página 4. Entre las peticiones de E/S al disco aquella que minimiza el tiempo medio de búsqueda 7. Se tienen dos procesos: P1 y P2, de tiempos de ejecución 25 y 30 ms, respectivamente. El planificador a corto plazo actúa según el algoritmo Round Robin con quanto de 10 ms. ¿Cuál será el tiempo de retorno o regreso de P1? 1. 45 ms 2. 50 ms 3. 65 ms 4. 70 ms 8. Dado un sistema multiprogramado en el que se encuentra en estado preparado un proceso orientado a E/S y una gran cantidad de procesos orientados a cómputo, ordénese de mejor a peor las siguientes estrategias de planificación de la CPU en función de que consigan mejores tiempos de retorno del proceso orientado a E/S: 1. FCFS 2. SJF 3. SRTF ………………………………………………………………………………………………………………… 9. ¿Qué diferencia fundamental existe entre un algoritmo SJF (primero el trabajo más breve, shortest job first) y el algoritmo SRTF (primero el de menor tiempo restante, shortest remaning time first)? ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… 10. Si se desea minimizar el tiempo promedio para completar los procesos de un sistema, un mecanismo óptimo para la planificación de procesos es: a) FCFS b) SJF c) RR d) Planificación por prioridad 11. El algoritmo FCFS se caracteriza porque: a) El proceso que primero solicita la CPU es el primero al que se le asigna b) El último proceso en llegar, es el primero en ser atendido c) Asocia a cada proceso la longitud de su siguiente ráfaga d) Un nuevo proceso llega a la cola de procesos listos mientras se está ejecutando otro proceso. 72
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Bibliografía Específica
ALGORITMOS DE PLANIFICACIÓN. 07 de Octubre de 2005. Disponible en: http://wwwdi.ujaen.es/~lina/TemasSO/PLANIFICACIONDEPROCESOS/6AlgoritmosdePlanifi cacionI.htm CRITERIOS DE PLANIFICACIÓN. Disponible en: http://522gdp.blogspot.com/2012/01/criterios-de-planificacion.html MAÑOSO, Carolina. GESTION DE PROCESOS. 06 de Diciembre de 2011. Disponible en: http://www.talgo32.es/archivos/SO1/uned/tema2.pdf SANTOS, José Miguel. PLANIFICACIÓN DE PROCESOS. Universidad de las Palmas de Gran Canaria, 1998-2012. Disponible en: http://sopa.dis.ulpgc.es/so/teoria/pdf/so-06Planificacion%20de%20procesos-6x1.pdf PLANIFICACION DE PROCESOS. Escuela Universitaria de Informática de Segovia. Disponible en: http://es.scribd.com/doc/31825917/ALGORITMOS-DE-PLANIFICACION Sistema de Tiempo Real. Disponible en: http://es.wikipedia.org/wiki/Sistema_de_tiempo_real
UNIDAD 4. COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS INTRODUCCIÓN En este tema en primer lugar se define la exclusión mutua y se presentan algunas soluciones software y hardware que permiten garantizarla. En segundo lugar se describen los semáforos. A continuación, se plantean y se resuelven con el uso de semáforos algunos problemas clásicos de sincronización de procesos concurrentes. Finalmente se estudian los monitores y el paso de mensajes. Problematización Desconocer las principales formas que utilizan los sistemas operativos para sincronizar y comunicar procesos: semáforos, monitores y paso de mensajes. Productos esperados Aplica la exclusión mutua, los semáforos, y monitores en la simulación de la ejecución de algunos procesos. Competencias Analiza conceptos referentes a la exclusión mutua entre procesos en el uso de recursos compartidos. Conoce las principales soluciones software y hardware a la exclusión mutua. Conoce el funcionamiento, la implementación y el uso de los 73
Análisis Interpretación Representación Responsabilidad
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
semáforos. Sabe qué son, cómo se implementan y cómo se utilizan los monitores. Conocer el funcionamiento, la implementación y el uso del paso de mensajes.
Puntualidad Creatividad
4.1. DEFINICIÓN DE SINCRONIZACIÓN DE PROCESOS Conjunto de protocolos y mecanismos utilizadas para preservar la integridad y consistencia del sistema. Esta integridad y consistencia se lo hace cuando varios procesos concurrentes comparten recursos que son reutilizables en serie. Estos recursos solo puede ser utilizada por un proceso cada vez.
4.2. RAZONES PARA SINCRONIZAR PROCESOS a) Compartir información.- Varios usuarios que estén interesados por el mismo elemento de información. Ej: compartir archivos. b) Aceleración de cálculo.- Dividir en subtareas y cada uno se ejecuta en paralelo. c) Modularidad.- Nos ayuda a que todos los procesos se ejecuten en forma secuencial y sin retardo de tiempo. Ej: Programa Suma. d) Comodidad.- Cuando un usuario tiene ejecutando varias tareas al mismo tiempo, el sistema debe ser capaz de no colisionar. Ej: Editando texto, imprimiendo. No tiene que preocuparse si se están ejecutando los procesos o no.
4.3. COMUNICACIÓN ENTRE PROCESOS (CP) La comunicación entre procesos es una función básica de los sistemas operativos que provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí, normalmente a través de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. Las técnicas de CP están divididas dentro de métodos para: paso de mensajes, sincronización, memoria compartida y llamadas de procedimientos remotos (RPC). En un sistema, los procesos pueden ejecutarse independientemente o cooperando entre sí. Los intérpretes de comandos son ejemplos típicos de procesos que no precisan la cooperación de otros para realizar sus funciones. En cambio, los procesos que sí cooperan necesitan comunicarse entre sí para poder completar sus tareas. La comunicación entre procesos puede estar motivada por la competencia o el uso de recursos compartidos o porque varios procesos deban ejecutarse sincronizadamente para completar una tarea.
74
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
El sistema operativo provee mínimamente dos primitivas, "enviar" y "recibir", normalmente llamadas send y receive. Asimismo, debe implementarse un enlace de comunicación entre los procesos de la comunicación (pipe). Este enlace puede ser unidireccional o multidireccional según permita la comunicación en uno o en varios sentidos.
4.4. COOPERACIÓN ENTRE PROCESOS La velocidad de un proceso con respecto a otro es impredecible ya que depende de la frecuencia de la interrupción asociada a cada uno de ellos y cuán a menudo y de por cuánto tiempo tiene asignado cada proceso un procesador. Diremos, pues, que un proceso se ejecuta asíncronamente con respecto a otro, es decir, sus ejecuciones son independientes. Sin embargo, hay ciertos instantes en lo que los procesos deben sincronizar sus actividades. Son estos puntos a partir de los cuales un proceso no puede progresar hasta que otro haya completado algún tipo de actividad. Los procesos también necesitan comunicarse entre sí. Por ejemplo, para leer de un fichero, los procesos de usuario deben decir al proceso que gestiona los ficheros lo que desean. Este, a su vez, debe pedirle al proceso de disco que lea los bloques necesarios. Cuando el shell4 conecta dos procesos con un tubo5, los datos de salida del primer proceso se transfieren al segundo. Se necesita que los procesos se comuniquen entre sí, con un mecanismo bien estructurado y no por medio de interrupciones. 4.4.1 COMPETENCIA ENTRE PROCESOS Los recursos de un sistema pueden clasificarse como compartibles, lo que significa que pueden ser utilizados por varios procesos de forma concurrente, o no compartibles, lo que equivale a que su uso se restrinja a un sólo proceso a la vez. El hecho de que un recurso no sea compartible deriva de una de las dos razones siguientes: La naturaleza física del recurso hace que sea imposible compartirlo. Un ejemplo lo constituye una impresora, si una impresora fuera utilizada por varios procesos simultáneamente sus salidas se entremezclarían en el papel. El recurso es tal que si es usado por varios procesos de forma concurrente la acción de uno de ellos puede interferir con la de otro. Un ejemplo común lo constituye un fichero que contiene unos datos accesibles desde más de un proceso, y modificables al menos por uno de ellos. Por ejemplo, supongamos un fichero que contiene registros con la siguiente información sobre una cuenta bancaria:
shells( interprete de órdenes ): término inglés traducido por intérprete de órdenes. Este es capaz de recoger las órdenes que el usuario realiza, pasándolas al núcleo del Sistema Operativo para su ejecución. 4
5
tubo o tubería: mecanismo software para solucionar problemas de comunicación y sincronización entre distintos procesos, mediante la implementación de un canal software de comunicación asíncrono. 75
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
CLAVE
SALDO
Supongamos también dos procesos que se ejecutan concurrentemente y que actualizan una misma cuenta, el proceso P1 añade al saldo el valor de la nómina y el proceso P2 descuenta del saldo una factura domiciliada. El código de los procesos es el siguiente:
El resultado final de la ejecución de los dos procesos debería actualizar el saldo añadiéndole la nómina, y descontándole la factura. Sin embargo, la secuencia de ejecución en el procesador de las instrucciones a1b1b2b3a2a3, que puede darse debido a un cambio de proceso, hace que no se descuente la factura. Dentro de la categoría de recursos no compartibles se incluirán la mayoría de los periféricos (los discos no), los ficheros de escritura y las zonas de memoria sujetas a modificación. Los recursos compartibles incluirán la CPU (en los temas previos vimos cómo compartir la CPU entre los procesos introduciendo el concepto de PCB), los ficheros de lectura, y las zonas de memoria que contengan rutinas puras o bien datos que no están sujetos a modificación.
4.5. TIPOS DE COMUNICACION La comunicación puede ser: - Síncrona: Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio. - Asíncrona: Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor. - Persistente: El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado (por ejemplo, un e-mail). - Momentánea (transient): El mensaje se descarta si el receptor no está operativo al tiempo que se realiza la comunicación. Por lo tanto no será entregado. - Directa: Las primitivas “enviar” y “recibir” especifican el nombre del proceso con el que se comunican.
76
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Ejemplo: enviar(mensaje, A) envía un mensaje al proceso A. Es decir se debe especificar cuál va a ser el proceso fuente y cuál va a ser el proceso destino. Las operaciones básicas send y receive se definen de la siguiente manera: send(P, mensaje); envía un mensaje al proceso P (P es el proceso destino). receive (Q, mensaje); espera la recepción de un mensaje por parte del proceso Q (Q es el proceso fuente). Nota: receive puede esperar de un proceso cualquiera un mensaje, pero el send sí debe especificar a quién va dirigido y cuál es el mensaje. - Indirecta: Es aquella donde la comunicación está basada en una herramienta o instrumento ya que el emisor y el perceptor están a distancia. - Simétrica: Todos los procesos pueden enviar o recibir. También llamada bidireccional para el caso de dos procesos. - Asimétrica: Un proceso puede enviar, los demás procesos sólo reciben. También llamada unidireccional. Suele usarse para hospedar servidores en Internet. - Uso de búfer automático: El transmisor se bloquea hasta que el receptor recibe el mensaje (capacidad cero).
4.6. EXCLUSIÓN MUTUA 4.6.1.
INTRODUCCIÓN.
En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo (e.j. Round Robin) para dar apariencia de ejecución simultánea. Aunque no se consigue un procesado en paralelo real, y aunque se produce un sobrecargado en la CPU por el hecho de tener que cambiar de tarea constantemente, las ventajas de todo esto son muy elevadas. Ejemplo: avion-torre, chat's, etc. Uno de los grandes problemas que nos podemos encontrar es que el hecho de compartir recursos está lleno de riesgos. Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable global y ambos llevan a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden en que se ejecuten estas lecturas y escrituras es crítico, puesto que se verá afectado el valor de la variable. Concurrencia Se da cuando varios procesos se ejecutar simultáneamente, y precisan utilizar los mismos recursos, debiendo sincronizarse para que se ejecuten sin interferencias y puedan realizar su trabajo correctamente, cooperando para alcanzar el fin para el que se diseñaron. Por ejemplo tenemos las siguientes operaciones sencillas. a:=x+y b:=z+1 c:=a-b 77
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
w:=c+1 Supongamos que deseamos ejecutar alguna de estas instrucciones concurrentemente para reducir el tiempo de ejecución. El cálculo de a y b se puede realizar concurrente, mientras que c no se puede calcular hasta que haya acabado la operación anterior. ab c w Procesos concurrentes Si dos o más procesos pueden ser ejecutados por el computador en paralelo, diremos que dichos procesos son concurrentes.
Los procesos concurrentes pueden ser: Independientes: No comparten datos con otros procesos Cooperativos: Si pueden afectar o verse afectados por otros procesos. Las razones que permiten la cooperación entre procesos son: 1. Compartir información 2. Aceleración de cálculos (subtareas) 3. Modularidad dividir las funciones del sistema 4. Conveniencia. Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos. Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedará con valores incorrectos. Para resolver problemas como este se ideó la sección crítica, que es el segmento de código que accede a los recursos. Sólo puede haber una sección crítica en ejecución por vez, así nos aseguramos que los datos quedan consistentes.
78
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.6.2.
CONCEPTO DE EXCLUSIÓN MUTUA
Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema. La exclusión mutua necesita ser aplicada sólo cuando un proceso accede a datos compartidos; ejemplo, la lectura de archivos, cuando los procesos ejecutan operaciones que no estén en conflicto entre sí; debe permitírseles proceder de forma concurrente. La condición de exclusión mutua debe conservarse para recursos no compatibles. Por ejemplo varios procesos no pueden compartir una impresora al mismo tiempo. 4.6.3.
SECCIÓN CRÍTICA.
Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualización de una o más variables compartidas. Para que una solución al problema de la exclusión mutua sea válida, se tienen que cumplir una serie de condiciones: o Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en ningún momento dos procesos dentro de sus respectivas secciones críticas. o No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto. o Ningún proceso que esté fuera de su sección crítica debe interrumpir a otro para el acceso a la sección crítica. o Cuando más de un proceso desee entrar en su sección crítica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final. Pasos para entrar a la sección crítica.
Un proceso negocia primero con todos los restantes interesados para asegurar que no haya ninguna otra actividad conflictiva en progreso. Todos los procesos relacionados estén al tanto de la temporal e inminente no disponibilidad del recurso. Una vez alcanzado el consenso el proceso ganador comienza a ejecutar su sección crítica de código. Al terminar el proceso informa al resto de los contendientes que el recurso está disponible y puede iniciarse otra ronda de negociaciones. Cuando un proceso que termina de ejecutar la sección crítica no tiene porque afectar a los procesos que están negociando. El proceso siempre debe terminarse.
Ejemplos de sección crítica Problema 1 de la interacción entre procesos Calcula la suma de los N primeros números utilizando procesos 79 ligeros. int suma_total = 0;
Si varios procesos ejecutan concurrentemente este
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
void suma_parcial(int ni, int nf) int j = 0; int suma_parcial = 0; for (j = ni; j <= nf; j++) suma_parcial = suma_parcial + j; Entrada en la sección crítica suma_total = suma_total+ suma_parcial; Salida de la sección crítica pthread_exit(0); Problema 2 de la interacción entre procesos
void ingresar(char*cuenta,int
cantidad)
int saldo, fd; fd = open(cuenta, O_RDWR); read(fd, &saldo,sizeof(int)); saldo = saldo + cantidad; lseek(fd, 0, SEEK_SET); write(fd, &saldo,sizeof(int)); close(fd); return;
void ingresar(char*cuenta,int cantidad) int saldo, fd; fd = open(cuenta, O_RDWR); Entrada en la sección crítica read(fd, &saldo, sizeof(int)); saldo = saldo + cantidad; 80 lseek(fd, 0, SEEK_SET); write(fd, &saldo, sizeof(int));
Progreso
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.6.4.
REQUISITOS PARA LA EXCLUSIÓN MUTUA
1. Solo un proceso, de todos los que poseen secciones críticas por el mismo recurso compartido, debe tener permiso para entrar en ella en un momento dado. 2. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin interferir con los otros procesos. 3. Un proceso no debe poder solicitar acceso a una sección crítica para después ser demorado indefinidamente, no puede permitirse el interbloqueo o la inanición. 4. Si ningún proceso está en su sección critica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin demora. 5. No se debe suponer sobre la velocidad relativa de los procesos o el número de procesadores. 6. Un proceso permanece en su sección crítica por un tiempo finito. Una manera de satisfacer los requisitos de exclusión mutua es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente. Tanto si son programas del sistema como de aplicación, los procesos deben coordinarse unos con otros para cumplir la exclusión mutua, sin ayuda del lenguaje de programación o del sistema operativo. Estos métodos se conocen como soluciones por software. Para solucionar el problema de la exclusión mutua vamos a tener tres tipos de soluciones:
Soluciones software. El algoritmo de Dekker. Controla la restricción de que solo se puede realizar un acceso a una posición de memoria en cada instante. Algoritmo de Peterson: al igual que Dekker, este algoritmo desarrolló una solución simple y elegante.
Soluciones hardware. Semáforos Monitores Paso de mensajes
4.7. SOLUCIÓN POR SOFTWARE Pueden implementarse soluciones de software para los procesos concurrentes que se ejecuten en máquinas monoprocesador o multiprocesador con memoria principal compartida. 81
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.7.1. ALGORITMO DE DEKKER La solución se desarrolla por etapas. Este método ilustra la mayoría de los errores habituales que se producen en la construcción de programas concurrentes. Se busca una implementación de código de entrada a exclusión mutua y código de salida de exclusión mutua que satisfaga las cuatro restricciones siguientes:
La solución se implementa sólo en software en una máquina que no tenga instrucciones de exclusión mutua especialmente diseñadas. Cada instrucción de lenguaje de máquina se ejecuta de forma indivisible; es decir, una vez iniciada una instrucción ésta se termina sin interrupción. Si procesadores múltiples tratan de acceder al mismo dato, debemos suponer que una característica del hardware llamada interbloqueo de almacenamiento resuelve todos los conflictos. No deberá hacerse ninguna suposición en relación con las velocidades relativas de procesos concurrentes asincrónicos. o Los procesos que se encuentran operando fuera de sus secciones críticas no pueden evitar que entren otros procesos en sus propias secciones críticas. o No debe postergarse la entrada de los procesos en sus secciones críticas.
El algoritmo de Decker es aplicable para la exclusión mutua de dos procesos. Se han desarrollado soluciones de software para exclusiones mutuas de procesos; estas son bastantes complejas. El algoritmo de Decker maneja en forma elegante la exclusión mutua de dos procesos, sin ninguna instrucción especial de hardware. Hay 5 versiones del algoritmo de Dekker de las cuales la versión 5 es la que tiene mayor eficiencia y es tomado de la unión de la versión 1 y la versión 4. Combinación entre: Primer intento, donde se usa la variable turno (ahora usamos turno para indicar quien tiene prioridad para entrar a su sección crítica). Cuarto intento. Funcionamiento:
Cuando P0 quiere entrar en su sección crítica pone señal [0]=cierto; y comprueba la señal de P1. - Si está a falso, entra inmediatamente. - Si está a cierto, consulta turno: a) Si turno==0; sigue verificando la señal de P1. b) Si turno==1; desactiva su señal y espera hasta que turno==0;
82
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.7.2.
ALGORITMO DE PETERSON
El algoritmo de Deker resuelve el problema de la exclusión mutua pero mediante un programa complejo, difícil de seguir y cuya corrección es difícil de demostrar. Peterson ha desarrollado una solución simple y elegante. Como antes, la variable global señal indica la posición de cada proceso con respecto a la exclusión mutua y la variable global turno resuelve los conflictos de simultaneidad. Cada proceso tiene un turno para entrar en la sección crítica. Si un proceso desea entrar en la sección crítica, debe activar su señal y puede que tenga que esperar a que llegue su turno. Impide el interbloqueo.- ya que si un proceso se encuentra esperando en el “while”, entonces la señal y el turno del otro proceso están activadas. El proceso que está esperando entrará en su sección crítica cuando la señal o el turno del otro se desactiven.
83
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.8. SOLUCIONES HARDWARE. Las soluciones hardware se dividen en dos tipos:
Optimistas. o Consideran que lo más probable es que no haya conflictos, y si los hay sea en número
reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones. Pesimistas. o Bloquean todo aquello que pueda interferir. o Actualizan la variable. o Desbloquean lo bloqueado al principio.
Deshabilitar interrupciones y habilitar interrupciones (pesimista). Test and Set (Compartir y Fijar) (pesimista). Comparar e intercambiar (optimista).
Inhabilitación de interrupciones: a) Un servicio continuará ejecutándose hasta que solicite un servicio del SO o hasta que sea interrumpido. b) Para garantizar la exclusión mutua es suficiente con impedir que un proceso sea interrumpido. c) Se limita la capacidad del procesador para intercalar programas. d) Multiprocesador: Inhabilitar las interrupciones de un procesador no garantiza la Exclusión Mutua. 84
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Instrucciones especiales de máquina: Se realizan en un único ciclo de instrucción. No están sujetas a injerencias por parte de otras instrucciones. Ejemplos:
Instrucciones de máquina y exclusión mutua: Ventajas: •Es aplicable a cualquier nº de procesos en sistemas con memoria compartida, tanto de monoprocesador como de multiprocesador. •Es simple y fácil de verificar. •Puede usarse para disponer de varias secciones críticas. Desventajas: •La espera activa consume tiempo del procesador. •Puede producirse inanición cuando un proceso abandona la sección crítica y hay más de un proceso esperando. •Interbloqueo de procesos de baja prioridad frente a otros de prioridad mayor.
85
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.9. SEMÁFOROS
Definición.- Es una variable numérica entera de tipo protegida (solo la maneja el sistema operativo) que se manipula a través de operaciones atómicas bien definidas: El concepto de semáforo nace de la necesidad de crear un sistema operativo en el que puedan trabajar procesos cooperantes. No es un mecanismo de comunicación sino de sincronización y son utilizados para controlar el acceso a los recursos. Un semáforo básico es una variable entera y dos operaciones atómicas (sin interrupciones) que la manejan. Los semáforos cuentan con operaciones básicas, una de ellas es para reservarlo y la otra para liberarlo, wait(espera) y signal(señal) respectivamente, equivalente down y up. Existe una tercera operación que consiste en inicializar el semáforo. Wait, Down ó Espera: Se usa cuando un proceso quiere acceder a un recurso compartido y puede ocurrir: a) Si la variable entera es positiva, coge el recurso y decrementa dicho valor. b) Bloquea hilo/proceso si el semáforo es menor que cero, sino entonces permite a hilo/proceso continuar c) Llamada W(semaforo) o down(semaforo) Wait = Down = P(S): while S <= 0 d0; S = S -1 86
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Signal, Up ó Señal: Se utiliza para indicar que el recurso compartido esta libre y despertar a los procesos que estén esperando por el recurso. a) Incrementa semáforo en uno y si hay algún proceso/hebra esperando lo despierta. b) Existe un valor máximo para incrementar el semáforo, este no se va al infinito. c) Llamada S(semáforo) o up(semáforo) Signal = UP = V(S): S = S +1; Propiedades: 1) Wait y signal son las únicas operaciones que puede modificar el valor del semáforo y son atómicas. 2) Siempre tendrá valores iniciales no negativos. 3) Cuando existe más de un proceso bloqueado en la cola del semáforo, se despierta a un proceso de forma aleatoria. 4) Wait y signal siempre se van a ejecutar de forma secuencial, tanto en sistemas monoprocesadores como multiprocesadores. Supondremos que hay una disciplina de colas del primero en entrar - primero en salir para los procesos que esperan a completar un wait(S). La ejecución de las instrucciones wait y signal son indivisibles. La exclusión mutua en el semáforo, S, es aplicada en wait(S) y signal(S). Si varios procesos intentan ejecutar wait(S) al mismo tiempo, sólo uno podrá proseguir; los otros permanecerán en espera. Los semáforos y las operaciones de semáforos pueden implementarse en software o hardware. En general, se implementan en el núcleo del sistema operativo, donde se controlan los cambios de estado de un proceso. 4.9.1.
TIPOS DE SEMÁFOROS
Los semáforos pueden ser de 2 tipos: Binarios o Generales (Contadores). La operación de inicializador definirá si el semáforo será binario o no, es decir, si se inicializa con 1, el semáforo será binario ya que solo podrá manejar un recurso compartido, en caso de tener “N” recursos compartidos se inicializara con“N”. El semáforo binario resulta adecuado cuando hay que proteger un recurso que pueden compartir varios procesos, pero cuando lo que hay que proteger es un conjunto de recursos similares, se puede usar una versión más general del concepto de semáforo que lleve la cuenta del numero de recursos disponibles. En este caso el semáforo se inicializa con el número total de recursos disponibles (n) y las operaciones de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el semáforo cuando el valor de éste es menor o igual que cero. El semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se inicializan en 1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Cuando el recurso está disponible, un proceso accede y decrementa el valor del semáforo con la operación P. El valor queda entonces en 0, lo que hace que si otro proceso intenta decrementarlo tenga que esperar. 87
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Si tenemos “N” procesos inicializamos un semáforo para que solo “N” procesos acceda a un recurso compartido.
4.9.2.
ALGORITMO DE LOS SEMÁFOROS. Algoritmo Del Is: Is(Semaforo s, m: entero){ s<- N;
Algoritmo Del Down: Down(Semaforo s){ if(S:Semaforo){ if(s>0) s=s-1; else Bloquear_Proceso();
88
Up (semaforo){ If hay_proceso_bloqueadothen despertar_el_proceso() else semáforo = semáforo + 1
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I Implementación del semáforo binario
package Semaforo; public class SemaforoBinario { protected int contador = 0; public SemaforoBinario (int valorInicial) { contador = valorInicial; } synchronized public void WAIT () { while (contador == 0) try { wait(); } catch (Exception e) {} contador--; } synchronized public void SIGNAL () { contador = 1; notify(); /* aquí con despertar a uno es suficiente, pues todos esperan por la misma condición */ } } Implementación del semáforo general package Semaforo; public class SemaforoGeneral extends SemaforoBinario { public SemaforoGeneral (int valorInicial) { super (valorInicial); } synchronized public void SIGNAL () { contador++; notify(); } }
4.9.3.
FUNCIONAMIENTO DE LOS SEMÁFOROS
Dos o más procesos pueden cooperar por medio de simples señales, de forma que se pueda obligar a detenerse a un proceso en una posición determinada hasta que reciba una señal 89
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
específica. Cualquier requisito complicado de coordinación puede satisfacerse por medio de la estructura de señales adecuada. Para la señalización, se usan variables especiales llamadas semáforos. Para transmitir una señal por el semáforo, los procesos ejecutan la primitiva signal(s). Para recibir una señal del semáforo, los procesos ejecutan la primitiva wait(s); si la señal correspondiente aún no se ha transmitido, el proceso es suspendido hasta que tenga lugar la transmisión. Para lograr el efecto deseado, se pueden contemplar los semáforos como variables que tienen un valor entero sobre el que se definen las tres operaciones siguientes: 1. Un semáforo debe inicializarse con un valor no negativo. 2. La operación wait decrementa el valor del semáforo. Si el valor del semáforo se hace negativo, el proceso que ejecuta el wait se bloquea. 3. La operación signal incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea a un proceso bloqueado por una posición wait. Las primitivas wait y signal se suponen atómicas, es decir, no pueden ser interrumpidas y cada rutina puede considerarse como un paso indivisible. Una versión más limitada es el semáforo binario, que sólo puede tomar los valores 0 y 1. En principio los semáforos binarios son más sencillos de implementar y tienen la misma potencia de expresión que los semáforos generales. Tanto en los semáforos como en los semáforos binarios se emplea una cola para mantener los procesos esperando en el semáforo. La política más equitativa mediante la cual se quitan los procesos de dicha cola es la FIFO. La única exigencia estricta es que un proceso no debe quedar retenido en la cola de un semáforo indefinidamente porque otros procesos tengan preferencia. Generalmente operadores como WAIT y SIGNAL operan en los semáforos de la siguiente manera. Cuando un proceso ejecuta un operador WAIT que tiene un valor de semáforo en 0, ese proceso se bloquea; si el valor es mayor que cero, el valor del semáforo es disminuido en 1 y el proceso continúa. Cuando un proceso ejecuta un operador SIGNAL y hay procesos bloqueados (WAITING), uno de estos procesos es activado (puesto en la cola de listos). Si no hay procesos esperando el valor del semáforo se incrementa en 1. Se asume que procesos bloqueados por semáforos pierden el procesador y entran en una cola de espera. También se asume que la cola de espera es FIFO. 4.9.4. Desventajas Los semáforos requieren espera activa, los procesos que están compitiendo por el recurso están dando vueltas en su propio código,, hasta que se asigne el recurso. Solo un proceso entra en la sección crítica. No se puede imponer el uso correcto de los “Down” y “Up” No existe una asociación entre el semáforo y el recurso Entre “Down” y “Up” el usuario puede realizar cualquier operación con el recurso.
90
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.10. MONITORES Son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a la de los semáforos, pero que son más fáciles de controlar. Un monitor es una estructura formada por una cabecera que los identifica, un conjunto de variables globales a todos los procedimientos del monitor, un conjunto de procedimientos y un bloque de inicialización, el cual se ejecuta una única vez, cuando se crea el monitor. Un monitor es un módulo de software que consta de uno o más procedimientos, una secuencia de inicio y unos datos locales. Sus características fundamentales: Las variables de datos locales están solo accesibles para los procedimientos del monitor y no para los procedimientos externos. Un proceso entra en el monitor invocando a uno de sus procedimientos. Solo un proceso puede estar ejecutando en el monitor en un instante dado, cualquier otro proceso que haya invocado al monitor quedará suspendido mientras espera a que el monitor esté disponible. Un monitor es un conjunto de procedimientos que proporciona el acceso con exclusión mutua a un recurso o conjunto de recursos (datos o dispositivos) compartidos por un grupo de procesos. Los procedimientos van encapsulados dentro de un módulo que tiene la propiedad especial de que sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. El recurso que queremos compartir se declara como monitor y en él se incluyen todas las operaciones que afecten a dicho recurso. Los procesos que usan el monitor se sitúan de forma independiente y cuando deseen usar el recurso, llamarán al procedimiento del monitor que implemente la operación que desea ejecutar. Para resolver la sincronización se utilizan dos instrucciones, wait (bloquea siempre) y signal, y actúan sobre variables condición que son colas y además no tienen valor.
cwait (c): suspende la ejecución del proceso que llama bajo la condición c. El monitor está ahora disponible para ser usado por otros procesos. csignal(c): reanuda la ejecución de algún proceso suspendido después de un cwait bajo la misma condición. Si hay varios procesos, se elige uno de ellos; si no hay ninguno, no hace nada.
Las colas son un tipo de variables que son el lugar donde almacenaremos los procesos que hayan quedado suspendidos bajo un .wait. y estén a la espera de ser "despertados". En el caso de que dentro de un monitor un proceso se quede bloqueado con un wait por lo cual se bloquea y no dejaría ejecutarse a otro proceso, el SO despierta a otro proceso cuya última instrucción haya sido un signal y además vale la condición que hace que se bloqueen los procesos. 91
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Habrá algunos casos en los que nos apoyemos en una variable booleana para garantizar la exclusión mutua sobre una variable con una sola instancia. También habrá casos en los que utilicemos un contador. El monitor se puede ver como una valla alrededor del recurso (o recursos), de modo que los procesos que quieran utilizarlo deben entrar dentro de la valla, pero en la forma que impone el monitor. Muchos procesos pueden querer entrar en distintos instantes de tiempo, pero sólo se permite que entre un proceso cada vez, debiéndose esperar a que salga el que está dentro antes de que otro pueda entrar. La ventaja para la exclusión mutua que presenta un monitor frente a los semáforos u otro mecanismo es que ésta está implícita: la única acción que debe realizar el programador del proceso que usa un recurso es invocar una entrada del monitor. Si el monitor se ha codificado correctamente no puede ser utilizado incorrectamente por un programa de aplicación que desee usar el recurso. Cosa que no ocurre con los semáforos, donde el programador debe proporcionar la correcta secuencia de operaciones espera y señal para no bloquear al sistema. El monitor debe usar un sistema de prioridades en la asignación del recurso que impida que un proceso en espera de lograr entrar se vea postergado indefinidamente por otros procesos nuevos que deseen utilizarlo. Semáforos vs. Monitores ● Un semáforo es un objeto que es utilizado para sincronizar el acceso a un recurso compartido, mientras que un monitor constituye la interfaz de acceso al propio recurso compartido. ● Los monitores ofrecen mayor seguridad (reliability), robustez y escalabilidad; complementan al encapsulamiento de un objeto, sincronizando el acceso al mismo. ● Los semáforos permiten limitar el número de procesadores que acceden concurrentemente a un recurso compartido, estableciendo un protocolo de adquisición (wait) y liberación (signal).
4.11. PASO DE MENSAJES Es una cadena de texto transmitida de un proceso que envía el mensaje a un receptor (proceso receptor). Un mensaje puede tener código, texto, datos. Son una solución del sistema operativo que nos permitirán la sincronización de procesos y la comunicación entre ambos. Suelen tener dos partes: Cabecera (obligatoria): IdProcesoEmisor, IdProcesoReceptor, Tipo, Longitud Cuerpo (optativo): Información adicional Tenemos dos tipos de órdenes para gestionar mensajes (para enviar y recibir): Enviar: send (destino, mensaje) Recibir: receive (origen, mensaje) Es decir permiten que dos operaciones P y Q se comuniquen mediante mensajes. Los diferentes métodos para implementar la lógica de enlace son: 92
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1. 2. 3. 4. 5.
Comunicación directa o indirecta Comunicación simétrica o asimétrica Uso automático o explícito de buffers Envío por copia o por referencia Mensaje de tamaño fijo o variable.
1. Comunicación directa Los procesos nombran explícitamente al productor y al consumidor. Las propiedades para este enlace son: El enlace se establece automáticamente El enlace está asociado exactamente con dos procesos. Entre cada par de procesos existe exactamente un enlace. 2. Comunicación simétrica o asimétrica Los esquemas de direccionamiento son: Simetría en el direccionamiento, pues el emisor y el receptor se nombran mutuamente. Send (P,mensaje) Enviar un mensaje al proceso P. Receive (Q,mensaje ) Recibir un mensaje del proceso Q. La Asimetría en el direccionamiento, solo el emisor nombra al receptor. Send (P,mensaje ), Receive (id,mensaje) 3. Comunicación Indirecta Los mensajes se reciben en buzones o puertos. Estos pueden ser propiedad del proceso que los crea (solo puede ser usado por él) o del sistema operativo (los buzones podrán ser usados por varios procesos), en este caso el sistema operativo debe proporcionar mecanismos para: crear buzones, enviar y recibir mensajes a través del buzón y borrar buzones. El enlace de comunicación, propiedades: Se establece el enlace entre un par de procesos, solo si tienen un buzón compartido. Un enlace puede estar asociado con más de dos procesos. Entre cada par de procesos puede haber enlaces diferentes y cada enlace corresponde a un buzón. Sincronización El paso de mensajes puede ser: Síncrono: El envío y la recepción es con bloqueo, es decir el receptor o el emisor se bloquean hasta que el envío o la recepción del mensaje se ejecute. Asíncrono: El envío y la recepción es sin bloqueo. Es decir, el emisor o el receptor, envían o reciben el mensaje y continúa su operación. 4. USO DE BUFFERS Para la comunicación directa o indirecta los mensajes están en una cola temporal, y pueden ser: Capacidad cero: No hay mensajes en espera, por tanto, el emisor debe bloquearse hasta que 93
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
el receptor tome el mensaje. A éste sistema se lo conoce como mensajes sin buffers. Capacidad limitada: El emisor se bloqueará solo cuando no hay espacio disponible en la cola. Capacidad ilimitada: El emisor nunca se bloquea. Direccionamiento. a) Directo. Se especifican emisor y receptor de forma explícita. P envía a Q: - P: send (Q, mensaje) - Q: receive (Q, mensaje) b) Implícito: El emisor especifica quien es el receptor, pero el receptor no especifica quién es el emisor. c) Indirecto. En este direccionamiento los mensajes no se envían directamente al receptor, sino que se envían a una estructura de datos denominada buzón o mailbox. Una gran ventaja de esto es que podemos enviar a cualquier buzón cualquier mensaje. Los mensajes no tienen que ir dirigidos específicamente a un proceso. En este tercer caso la relación puede ser (1-1) (un proceso envía a un solo buzón). También puede haber (n-1) donde varios procesos envían mensajes a un solo buzón o (1-n) donde un proceso envía mensajes a muchos buzones. Este último caso vale para cuando quiero comunicar una información a muchos procesos. Propiedad de los buzones. Tenemos dos casos: El proceso es el propietario. El buzón existe mientras existe el proceso y sólo el propietario puede leer datos del buzón. El propietario del buzón es el SO. La propiedad del buzón puede transmitirse entre procesos, lo que permite que varios procesos puedan leer. Sincronización de los mensajes. a) Cuando enviamos: - El proceso se bloquea hasta que el receptor reciba el mensaje (envío bloqueante) - No se bloquea y continua haciendo operaciones (envío no bloqueante) b) Al recibir el mensaje: - Al mirar a ver si está el mensaje, si ya ha llegado, lo cojo y continúo. - Cuando voy a buscar el mensaje, si no ha llegado todavía: - Bloqueo el proceso, hasta que llegue el mensaje (recepción bloqueante). - No se bloquea el proceso (recepción no bloqueante). - El proceso se bloquea durante un intervalo de tiempo. Si transcurrido ese tiempo, el mensaje no ha llegado, el proceso continúa sin el mensaje. Casos habituales: Envío bloqueante- Recepción bloqueante. 94
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Se usa cuando la sincronización ha de ser muy estricta. Envío no bloqueante - recepción bloqueante. Se usa para cuando el proceso emisor no necesita que el receptor haya recibido el mensaje para continuar. Ej: Servidor de correo. - Envío no bloqueante - recepción no bloqueante. Resumen La sincronización entre procesos es necesaria para evitar error de temporización debido al acceso concurrente a recursos compartidos, tales como estructuras a datos o dispositivos de E/S, por parte de procesos competidores. La sincronización entre procesos también permite el intercambio de señales de temporización (Parar / Seguir) entre procesos cooperativos con el fin de preservar las relaciones especificadas de precedencia impuesta por el problema que se resuelva. Sin una adecuada sincronización entre procesos, la actualización de variables compartida puede inducir a errores de temporización relacionados con la concurrencia que son difíciles de depurar Una de las principales causas de este problema es la posibilidad de que los procesos concurrentes puedan observar valores temporalmente inconsistentes de una variable compartida mientras está siendo actualizada. Un método para resolver este problema es realizar las actualizaciones de las variables compartida de manera mutuamente exclusiva. Esto se puede lograr permitiendo que como máximo entre un proceso cada vez a la sección crítica de código dentro de la cual se actualiza una variable compartida o una estructura de datos particular Una región crítica es una construcción del lenguaje que fuerza estrictamente el uso mutuamente exclusivo de un recurso declarado como compartido. Además, una región crítica condicional permite a un proceso esperar en una condición dentro de una sección crítica sin prohibir por ello que otros procesos puedan acceder al recurso compartido. El soporte hardware para el control de concurrencia forma parte íntegra de una manera u otra de prácticamente todas las modernas arquitecturas de computadores. Algunos de los mecanismo disponibles, tales como las instrucciones de habilitar / deshabilitar interrupciones y las de comprobar – y – fijar, son adecuadas para la implementación de estrategias pesimistas de control de la concurrencia. Otras tales como la instrucción de comparar – e – intercambiar, son más adecuadas para el control de concurrencia optimista. Los monitores controlan no sólo la sincronización de los procesos concurrentes, sino también la naturaleza de las operaciones que está permitido efectuar sobre los recursos compartidos. Los datos compartidos pueden ser encapsulados dentro del cuerpo de un monitor y ser accesibles solo mediante el uso de procedimientos del monitor. Los mensajes permiten comunicación y sincronización entre procesos sin necesidad de utilizar variables globales, lo que les hace adecuados tanto para sistemas centralizados como distribuidos. Dependiendo de si los mensajes son almacenados temporalmente o no, es posible implementar la operación asíncrona o síncrona de los procesos emisor y receptor. El intercambio de mensajes basados en buzones puede proporcionar una correspondencia de direcciones muy 95
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
versátil entre los procesos emisor y receptor. Junto con la capacidad de ser utilizados para señalizar interrupciones, los mensajes pueden ser utilizados para implementar procesos servidores, tales como un servidor de impresora con soporte para formas síncronas y asíncronas llamadas de E/S. AUTOEVALUACIÓN 7 1. Para lograr la exclusión mutua de una sección crítica donde se accede a un recurso compartido inicialmente disponible. 1. El semáforo binario debe inicializarse a cero 2. El semáforo binario debe inicializarse a uno. 3. La inicialización del semáforo binario depende del recurso que se comparta 4. Los semáforos no sirven para lograr la exclusión mutua de las secciones críticas 2. La espera activa corresponde a: 1. La acción de bloqueo que realiza un semáforo sobre un proceso 2. El estado bloqueado de un proceso pero no retirado a memoria secundaria 3. Cuando un proceso se mantiene chequeando una condición y, por lo tanto, consumiendo ciclos de CPU. 4. La espera que realiza la operación wait sobre una variable de condición en un Monitor 3. El algoritmo de Perterson corresponde a: 1. 2. 3. 4.
Una estrategia de sincronización de procesos Una método de ordenación de sucesos en un sistema distribuido Una política de sustitución de páginas al producirse un fallo de página Una solución al problema de la exclusión mutua.
4. Para lograr la exclusión mutua con semáforo binario de una sección crítica las operaciones de espera y señal se usan: 1. En dependencia del recurso que se comparta en la sección crítica 2. Como procedimiento de bloqueo antes de acceder a la sección y como desbloqueo después. 3. Como procedimiento de desbloqueo antes de acceder a la sección y como bloqueo después, respectivamente 4. Como procedimientos de bloqueo y desbloqueo respectivamente, pero se ejecutan en procesos diferentes. 5. Los monitores proporcionan exclusión mutua porque: 1. Sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. 2. Para ello se utilizan variables de condición 3. No proporcionan exclusión mutua 4. Se diseñan mediante procedimientos encapsulados dentro de un módulo. 6. La comunicación indirecta es un método en el que: 96
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
1. Los mensajes se envían y reciben a través de una entidad intermedia que recibe el nombre de buzón o puerto. 2. Se realiza una copia del mensaje desde el espacio de direcciones del emisor al espacio de direcciones del receptor. 3. El proceso que envía el mensaje sigue su ejecución sin preocuparse de si el mensaje se recibe o no. 4. Ambos procesos, el emisor y el receptor, nombran de forma explícita al proceso con el que se comunican. 7. La comunicación es asíncrona cuando el proceso que envía el mensaje: 1. Sólo prosigue su tarea cuando el mensaje ha sido recibido. 2. Sólo prosigue su ejecución cuando ha recibido una respuesta del receptor. 3. Sigue su ejecución sin preocuparse de si el mensaje se recibe o no. 4. Lo realiza de manera indirecta, es decir, a través de un buzón. 8. Si se usa un semáforo para lograr la sincronización de procesos: 1. Éste se debe inicializar al número de procesos que se desean sincronizar. 2. Se deben incluir variables de condición, pues el semáforo únicamente proporciona exclusión mutua. 3. Las operaciones wait y signal se utilizan dentro de un mismo proceso. 4. Las operaciones wait y signal se utilizan en procesos separados. 9. Un semáforo general inicializado a N: 1. Corresponde a N semáforos binarios compartidos entre varios procesos. 2. Corresponde a un semáforo binario compartido entre N procesos. 3. Sirve para proteger a un recurso compartido entre N procesos. 4. Sirve para proteger a N recursos similares compartidos entre varios procesos. 10. Un semáforo general inicializado a N: 1. Corresponde a N semáforos binarios compartidos entre varios procesos. 2. Corresponde a un semáforo binario compartido entre N procesos. 3. Sirve para proteger a un recurso compartido entre N procesos. 4. Sirve para proteger a N recursos similares compartidos entre varios procesos. 11. Defina que es la exclusión mutua. ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………… Bibliografía Específica
97
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
EXCLUSIÓN MUTUA. Disponible en: http://www.webprogramacion.com/44/sistemasoperativos/exclusion-mutua.aspx EXCLUSION MUTUA. Disponible en: http://www.slideshare.net/tatyseli/exclusin-mutua CONCURRENCIA: EXCLUSIÓN MUTUA Y SINCRONIZACIÓN. Universidad de Informática. Segovia. Disponible en: http://www.infor.uva.es/~fjgonzalez/apuntes/Tema6.pdf SEMAFOROS. Universidad de San Carlos en Guatemala. 04 de Diciembre de 2012. Disponible en: http://es.scribd.com/doc/15256170/Semaforos-Concurrencia CONCEPTO DE SEMAFOROS. Disponible en: http://www.rastersoft.com/OS2/CURSO/SEMAFORO.HTM SEMAFOROS. Septiembre 4 del 2009. Disponible en: http://www.slideshare.net/lucita287/semaforos-1966837 SEMAFOROS. 25 de Marzo de 2012. Disponible en: http://sistemasoperativo252m.blogspot.com/2011/01/29-semaforos-sistemas-operativos.html SISTEMAS OPERATIVOS, SEMAFOROS PASO DE MENSAJES. MONITORES. 04 de Diciembre de 2012. Disponible en: http://www.slideshare.net/pepios/clase-3-ene-8 SEMAFOROS – MONITORES. 07 de Octubre de 2005. http://wwwdi.ujaen.es/~lina/TemasSO/CONCURRENCIA/2UtilizandoMemoriaCompartidaII.ht m#monitores
CARTA DESCRIPTIVA DE: I. DATOS INFORMATIVOS INSTITUTO TECNOLÓGICO SUPERIOR “JUAN MONTALVO”
Total días laborables para el período: 76 días
PERIODO ACADÉMICO 2012 – 2013 ESPECIALIDAD: INFORMATICA
Total de horas clase para el período: 76 horas.
CURSO: QUINTO NIVEL DISEÑADO POR: ING. AMADA CRIOLLO
Total de horas-trabajo por semana: 4 horas. Fecha de formulación: Loja, Diciembre de 2012.
II. JUSTIFICACION Y PROPOSITO DEL CURSO 1. JUSTIFICACIÓN 98
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
El módulo de Sistemas Operativos I. aporta importantes definiciones acerca de los computadores, los cuales se han convertido en la actualidad en la principal herramienta de trabajo para las empresas, industrias y cualquier tipo de negocio. De ahí radica la importancia de conocer como está compuesto un computador, como trabaja, cuáles son sus funciones, etc. El componente principal del computador es el Sistema Operativo cuya función principal es poner en funcionamiento el ordenador, por ello es importante saber todo lo relacionado a los diferentes sistemas operativos. Este módulo consta de cuatro unidades, Conceptos fundamentales, Procesos, Algoritmos de Planificación y la Comunicación y Sincronización de procesos. Con ello se pretende empapar al estudiante con la teoría y práctica necesaria acerca de los principios y funcionamientos de los sistemas operativos. Esta disciplina constituye una fuente de conocimiento indispensable para que el estudiante se encuentre en la capacidad de identificar los sistemas operativos existentes, su estructura, su funcionamiento, como ejecuta los procesos ordenados por el usuario, ya que siempre es importante tener conocimientos generales de cómo trabaja la herramienta que sirve de apoyo para realizar diversas actividades. Por tal motivo se espera despertar el interés del estudiante en un 100 por ciento, para conseguir dicho objetivo se pondrá a disposición todos los conocimientos y experiencias adquiridas con el propósito de obtener resultados satisfactorios. 2. PROPÓSITO 3. PRE – REQUISITOS Este módulo contribuye fundamentalmente en Fundamentos de la Programación la formación básica del futuro profesional, por Ingles Técnico Básico lo que las temáticas a abordarse se han Matemática establecido de forma lógica y secuencial, de Mantenimiento tal manera que el estudiante pueda ir asimilando los contenidos paulatinamente. Resolver ejercicios sobre ejecución de procesos por diversos algoritmos, mediante la aplicación deprocesos matemáticos; fundamentos de programación y los conocimientos y técnicas aprendidos.
III. MATRIZ DE COMPETENCIAS
99
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
UNIDAD 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS 1.1. ¿Qué es un Sistema Operativo? 1.2. Tipos de sistemas operativos? 1.3. Historia de los sistemas operativos 1.4. Características de los sistemas operativos? 1.5. Clasificación de los sistemas operativos 1.6. Funciones de un sistema operativo 1.7. Estructura de un sistema operativo
Comprender qué es un sistema operativo y conocer cuáles son funciones, objetivos, servicios y componentes principales Conocer la evolución histórica de los sistemas operativos. Saber distinguir los diferentes tipos de sistemas operativos. Conocer las principales estructuras que puede tener el núcleo de un sistema operativo.
UNIDAD 2. PROCESOS Y ADMINISTRACIÓN DEL PROCESADOR 2.1. Concepto de proceso 2.2. Estados de un proceso 2.3. Transiciones de estados 2.4. Bloque de control de procesos (BCP) 2.5. Operaciones entre procesos 2.6. Hilos (thread) 2.6.1. Diferencias entre hilos y procesos 2.6.2. Funcionalidad de los hilos 2.6.3. Estados de un hilo 2.6.4. Ventajas de los hilos contra procesos 2.6.5. Beneficios de la programación multihilos 2.6.6. Administración de hilos en Java.
Comprender qué es un proceso, y conocer las ventajas e inconvenientes del modelo de proceso monohilo y del modelo de proceso multihilo. Conocer cuáles son los principales estados en que puede encontrarse un proceso. Conocer las características del modelo de proceso multihilo. Conocer y distinguir los diferentes niveles de planificación de procesos existentes en un sistema operativo Conocer como ejecuta el Sistema Operativo los procesos que solicitan recursos del sistema
100
UNIDAD 3. ALGORITMOS DE PLANIFICACIÓN DE PROCESOS. 3.1. Planificación de procesos 3.2. Concepto de planificación. 3.3. Objetivos de la planificación 3.4. Criterios de planificación. 3.5. Niveles de planificación 3.5.1. Planificación a corto plazo. 3.5.2. Planificación a mediano plazo. 3.5.3. Planificación a largo plazo 3.6. Tipos de planificación 3.7. Algoritmos de planificación 3.7.1. FCFS (FirstCome, First Served, Primero en llegar, primero en ser antendido). 3.7.2. SJF (ShortestJob First) o SPN (Shortest ProcessNext). 3.7.3. Planificación por prioridad. 3.7.4. Planificación por turno circular, RR (Round Robin). 3.7.5. MLQ (Multiple Level Queves, Vías múltiples) 3.7.6. Planificación con múltiples colas realimentadas UNIDAD 4. COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS 4.1. Definición de sincronización de procesos 4.2. Razones para sincronizar procesos. 4.3. Comunicación entre procesos. 4.4. Tipos de comunicación 4.5. Exclusión mutua 4.6. Soluciones por Software 4.7. Soluciones por Hardware 4.8. Semáforos. 4.8.1. Tipos de semáforos. 4.8.2. Algoritmo de los semáforos. 4.8.3. Funcionamiento de los semáforos 4.8.4. Desventajas. 4.9. Monitores 4.10. Paso de mensajes.
Conocer y distinguir los diferentes niveles de planificación de procesos existentes en un sistema operativo. Saber qué criterios generales se consideran en la planificación de procesos en general y en la planificación del procesador en particular. Conocer el funcionamiento y las características de los principales algoritmos de planificación de procesos.
Saber qué es y por qué es necesaria la exclusión mutua entre procesos en el uso de recursos compartidos. Conocer las principales soluciones software y hardware a la exclusión mutua. Conocer el funcionamiento, la implementación y el uso de los semáforos. Saber qué son, cómo se implementan y cómo se utilizan los monitores. Conocer el funcionamiento, la implementación y el uso del paso de mensajes.
SISTEMAS OPERATIVOS I
IV. MATRIZ DE PROCESOS METODOLÓGICOS NRO. Y TITULO DE LA UNIDAD PROCEDIMIENTOS METODOLÓGICOS DE ENSEÑANZA APRENDIZAJE INTRODUCCIÓN A LOS SISTEMAS Lectura comprensiva OPERATIVOS Subrayado Lluvia de ideas Lectura dirigida Preguntas y respuestas Preguntas lógicas. Solicitar la participación de los estudiantes desarrollando problemas propuestos Práctica resolviendo ejercicios propuestos. PROCESOS Y ADMINISTRACIÓN DEL Lectura dirigida PROCESADOR Análisis Preguntas y respuestas Preguntas lógicas. Solicitar la participación de los estudiantes desarrollando problemas propuestos Práctica resolviendo problemas propuestos. ALGORITMOS DE PLANIFICACIÓN DE Lectura dirigida PROCESOS. Análisis Preguntas y respuestas Preguntas lógicas. Solicitar la participación de los estudiantes desarrollando problemas propuestos Práctica resolviendo problemas propuestos. COMUNICACIÓN Y SINCRONIZACIÓN Lectura dirigida ENTRE PROCESOS Análisis Preguntas y respuestas Preguntas lógicas. Solicitar la participación de los estudiantes desarrollando problemas propuestos Práctica resolviendo problemas propuestos.
102
V. PLAN DE EVALUACIÓN COMPETENCIAS
INDICADORES DE DESEMPEÑO
Comprender qué es un sistema operativo y conocer cuáles son funciones, objetivos, servicios y componentes principales Conocer la evolución histórica de los sistemas operativos. Saber distinguir los diferentes tipos de sistemas operativos.
Conocer las principales estructuras que puede tener el núcleo de un sistema operativo. Comprender qué es un proceso, y conocer las ventajas e inconvenientes del modelo de proceso monohilo y del modelo de proceso multihilo. Conocer cuáles son los principales estados en que puede encontrarse un proceso. Conocer las características del modelo de proceso multihilo.
Define que es un S.O, e identifica el objetivo de porque fueron creados
Conoce como fueron evolucionado los S.O. en cada generación. Identifica y reconoce la diferencia entre cada S.O existente. Explica cómo está estructurado un S.O y cómo funciona. Indica que es un proceso, y los estados en que se puede encontrar.
FORMAS E INSTRUMENTOS DE EVALUACION Trabajo investigación. Debate Prueba oral Trabajo Investigación Observación Lección oral Debate Trabajo investigación
Prueba oral Trabajo investigación.
Conoce y comprende los estados en que puede encontrar un proceso.
Lección oral Debate Trabajo práctico.
Conoce las características y ventajas de un proceso multihilo.
Trabajo práctico.
Conocer y distinguir los diferentes niveles de planificación de procesos existentes en un sistema operativo
Identifica los tipos de planificación para la ejecución de los procesos.
Trabajo investigación. Debate Lección oral
de
de
de
de
de
Conocer como ejecuta el Sistema Operativo los procesos que solicitan recursos del sistema.
Conocer y distinguir los diferentes niveles de planificación de procesos existentes en un sistema operativo. Analizar qué criterios generales se consideran en la planificación de procesos en general y en la planificación del procesador en particular. Conocer el funcionamiento y las características de los principales algoritmos de planificación de procesos.
Saber qué es y por qué es necesaria la exclusión mutua entre procesos en el uso de recursos compartidos. Conocer lasprincipales soluciones software y hardware a la exclusión mutua. Conocer el funcionamiento, la implementación y el uso de los semáforos.
Saber qué son, cómo se implementan y cómo se utilizan los monitores. Conocer el funcionamiento, la implementación y el uso del paso de mensajes.
VI. BIBLIOGRAFIA Y MATERIAL
de Comprende el proceso del Trabajo Sistema Operativo para investigación. administrar los procesos Debate que solicitan recursos del Lección oral sistema. Conoce y distingue los Debate. diferentes niveles de Pruebas objetivas planificación de procesos Lección oral existentes en un sistema Trabajo práctico. operativo. Participación del estudiante Sabe qué criterios generales Pruebas objetivas se consideran en la Lección oral planificación de procesos en Trabajo práctico general y en la planificación Participación del del procesador en particular. estudiante. Indica el funcionamiento y Pruebas objetivas las características de los Lección oral principales algoritmos de Trabajo práctico planificación de procesos. Trabajo extraclase Participación estudiante. Define la exclusión mutua y reconoce para qué es Pruebas objetivas necesaria entre procesos en Trabajo extraclase el uso de recursos Lección oral compartidos. Trabajo práctico Conoce las principales Participación soluciones software y estudiante. hardware a la exclusión mutua. Conoce el funcionamiento, Pruebas objetivas la implementación y el uso Trabajo extraclase de los semáforos. Trabajo práctico Participación estudiante. Sabe qué son, cómo se Trabajo extraclase implementan y cómo se Trabajo práctico utilizan los monitores. Participación estudiante. Conoce el funcionamiento, Pruebas objetivas la implementación y el uso Trabajo extraclase del paso de mensajes. Lección oral Trabajo práctico Participación estudiante.
del
del
del
del
del
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Libros:
MILENKOVIC, Milan. Sistemas Operativos, Segunda Edición,Editorial MC Graw Hill. LA RED MARTINEZ, David Luis. Agentina. Disponible http://campus.dokeos.com/courses/1017/document/libro.pdf?cidReq=1017
en:
Links
Fundamentos de Sistemas Operativos. CANDELA, Santiago. Disponible en: .http://books.google.com.ec/ books?id=fRK3lbTrNy4C&pg=PA236&hl=es&source=gbs_select ed_pages&cad=3#v=onepage&q&f=false PÉREZ, Fede. Fundamentos de los S.O. Disponible en: http://www.disa.bi.ehu.es/spanish/ftp/material_asignaturas/Sistemas_Informaticos/Transpare ncias/Fundamentos%20de%20Sistemas%20Operativos.pdf Definición de Sistemas Operativos. Disponible en: http://iesvillalbahervast ecnologia.files.wordpress.com/2009/09/sistemas-operativos.pdf Sistemas Operativos. Disponible en: http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/computot.PDF ROMERO, Gustavo Historia de los Sistemas Operativos, 12 de febrero de 2009. Disponible en: http://geneura.ugr.es/~gustavo/aco/teoria/historia/historia.pdf Sistema operativo, 2003 -10 -29. Disponible en: http://html.rincondelvago.com/sistemasoperativos_36.html Generación de los Sistemas Operativos, 15 de Marzo de 2004. Disponible en: http://148.204.211.134/polilibros/portal/Polilibros/P_terminados/SISTEMAS%20_OPERATIV OS/UNIDAD2/2.3.2.HTM Clasificación de los Sistemas Operativos. 10 de Diciembre de 2009. Disponible en: http://www.pacojesus.com/index.php?option=com_content&view=article&id=8:clasificacion- delos-sistemas-operativos&catid=7:sistema-operativo Clasificación de los Sistemas operativos. Disponible en: http://html.rincondelvago.com/clasificacion-de-sistemas-operativos.html Estructura de un Sistema Operativo, 29 de Agosto de 2011. Disponible en: http://www.fing.edu.uy/tecnoinf/cursos/so/material/teo/so03-estructura_sist_oper.pdf Estructura sistemas operativos. Disponible en: http://www.mflor.mx/materias/comp/cursoso/sisope1.htm SERAFIN, Darío Victoriano. INTRODUCCIÓN A LA SISTEMAS OPERATIVOS. 4-10-10. Disponibel en: http://es.scribd.com/doc/109194273/10/Division-implicita-y-explicita-de-tareas ADMINISTRACIÓN DE PROCESOS Y DEL PROCESADOR. 07 – 09 – 11. Disponible en: http://ac.itdurango.mx/acreditacion/4Proceso_E_A/LI/Evidencias/4.5%20M%E9todos%20de
105
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
%20Ense%F1anza/APUNTES%20DEL%20MAESTRO/Sistemas%20Operativos/ApuntesU2 _SistemasOperativosISC.pdf DESCRIPCIÓN DE UN PROCESO. 07 de Octubre de 2005. Disponible en: http://wwwdi.ujaen.es/~lina/TemasSO/DEFINICIONYCONTROLDEPROCESO/3Descripciond eunproceso.htm RED MARTINEZ, David Luis. ADMINISTRACIÓN DE PROCESOS Y DEL PROCESADOR. 10-10-2008. Disponible en: http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO2.htm#IDSP PROCESOS. 23 de Julio de 2012. Disponible en: http://www.atc.uniovi.es/telematica/2ac/Apuntes-y-Ejercicios/T08-Procesos.pdf Hilos. 17 de Marzo de 2012. Disponible en: http://252m2so.blogspot.com/2009/ 10/25procesos-e-hilos.html Hilos de ejecución 10 de Octubre de 2012. Disponible en: http://es.wikipedia.org/wiki/Hilo_de_ejecuci%C3%B3n ALGORITMOS DE PLANIFICACIÓN. 07 de Octubre de 2005. Disponible en: http://wwwdi.ujaen.es/~lina/TemasSO/PLANIFICACIONDEPROCESOS/6AlgoritmosdePlanifi cacionI.htm CRITERIOS DE PLANIFICACIÓN. Disponible en: http://522gdp.blogspot.com/2012/01/criterios-de-planificacion.html MAÑOSO, Carolina. GESTION DE PROCESOS. 06 de Diciembre de 2011. Disponible en: http://www.talgo32.es/archivos/SO1/uned/tema2.pdf SANTOS, José Miguel. PLANIFICACIÓN DE PROCESOS. Universidad de las Palmas de Gran Canaria, 1998-2012. Disponible en: http://sopa.dis.ulpgc.es/so/teoria/pdf/so-06Planificacion%20de%20procesos-6x1.pdf PLANIFICACION DE PROCESOS. Escuela Universitaria de Informática de Segovia. Disponible en: http://es.scribd.com/doc/31825917/ALGORITMOS-DE-PLANIFICACION Sistema de Tiempo Real. Disponible en: http://es.wikipedia.org/wiki/Sistema_de_tiempo_real EXCLUSIÓN MUTUA. Disponible en: http://www.webprogramacion.com/44/sistemasoperativos/exclusion-mutua.aspx EXCLUSION MUTUA. Disponible en: http://www.slideshare.net/tatyseli/exclusin-mutua CONCURRENCIA: EXCLUSIÓN MUTUA Y SINCRONIZACIÓN. Universidad de Informática. Segovia. Disponible en: http://www.infor.uva.es/~fjgonzalez/apuntes/Tema6.pdf SEMAFOROS. Universidad de San Carlos en Guatemala. 04 de Diciembre de 2012. Disponible en: http://es.scribd.com/doc/15256170/Semaforos-Concurrencia CONCEPTO DE SEMAFOROS. Disponible en: http://www.rastersoft.com/OS2/CURSO/SEMAFORO.HTM SEMAFOROS. Septiembre 4 del 2009. Disponible en: http://www.slideshare.net/lucita287/semaforos-1966837 SEMAFOROS. 25 de Marzo de 2012. Disponible en: http://sistemasoperativo252m.blogspot.com/2011/01/29-semaforos-sistemas-operativos.html 106
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
SISTEMAS OPERATIVOS, SEMAFOROS PASO DE MENSAJES. MONITORES. 04 de Diciembre de 2012. Disponible en: http://www.slideshare.net/pepios/clase-3-ene-8 SEMAFOROS – MONITORES. 07 de Octubre de 2005. http://wwwdi.ujaen.es/~lina/TemasSO/CONCURRENCIA/2UtilizandoMemoriaCompartidaII.ht m#monitores
107
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN MONTALVO”
TECNOLOGÍA EN INFORMÁTICA
DOCENTE : ING. BETTY PALACIOS
GUIAS DE APRENDIZAJE LOJA – ECUADOR ABRIL 2015
UNIDAD 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS Introducción La presente unidad tiene el propósito dar a conocer a los alumnos las definiciones básicas de los sistemas operativos. Su definición, objetivos, funcionamientos, estructura y tipos de sistemas operativos. Terminada la unidad el alumno estará en la capacidad de:
Define un sistema operativo, identifica sus funciones. Y los tipos de sistemas que existen. Conoce como fueron evolucionado los S.O. en cada generación. Identifica y reconoce la diferencia entre cada S.O existente.
No. 1
Actividades AUTOEVALUACIÓN 1 1. Defina que es sistema operativo. 2. Señale tres funciones de los Sistemas Operativos. 3. Mencione tres ejemplos de sistemas operativos. 4. Elaborar un cuadro sinóptico de las generaciones de los Sistemas Operativos. 5. Cite las dos características que crea que mejor definen las siguientes generaciones de sistemas operativos: a) Sistemas por lotes b) Sistemas de tiempo compartido c) Sistemas operativos actuales para computadores personales 6. ¿Cuál de los siguientes es el Sistema Operativo que no maneja Interfaz Gráfica? a. Windows 2000 b. Mac OS c. Unix d. Windows XP
Asesorías Leer detenidamente las páginas 7 - 15 del módulo entregado.
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
7. ¿Cuál de las siguientes es una función del Sistema Operativo? a. Administrar los recursos de la computadora b. Organizar la información que se almacena en la computadora c. Ser una interfaz entre la computadora y el usuario d. Todas las anteriores 8. ¿Qué es un Sistema Operativo? a. Programa especial integrador, administrador y gestor entre el hardware y el software b. Sistema que permite hacer algunas tareas de mantenimiento c. Todas son correctas d. Ninguna es correcta 9. ¿Cuál de los siguientes no es un sistema operativo? a. Cobol b. Linux c. Windows XP d. MS-DOS Consultar 2. Qué diferencia hay entre un sistema operativo de 32 o 64 bits.
110
2
Instituto Tecnológico Su AUTOEVALUACIÓN 2. 1. Los Sistemas Operativos, según su clasificación en: a) Hardware y software b) Pagados y libres c) Núcleo y usuario d) Todas son correctas e) Ninguna es correcta 2. Dentro de los Sistemas Operativos comerciales, encontramos: d) Son aquellos que tenemos uso libre de sus bondades incluidos
111
peLereio r dret“enJiu daamn entM e lo asnptáagilnvao s ”18 - 29 del módulo entregado. SISTEMAS OPERATIVOS I
en sus programas e) Son aquellos que tenemos uso a través de una pago para utilizar las bondades de sus programas f) Todas son correctas 3. Dentro de los sistemas operativos existen funciones principales como ser: a) Gestión de entradas y salidas b) Gestión de archivos c) Gestión de información d) Gestión de aplicaciones e) Gestión de memoria f) Gestión de usuarios g) Todas son correctas h) Ninguna es correcta 4. Complete: Un sistema multitarea: a) Permite que varios usuarios puedan ejecutar programa a la vez. b) Permite ejecutar diversos programas al mismo tiempo. c) Permite que un mismo ordenador pueda tener varios microprocesadores que deben utilizarse simultáneamente. d) Nada de lo anterior. 5. De las siguientes alternativas, que representa el concepto de Kernel es: a) Un proceso almacenado en memoria principal. b) Un software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. c) Una llamada al sistema
112
d) Un sistema operativo de de tiempo compartido 6. Complete: Un sistema multiusuario: a) Permite que varios usuarios puedan ejecutar programa a la vez. b) Permite ejecutar diversos programas al mismo tiempo. c) Permite que un mismo ordenador pueda tener varios microprocesadores que deben utilizarse simultáneamente. d) Nada de lo anterior. 7. Que es un Sistema Monolítico? a) Un sistema operativo perfecto b) Un sistema operativo único c) Un sistema operativo donde no existe una estructura d) Un sistema de un procedimiento único 8. Explique ¿Para qué sirve un sistema operativo?. 9. Señale la diferencia entre sistema monolítico y sistema por capas.
113
CRITERIOS DE EVALUACION Y PRESENTACIÓN DEL TRABAJO Los trabajos deben ser presentados en la fecha determinada y en el documento entregado, con letra legible El trabajo global tiene un valor de 10 puntos distribuidos de la siguiente manera: 4 Puntos por el cumplimiento de cada ítem 3 Puntos por el contenido del trabajo 3 Puntos por la defensa del trabajo
113
UNIDAD 2. PROCESOS Y ADMINISTRACIÓN DEL PROCESADOR En esta unidad se hablará sobre los procesos que es el concepto central de los Sistemas Operativos. Todo los lo que ejecuta el sistema operativo es un proceso, el cual para ejecutarse pasa por varios estado los cuales son necesarios conocerlos y comprender en qué momento cambia de estado. Además se hará un estudio de los hilos (threads), que constituyen un mecanismo más óptimo para aprovechar las características del CPU. Al culminar la unidad el estudiante estará en la capacidad de: Entender y conocer un proceso y sus estados. Identificar y citar ejemplos de procesos. Conocer y diferenciar los procesos de los hilos. Comprender como trabaja el sistema operativo con los procesos. No.
Actividades
Asesorías
1
114
AUTOEVALUACIÓN 3 1. ¿Puede pasar un proceso del estado preparado al estado suspendido? Razone la respuesta. 2. Que es un Proceso? a) Un algoritmo de planificación especial b) Un programa en ejecución c) Un procedimiento único paralelo d) Un conjunto de instrucciones que no van al procesador 3. Cuáles son los Estados de un Proceso? a) En ejecución, Listo o preparado, Bloqueado, Nuevo, Sin termino b) En ejecución, Listo para terminar, Bloqueado, Nuevo, Espera. c) En ejecución, Listo o preparado, Bloqueado, suspendido. d) En ejecución, Listo o preparado, Bloqueado, Viejo, Espera. 4. ¿Cuál de estas transiciones de estados de un proceso jamás se produce en un sistema normal? a) de “bloqueado” a “preparado”
Leer detenidamente las páginas comprendidas entre 37 – 41 del módulo entregado.
b) de “preparado” a “bloqueado” c) de “ejecución” a “preparado” d) de “ejecución” a “bloqueado” 5. Indique las razones por las que un proceso puede pasar a estado suspendido 6. Un proceso en estado de bloqueo: a) Siempre espera la terminación Siempre espera por la ocurrencia de un evento. b) de una actividad de E/S c) Reside en la cola de procesos de baja prioridad d) Reside en la cola de listos para entrar a la CPU 7. Señale la diferencia entre programa y proceso
115
2
116
AUTOEVALUACIÓN 4. Instituto Tecnológico Superior 1. Un proceso que está esperando que se le asigne un procesador está en estado: a) Suspendido b) En ejecución c) Preparado d) Terminado 2. Un thread (hilo de ejecución) es: a) Una entidad planificable con recursos independientes (registros, memoria, ficheros) b) Una función dentro de un programa c) Un puntero a una función d) Una secuencia de código planificable de forma independiente dentro de un proceso 3. Cuál es la falsa? a) Si dos hilos del mismo proceso comparten una variable y la modifica, será necesario proteger su acceso. b) El cambio entre hilos del mismo proceso implica coste que el cambio
“JLueear ndetM eno idn amteanltv eo la”s páginas comprendidas entre 43 – 49 del módulo entregado.
SISTEMAS OPERATIVOS I
entre hilos de procesos diferentes. c) Dos hilos de un mismo proceso comparten el mismo bloque de control del hilo. d) La creación de un nuevo hilo dentro de un proceso existente implica menor coste que la creación de un nuevo proceso. 4. Las ventajas del uso de threads frente a los procesos para implementar la concurrencia son: a) Disminuir el tiempo de cómputo de las tareas b) Disminuye el tiempo de respuesta c) Acceso más eficiente a los recursos del núcleo d) Todas las anteriores 5. El modelo de control de threads a nivel de núcleo: a) Mantiene una entidad planificable a nivel de núcleo por cada thread b) Cuando un thread ejecuta una llamada del sistema bloqueante, el resto de threads no son bloqueados c) Pueden aprovechar al paralelismo de sistema con múltiples CPUs d) Todas las anteriores
115
6. Indique por qué un cambio de modo entre hilos puede ser menos costoso que un cambio de modo entre procesos. 7. ¿Qué recursos comparten, normalmente, los hilos de un proceso? 8. Por lo general hacen que el algoritmo planificador de procesos bloquee a un proceso P1 que esté en ejecución. Indique cuál situación no necesariamente bloquea a P1. a) Cuando P1 debe esperar datos de un dispositivo E/S. b) Cuando expira el tiempo de ejecución que el planificador le habría asignado a P1. c) Cuando P1 debe enviar datos a un dispositivo E/S.
116
d) Cuando se debe ejecutar un proceso de mayor jerarquía que P1 9. Un proceso en estado de bloqueo: a) Siempre espera por la ocurrencia de un evento. b) Siempre espera la terminación de una actividad de E/S c) Reside en la cola de procesos de baja prioridad d) Reside en la cola de listos para entrar a la CPU 10. Un bloque de control de proceso (BCP) contiene al menos: a) El grafo de multiprogramación de procesos. b) El número de fallos de página durante su ejecución. c) El estado y el identificador del proceso. d) El código, los datos y la pila de un proceso. 11. La misión que realiza un bloque de control de proceso. a) Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecución o reanudarla. b) Es un conjunto de datos donde se incluyen el estado en cada momento, recursos utilizados, registros, etc. c) Ambas a y b. d) Localización de la información sobre el proceso por parte del sistema operativo. 12. Cuáles son las operaciones que en general pueden hacerse sobre el proceso para manipulación a través del sistema operativo. a) Cambiar la prioridad de un proceso y temporizar la ejecución de un proceso. b) Todas son correctas c) Suspender un proceso y reanudar un proceso d) Crear y destruir un proceso.
117
Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
117
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Los trabajos deben ser presentados en la fecha determinada y en el documento entregado, con letra legible El trabajo global tiene un valor de 10 puntos distribuidos de la siguiente manera: 4 Puntos por el cumplimiento de cada ítem 3 Puntos por el contenido del trabajo 3 Puntos por la defensa del trabajo
UNIDAD 3. ALGORITMOS DE PLANIFICACIÓN DE PROCESOS. En esta unidad se pretende hacer el estudio de los algoritmos existentes que se pueden aplicar en el momento en que un proceso solicita recursos del CPU. Se estudiará la diferencia entre cada uno de ellos, el funcionamiento, las ventajas de utilizarlos. Es necesario hacer entender al estudiante que el sistema operativo trabaja con planificadores de procesos para aprovechar al máximo la CPU. Al culminar la esta unidad el estudiante estará en capacidad de: Conocer los niveles de planificadores que utiliza el sistema operativo y cuando los utiliza. Comprender el funcionamiento de los algoritmos de planificación existentes. Resolver ejercicios aplicando los diferentes algoritmos estudiados. No. Actividades Asesorías 1 AUTOEVALUACIÓN 5. Leer detenidamente las páginas 56 - 59 del módulo entregado. 1. Una cola de planificación es: 1. Una lista de programas esperando que se les asigne recursos 2. Una lista de procesos esperando en cada estado 3. Una lista de recursos usados por los procesos del sistema 4. Una lista con todos los procesos esperando por cualquier recurso del sistema 2. ¿Cuáles son los objetivos que intentan cubrir las Políticas de Planificación del Procesador? 117
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
3. Indica los tres tipos de planificadores que existen cuando el recurso a asignar es la CPU y en qué se diferencian. 4. Defina los siguientes términos: Tiempo de Espera Tiempo de retorno 5. El tiempo de retorno es: a) El intervalo de tiempo que transcurre desde que un proceso llega o se crea, hasta que se completa la ejecución por el sistema. b) El intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción. c) El Número de procesos completados por unidad de tiempo. d) El tiempo que el proceso espera hasta que se le concede el procesador. 6. Las políticas de planificación apropiativas se caracterizan porque: a) Permiten que un proceso con mayor prioridad retire el CPU al proceso que la tenía asignada sin finalizar su ejecución. b) Una vez que el proceso obtiene CPU no le puede ser requisada hasta que acaba la ráfaga. c) Son políticas donde todos los procesos deben ser tratados de igual forma impidiendo el bloqueo de un proceso. d) Alternativa a y c. 7. Cuales son algoritmos de planificación?
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
a) b) c) d)
FIFO, Round Robin JSF, SRT, Prioridades. Plazo Fijo, FIFO, Round Robin JKF, SRT Plazo Fijo, FIFO, Round Robin JSF, CRT Plazo Fijo, FOFI, Round Robin JSF, SRT
8. En un sistema informático, los procesos recién creados entran en un cola de espera. Entran en la cola de preparados solo cuando el uso de la CPU es menor del 20%. a) b) c) d)
Aplica envejecimiento de procesos. Utiliza planificación basada en el compartimiento. Utiliza planificación a largo plazo o alto nivel Aplica multicola de dos niveles con realimentación
9. Los algoritmos de planificación de la CPU afectan: a) Al tiempo total que el proceso para en estado de ejecución b) Al tiempo total que el proceso pasa en la cola de procesos bloqueados. c) Al tiempo total que el proceso pasa en la cola de procesos preparados / listos. d) Al tiempo total que el proceso pasa bloqueado y suspendido 10. Son las distintas políticas y mecanismos más comunes que poseen los sistemas operativos para realizar la gestión del procesador. a) Archivos b) Planificador del procesador c) Memoria
d) Todas son verdades.
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
120
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
2
AUTOEVALUACIÓN 6. EJERCICIOS. 1. Considere el siguiente conjunto de procesos, cuyas longitudes de ráfaga de UCP se expresan en milisegundos:
Se supone que los procesos llegaron en el orden P1, P2, P3, P4, P5 todos en el instante 0. a) Dibuje cuatro gráficas de Gantt que ilustren la ejecución de estos procesos utilizando la planificación FCFS, SJF, una prioridad no apropiativa (un menor número de prioridad representa una prioridad mayor) y RR (cuanto = 1). FCFS SJF 120
Leer detenidamente las páginas 62 - 73 del módulo entregado.
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
Prioridad RR b) ¿Cuál es el tiempo de retomo de cada proceso para cada uno de los algoritmos de planificación del apartado a)? FCFS SJF Prioridad RR c) ¿Cuál es el tiempo de espera de cada proceso para cada uno de los algoritmos de planificación del apartado a)? FCFS SJF Prioridad RR d) ¿Cuál de los esquemas de planificación del apartado a) ofrece el menor tiempo promedio de espera (para todos los procesos)? 2. Suponga que los procesos siguientes llegan para su ejecución en los momentos indicados. Cada proceso se ejecutará en el tiempo indicado. Al responder a estas preguntas, utilice la planificación no apropiativa y base todas sus decisiones en la información que tenga en el momento de tomar la decisión.
121
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
a. ¿Cuál es el tiempo de retorno promedio para estos procesos con el algoritmo de planificación FCFS? b. ¿Cuál es el tiempo de retorno promedio para estos procesos con el algoritmo de planificación SJF? 3. Aplicando Round Robin calcular el tiempo de espera, de retorno, de cada proceso y el tiempo de espera promedio. Representar en diagrama de Gantt. Proceso P1 P2 P3 P4
T. ráfaga 7 4 3 2
T. llegada 0 2 3 5
4. Calcular el tiempo de espera, de retorno, de cada proceso, tiempo medio de espera y de retorno aplicando FCFS, SJF, Prioridades. E indicar cuál es más óptimo. Utilizar diagramas de Gantt.
Proceso A B C D 122
T. llegada 0 1 2 3
T. ráfaga 8 4 9 5
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
PREGUNTAS 1. Sean dos procesos: P1 con tiempo de ejecución de 20ms y P2 con 15ms. El planificador a corto plazo actúa según un Round Robin con quanto de 10ms y tiempo de conmutación de tarea de 5ms. Marcar el tiempo de retorno (regreso) de P1. 1. 30ms 2. 40ms 3. 45ms 4. 50ms 2. El planificador a medio plazo selecciona un proceso 1. De entre los recién llegados para pasar a la cola de preparados 2. De entre los de la cola de preparados para pasar a ejecución 3. De entre los suspendidos en memoria principal para pasar a la cola de preparados 4. De entre los suspendidos en memoria secundaria para pasar a la cola de preparados 3. Se tienen 3 procesos: P1, P2 y P3, con tiempos de ejecución: 65, 45 y 120 ms, respectivamente. Si actúa el planificador a largo plazo según el algoritmo SJF (Short Job First) se obtiene que: 1. Los procesos se encuentran en la lista de preparados en el orden de llegada: P1, P2 y P3 2. Los procesos se encuentran en la lista de preparados en el orden: P2, P1 y P3 3. Los procesos se ejecutan en el orden de llegada: P2, P1 y P3 4. Los procesos se ejecutan según la prioridad que posean los
123
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
procesos 4. En la planificación por Round Robin: 1. El proceso preparado que pasa a ejecución corresponde al de tiempo de ejecución restante más corto 2. De acuerdo a su prioridad cada proceso preparado pasa a ejecución durante una cota de tiempo llamada cuanto 3. De forma secuencial cada proceso preparado pasa a ejecución durante una cota de tiempo llamada cuanto. 4. El proceso preparado que pasa a ejecución corresponde al de mayor prioridad asignada 5. El tiempo de retorno o regreso corresponde: 5. Al tiempo que el proceso espera hasta que se le concede el procesador 6. Al tiempo que transcurre desde que un proceso se crea hasta que se completa por el sistema 7. Al porcentaje del tiempo medio de utilización del procesador 8. A la medida del número de procesos completados por unidad de tiempo 6. El planificador a corto plazo selecciona:
124
1. El proceso que pasa al estado activo de entre todos los procesos en estado preparado 2. El trabajo que se admite en el sistema para su procesamiento 3. La página en memoria que se debe sustituir por la página que se solicita cuando se produce un fallo de página 4. Entre las peticiones de E/S al disco aquella que minimiza el tiempo medio de búsqueda
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
7. Se tienen dos procesos: P1 y P2, de tiempos de ejecución 25 y 30 ms, respectivamente. El planificador a corto plazo actúa según el algoritmo Round Robin con quanto de 10 ms. ¿Cuál será el tiempo de retorno o regreso de P1? 1. 45 ms 2. 50 ms 3. 65 ms 4. 70 ms 8. En la planificación Round Robin: 1. El proceso preparado que pasa a ejecución corresponde al de tiempo de ejecución más corto 2. De acuerdo a su prioridad cada proceso preparado pasa a ejecución durante un periodo de tiempo llamado cuanto 3. De forma secuencial cada proceso preparado pasa a ejecución durante un periodo de tiempo llamado cuanto 4. El proceso preparado que pasa a ejecución es el que tiene mayor prioridad que el que ya ocupa la CPU 9. Dado un sistema multiprogramado en el que se encuentra en estado preparado un proceso orientado a E/S y una gran cantidad de procesos orientados a cómputo, ordénese de mejor a peor las siguientes estrategias de planificación de la CPU en función de que consigan mejores tiempos de retorno del proceso orientado a E/S: 1. FCFS 2. SJF 3. SRTF 125
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
10. ¿Qué diferencia fundamental existe entre un algoritmo SJF (primero el trabajo más breve, shortest job first) y el algoritmo SRTF (primero el de menor tiempo restante, shortest remaning time first)? 11. Si se desea minimizar el tiempo promedio para completar los procesos de un sistema, un mecanismo óptimo para la planificación de procesos es: a) FCFS b) SJF c) RR d) Planificación por prioridad 12. El algoritmo FCFS se caracteriza porque: a) El proceso que primero solicita la CPU es el primero al que se le asigna b) El último proceso en llegar, es el primero en ser atendido c) Asocia a cada proceso la longitud de su siguiente ráfaga d) Un nuevo proceso llega a la cola de procesos listos mientras se está ejecutando otro proceso. CRITERIOS DE EVALUACION Y PRESENTACIÓN DEL TRABAJO Los trabajos deben ser presentados en la fecha determinada y en el documento entregado, con letra legible El trabajo global tiene un valor de 10 puntos distribuidos de la siguiente manera: 4 Puntos por el cumplimiento de cada ítem 3 Puntos por el contenido del trabajo 3 Puntos por la defensa del trabajo 126
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
UNIDAD 4. COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS En esta unidad se hará un estudio de la forma como se comunican y se sincronizan los procesos que solicitan recursos al CPU. Se hará un estudio de conceptos generales referentes a la comunicación, sincronización, exclusión mutua, etc. Y todos los mecanismos que existen para asegurar la exclusión entre cada proceso que desea ejecutarse. Entres estos mecanismo se estudiará las soluciones por hardware y software que existen, los monitores, semáforos y paso por mensajes. Al culminar está unidad el estudiante será capaz de:
Entender por qué es necesario conservar la exclusión mutua entre procesos. Entender el objetivo y funcionamiento de las soluciones por hardware y software existentes. Además los semáforos, monitores y paso por mensajes. No. 1
Actividades Asesorías AUTOEVALUACIÓN 7 Leer detenidamente las páginas 83 - 106 del módulo entregado. 1. Para lograr la exclusión mutua de una sección crítica donde se accede a un recurso compartido inicialmente disponible. 1. El semáforo binario debe inicializarse a cero 2. El semáforo binario debe inicializarse a uno. 3. La inicialización del semáforo binario depende del recurso que se comparta 4. Los semáforos no sirven para lograr la exclusión mutua de las secciones críticas 2. La espera activa corresponde a: 1. La acción de bloqueo que realiza un semáforo sobre un proceso 2. El estado bloqueado de un proceso pero no retirado a memoria secundaria 3. Cuando un proceso se mantiene chequeando una condición y, por lo tanto, consumiendo ciclos de CPU.
127
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4. La espera que realiza la operación wait sobre una variable de condición en un Monitor 3. El algoritmo de Perterson corresponde a: 1. Una estrategia de sincronización de procesos 2. Una método de ordenación de sucesos en un sistema distribuido 3. Una política de sustitución de páginas al producirse un fallo de página 4. Una solución al problema de la exclusión mutua.
128
4. Para lograr la exclusión mutua con semáforo binario de una sección crítica las operaciones de espera y señal se usan: 1. En dependencia del recurso que se comparta en la sección crítica 2. Como procedimiento de bloqueo antes de acceder a la sección y como desbloqueo después. 3. Como procedimiento de desbloqueo antes de acceder a la sección y como bloqueo después, respectivamente 4. Como procedimientos de bloqueo y desbloqueo respectivamente, pero se ejecutan en procesos diferentes. 5. Los monitores proporcionan exclusión mutua porque: 1. Sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. 2. Para ello se utilizan variables de condición 3. No proporcionan exclusión mutua
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4. Se diseñan mediante procedimientos encapsulados dentro de un módulo. 6. La comunicación indirecta es un método en el que: 1. Los mensajes se envían y reciben a través de una entidad intermedia que recibe el nombre de buzón o puerto. 2. Se realiza una copia del mensaje desde el espacio de direcciones del emisor al espacio de direcciones del receptor. 3. El proceso que envía el mensaje sigue su ejecución sin preocuparse de si el mensaje se recibe o no. 4. Ambos procesos, el emisor y el receptor, nombran de forma explícita al proceso con el que se comunican. 7. El algoritmo de Perterson corresponde a: 1. Una estrategia de sincronización de procesos. 2. Una método de ordenación de sucesos en un sistema distribuido. 3. Una política de sustitución de páginas al producirse un fallo de página. 4. Una solución al problema de la exclusión mutua
120
8. La comunicación es asíncrona cuando el proceso que envía el mensaje: 1. Sólo prosigue su tarea cuando el mensaje ha sido recibido. 2. Sólo prosigue su ejecución cuando ha recibido una respuesta del receptor. 3. Sigue su ejecución sin preocuparse de si el mensaje se recibe o no. 4. Lo realiza de manera indirecta, es decir, a través de
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
un buzón. 9. Si se usa un semáforo para lograr la sincronización de procesos: 1. Éste se debe inicializar al número de procesos que se desean sincronizar. 2. Se deben incluir variables de condición, pues el semáforo únicamente proporciona exclusión mutua. 3. Las operaciones wait y signal se utilizan dentro de un mismo proceso. 4. Las operaciones wait y signal se utilizan en procesos separados. 10. Un semáforo general inicializado a N: 1. Corresponde a N semáforos binarios compartidos entre varios procesos. 2. Corresponde a un semáforo binario compartido entre N procesos. 3. Sirve para proteger a un recurso compartido entre N procesos. 4. Sirve para proteger a N recursos similares compartidos entre varios procesos.
130
11. Un semáforo general inicializado a N: 1. Corresponde a N semáforos binarios compartidos entre varios procesos. 2. Corresponde a un semáforo binario compartido entre N procesos. 3. Sirve para proteger a un recurso compartido entre N procesos.
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.
Sirve para proteger a N recursos similares compartidos entre varios procesos. 12. Defina que es la exclusión mutua. CRITERIOS DE EVALUACION Y PRESENTACIÓN DEL TRABAJO Los trabajos deben ser presentados en la fecha determinada y en el documento entregado, con letra legible El trabajo global tiene un valor de 10 puntos distribuidos de la siguiente manera: 4 Puntos por el cumplimiento de cada ítem 3 Puntos por el contenido del trabajo 3 Puntos por la defensa del trabajo
131
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN MONTALVO”
TECNOLOGÍA EN INFORMÁTICA
DOCENTE: ING. BETTY PALACIOS
CLAVES DE AUTOEVALUACIÓN LOJA – ECUADOR ABRIL 2015
AUTOEVALUACIÓN UNIDAD UNO AUTOEVALUACIÓN 1 1. Es el software que pone en funcionamiento el ordenador. Y constituye el medio de comunicación entre el ordenador y el usuario. 2. Integrar el HW con el SW. Poner el funcionamiento el ordenador Administrar las tareas en la memoria ram, etc. 3. Windows, Mac, Linux 5. d) Sistemas por lotes: Tarjetas perforadas, Ninguna interacción con el usuario e) Sistemas de tiempo compartido : Multiprogramación, interacción usuario-máquina f) Sistemas operativos actuales para computadores personales: Sistemas de ventanas, multitarea 6. c. Unix 7. d. Todas las anteriores 8. Programa especial integrador, administrador y gestor entre el hardware y el software 9. a) Cobol AUTOEVALUACIÓN 2. 1. b) Pagados y libres 2. b) Son aquellos que tenemos uso a través de una pago para utilizar las bondades de sus programas 3. g) Todas son correctas 4. b) Permite ejecutar diversos programas al mismo tiempo. 5. b) Un software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. 6. a) Permite que varios usuarios puedan ejecutar programa a la vez. 7. Un sistema operativo donde no existe una estructura
AUTOEVALUACIÓN UNIDAD TRES AUTOEVALUACIÓN 3. 1. No, para que un proceso se suspenda necesita pasar primero al estado de ejecución y ejecutar alguna operación que pueda suspenderle (como por ejemplo P() sobre un semáforo, wait sobre una variable condición, etc…) 2. Un programa en ejecución 3. En ejecución, Listo o preparado, Bloqueado, Nuevo, suspendido. 4. b) de “preparado” a “bloqueado” 5. El sistema está en riesgo de fallo. El sistema suspende todos los procesos activos para poder corregir errores y volver a activarlos cuando el sistema funcione correctamente. Un proceso sospechoso de mal funcionamiento. El planificador puede suspender los procesos de baja prioridad en momento de carga excesiva del sistema.
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
AUTOEVALUACIÓN 4 1. 2. 3. 4. 5. 6.
7. 8. 9. 10. 11. 12.
3. Preparado a) Una secuencia de código planificable de forma independiente dentro de un proceso c) Dos hilos de un mismo proceso comparten el mismo bloque de control del hilo. b) Disminuye el tiempo de respuesta d) Todas las anteriores Un cambio de hilos es más beneficioso ya que se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear un nuevo proceso; los hilos aumentan la eficiencia de la comunicación entre programas en ejecución. Normalmente, los hilos de un proceso comparten los espacios de direcciones y los archivos abiertos. c) Cuando P1 debe enviar datos a un dispositivo E/S. a) Siempre espera por la ocurrencia de un evento. d) El código, los datos y la pila de un proceso. c) Ambas a y b. b) Todas son correctas
AUTOEVALUACIÓN UNIDAD TRES AUTOEVALUACIÓN 5 1. Una lista de procesos esperando en cada estado 2. Los objetivos de planificación del procesador son: justicia, máxima capacidad de ejecución, máxima cantidad de usuarios interactivos, predecibilidad, minimización de la sobrecarga, equilibrio en el uso de los recursos y respeto en los sistemas de prioridad. 3. Los Planificadores a Corto Plazo son, los que trabajan directamente sobre el microprocesador, con procesos, en ejecución y preparado. Las políticas de trabajo pueden ser apropiativas o no apropiativas, siendo las primeras con procesos no apropiativos y la segunda con procesos apropiativos. Los Planificadores a Mediano Plazo son los que deciden sacar de memoria central y llevar a disco a aquellos procesos inactivos o a los activos cuyos estados sean bloqueados momentáneamente o temporalmente o los suspendidos y luego, cuando desaparezcan las causas de sus bloqueos, traerlos nuevamente a memoria (Swap-In) para continuar su ejecución. Los Planificador a Largo Plazo, o planificador de trabajos, es un administrador que se encarga de organizar la ejecución con un adecuado planeamiento de recursos para que el trabajo se ejecute ordenadamente y eficientemente según la modalidad de procesamiento. Desde el punto de vista del hardware, el Corto Plazo estará asociado al microprocesador y a la memoria, el Mediano Plazo a la memoria y al Swapping y el Largo Plazo al Swapping y a la memoria auxiliar. 4. Tiempo de espera: es el tiempo en que los procesos están activos pero sin ser ejecutados, es decir, los tiempos de espera en las distintas colas. Tiempo de retorno: Es el intervalo de tiempo desde que un proceso es cargado hasta que este finaliza su ejecución 134
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
5. a) Permiten que un proceso con mayor prioridad retire el CPU al proceso que la tenía asignada sin finalizar su ejecución. 6. a) Plazo Fijo, FIFO, Round Robin, JSF, SRTF 7. c) Utiliza planificación a largo plazo o alto nivel 8. a) Al tiempo total que el proceso pasa en la cola de procesos preparados / listos. 9. b) Planificador del procesador AUTOEVALUACIÓN 6. 1. a) Dibuje cuatro gráficas de Gantt que ilustren la ejecución de estos procesos utilizando la planificación FCFS, SJF, una prioridad no apropiativa (un menor número de prioridad representa una prioridad mayor). FCFS
SJF Si procesos llegaron en el orden P1, P2, P3, P4, P5; entonces iría en el orden P2, P4, P3, P5, P1.
PRIORIDAD NO APROPIATIVA Si los procesos llegaron en el orden p1, p2, p3, p4, p5; entonces por prioridad no apropiativa iría en el orden p2, p5, p1, p3, p4.
b) ¿Cuál es el tiempo de retomo de cada proceso para cada uno de los algoritmos de planificación del apartado a)? FCFS Tiempo De Retomo = (10 + 11 + 13 + 14 +19) = 67/5 = 13.4 SJF Tiempo De Retomo = (1 + 2 + 4 + 9 +19) = 35/5 = 7 PRIORIDAD NO APROPIATIVA Tiempo De Retomo = (1 + 6 + 16 + 18 + 19) = 60/5 = 12 135
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
c) ¿Cuál es el tiempo de espera de cada proceso para cada uno de los algoritmos de planificación del apartado a)? FCFS Tiempo De Espera = (0 + 10 + 11 + 13 + 14) = 48/5 = 9.6 SJF Tiempo De Espera = (9 + 0 + 2 + 1 + 4) = 16/5 = 3.2 PRIORIDAD NO APROPIATIVA Tiempo De Espera = (6 + 0 + 16 + 18 + 1) = 41/5 = 8.2 d) ¿Cuál de los esquemas de planificación del apartado a) ofrece el menor tiempo promedio de espera (para todos los procesos)? SOLUCION b) SJF
Tiempo De Espera = (9 + 0 + 2 + 1 + 4) = 16/5 = 3.2 milisegundos. 2.
a. ¿Cuál es el tiempo de retorno promedio para estos procesos con el algoritmo de planificación FCFS?
Tiempo De Retomo = 10.53 b. ¿Cuál es el tiempo de retorno promedio para estos procesos con el algoritmo de planificación SJF?
Tiempo De Retomo = 9.55 3.
Proceso
T. ráfaga
T. llegada
T. espera
T. retorno
T. respuesta
P1
7
0
9
16
16
P2
4
2
4
10
8
P3
3
3
9
15
12
P4
2
5
5
12
7
136
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
4.
FCFS Proceso
T. llegada
T. ráfaga
T. comienzo
F. fin
T. retorno
T. espera
A
0
8
0
8
8
0
B
1
4
8
12
11
7
C
2
9
12
21
19
10
D
3
5
21
26
23
18
15.25
11.6
Promedio
SJF Proceso
T. llegada
T. ráfaga
T. comienzo
F. fin
T. retorno
T. espera
A
0
8
0
8
8
0
B
1
4
8
12
11
7
C
2
9
17
26
24
15
D
3
5
12
17
14
9
14.25
10.33
Promedio
Prioridad Proceso
T. llegada
Prioridad T. ráfaga
T. comienzo
F. fin
T. retorno
T. espera
A
0
2
8
0
8
8
0
B
1
1
4
22
26
25
21
C
2
4
9
8
17
15
6
D
3
2
5
17
22
19
14
16.75
10.25
Promedio 137
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
El más optimo es: Prioridad
PREGUNTAS 1. 2. 3. 4.
2. 40ms 4. De entre los suspendidos en memoria secundaria para pasar a la cola de preparados 2. Los procesos se encuentran en la lista de preparados en el orden: P2, P1 y P3 3. De forma secuencial cada proceso preparado pasa a ejecución durante una cota de tiempo llamada cuanto. 5. 2. Al tiempo que transcurre desde que un proceso se crea hasta que se completa por el sistema 6. 1. El proceso que pasa al estado activo de entre todos los procesos en estado preparado 7. 45 ms 8. Las estrategias que mejoran el tiempo de los procesos orientados a E/S son aquéllas que premian a los procesos “cortos” (los de menor ciclo de CPU). Suponiendo que se aplica un buen estimador, SRTF es la mejor estrategia, después vendría SJF y por último FCFS. 9. La diferencia fundamental es que el SJF no es expulsivo y el SRTF sí lo es. 10. b) SJF 11. El proceso que primero solicita la CPU es el primero al que se le asigna AUTOEVALUACIÓN UNIDAD CUATRO AUTOEVALUACION 7 1. 2. El semáforo binario debe inicializarse a uno. 2. 3. Cuando un proceso se mantiene chequeando una condición y, por lo tanto, consumiendo ciclos de CPU. 3. 4. Una solución al problema de la exclusión mutua. 4. 2. Como procedimiento de bloqueo antes de acceder a la sección y como desbloqueo después. 5. 1. Sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. 6. 1. Los mensajes se envían y reciben a través de una entidad intermedia que recibe el nombre de buzón o puerto. 7. 3. Sigue su ejecución sin preocuparse de si el mensaje se recibe o no. 8. 4. Las operaciones wait y signal se utilizan en procesos separados. 9. 4. Sirve para proteger a N recursos similares compartidos entre varios procesos. 10. 4. Sirve para proteger a N recursos similares compartidos entre varios procesos. 11. Ejemplos: Si un procedo Pi esta ejecutándose en su S.C. entonces ningún otro proceso puede estar ejecutándose en esta. Si en un cruce de calles esta alguien cruzando la calle nadie más podrá cruzarla hasta que el otro haya acabado de cruzar.
138
Instituto Tecnológico Superior “Juan Montalvo” SISTEMAS OPERATIVOS I
139