Datos personales

INTEGRANTES DEL EQIPO

Cruz Angulo Juan Carlos.
Diaz Astorga Jessica.
Godinez Hernandez Diana Karen.
Mercado Pichardo Cristina,

miércoles, 30 de noviembre de 2011

Unidad 3


DESCRIPCIÓN Y CONTROL DE PROCESOS

Proceso
Un proceso es un programa en ejecución la ejecución de un proceso debe proceder de manera secuencial.

Estados de los procesos
A medida que un proceso s ejecuta cambia de estado.
El estado de un proceso esta definido en parte por la actividad actual  del proceso, el cual puede encontrarse en los siguientes estados.
1.- Nuevo: el proceso se esta creando
2.- En ejecución: se están ejecutando instrucciones
3.- Listo: Proceso que esta preparado para ejecutarse en cuanto se pueda
4.- Bloqueado: Proceso que no se puede ejecutar hasta que se produzca cierto suceso como la terminación de e/s.
5.- Terminado: Proceso que ha sido  excluido por el sistema del grupo e procesos ejecutables, bien porque se detuvo o fue abandonado.

Control de Procesos
Los requisitos que debe satisfacer un sistema operativo están expresados haciendo referencia a los procesos.
·         El S.O. debe asignar los recursos a los procesos conforme a una política específica, por ejemplo en ciertas funciones o aplicaciones que son de mayor prioridad.
·         El S.O. dará soporte a la comunicación entre procesos por parte del usuario, labores que pueden ayudar en la estructuración de las aplicaciones.

Modos de ejecución
Se asocian con el sistema operativo y los programas del usuario, la mayoría de los procesadores soportan al menos dos modos de ejecución. Se usan dos modos porque es necesario proteger al sistema y a las tablas importantes del mismo como los bloques de control de procesos de las injerencias de los programas
·         
      Modo sistema (o modo privilegiado)
El cual tiene ciertas instrucciones que solo se ejecutan de esta forma
·         
      Modo Usuario
Los programas de usuario se ejecutan normalmente de este modo

      Hilos
Es una pequeña unidad de procesamiento que rescata a un proceso antes ejecutado, guarda la llamada a dicho proceso para ser ejecutado más rápidamente en caso de ser requerido, característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente).
Los hilos comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc.
Un hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.

Principios generales de la Concurrencia
Comprende multiples cuestiones en cuanto al diseño de un sistema operativo, como son la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos.  Dichas cuestiones no solo surgen en entornos de multiprocesadores, sino en sistemas multiprogramados con un solo procesador; los procesos se intercalan en el tiempo aparentando una ejecución simultánea lo que produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas a lo cual le podemos llamar concurrencia.
Los problemas surgen a consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de otros procesos.


Concurrencia
Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre si
La concurrencia puede presentarse en tres contextos diferentes:
 Múltiples aplicaciones: multiprogramación.
 Aplicaciones estructuradas: algunas aplicaciones pueden implementarse como un conjunto de procesos concurrentes.
 Estructura del sistema operativo

Exclusión Mutua
consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.

Sección critica.
Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualización de una mas variables compartidas. Para que una solución al problema de la exclusión mutua sea válida, se tienen que cumplir una serie de condiciones:
  • Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en nungún momento dos procesos dentro de sus respectivas secciones criticas.
  • No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.
  • Ningún proceso que esté fuera de sus sección critica debe interrumpir a otros para el acceso a la sección critica.
  • Cuanto mas de un proceso desee entrar en su sección critica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final.
  • Para solucionar el problema de la exclusión mutua vamos a tener tres tipos de soluciones:
    • Software
    • Hardware
    • Aportadas por el S.O

Sincronización
·         Entre subrutinas de la misma tarea
En este caso una subrutina llamada asicrónicamente (como respuesta a una señal) deberá coordinar el acceso con el resto del programa. (Por ejemplo, el acceso a una variable global. Ejemplos: práctico.).
·         Entre tareas del mismo proceso
Las tareas del mismo proceso son ejecutadas en un orden no definido por el SO y pueden ser interrumpidas en cualquier momento.
·         Entre procesos diferentes
Diferentes procesos cooperativos deberán sincronizarse para acceder a recursos, como por ejemplo, un archivo de configuración R/W.

Cuando no es necesario sincronizar:
Cuando no hay recursos compartidos.
Cuando sabemos el orden en el cual nuestro código se ejecutará.
Cuando el acceso al recurso compartido es en sí atómico.



Semáforos
Ayudan a solucionar problemas de procesos concurrentes, se diseño un S.O. como un conjunto de procesos secuenciales, eficiente y fiable para dar soporte a la cooperación. Los procesos de usuario podrían utilizar estos mecanismos si el procesador y el S.O. los hacían disponible.
Múltiples procesos pueden cooperar por medio de simples señales, de manera que se pueda obligar a un proceso a detener en una posición determinada hasta que reciba una señal específica. Para la señalización se usan variables especiales llamadas semáforos "S", los procesos ejecutan las primitivas wait para un proceso suspendido y signal para un para ejecutar .

Monitores del Sistema Operativo
Los monitores son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a las de los semáforos pero son más fáciles de controlar.
 es un modulo de software que consta de uno o más procedimientos, una secuencia de inicio y uno datos locales. Sus características son las siguientes:
  1. Solo los procedimientos del monitor acceden a variables de datos locales.
  2. Un proceso entra en el monitor invocando a uno de sus procedimientos.
  3. En el monitor solo un proceso puede ser ejecutado en un momento dado; cualquier otro proceso quedara suspendido esperando la disponibilidad del monitor.
El monitor proporciona variables de condición que son accesibles solo desde dentro del monitor.
Hay dos funciones para operar variables de condición:
  1. cwait (c): suspende la ejecución del proceso que llama bajo la condición "c". El monitor está ahora disponible para otro proceso.
  2. csignal (c): retorna la ejecución de un proceso suspendido después de un cwait, bajo la misma condición. Si hay varios procesos elige uno de ellos.

 Pasos de mensajes de los Sistemas Operativos
El paso de mensajes es un método que permite que se realice ambas funciones. Este método tiene la ventaja de que es de fácil implementación en sistemas distribuidos y también es sistemas de multiprocesador y monoprocesador de memoria compartida.
La funcionalidad real del paso de mensajes, generalmente, se da por medio de un par de primitivas:
·         send(destino, mensaje)
·         receive(origen, mensaje)
Este es el conjunto mínimo de operaciones necesarias para que los procesos puedan dedicarse al paso de mensajes.

Interbloqueo
Es el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general.
Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos.

Condiciones para producir interbloqueo
 En la política del sistema operativo, deben darse tres condiciones para que pueda producirse un interbloqueo:
1-     Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible.
2-     Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.
3-     Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un  proceso. El proceso que los posee debe liberarlos en forma explicita.