Unidad 2: Administración de procesos y del

procesador.
Sistema operativo

INTRODUCCIÓN.

El presente reporte de investigación presenta el tema de: Administración de procesos y del
procesador en los sistemas operativos. Los primeros sistemas de computación solo
permitían la ejecución de un solo programa a la vez, este programa asumía el control total
del sistema, y tenía acceso a todos sus recursos. Los sistemas operativos actuales permiten
cargar múltiples programas en la memoria y ejecutarlo de forma concurrente, este cambio
requirió un control más firme y mayor compartimentación de los distintos programas, estas
necesidades dieron origen al concepto de proceso.

Podemos considerar un proceso como un programa en ejecución. Un proceso necesita de
ciertos recursos, como tiempo de CPU, memoria, archivos y dispositivos de E/S, para
realizar su tarea. Estos recursos se asignan al proceso cuando se crea o bien durante su
ejecución. Su principal obligación es la ejecución de programas del usuario.

El proceso es la unidad de trabajo en la mayor parte de los sistemas. Un sistema entonces
consiste en una colección de procesos: los procesos del sistema operativo ejecutan código
del sistema, y los procesos del usuario ejecutan código del usuario.

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. 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.

es decir. archivos abiertos. pero lo hace a petición de otros procesos. Estas instrucciones se encuentran en forma de programas. los procesos a menudo necesitan interactuar con otros procesos. la suspensión es inherente al problema (No es posible procesar la línea de comandos del usuario antes de que este la teclee). En los sistemas operativos multihilo es posible crear tanto hilos como procesos. . En un entorno de multiprogramación. 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. Un proceso consta de:  El código del programa. casi siempre porque está separando entradas que todavía no están disponibles. Para que un programa pueda ser ejecutado. lo que hace porque le es imposible continuar lógicamente. En el segundo caso. el contador de programa. El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. en el primer caso. así como también este se debe hacer cargo de la comunicación entre 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. Un proceso es un programa en ejecución.  Los datos del programa.2 Estados y transiciones de los procesos. Cuando un proceso se bloquea.  Un conjunto de registros de propósito general con los valores actuales.  Un conjunto de recursos del SO (memoria. y el procesador ejecuta una tras otra las instrucciones del mismo. el sistema operativo crea un nuevo proceso. los registros y las variables. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso. etc. Aunque cada proceso es una entidad independiente.1 Concepto de proceso. en el comando de Shell. Un proceso podría generar ciertas salidas que otro proceso utilizan como entradas. se trata de un tecnicismo del sistema (no hay suficiente: CPU para darle a cada proceso su propio procesador privado).  Una pila de ejecución. Estas dos condiciones son totalmente distintas. incluyendo el código o instrucciones que lo componen. también puede ser que un programa que conceptualmente está listo y en condiciones de ejecutarse sea detenido porque el sistema operativo ha decidido asignar la CPU a otro proceso durante un tiempo. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación. 2. 2. el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. con su propio contador de programa y estado interno.  El PC indicando la próxima instrucción.). contiene toda la información relativa al entorno en donde se ejecuta. Los procesos son creados y destruidos por el sistema operativo.

En realidad. su propia pila y su propia copia de los registros de la CPU. Todos los hilos de un proceso comparten los recursos del proceso. Cada hilo tiene su propio estado. Los valores comunes se guardan en el bloque de control de proceso (PCB). un proceso va pasando de un estado a otro. Por otra parte. Residen en el mismo espacio de direcciones y tienen acceso a los mismos datos. su propio contador. por medio de la multiprogramación. Los hilos permiten dividir un programa en dos o más tareas que corren simultáneamente. este método permite incrementar el rendimiento de un procesador de manera considerable. Durante su vida en el sistema. 2. Diferencias entre hilos y procesos. es similar a un proceso en que ambos representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias. » Terminado: El proceso terminó su ejecución. Cuando un hilo modifica un dato en la memoria. » Bloqueado: Esperando por un suceso. muchos hilos . Un hilo de ejecución. En todos los sistemas de hoy en día los hilos son utilizados para simplificar la estructura de un programa que lleva a cabo diferentes funciones.Cada proceso tiene un estado de ejecución que indica lo que está haciendo actualmente: » Nuevo: El proceso se está creando. Los hilos se distinguen de los tradicionales procesos en que los procesos son generalmente independientes. los otros hilos utilizan el resultado cuando acceden al dato.3 Procesos ligeros: hilos o hebras. llevan bastante información de estados. » Ejecutándose: Ejecutando instrucciones en la CPU. y los valores propios en el bloque de control de hilo (TCB). » Preparado o ejecutable: En espera de la CPU. en sistemas operativos. e interactúan sólo a través de mecanismos de comunicación dados por el sistema.

que es tiempo desperdiciado por el procesador para realizar un cambio de modo (mode switch). mientras que los procesos al ser independientes no lo hacen. En los hilos como pertenecen a un mismo proceso al realizar un cambio de hilo este overhead es casi despreciable. En sistemas operativos que proveen facilidades para los hilos. Este fenómeno se debe a que los hilos comparten datos y espacios de direcciones. que cambiar de un proceso a otro. Al cambiar de un proceso a otro el sistema operativo (mediante el dispatcher) genera lo que se conoce como overhead.generalmente comparten otros recursos directamente. en este caso pasar del estado de Running al estado de Waiting o Bloqueado y colocar el nuevo proceso en Running. . es más rápido cambiar de un hilo a otro dentro del mismo proceso.