ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sistemas Operativos: Administracion De Procesos

viccert19 de Noviembre de 2013

3.420 Palabras (14 Páginas)513 Visitas

Página 1 de 14

UNIDAD II

ADMINISTRACIÓN DE PROCESOS

2.1. Descripción y definición de procesos

Definición: Un proceso es un programa en ejecución

Descripción: El proceso incluye el valor del program counter, los registros y las variables. Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es visto como un CPU virtual.

2.2. Estados de los procesos

El estado de un proceso es definido por la actividad corriente en que se encuentra. Los estados de un proceso son:

 Nuevo (new): Cuando el proceso es creado.

 Ejecutando (running): El proceso tiene asignado un procesador y está ejecutando sus instrucciones.

 Bloqueado (waiting): El proceso está esperando por un evento (que se complete un pedido de E/S o una señal).

 Listo (ready): El proceso está listo para ejecutar, solo necesita del recurso procesador.

 Finalizado (terminated): El proceso finalizó su ejecución.

Diagrama de estados y transiciones de los procesos:

Transiciones entre estados

 Nuevo–>Listo: Al crear se un proceso pasa inmediatamente al estado listo.

 Listo–>Ejecutando: En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar (tener en cuenta que puede existir más de un procesador en el sistema). Al liberar se un procesador el planificador (scheduler) selecciona el próximo proceso, según algún criterio definido, a ejecutar.

 Ejecutando–>Listo: Ante una interrupción que se generé, el proceso puede perder el recurso procesador y pasar al estado de listo. El planificador será el encargado de seleccionar el próximo proceso a ejecutar.

 Ejecutando–>Bloqueado: A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes (ej.: genera un pedido de E/S). Teniendo en cuenta que el pedido puede de morar y, además, si está en un sistema multiprogramado, el proceso es puesto en una cola de espera hasta que se complete su pedido. De esta forma, se logra utilizar en forma más eficiente el procesador.

 Bloqueado–>Listo: Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos.

 Ejecutando->Terminado: Cuando el proceso ejecuta su última instrucción pasa al estado terminado. El sistema libera las estructuras que representan al proceso.

2.3. Control de Procesos

2.4. Procesos e hilos

Definición de Hilo

Una unidad de trabajo que se puede expedir para ejecución. Es lo que se ejecuta secuencialmente y es interrumpible para que el procesador puede pasar a otro hilo. Desde el punto de vista de la planificación y la expedición, este concepto es equivalente al de proceso en la mayoría de los sistemas operativos.

Comparten los recursos del proceso. Un proceso puede ser formado por uno o varios hilos.

Procesos e hilos

 Unidad mínima de asignación: tarea.

Unidad mínima de expedición: hilo.

 Dos hilos de una misma tarea (denominados hilos pares) comparten el segmento de código, el segmento de datos y un espacio de pila, es decir, los recursos asignados a la tarea.

 Podemos captar la funcionalidad de los hilos si comparamos el control de múltiples hilos con el control de múltiples procesos. En el caso de los procesos, cada uno opera independientemente de los otros; cada proceso tiene su propio contador de programa, registro de pila, y espacio de direcciones. Este tipo de organización es muy útil cuando los trabajos que los procesos efectúan no tienen ninguna relación entre si.

Elementos de hilo

Cuando un hilo está en ejecución, posee el acceso a todos los recursos que tiene asignados la tarea. Un hilo tendrá lo siguiente:

 Estado.

 Contexto del procesador. Punto en el que estamos ejecutando, la instrucción concretamente en la que nos hallamos. Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo.

 Pila de ejecución donde se irá metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).

 Espacio de almacenamiento estático donde almacenará las variables.

 Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea.

Ventajas del uso de hilos

 Se tarda menos tiempo en crear un hilo de una tarea existente que en crear un nuevo proceso.

 Se tarda menos tiempo en terminar un hilo que en terminar un proceso.

 Se tarda menos tiempo en cambiar entre dos hilos de una misma tarea que en cambiar entre dos procesos (porque los recursos no cambian, por ejemplo)

 Es más sencillo la comunicación (paso de mensajes por ejemplo) entre hilos de una misma tarea que entre diferentes procesos.

Cuando se cambia de un proceso a otro, tiene que intervenir el núcleo del sistema operativo para que haya protección. Cuando se cambia de un hilo a otro, puesto que la asignación de recursos es la misma, no hace falta que intervenga el sistema operativo

Tipos de Hilos

 Hilos a nivel de usuario: Se usan aplicaciones o bibliotecas de hilos para manejarse, pero el kernel no sabe de la existencia de dichos hilos.

 Hilos a nivel de Kernel: La gestión de los hilos es realizada por el Kernel.

2.5. Manejo de concurrencia

Concepto de Concurrencia

La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, comparición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos y es fundamental para que existan diseños como Multiprogramación, Multiproceso y Proceso distribuido

Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos.

Contexto de la concurrencia

La concurrencia puede presentarse en contextos diferentes:

• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.

• Aplicaciones estructuradas: Como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes.

• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos. Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes:

• Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultánea.

• Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no sólo pueden intercalar su ejecución sino también superponerla.

• Multicomputadora. Es una maquina de memoria distribuida, que está formada por una serie de computadoras. En este tipo de arquitecturas también es posible la ejecución simultánea de los procesos sobre los diferentes procesadores.

En general, la concurrencia será aparente siempre que el número de procesos sea mayor que el de procesadores disponibles, es decir, cuando haya más de un proceso por procesador. La concurrencia será real cuando haya un proceso por procesador. Aunque puede parecer que la intercalación y la superposición de la ejecución de procesos presentan formas de ejecución distintas, se verá que ambas pueden contemplase como ejemplos de procesos concurrentes

Existen diversas razones que motivan la ejecución de procesos concurrentes en un sistema:

• Facilita la programación de aplicaciones al permitir que éstas se estructuren como un conjunto de procesos que cooperan entre sí para alcanzar un objetivo común.

• Acelera los cálculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los demás.

• Posibilita el uso interactivo a múltiples usuarios que trabajan de forma simultánea.

• Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizar las fases

...

Descargar como (para miembros actualizados) txt (23 Kb)
Leer 13 páginas más »
Disponible sólo en Clubensayos.com