IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR GESTIÓN DE PROCESOS

Documentos relacionados
Convivencia Gestión de Procesos

Sistemas Operativos. Procesos

Conceptos de Planificación

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U PLANIFICACION DE PROCESOS

Sistemas informáticos industriales. Sistemas Operativos

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

PRÁCTICO 3. Comprender la administración de procesos e hilos de los sistemas operativos Comprender la tarea y la elección de un planificador.

Introducción a los Sistemas Operativos

Objetivos de la Planificación. Planificación Monoprocesador. Tipos de Planificación. Tiempo de respuesta Productividad Eficiencia del procesador

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Tema 12: El sistema operativo y los procesos

Hilos Secciones Stallings:

Administración del Procesador

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

El modelo de Procesos

Procesos Definición y Estados

Tema 2: Gestión de la CPU

Sistemas Operativos. Práctica 2: Scheduling

Capítulo 5: Despacho de CPU

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro

Planificación de Monoprocesadores.

Sumario Prólogo Unidad didáctica 1. Introducción a los sistemas operativos Objetivos de la Unidad... 12

5.- Despacho de CPU. Utilización máxima de CPU con multiprogramación. Ciclo CPU I/O Ejecución de un proceso = ciclo de CPU (ejecución) y espera de I/O

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Manipulación de procesos

Preguntas de autoevaluación tema 1

Introducción a los Sistemas Operativos

Tema 1: Introducción a los Sistemas Operativos

Gestión de Procesos. Concepto. Concepto y criterios de planificación. Utilización del procesador:

Sistemas Operativos (Parte 2)

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO

MULTIPROGRAMACIÓN. Introducción a al Multitarea

Arquitecturas cliente/servidor

Planificación multiprocesador. Niveles de granularidad. Niveles de granularidad. Niveles de granularidad. Planificación multiprocesador - SSOO I

Necesidad de Protección

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Tema 2. Administración de procesos

Sistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana

Taller de Sistemas Operativos. Procesos 2012

Cuestionario 1-Parte 1

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Tarea 2. Descripción y Control de Procesos

Introducción a los Sistemas Operativos S.O.

Estructura de los sistemas de cómputo

Sistemas Operativos - Manejador de procesos - Fundamentos

ARQUITECTURA DE COMPUTADORES

Pontificia Universidad Católica del Ecuador

Convivencia Introducción

Software de Tiempo Real. Software de Tiempo Real. Consideraciones generales. Software en Tiempo Real. Conceptos Básicos. Consideraciones generales

Pontificia Universidad Católica del Ecuador

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Planificador de Linux (Scheduler)

Sistemas Operativos. Dr. Wenceslao Palma M.

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Programación Concurrente y Paralela. Unidad 1 Introducción

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Sistemas Operativos. Introducción. Tema 6

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

Pontificia Universidad Católica del Ecuador

Introducción a los Sistemas Operativos

Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad

Sistemas Operativos 1

Concurrencia y paralelismo

ARQUITECTURA, FUNCIONES Y ELEMENTOS DEL SISTEMA OPERATIVO INFORMÁTICO PEDRO MILENA JACOBO RUYMÁN

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

6. Enumere tres ventajas de los ULT frente a los KLT.

T E M A 7. Interrupciones

ORGANIZACIÓN DE COMPUTADORAS

EXÁMEN SISTEMAS OPERATIVOS MONOPUESTO

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

Sistemas Operativos Ricardo Sanz

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Concurrencia de Procesos

Acceso coordinado a recursos compartidos

Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

Estructura Windows NT

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

HP - UX. Qué es HP UX?

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

Sistemas Operativos. Estructura de los sistemas operativos

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador (extracto de las transparencias del libro)

Introduccion a Sistemas Operativos. Ej: Linux

Seminario Diseño y construcción de microrrobots Planificador de monoprocesadores Marzo 2006 SEMINARIO DISEÑO Y CONSTRUCCIÓN DE MICRORROBOTS

