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

Sistema Operativos Gestion De Procesos

neo2016 de Mayo de 2013

10.170 Palabras (41 Páginas)694 Visitas

Página 1 de 41

sistema operativos

Gestión de Procesos

Introducción

2.1. Definiciones de Procesos

2.2. Estados de los Procesos

2.3. Implementación de Procesos

2.4. Comunicación entre Procesos

2.5. Problema clásico de la comunicación entre Procesos

2.6. Planificación de Procesos

Introducción

El diseño de un sistema operativo debe reflejar con seguridad los requisitos que se pretende que éste cumpla. Todos los sistemas operativos de multiprogramación, desde los sistemas monousuario, como Windows, hasta los sistemas de grandes computadores, como MVS, que puede dar soporte a miles de usuarios, están construidos en tomo al concepto de proceso. Por tanto, los requisitos principales que debe satisfacer un sistema operativo están expresados haciendo referencia a los procesos:

• El sistema operativo debe intercalar la ejecución de un conjunto de procesos para maximizar la utilización del procesador ofreciendo a la vez un tiempo de respuesta razonable.

• El sistema operativo debe asignar los recursos a los procesos en conformidad con una política específica (por ejemplo, ciertas funciones o aplicaciones son de prioridad más alta), evitando, al mismo tiempo, el interbloqueo.

• El sistema operativo podría tener que dar soporte a la comunicación entre procesos y la creación de procesos por parte del usuario, labores que pueden ser de ayuda en la estructuración de las aplicaciones.

Puesto que el proceso es fundamental en todos los requisitos clave de los sistemas operativos, se comenzará el estudio detallado de los sistemas operativos con un examen a la forma en que se representan y controlan los procesos en los sistemas operativos.

El CPU ejecuta una elevada cantidad de programas, y aunque su principal ocupación es la ejecución de los programas de usuario, también se requiere para otras actividades del sistema. A estas actividades se les denominan procesos. Un proceso es la unidad de trabajo dentro de un sistema, el cual consiste en un conjunto de procesos: los procesos del sistema operativo ejecutan código del sistema y los procesos de los usuarios ejecutan código de los usuarios. El núcleo (kernel) de un sistema operativo es un conjunto de rutinas cuya misión es la de gestionar el procesador, la memoria, la entrada/salida y el resto de recursos disponibles en la instalación. Toda esta gestión la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema.

2.1. Definiciones de Proceso

Todas las computadoras modernas pueden realizar varias tareas al mismo tiempo. En estos sistemas de multiprogramación el CPU debe cambiar de un programa a otro, ejecutando cada uno en decenas o cientos de milisegundos. Pero en cualquier instante de tiempo el CPU puede estar ejecutando solo un programa. Todo el software ejecutable en la computadora, que con frecuencia incluye al sistema operativo, se organiza en varios procesos secuenciales. Un proceso es básicamente un programa ejecutante donde intervienen los valores corrientes del contador de programa, registros y variables. El concepto central de cualquier sistema operativo es el proceso: una abstracción de un programa en ejecución.

El término proceso fue utilizado, en principio, por los diseñadores del sistema Multics (actualmente UNIX) en la década de 1960. Desde entonces, al proceso, en alguna medida intercambiado con tarea, se le han dado muchas definiciones. Las que siguen son algunas de ellas:

• un programa que se está ejecutando

• una actividad asincrónica

• el "emplazamiento del control" de un procedimiento que está siendo ejecutado

• aquello que se manifiesta por la existencia en el sistema operativo de un "bloque de control de proceso"

• aquella entidad a la cual son asignados los procesadores

• la unidad "despachable".

Se le han dado muchas otras definiciones. Aunque no hay un acuerdo universal sobre su definición, parece hacerse referencia más frecuentemente al concepto de programa que se está ejecutando.

Figura 1. Definición de Proceso

Un obstáculo para analizar los sistemas operativos es la denominación de las actividades del CPU. Un sistema por lotes ejecuta trabajos, mientras que un sistema en tiempo compartido tiene programas de usuario o tareas. Incluso en los sistemas monousuario, como MS-DOS y el OS de Macintosh, un usuario puede ejecutar varios programas al mismo tiempo: uno en forma interactiva y varios programas por lotes. Aunque el usuario pueda ejecutar sólo un programa a la vez, el sistema operativo puede necesitar apoyar a sus propias actividades internas programadas, como el spooling. En varios aspectos, estas actividades son similares, por lo que a todas se les llama procesos.

