Está en la página 1de 24

Unidad 2 Jacobo Azael Nahuat Ay

Un proceso es simplemente, un programa en ejecucin que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de: Crear y destruir los procesos. Parar y reanudar los procesos. Ofrecer mecanismos para que se comuniquen y sincronicen.

Un proceso es un programa en ejecucin. Los procesos son gestionados por el sistema operativo y estn formados por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra informacin que permite al sistema operativo su planificacin.

Como se ha puesto de manifiesto, el proceso es un elemento dinmico que puede pasar por diferentes estados a lo largo de su existencia.

Activo Preparado Bloqueado o suspendido Nonato Muerto.

Es la que est ejecutndose en un instante dado. En el caso de sistemas con un nico procesador, slo puede haber una tarea en dicho estado en cada instante.

Se encuentran todas las tareas que estn listas para ejecutarse pero que esperan a que un/el procesador quede libre(hay otros procesos ms prioritarios en ejecucin).

Las tareas que estn a la espera de que se cumpla una condicin y que por lo tanto, no estn preparadas para ejecutase, se dice que estn en el estado bloqueado o suspendido

indica que el programa realmente existe pero todava no es conocido por el OS.

Es cuando ha terminado su ejecucin o bien el sistema operativo a detectado un error fatal y lo ha transferido a dicho estado. Tambin es posible que haya entrado l como resultado de un fallo del propio sistema operativo (cuestin que desgraciadamente suele ocurrir frecuentemente en algunos OS.

La mayora de los procesadores dan soporte para dos modos de ejecucin por lo menos. Ciertas instrucciones pueden ejecutarse slo en modo privilegiado. Entre stas estn la lectura o modificacin de registros de control (como la palabra de estado del programa), instrucciones primitivas de E/S e instrucciones relativas a la gestin de memoria. Adems, se puede acceder a ciertas regiones de memoria slo en el modo ms privilegiado.

Caractersticas Unidad de propiedad de los recursos: el proceso incluye un espacio de direcciones virtuales para mantener la imagen del proceso. Unidad de expedicin: sigue un camino de ejecucin que puede ser intercalada con la de otros procesos. Estas dos caractersticas son tratadas de manera independiente por el sistema operativo. La unidad de expedicin se conoce como hilo. La unidad de propiedad de los recursos se conoce como proceso o tarea.

Sistema operativo que mantiene varios hilos de ejecucin dentro de un mismo proceso. MS-DOS soporta un solo hilo. UNIX soporta mltiples procesos de usuarios, pero solo un hilo por proceso. Windows 2000, Solaris, Linux, Mach, y OS/2 soportan mltiples hilos.

Proceso Tiene un espacio de direcciones virtuales, que contiene la imagen del proceso. Acceso protegido a los procesadores, a otros procesos, archivos y a recursos de E/S. Hilos

Posee un estado de ejecucin (Ejecucin, Listo, etc.). El contexto del procesador se salva cuando no est Ejecutando. Tiene una pila de ejecucin. Almacenamiento esttico para las variables locales. Acceso a la memoria y a los recursos del proceso, compartidos con todos los hilos del mismo.

Se tarda menos tiempo en crear un nuevo hilo en un proceso existente. Se tarda menos tiempo en terminar un hilo que un proceso. Se tarda menos tiempo en cambiar entre dos hilos de un mismo proceso. Puesto que los hilos de un mismo proceso comparten memoria y archivos, pueden comunicarse entre s sin invocar al ncleo.

Concurrencia: exclusin mutua y sincronizacin Los temas fundamentales del diseo de sistemas operativos estn relacionados con la gestin de procesos e hilos: Multiprogramacin: consiste en la gestin de varios procesos dentro de un sistema mono-procesador. Multiprocesamiento: consiste en la gestin de varios procesos, dentro de un sistema multiprocesador. Procesamiento distribuido: consiste en la gestin de varios procesos, ejecutndose en sistemas de computadores mltiples y distribuidos. La reciente proliferacin de las agrupaciones es el principal ejemplo de este tipo

Mltiples aplicaciones: la multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varias aplicaciones activas. Aplicaciones estructuradas: como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos o hilos.

En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo aparentando una ejecucin simultnea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecucin intercalada produce beneficios en la eficiencia del procesamiento y en la estructuracin de los programas.

Supngase que se usan primitivas receive bloqueantes y send no bloqueantes. Un conjunto de procesos concurrentes comparten un buzn, exmut, que puede ser usado por todos los procesos para enviar y recibir. El buzn contiene inicialmente un nico mensaje, de contenido nulo. Un proceso que desea entrar en su seccin crtica intenta primero recibir el mensaje. Si el buzn est vaco, el proceso se bloquea. Una vez que un proceso ha conseguido el mensaje, ejecuta su seccin crtica y, despus, devuelve el mensaje al buzn.

Un semforo es una variable especial (o tipo abstracto de datos) que constituye el mtodo clsico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del cdigo fuente) en un entorno de multiprocesamiento (en el que se ejecutarn varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra y se usaron por primera vez en el sistema operativo THEOS.

Es un tipo de procedimientos, variables y estructuras de datos que se agrupan en un tipo de modulo especial. Tienen una propiedad importante: solo un proceso puede estar activo en un monitor en un instante de tiempo. Los monitores proveen un nuevo tipo de variables de condicin con dos operaciones que operan sobre el (solo se usan dentro del procedimiento de el monitor). Wait -> wait(a) : produce que el proceso que ejecuta la instruccin sea interrumpido y removido de la cola de ready hasta que otro proceso lo habilite ejecutando la instruccin signal( )con la misma variable de condicin. Signal -> signal(a) : Habilita la ejecucin de algn proceso en espera por la ejecucin de la instruccin wait con la misma variable de condicin.

El paso de mensajes es una tcnica empleada en programacin concurrente para aportar sincronizacin entre procesos y permitir la exclusin mutua, de manera similar a como se hace con los semforos, monitores, etc. Su principal caracterstica es que no precisa de memoria compartida, por lo que es muy importante en la programacin de sistemas distribuidos.

Si un conjunto de procesos esta en estado de espera por recursos y nunca cambia de estado porque los recursos por los que espera estn siendo utilizados por otros procesos en estado de espera tenemos un DEADLOCK. Los recursos son la memoria, dispositivos de E/S, semforos, archivos, etc. La forma en que un proceso hace uso de un recurso es: Solicitud: si el recurso esta disponible se le otorga, si no el proceso pasa a estado de espera. Uso: El proceso utiliza el recurso Liberacin: el proceso debe liberar el recurso.

Condiciones Necesarias para que se produzca DEADLOCK

Si se presentan simultneamente las cuatro siguientes condiciones el sistema esta en DEADLOCK. EXCLUSION MUTUA: Por lo menos un proceso que tenga otorgado un recurso en forma exclusiva. USO Y ESPERA: Debe existir al menos un proceso que este haciendo uso de un recurso y que este esperando por otros recursos asignados a otros procesos. NO INTERRUPCION: Los recursos no pueden ser retirados al proceso. Si un proceso hace uso de un recurso no le podr ser retirado hasta que voluntariamente el proceso lo libere. ESPERA CIRCULAR: Debe existir un conjunto de procesos {P1.....Pn} tal que P1 espera por un recurso utilizado por P2,......,Pn espera por un recurso utilizado por P1.

También podría gustarte