Clases 02 & 03: Revisión de conceptos

Herramientas Informáticas I Software: Sistemas Operativos

SISTEMAS OPERATIVOS: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. Introducción y conceptos básicos

Departamento Ingeniería en Sistemas de Información

Threads, SMP y Microkernels. Proceso

Arquitectura de Computadores (obligatoria)

Transcripción:

1º ASIR Qué es un proceso? Un proceso se puede definir como un programa en ejecución. Algunos autores lo denominan tarea, o trabajo (process, task o Jobs). Una de las funciones fundamentales de un SO es la planificación de los procesos, ya que es el SO el que proporciona la interfaz para el usuario ante los distintos componentes hardware de la máquina. Un único programa no utiliza toda la potencialidad de una máquina, por lo tanto el concepto de multiprogramación surge para mantener ocupado lo más posible a todos los recursos del sistema. Qué es una interrupción? Una interrupción es una señal de un dispositivo hardware o de un programa que hace que el SO detenga lo que está haciendo y tome una decisión sobre que es lo que va a hacer a continuación. Existen interrupciones de hardware llamadas IRQ (Interrup Request) que tienen un valor asociado y que se producen cuando por ejemplo la impresora necesita papel e interrupciones software cuando por ejemplo un programa ha terminado. Ejemplo del alumno que estudia varias asignaturas (planificación, tareas, interrupciones, acción ante una interrupción) Gestión de Procesos Los sistemas operativos tienen como función principal controlar las interrupciones que se producen en el sistema y crear una capa de abstracción para evitar que los usuarios tengan que controlar el sistema a un nivel tan bajo. Los servicios que proporciona el SO incluyen la realización de las siguientes actividades: Ejecución concurrente de los procesos Sincronización entre procesos Comunicación entre procesos Además el SO debe disponer de programas o algoritmos para la gestión y planificación de los procesos que se encargen de: Decidir qué proceso se ejecutará en el procesador Llevar la cuenta del estado de los procesos, sus prioridades y toda la información relevante de los procesos. Ejemplo del alumno que debe de tener un calendario de actividades, modificar la prioridades si hay examen, saber en que punto del temario está, etc. Cada proceso tiene su identificar (id identificador) que lo diferencia del resto. Un proceso se puede definir como un programa en ejecución, incluyendo el valor actual del Program Counter (Contador de programa), registros y variables que usa. Varios procesos pueden estar ejecutando el mismo programa, por ejemplo, si dos usuarios están utilizando al mismo tiempo el procesador de textos en un SO multiusuario. Cada proceso (cada usuario ejecutando el procesador) tiene su propio identificador. Para ocultar los efectos de las interrupciones, los sistemas operativos proporcionan un modelo conceptual consistente en procesos secuenciales ejecutados en paralelo. Cada proceso tiene su propio estado y se puede considerar que se ejecuta en su propio procesador real. A veces, los procesos deben interactuar entre si, lo que puede derivar condiciones de competencia por lo que los sistemas operativos deben implementar los algoritmos de planificación necesarios, así como los mecanismos para que un usuario pueda manejar dichos conflictos o bloqueos. Página 1

