Administracion De Procesos Y Del Procesador
Enviado por peter_punk02 • 24 de Noviembre de 2013 • 8.004 Palabras (33 Páginas) • 457 Visitas
UNIDAD 2 ADMINISTRACIÓN DE PROCESOS Y DEL PROCESADOR
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 (PCB Bloque de Control de Proceso).
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.
2.1 CONCEPTOS DE PROCESO
Un proceso no es mas que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada unos de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro.
Es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:
Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.
Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.
En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, esta organizado en una serie del proceso secuenciales, o simplemente procesos. La idea clava aquí es que un proceso es una actividad de algún tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algún algoritmo de planificación para determinar cuando debe de trabajar en un proceso para atender a uno distinto.
Jerarquías de procesos
Los sistemas operativos que manejan el concepto de proceso deben contar con algún mecanismo para crear todos los procesos necesarios. en los sistemas muy sencillos, o en los diseñados para ejecutar solo una aplicación.
En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema.
Los procesos necesitan poder crear otros procesos. En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idéntica del proceso invocador. El proceso hijo también puede ejecutar FORK, así que es posible tener un árbol de proceso.
Todos los programas cuya ejecucion solicitan los usuarios, se ejecutan en forma de procesos, de ahi la importancia para le informatico de conocerlos en detalle. El proceso se puede definir como un programa de gestion por el sistema operativo. Durante su eleccion el proceso va modificandoen ejecucion y, de una forma un poco mas precisa, como la unidad de procesamiento los registro del modelo de programacion de la computadora, de acuerdo a las intrusiones de maquina involucradas.
El sistema operativo mantiene por cada proceso una serie de estructuras de informacion que permiten identificar las caracteristicas de este, asi como los recursos que tiene asignados. En esta ultima categoria entran los descriptores de los segmentos de memoria asignados, los descriptores de los archivos abiertos, los descriptores de los puertos de comunicaciones, etc.
Una parte muy importante de esta informacion se encuentra normalmente como en el llamadobloque de control de procesos (BCP). El sistema operativo mantiene una tabla de procesos con todos los BCP de los procesos. Por razones de eficiencia, la tabla de procesos se construyen normalmente como una estructura estatica, que tiene un determinado numero de BCP, todos ellos del mismo tamano. La informacion que compone un proceso es la siguiente:
Contenido de los segmentos de memoria en los que residen el codigo y los datos del proceso. A esta informacion se le denomina imagen de memoria o core image.
Contenido de los registros del modelo de programacion
Contenido del BCP.
2.2 ESTADOS Y TRANSICIONES DE LOS PROCESOS
El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso.
Aunque cada proceso se una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo necesitan interactuar con otros procesos. Un proceso podría generar ciertas salidas que otro proceso utilizan como entradas, en el comando de Shell.
Cuando un proceso se bloquea, lo que hace porque le es imposible continuar lógicamente, casi siempre porque esta separando entradas que todavía no están disponibles, también puede
...