Successfully reported this slideshow.
Gestión de procesosEn esta sección se presentarán los conceptos básicos de gestión de procesos.                           ...
Gestión de procesosLa gestión de procesos es uno de los componentes principales de un sistemaoperativo. Este se encarga de...
Servicios de procesosLos servicios que ofrece un sistema operativo para la gestión de procesos se pueden clasificaren:•Cre...
Un proceso es un programa en ejecución gestionada por el sistema operativo.Posee los siguientes componentes:•Imagen de mem...
Debido a que sólo existe un EIP (Instruction Pointer) físico, el S.O. debeimplementar estrategias para administrar el tiem...
A medida que avanza el uso de los servicios del S.O. por parte del usuario, sevan creando y terminando procesos. Estos se ...
Estado del procesoEl S.O. mantiene por cada proceso una serie de estructuras de información quele permite identificar las ...
Información del BCPLa información del BCP se puede clasificar en:•Información de identificación: Se utiliza para diferenci...
Creación de procesosTodo proceso se crea a partir de una llamada al sistema. Esta llamada se puederealizar desde diferente...
Llamada al sistema forkLa llamada fork de POSIX crea una copia exacta del proceso que la solicita. Enla gráfica, el proces...
Planificación de ProcesosLa planificación se refiere al mecanismo usado por el sistema operativo paraasignar la CPU a cada...
Estado de un procesoDe acuerdo a la ejecución de un proceso y de la estrategia del sistema operativo   para planificarlo, ...
Otro diagrama de estados de un proceso incluye un nuevo estado (suspendido).Este estado aparece cuando el sistema maneja m...
En este espacio se ilustra el uso de las llamadas al sistema fork() y excec()                                             ...
En este espacio se ilustra el uso de las llamadas al sistema fork() y excec()                                             ...
16
17
Upcoming SlideShare
Loading in …5
×

Gestión de Procesos

594 views

Published on

Sistemas Operativos - Gestión de Procesos

Published in: Education
  • Be the first to comment

  • Be the first to like this

