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

Sistemas Operativos


Enviado por   •  5 de Diciembre de 2012  •  3.194 Palabras (13 Páginas)  •  314 Visitas

Página 1 de 13

Procesos

Un proceso 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. Otra información que permite al sistema operativo su planificación. 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 son independientes y no comparten memoria (es decir, información) con el proceso que los ha creado. 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.

Estados de los procesos

Todo proceso en un sistema operativo presenta un estado que indica la situación de la ejecución en que se encuentra. El número de posibles estados varía de un sistema operativo a otro.

Diagrama de estados simplificado

Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres estados:

• Activo: el proceso está empleando la CPU, por tanto, está ejecutándose. Pueden haber tantos procesos activos como procesadores haya disponibles. Por tanto, si el sistema dispone de un único procesador, únicamente puede haber un proceso activo a la vez.

• Preparado: el proceso no está ejecutándose pero es candidato a pasar a estado activo. Es el planificador el que, en base a un criterio de planificación, decide qué proceso selecciona de la lista de procesos preparados para pasar a estado activo.

• Bloqueado: el proceso está pendiente de un evento externo que le ha hecho bloquear, tales como una operación de lectura/escritura, la espera de finalización de un proceso hijo, una señal o una operación sobre un semáforo. El dispositivo/hecho externo "avisa" al S.O. cuando ha terminado la acción que realizaba mediante una INTERRUPCIÓN, dejando el S.O. lo que está haciendo para atender a esta última. Tras esto, el S.O. comprueba cuales son los procesos que fueron bloqueados por ese evento externo, cambiándolos al estado de preparado.

La transición de activo a preparado y viceversa depende de decisiones tomadas por el planificador del sistema operativo en base a un cierto criterio. La transición de activo a bloqueado, y de bloqueado a preparado puede inducirlas el programador mediante llamadas al sistema.

Asignación de recursos a los procesos

La mayor parte del tiempo en que un ordenador está funcionando, la demanda de recursos es mayor que los realmente existentes. Este problema se resuelve aplicando una política de asignación de recursos.

El mecanismo sería sencillo si se pudiese utilizar una política del tipo: “atender primero al que antes lo solicite”, sin embargo esto puede llevar a situaciones de deadlock (sistema colgado o caido) cuando dos programas solicitan insistentemente recursos asignados a otro.

El planificador cuenta con una política que varia de un S. O. a otro. Una política muy común consiste en el time slicing (asignación de intervalos cortos de tiempo a los programas)

Entre las tareas claves de un sistema operativo esta la de gestionar los diferentes recursos que disponga el sistema(Procesadores, memoria, periféricos, etc) y planificar la utilización de los mismos de la forma mas eficiente por los procesos de ejecución.

La política de planificación y de asignación de recursos tiene que ser justa y eficiente, esto supone que todos los procesos que compiten por la utilización de un determinado recurso deben disponer de él de una forma equitativa, esto se debe cumplir sobretodo en trabajos de la misma clase que poseen la misma prioridad.

Por otro lado hay situaciones en la que es necesario distinguir entre diferentes clases de trabajos, con diferentes exigencias de servicios.

El sistema operativo debe intentar hacer la planificación y la asignación considerando el total de los requerimientos. Estas decisiones se hacen dinámicamente, por ejemplo: si un proceso esta esperando para utilizar un periférico, el sistema operativo debe planificar su ejecución deforma que lo libere lo antes posible, para poder satisfacer peticiones posteriores de otros procesos.

Planificador de Procesos

Cuando son ejecutables varios procesos, el sistema operativo debe decidir cuál conviene

ejecutar si el CPU se encuentra disponible.

El elemento del sistema quien toma esta decisión se llama PLANIFICADOR (Scheduling)

y el algoritmo del cual hace uso se denomina ALGORITMO PLANIFICADOR.

Hilos de ejecución o thread

Un hilo de ejecución o thread , en sistemas operativos, es una característica que permite a una aplicación realizar varias tareas concurrentemente. Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden e ese dato modificado inmediatamente a en la siguiente figura podemos observar un ejemplo de un hilo de ejecución.

Lo que es propio de cada hilo es el contador de programa, la pila de ejecución y el estado de la CPU (incluyendo el valor de los registros).

El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo. Cuando el proceso es terminado, todos sus hilos de ejecución también lo son. Asimismo en el momento en el que todos los hilos de ejecución finalizan, el proceso no existe más y todos sus recursos son liberados.

Algunos lenguajes de programación tienen características de diseño expresamente creadas para permitir a los

...

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