1º ASIR A lo largo de la vida de todo proceso del sistema, éste puede pasar por distintos estados: Ejecución, cuando está siendo ejecutado por la CPU. En espera o READY, cuando el proceso está en condiciones de ser ejecutado, pero debe esperar su turno. Bloqueado, cuando está en ejecución, pero esperando que ocurra algún evento. Para que el sistema operativo pueda controlar los distintos procesos existentes, mantiene para cada uno de ellos lo que se denomina un bloque de control de procesos o PCB, donde se guarda para cada proceso la información necesaria para manejarlo. El PCB de un proceso contendrá: a. Identificador del proceso b. El estado del proceso. c. El Program Counter (PC) o contador de programa. d. Los registros de la CPU que usa. e. La prioridad asignada. f. Información de Entrada-Salida. g. Estadísticas (uso de CPU, ID del proceso, etc.). El sistema operativo mantiene a su vez una cola de procesos en estado de espera. Importante: Diferenciar entre los conceptos de COLA y PILA en informática. Cuando el sistema operativo entrega a la CPU un nuevo proceso, es necesario guardar el estado del proceso que se estaba ejecutando y cargar el nuevo proceso. El estado de un proceso comprende el program counter y los registros que está utilizando. A este cambio de proceso en la CPU se le denomina Cambio de Contexto. Este cambio provoca que la CPU esté inactiva durante dicho proceso, es decir, es costoso para el sistema Quién crea los procesos y como se crean? Todo sistema operativo cuando arranca, lanza un proceso inicial que mantiene vivo el sistema. Este proceso es el encargado de lanzar el resto de los procesos que sean necesarios, los cuales a su vez pueden lanzar nuevos procesos. A los procesos que crean a otros procesos se les denomina procesos padre, y a los creados procesos hijo. Cuando un proceso padre es eliminado, todos sus procesos hijo son eliminados. (documento / impresión) Obviamente deben existir restricciones en la eliminación de procesos, no pudiendo un usuario eliminar los procesos de otro usuario. La eficiencia de los procesos dependerá de las tareas que realice. Por ejemplo, si un proceso necesita realizar una operación de I/O (Input/Output, Entrada/Salida) y otra de ejecución en CPU, podríamos crear una estructura que se encargue por separado de dichas tareas. A estas estructuras se les denomina hilos o threads. Gracias a ellos, los cambios de contexto no son tan costosos y el espacio de memoria compartida permite la comunicación entre hilos. Existen librerías que permiten la creación de hilos dentro de los procesos sin necesidad de apoyo por parte del S.O., pues éste no necesita conocer la existencia de los mismos. Página 2

1º ASIR Cuando hay más de un proceso en la cola de espera en condiciones de ser ejecutado por la CPU, se debe de escoger alguno entre ellos y ejecutarlo. Planificador de procesos El encargado de tomar dicha decisión es el planificador o scheduler. Se denomina planificador de procesos a la parte del SO que se encarga de asginar recurso de un sistema entre los diferentes procesos que lo solicitan. Ejemplo del alumno que debe decidir qué asignatura estudia y por cuanto tiempo. Para la toma de dicha decisión, debe seguir algún algoritmo de planificación cuyos objetivos han de ser: Justicia. Que todos los procesos tengan su tiempo de CPU. Eficiencia. Mantener la CPU ocupada el mayor tiempo posible. Minimizar los tiempos de respuesta. Importante: Procesamiento por lotes: un trabajo que se realiza sin la intervención del usuario o del SO en oposición al procesamiento interactivo. En ocasiones se utilizan planificación a dos niveles, uno que se encarga de planificar los trabajos (se llama a largo plazo) y otro que se encarga de planificar el procesador (a corto plazo) Multiprocesadores. Cuando hay más de un procesador se puede optar por dos opciones. Cada procesador tiene su propia cola de READY. Dejar que un procesador planifique los procesos y divide que procesos corren en los demás Página 3