Gestión de Procesos

  1. 1. Gestión de procesosEn esta sección se presentarán los conceptos básicos de gestión de procesos. 1
  2. 2. Gestión de procesosLa gestión de procesos es uno de los componentes principales de un sistemaoperativo. Este se encarga de generar y gestionar los procesos que se ejecutanen una CPU, y atender sus peticiones.Un proceso se puede considerar como la abstracción de un programa enejecución. Se debe tener en cuenta que un programa es parte de un proceso: elprograma es el conjunto de instrucciones de máquina, que generalmente sealmacena en un archivo (ejecutable), y se carga en memoria en el momento desu ejecución.Debido a la arquitectura de los computadores actuales (sólo existe un PC, unjuego de registros, etc.) en la cual sólo se puede ejecutar un proceso al tiempo,la CPU debe “saltar” de proceso en proceso, asignándole a cada uno un tiempode ejecución. Cada vez que se cambia el proceso que se está ejecutando sedebe salvar su estado de ejecución con el fin que pueda ser reiniciado más tardeen el punto de ejecución en el cual se interrumpió. 2
  3. 3. Servicios de procesosLos servicios que ofrece un sistema operativo para la gestión de procesos se pueden clasificaren:•Creación: La creación de procesos se puede llevar a cabo de varias maneras: •Inicialización del sistema: En el momento de iniciar el S.O, el proceso residente puede ejecutar otros procesos. Con frecuencia estos procesos son utilidades y servicios del sistema, utilidades de usuario, detección e inicialización de dispositivos de Hardware, software antivirus, etc. •Llamadas al sistema: La interfaz de programación (API) del S.O. ofrece algunas funciones para la creación de procesos (fork en POSIX y CreateProcess en Win32). •Solicitud del usuario: Por medio de una interfaz de usuario textual o gráfica, el usuario puede invocar nuevos procesos. •Inicialización de un trabajo por lotes: Algunos sistemas operativos ofrecen algún mecanismo para programar tareas, éstas se inician de manera automática en una determinada fecha y hora, o cuando se cumplan ciertas condiciones (Límite de espacio en disco, bloqueo de programas, etc).•Gestión: La gestión de procesos incluye su planificación y administración.•Finalización: La finalización de un proceso se puede dar de dos formas: •Voluntaria: El proceso termina su ejecución de manera normal, mediante una llamada exit, o cuando ocurre un error en la ejecución del programa que impide que pueda continuar normalmente. •Involuntaria: Debido a errores en la lógica de programación se pueden ejecutar operaciones no válidas que producen la terminación de un proceso. De otro lado el sistema operativo puede implementar estrategias para permitir la finalización de un proceso. 3
  4. 4. Un proceso es un programa en ejecución gestionada por el sistema operativo.Posee los siguientes componentes:•Imagen de memoria: Contenido de los segmentos de memoria en los queresiden los datos y el código del proceso (programa).•Estado del procesador: Contenido de los registros del modelo d programacióndel computador.•Estado del proceso: Es un registro que contiene la información necesaria paraidentificar cada proceso.De acuerdo al número de procesos y de usuarios que pueden utilizar un sistemaal mismo tiempo, los sistemas operativos se clasifican en:•Monotarea: Sólo se puede ejecutar un proceso en cada momento•Multitarea (multiproceso): Permite que coexistan varios procesos activos a lavez. Esto no quiere decir que los procesos se ejecuten “al mismo tiempo”. ElS.O. administra el tiempo del procesador, asignándole tiempo de procesador acada proceso (tiempo compartido).•Monousuario: Previsto para soportar un solo usuario. Un sistema monousuariopuede ser monotarea o multitarea.•Multiusuario: Permite varios usuarios trabajando simultáneamente desde variosterminales. Todo sistema operativo multiusuario es multitarea: debe implementarestrategias de tiempo compartido. 4
  5. 5. Debido a que sólo existe un EIP (Instruction Pointer) físico, el S.O. debeimplementar estrategias para administrar el tiempo de la CPU. Cuando unproceso entra en ejecución, existe un EIP lógico. Cuando se termina el tiempo deCPU para el proceso, el EIP físico se almacena en el estado del proceso. Deesta manera cuando el proceso adquiera nuevamente tiempo de CPU, suejecución continuará en el punto en el cual fue interrumpido.La gráfica ilustra la administración de tiempo de la CPU: el S.O. asignadeterminado tiempo a cada proceso (1 unidad, en este caso), luego que terminaeste tiempo el proceso debe abandonar la CPU y ceder el turno a otro proceso. 5
  6. 6. A medida que avanza el uso de los servicios del S.O. por parte del usuario, sevan creando y terminando procesos. Estos se encuentran organizados en unajerarquía que comienza con el “primer” proceso que se ejecutó, y a partir del cualse crearon los demás procesos.En sistemas POSIX, el primer proceso en ser ejecutado es el procesodenominado “Init”, que recibe un Identificador de Proceso (PID) de 1. Esteproceso se encarga de ejecutar los servicios de arranque del sistema operativo,y los procesos para inicio de sesión.De forma general, el PID de un nuevo proceso que se crea en POSIXcorresponde al PID de su proceso padre + 1. 6
  7. 7. Estado del procesoEl S.O. mantiene por cada proceso una serie de estructuras de información quele permite identificar las características de este, así como los recursos que tieneasignados. Una de las estructuras del S.O. es la tabla de procesos. Dentro deesta tabla se encuentra un registro para cada proceso en memoria, llamadaBloque de Control de Proceso.Bloque de Control de Proceso (BCP)Depende de cada S.O, pero a nivel general contiene la información básica delproceso. Se actualiza cuando el proceso está en memoria pero no en ejecución.Cuando el proceso se está ejecutando, el estado del procesador varía deacuerdo al flujo de instrucciones de máquina ejecutado. Luego, cuando seinterrumpe el proceso la información del BCP se actualiza en memoria parareflejar los cambios en el estado del proceso. 7
  8. 8. Información del BCPLa información del BCP se puede clasificar en:•Información de identificación: Se utiliza para diferenciar el proceso de los demás procesos enmemoria. Para ello debe contener la siguiente información: •Identificador del proceso (Process ID - PID): Número único que identifica al proceso. Se asigna dinámicamente en el momento de crear el proceso y depende de la cantidad de procesos que se encuentren en memoria en el momento de la creación. Varía cada vez que se ejecuta nuevamente el proceso. •Identificador del proceso padre (Parent Process ID – PPID): PID del proceso desde el cual se generó el nuevo proceso. •Identificador de usuario (User ID – UID). En los sistemas operativos multiusuario, representa el identificador único de cada usuario dentro del sistema.•Estado del procesador: Almacena los valores del estado del procesador en el momento en elcual se interrumpió el proceso. Esto permite que el proceso pueda ser reiniciado desde el puntoen el cual fue interrumpido.•Información de control del proceso: Contiene la información que requiere el S.O. para conocerlos mecanismos para la gestión de proceso: •Información de planificación •Descripción de los segmentos de memoria que utiliza el proceso •Recursos asociados con el proceso •Estructura del proceso •Comunicación 8
  9. 9. Creación de procesosTodo proceso se crea a partir de una llamada al sistema. Esta llamada se puederealizar desde diferentes puntos:•Proceso de usuario: Dentro de un proceso de usuario se puede realizar lallamada al sistema para crear un nuevo proceso. Los niveles de seguridad delS.O. determinarán si es posible crear un nuevo proceso.•Proceso del sistema: De igual forma un proceso del sistema puede realizar lallamada para crear nuevos procesos, este es el caso del proceso Init: Una vezque se está ejecutando realiza llamadas al sistema para crear nuevos procesosque se encargan de diferentes labores, como controlar los dispositivos, yadministrar los recursos del computador (CPU, memoria, sistema de archivos), ylanzar intérpretes de comandos textuales o gráficos.•Tareas programadas: La mayoría de sistemas operativos ejecutan un programaespecial (programador de tareas) que ejecuta tareas en un determinadomomento (cada 2 horas, diariamente, mensualmente) o cuando se cumple ciertacondición en el sistema operativo (poco espacio, falta de memoria).La creación de procesos depende del sistema operativo, cada una recibedeterminados parámetros. Existe la llamada fork para POSIX y CreateProcesspara WIN32. 9
  10. 10. Llamada al sistema forkLa llamada fork de POSIX crea una copia exacta del proceso que la solicita. Enla gráfica, el proceso A dentro de sus instrucciones hace uso de la llamada fork().En ese instante el S.O. crea una copia de la imagen de memoria del proceso yde su estado (A’), y la copia en otro segmento de memoria. Esta nueva copia esidéntica al proceso original, es decir que se tienen dos procesos que ejecutanel mismo programa en el mismo punto. La diferencia entre el proceso A y A’se da en algunos campos del BCP, entre los que sobresalen:•PID: El identificador de proceso es diferente en el proceso original (padre) y enel nuevo proceso. Generalmente el identificador del proceso hijo es el PID delpadre más uno.•PPID: El identificador del padre del proceso original no cambia, pero elidentificador del padre del proceso hijo es el identificador del proceso original.•PC: Cada proceso adquiere un PC lógico diferente, por estar en dos segmentosde memoria diferentes. Sin embargo el PC de cada uno apunta a la mismainstrucción del programa.Los dos procesos comparten los descriptores de archivo que existen en elmomento de realizar la llamada.La llamada fork se acompaña de la llamada exec, que permite cambiar la imagende memoria del proceso por un nuevo ejecutable. 10
  11. 11. Planificación de ProcesosLa planificación se refiere al mecanismo usado por el sistema operativo paraasignar la CPU a cada uno de los procesos existentes en el sistema.Los computadores actuales pueden ejecutar un gran número de procesos, perosólo cuentan con un conjunto limitado de procesadores (1, 2, 4, 8).Por esta razón el Sistema Operativo debe controlar en todo momento el uso dela CPU (los procesadores disponibles), tratando que todos los procesos puedanser ejecutados.Existen diferentes algoritmos de planificación, que se estudiarán más adelante.Por ejemplo, se puede usar una estrategia FIFO, en la cual el proceso queprimero solicite ejecución recibe la CPU (el procesador) desde su inicio hastaque termina. Otra estrategia común es asignar la CPU durante un determinadoperiodo de tiempo, y luego asignarla a otro proceso para crear una “Ronda”(Round-Robin). Eventualmente todos los procesos recibirán el tiempo de CPUnecesario para que completen su ejecución. 11
  12. 12. Estado de un procesoDe acuerdo a la ejecución de un proceso y de la estrategia del sistema operativo para planificarlo, se puede encontrar en varios estados:• Ejecución: El proceso tiene asignado tiempo de CPU para su ejecución. En este estado el proceso puede hacer uso de los recursos del computador. En un sistema operativo multiproceso sólo puede existir un proceso en ejecución por cada CPU (núcleo) del procesador.• Bloqueado: Cuando un proceso realiza una llamada al sistema, se bloquea. El caso típico es cuando se solicita un recurso de entrada/salida, el proceso debe esperar hasta que el dispositivo de E/S informe que esté listo. En la gráfica, el proceso puede pasar de el estado en ejecución al estado bloqueado cuando solicita un recurso de E/S (1). En un S.O. multiproceso, cuando un proceso se bloquea se le asigna tiempo de CPU a otro proceso.• Listo: El proceso se encuentra listo para recibir tiempo de CPU, pero en el momento la CPU no se encuentra disponible. Este estado se puede dar por dos casos: El proceso se encuentra en ejecución pero el S.O. decide que debe otorgarle tiempo de CPU a otro proceso (2), o el proceso estaba esperando para que finalizara una llamada al sistema (4). 12
  13. 13. Otro diagrama de estados de un proceso incluye un nuevo estado (suspendido).Este estado aparece cuando el sistema maneja memoria virtual, y debido a lasnecesidades de memoria del S.O, el segmento de memoria en el que seencuentra el proceso es llevado a memoria de intercambio (Swapping). Losprocesos entonces pasan a un estado de “Suspendido”. Luego que se recuperanlos segmentos de memoria que el S.O. ha llevado a memoria de intercambio, elproceso puede pasar nuevamente al estado de listo. 13
  14. 14. En este espacio se ilustra el uso de las llamadas al sistema fork() y excec() 14
  15. 15. En este espacio se ilustra el uso de las llamadas al sistema fork() y excec() 15
  16. 16. 16
  17. 17. 17

×