El corazón de un sistema operativo es el núcleo, un programa de control que reacciona ante cualquier interrupción de eventos externos y que da servicio a los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicio por parte de los mismos.

2.1.1 Tipos de Procesos

Procesos Concurrentes: dos procesos son concurrentes si sus ejecuciones se superponen en el tiempo. Se puede mencionar procesos dependientes y procesos independientes. Dos procesos P1 y P2 son dependientes si comparten los datos y son independientes cuando no comparten sus datos. Existen varias razones para permitir la ejecución concurrente:

Compartir Recursos Físicos: ya que los recursos del hardware del computador son limitados, nos podemos ver obligados a compartirlos en un entorno multiusuario.

Compartir Recursos Lógicos: puestos que varios usuarios pueden interesarse en el mismo elemento de información (por ejemplo, un archivo compartido), debemos proporcionar un entorno que permita el acceso concurrente a estos tipos de recursos.

Acelerar los Cálculos: si queremos que una tarea se ejecute con mayor rapidez, debemos dividirla en subtareas, cada una de las cuales se ejecutará en paralelo con las demás. Observe que esta aceleración puede lograrse únicamente si el computador posee múltiples elementos de procesamiento.

Modularidad: podremos construir el sistema de forma modular, dividiendo las funciones en procesos separados.

Comodidad: un usuario puede tener que ejecutar varias tareas a la vez, por ejemplo editar, imprimir y compilar en paralelo.

Procesos Secuenciales: es un programa en ejecución. La ejecución de un proceso debe progresar de una manera secuencial. Esto es, en cualquier punto del tiempo, a lo más una instrucción es ejecutada en favor del proceso. Un proceso es más que el código del programa y la actividad actual. Un proceso generalmente incluye la pila del proceso conteniendo datos temporales (tales como parámetros de las funciones, direcciones para el valor de retorno y variables temporales) y una sección de datos conteniendo las variables globales.

2.1.2 El Bloque de Control del Proceso (PCB)

Un proceso se representa, desde el punto de vista del sistema operativo, por un conjunto de datos donde se incluyen el estado en cada momento, recursos utilizados, registros, etc., denominado Bloque de Control del Proceso (PCB). Los objetivos que se pretenden cubrir con el bloque de control del proceso son los siguientes:

• Localización de la información sobre el proceso por parte del sistema operativo.

• Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecución o reanudarla.

En general, la información contenida en el bloque de control es la siguiente:

• Estado del proceso. Información relativa al contenido del contador de programa (Program Counter, PC), estado del procesador en cuanto a prioridad del proceso, modo de ejecución, etc., y por último el estado de los registros internos de la computadora.

• Estadísticas de tiempo y ocupación de recursos, para la gestión de la planificación del procesador.

• Ocupación de memoria interna y externa para el intercambio (swapping).

• Recursos en uso (normalmente unidades de entrada/salida).

• Archivos en uso.

• Privilegios.

Estas informaciones se encuentran en memoria principal o en disco y se accede a ellas en los momentos en que se hace necesaria su actualización o consulta. Los datos relativos al estado del proceso siempre se encuentran en memoria principal. De igual forma existe un Bloque de Control del Sistema (SCB), con unos objetivos globales similares al anterior y entre los que se encuentra el enlazado de los bloques de control de los procesos existentes en el sistema.

Bloque de Control del Sistema

Excepciones

Bloque de Control de Procesos

Fallos de CPU

Puntero

Reloj y Consola

Número de Proceso

PCB´s

Estado del Proceso

Interrupciones

Prioridad

Contador de Programa

Límites de Memoria

Registros

Archivos Abiertos

Figura 1. Bloques de control de procesos y del sistema

Trataremos de ver a continuación cómo se realiza el cambio de un proceso a otro, para lo cual supondremos que estamos en una computadora con un solo procesador (sólo un proceso puede estar ejecutándose en cada momento),

...

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