1º ASIR Algoritmos típicos de planificación Algoritmo expropiativo o apropiativo: Cuando un proceso con mayor prioridad reemplaza a otro proceso aunque esté en ejecución si tiene menor prioridad. Un algoritmo es no apropiativo cuando una vez que un proceso tiene la CPU no lo puede ser retirada. FCFS FIRST COME FIRST SERVE La política más simple de planificación es la FCFS. A medida que un proceso pasa al estado listo, este es agregado a la cola de listos. Cuando el proceso que actualmente está ejecutando cesa su ejecución entonces el proceso más viejo en la cola es seleccionado para correr. La implementación de esta política es a través de colas FIFO (First-In, First-Out). Cuando el CPU está libre, éste es asignado al proceso que está al comienzo de la la cola. Se atiende a los procesos en el mismo orden en el que entraron en la cola de READY. El tiempo de espera bajo esta política tiende a ser alto. Además, tiende a favorecer aquellos procesos que requieren más tiempo de CPU. Este algoritmo es malo pues no garantiza que los tiempos de espera sean mínimos y la CPU puede estar mucho tiempo inactiva. SJR SHORTEST JOB FIRST El algoritmo primero el trabajo más corto. Es decir, al liberarse la cpu ingresará el proceso con la menor necesidad de tiempo de CPU, el más pequeño primero, y si existiera más de un proceso con igual valor, pues se aplicaría dentro de este el algoritmo anterior (FCFS). Este algoritmo presenta una gran ventaja, pues el tiempo de espera será mucho menor, pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S, el cpu se ocupa de resolver el proceso con mayor tiempo, un algoritmo muy óptimo. El problema está en conocer la duración del próximo requerimiento de CPU para cada proceso que puede predecirse usando la información de los ciclos anteriores ejecutados. El trabajo más corto primero. Se debe adivinar el tiempo medio de los procesos de la cola. PLANIFICACIÓN POR PRIORIDAD A cada proceso se le asigna una prioridad y se le entrega a la CPU el proceso de mayor prioridad. Para definir la prioridad, se pueden seguir muchos criterios: Según el usuario. Según el tipo de proceso (sistema, intensivo CPU, intensivo I/O). Según la carga de CPU en ese momento La prioridad puede ser estática o dinámica. Estática no cambia durante el tiempo que el proceso existe. Dinámica puede ser modificada por ejemplo cuando un proceso lleva mucho tiempo en espera para evitar el envejecimiento el sistema puedo modificar su prioridad. SRT SHORTEST REMAINING TIME Se elige el proceso al que le queda menos tiempo para su finalización, incluyendo los últimos que han llegado a la cola. Es necesario llamar continuamente al planificador. ROUND ROBIN PRIORIDAD CIRCULAR O CARRUSEL Carrusel o Round Robin. Los procesos son ejecutados según llegan, pero dejan de ejecutarse pasado un tiempo determinado o al realizar una operación bloqueante. Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado quantum o cuanto. Página 4

1º ASIR La principal decisión de diseño que surge con Round Robin es el tamaño del quantum. Si es muy corto, entonces los procesos se moverán a través del sistema rápidamente. Por otro lado, hay un cierto overhead o desperdicio de tiempo envuelto con el manejo de la interrupción de reloj y las funciones de planificación y despacho. Por lo tanto quantums muy pequeños deberían evitarse. Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. Se implementa con una cola FIFO de procesos. Nuevos procesos son agregados al final de la cola, y toma el proceso que se encuentra en la cabeza de la cola. Actualiza el timer para que interrumpa después del quantum de tiempo. El desempeño de este algoritmo dependerá del tamaño del quantum. Si el quantum es infinito entonces degenera en FCFS. Si el quantum es muy pequeño entonces Round Robin es llamado compartición de CPU y en teoría pareciera que cada proceso tiene su propio procesador corriendo a 1/n la velocidad del procesador real. Bajo este esquema es importante considerar el efecto del cambio de contexto (la necesidad de guardar la información del proceso que se pasa a ready y preparar la información del que pasa a ejecución) MLQ (MULTI- LEVEL- QUEU) PLANIFICACIÓN DE COLAS MULTINIVEL Planificación usando múltiples colas. Se divide la cola de READY en varias colas según la categoría del proceso. Cada una de las colas independientes tendrá su propio algoritmo de planificación. Así, se podrán definir colas para procesos del sistema, colas para procesos interactivos, colas para procesos por lotes, etc. MLfQ (MULTI- LEVEL- FEEDBACK-QUEU) PLANIFICACIÓN DE COLAS MULTINIVEL CON REALIMENTACIÓN Como el sistema anterior pero además se permiten la movilidad de los procesos entre las diferentes colas Qué algoritmo elegir? En cada modelo se ve favorecido un proceso en vez de otro, por lo tanto diferenes algoritmos producirán diferentes resultados en la ejecución. Elementos a tener en cuenta: b) El tiempo medio de utilización del procesador c) El tiempo medio de espera de los procesos d) Número de procesos completados por unidad de tiempo e) Tiempo que transcurre desde que un proceso se crea hasta que se termina Página 5

1º ASIR HILOS (HEBRAS) THREADS En sistemas operativos, un hilo de ejecución 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. Un hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea. 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. 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 planificador de procesos del sistema operativo pierde para realizar un cambio de contexto, en este caso pasar del estado de ejecución al estado de espera 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. Sistemas operativos como Windows NT o Linux dicen tener hilos "baratos", y procesos "costosos" mientras que en otros sistemas no hay una gran diferencia GESTION DE PROCESOS EN LINUX Los procesos en sistemas operativos LINUX se realiza por prioridad y Round Robin. El sistema provee facilidades para crear túneles entre procesos y crear estadísticas del uso de recursos por parte de los procesos. Este sistema operativo permite que un proceso cree una copia de si mismo por medio de la llamada fork, para facilitar trabajos en paralelo. Provee una serie de comando para el control de procesos, como ps (para verlos), kill (para matarlos) y nohup (para independizarlos de un terminal). Los procesos son segmentados en componentes más pequeños llamados threads. Página 6

1º ASIR Windows 2000 implementa un sistema de planificación de procesos basado en la prioridad, ejecutando siempre el hilo de ejecución con una prioridad más elevada. Cuando un hilo de ejecución es seleccionado para ejecutarse, lo hace durante un periodo de tiempo denominado Quantum, la duración del cual varía según diversos factores externos. Un Proceso en ejecución puede ser retirado si llega otro con mayor prioridad. Si un proceso agota su Quantum antes de finalizar, el sistema lo extrae de ejecución y lo pone a la espera. Por otra parte también es posible que un hilo no agote su Quantum, y finalice su ejecución. El módulo de planificación de procesos está incluido en el kernel del sistema. Dispone de un administrador de procesos para crear, destruir, suspender y reanudar procesos. ACTIVIDADES DE AUTOCOMPROBACIÓN 1) En un sistema de planificación no apropiativa o no expropiativa, puede generarse una interrupción?, explique. 2) Por que no se puede producir en una planificación no expropiativa el paso de ejecutando a bloqueado. DICCIONARIO Algoritmo I/O BATCH (procesamiento por lotes) QUEU Dispatcher (Planificador de procesos) (((Un ejemplo de funcionamiento y coordinación entre el núcleo y los diferentes procesos puede ser el siguiente: Cuando el usuario hace doble click sobre el icono de Firefox del escritorio, gnome detecta el movimiento del ratón y el doble click y, puesto que conoce los objetos que hay en cada coordenada del escritorio, puede deducir el nombre del programa que el usuario quiere lanzar. Gnome comunica al núcleo del S.O. que ejecute Firefox. El núcleo comunicará al proceso encargado de la carga de los programas que cargue Firefox. El proceso cargador de programas puede constar de cuatro subprocesos: uno encargado de averiguar la cantidad de memoria RAM necesaria, otro encargado de reservar la memoria, otro encargado de leer del disco el programa y llevarlo a la memoria y un cuarto encargado de lanzar la ejecución del programa y de comunicar al núcleo que su orden ya se ha ejecutado. Los procesos que hacen uso de los dispositivos están adaptados conforme a las especificaciones de los drivers de éstos. Por ejemplo, el proceso encargado de la impresión necesita los drivers de la impresora para poder realizar correctamente su función.))) Página 7