CAPÍTULO II: PROCESOS Realizado por:    Ing. Samanta Cueva Docentes:  Ing. Carlos Córdova Ing. Alexander López Ing. Julia ...
CAPÍTULO II: PROCESOS 2.1 Procesos 2.2 Planificación de Procesos 2.3 Sincronización de Procesos 2.4 Interbloqueos
2.1 Procesos Un programa en ejecución ·         Una actividad asíncrona ·         El "espíritu animado" de un pr...
Proceso <ul><li>Un proceso es una abstracción de un programa en ejecución y es la unidad de trabajo del sistema . </li></u...
DIVISIÓN IMPLÍCITA DE TAREAS División Implícita de Tareas:  Significa que los procesos son definidos por el sistema y se a...
DIVISIÓN EXPLÍCITA DE TAREAS <ul><li>División Explícita de Tareas:  Significa que las tareas y algunos de sus atributos so...
ESTADOS DE UN PROCESO Los estados por los que transita un proceso son cuatro, aunque algunos autores consideran solo tres:...
ESTADOS DE UN PROCESO 1.-Inactivo El estado inactivo no es considerado un estado válido de proceso por algunos autores, pr...
ESTADOS DE UN PROCESO 2.-Preparado o listo El estado preparado o listo involucra ya la creación del proceso, y suele ser e...
ESTADOS DE UN PROCESO 3.-En ejecución En este estado el proceso ya posee todos los recursos, incluso el procesador. De hec...
ESTADOS DE UN PROCESO 4.-Suspendido o bloqueado: En este estado el proceso carece de procesador y además de algún otro rec...
ESTADOS DE UN PROCESO
 
TABLA DE PROCESOS <ul><li>Para manejar la información de todos los procesos, el sistema operativo maneja una tabla de proc...
TABLA DE PROCESOS
TABLA DE PROCESOS <ul><li>Información del Sistema de archivos : Esta información incluye protecciones, identificación de u...
NÚCLEO DEL S.O. <ul><li>El  “núcleo”  del Sistema Operativo controla todas las operaciones que implican procesos y represe...
NÚCLEO DEL S.O. <ul><li>Manipulación de interrupciones.  </li></ul><ul><li>Creación y destrucción de procesos.  </li></ul>...
PLANIFICACIÓN DE PROCESOS La planificación de procesos es muy importante pues, es a través de esta que se ha logrado imple...
PLANIFICACION DE PROCESOS
OBJETIVOS DE LA PLANIFICACION <ul><li>Equidad : Este objetivo consiste en compartir la CPU equitativamente, sin priviligia...
OBJETIVOS DE LA PLANIFICACION <ul><li>Minimizar el tiempo de retorno : Este tiempo corresponde al tiempo total en que se u...
CRITERIOS DE PLANIFICACIÓN <ul><li>Los criterios para comparar los algoritmos de planificación son: </li></ul><ul><li>Util...
TIPOS DE PLANIFICADORES <ul><li>Planificador a largo plazo </li></ul><ul><li>Planificador a mediano plazo </li></ul><ul><l...
PLANIFICADOR A LARGO PLAZO <ul><li>Planificador de trabajos: </li></ul><ul><li>Selección de trabajos a cargar en memoria p...
PLANIFICADOR A  MEDIANO  PLAZO <ul><li>Traslado de un proceso en memoria principal a disco (intercambio o </li></ul><ul><l...
PLANIFICADOR A  CORTO  PLAZO <ul><li>Planificador de la CPU </li></ul><ul><li>Selección del proceso listo que será ejecuta...
PLANIFICADOR A  CORTO  PLAZO Cola de listos CPU Cola de lotes Cola de suspendidos Cola de retirados Terminación Lote de tr...
LOS ALGORITMOS DE PLANIFICACIÓN Las políticas de planificación, en general, persiguen varios objetivos, entre los que dest...
LOS ALGORITMOS DE PLANIFICACIÓN <ul><li>Los algoritmos de planificación más conocidos: </li></ul><ul><li>ALGORITMOS MONOPR...
FIFO <ul><li>Los procesos pasan a CPU en orden de llegada a cola de procesos listos. </li></ul><ul><li>Si el proceso en ej...
FIFO
ALGORITMO SJF <ul><li>Asociar a cada proceso el tiempo de ráfaga de CPU. </li></ul><ul><li>Seleccionar el proceso con meno...
BASADO EN PRIORIDADES <ul><li>Asociar a cada proceso una prioridad (número entero). </li></ul><ul><li>Asignar la CPU al pr...
BASADO EN PRIORIDADES
ROUND ROBIN <ul><li>Especialmente diseñado para sistemas de tiempo compartido. </li></ul><ul><li>Cola circular de procesos...
ROUND ROBIN
ROUND ROBIN
ROUND ROBIN <ul><li>El rendimiento del algoritmo depende de  q : </li></ul><ul><li>q  grande  FIFO. </li></ul><ul><li>q  p...
COLAS MULTINIVEL <ul><li>Colas multinivel sin realimentación: </li></ul><ul><li>Varias colas para los procesos listos. </l...
COLAS MULTINIVEL
COLAS MULTINIVEL <ul><li>Colas multinivel con realimentación: </li></ul><ul><li>Varias colas para los procesos listos. </l...
COLAS MULTINIVEL Colas multinivel con realimentación:
PLANIFICACIÓN DE PROCESADORES MÚLTIPLES <ul><li>Algoritmo de planificación complejo. </li></ul><ul><li>Sistema heterogéneo...
OPERACIONES CON  PROCESOS   Recordemos:  ¡Un proceso es un programa en ejecución! Por lo que: Es necesario que el Sistema ...
CREACIÓN DE  PROCESOS   La creación de procesos se la realiza a travéz de: fork:  En el momento de la llamada a fork el pr...
CREACIÓN DE  PROCESOS   La creación de procesos se la realiza a travéz de: fork:  En el momento de la llamada a fork el pr...
ELIMINACIÓN DE  PROCESOS   <ul><li>En cualquier sistema inform á tico, debe existir alguna forma de que un proceso pueda i...
RELACIONES ENTRE  PROCESOS   <ul><li>Todos los procesos concurrentes compiten por la asignación de recursos del sistema qu...
HILOS   Un ‘Hilo’ es una unidad básica de utilización de la CPU y tiene poco estado compartido. Un grupo de hilos semejant...
Próxima SlideShare
Cargando en…5
×

Prueba

2.352 visualizaciones

Publicado el

Publicado en: Empresariales, Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
2.352
En SlideShare
0
De insertados
0
Número de insertados
19
Acciones
Compartido
0
Descargas
57
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Prueba

  1. 1. CAPÍTULO II: PROCESOS Realizado por: Ing. Samanta Cueva Docentes: Ing. Carlos Córdova Ing. Alexander López Ing. Julia Pineda Abril-Agosto 2008
  2. 2. CAPÍTULO II: PROCESOS 2.1 Procesos 2.2 Planificación de Procesos 2.3 Sincronización de Procesos 2.4 Interbloqueos
  3. 3. 2.1 Procesos Un programa en ejecución ·        Una actividad asíncrona ·        El &quot;espíritu animado&quot; de un procedimiento ·        El &quot;centro de control&quot; de un procedimiento en ejecución ·      Lo que se manifiesta por la existencia de un &quot;bloque de control del proceso&quot; en el sistema operativo ·        La entidad a la que se asignan los procesadores ·        La unidad &quot;despachable&quot;
  4. 4. Proceso <ul><li>Un proceso es una abstracción de un programa en ejecución y es la unidad de trabajo del sistema . </li></ul><ul><li>Aunque se han dado muchas otras definiciones, no hay una definición universalmente aceptada, pero el concepto de &quot;Programa en ejecución&quot; parece ser el que se utiliza con mas frecuencia. Un programa es una entidad inanimada; sólo cuando un procesador le &quot;infunde vida&quot; se convierte en la entidad &quot;activa&quot; que se denomina proceso. </li></ul>
  5. 5. DIVISIÓN IMPLÍCITA DE TAREAS División Implícita de Tareas: Significa que los procesos son definidos por el sistema y se aplica en sistemas operativos multitarea de tal manera que permita explotar los beneficios de la concurrencia entre aplicaciones.
  6. 6. DIVISIÓN EXPLÍCITA DE TAREAS <ul><li>División Explícita de Tareas: Significa que las tareas y algunos de sus atributos son definidos por el programador y permiten elevar el rendimiento y controlar explícitamente las actividades del sistema a explotar la concurrencia incluida dentro de una aplicación o programa. </li></ul><ul><li>Ventajas de aplicar división explícita: </li></ul><ul><li>Ganancia de velocidad. </li></ul><ul><li>Uso de dispositivos de E/S que tienen latencia. </li></ul><ul><li>Conveniencia del usuario, </li></ul><ul><li>Multiprocesamiento. </li></ul><ul><li>Computación Distribuida. </li></ul>
  7. 7. ESTADOS DE UN PROCESO Los estados por los que transita un proceso son cuatro, aunque algunos autores consideran solo tres: 1.-Inactivo 2.-Preparado o listo 3.-En ejecución 4.-Suspendido o bloqueado
  8. 8. ESTADOS DE UN PROCESO 1.-Inactivo El estado inactivo no es considerado un estado válido de proceso por algunos autores, principalmente porque implica la inexistencia del proceso. Efectivamente, llamamos proceso inactivo a aquel que no ha sido creado y por lo tanto no existen estructuras de control asociadas a él.
  9. 9. ESTADOS DE UN PROCESO 2.-Preparado o listo El estado preparado o listo involucra ya la creación del proceso, y suele ser el primer estado a adoptar por él. En este estado el Sistema Operativo ya reconoce al proceso como tal, pues existen una serie de estructuras con datos relevantes del proceso que el Sistema Operativo constantemente monitorea. La característica principal del estado listo es que el proceso posee todos los recursos para su ejecución menos la CPU . Esta preparado para ejecutarse, pero no se está ejecutando. Cuando la CPU sea liberada, todos los procesos en estado listo competirán por ella. Quien gana la competencia será dictado por los criterios en los que los programadores del sistema se basaron para cumplir sus objetivos, implementados a través de los Algoritmos de Planificación.
  10. 10. ESTADOS DE UN PROCESO 3.-En ejecución En este estado el proceso ya posee todos los recursos, incluso el procesador. De hecho, un proceso en ejecución está &quot;pasando&quot; por la CPU, y aquí es cuando el proceso puede realizar todas las operaciones que implementa.
  11. 11. ESTADOS DE UN PROCESO 4.-Suspendido o bloqueado: En este estado el proceso carece de procesador y además de algún otro recurso , por lo que no solo no está siendo ejecutado, sino tampoco compite por ser ejecutado. Normalmente un proceso es bloqueado cuando, para proseguir, necesita de algún dato enviado por un canal E/S, como teclado. Debido a que el tiempo que se toma el usuario para teclear es impredecible y extraordinariamente largo, si hablamos en términos de procesamiento computacional, el Sistema Operativo prefiere bloquear el proceso y planificar otro, hasta que la entrada del dato despierta al proceso y éste continua su ciclo normal.
  12. 12. ESTADOS DE UN PROCESO
  13. 14. TABLA DE PROCESOS <ul><li>Para manejar la información de todos los procesos, el sistema operativo maneja una tabla de procesos, la que contiene una entrada por la información de cada proceso. A cada una de estas entradas a la tabla de procesos se le conoce con el nombre de PCB (Process Control Block). Por lo general esta estructura posee diversa información asociada al proceso que incluye: </li></ul><ul><li>Estado del proceso : El estado puede ser en ejecución, listo o bloqueado. </li></ul><ul><li>Contador de programas : Contiene la dirección de la siguiente instrucción a ejecutar por el proceso. </li></ul><ul><li>Información de planificación : Esta información incluye prioridad del proceso, apuntadores a colas de planificación, etc. </li></ul>
  14. 15. TABLA DE PROCESOS
  15. 16. TABLA DE PROCESOS <ul><li>Información del Sistema de archivos : Esta información incluye protecciones, identificación de usuario, grupo, etc. </li></ul><ul><li>Información del estado de E/S : Esta información incluye, solicitudes pendientes de E/S, dispositivos de E/S asignados al proceso,etc. </li></ul><ul><li>El Sistema Operativo forma colas de BCP de procesos, de acuerdo a su condición, gestionando normalmente una cola de procesos (BCP's de procesos) preparados, cola de procesos suspendidos y, en sistemas operativos multiprocesadores, colas de procesos en ejecución. </li></ul>
  16. 17. NÚCLEO DEL S.O. <ul><li>El “núcleo” del Sistema Operativo controla todas las operaciones que implican procesos y representa solo una pequeña porción del código de todo el Sistema Operativo pero es de amplio uso. </li></ul><ul><li>Generalmente permanece en el almacenamiento primario. </li></ul><ul><li>Las interrupciones se incluye en el núcleo por la rapidez en la que se deben efectuar. </li></ul><ul><li>El núcleo inhabilita las interrupciones mientras responde a una interrupción. Las interrupciones son habilitadas de nuevo después de completar el proceso de una interrupción. </li></ul><ul><li>El núcleo del Sistema Operativo generalmente realiza las siguientes funciones:   </li></ul>
  17. 18. NÚCLEO DEL S.O. <ul><li>Manipulación de interrupciones. </li></ul><ul><li>Creación y destrucción de procesos. </li></ul><ul><li>Cambio de estados de procesos. </li></ul><ul><li>Despacho. </li></ul><ul><li>Suspensión y reanudación de procesos. </li></ul><ul><li>Sincronización de procesos. </li></ul><ul><li>Comunicación entre procesos. </li></ul><ul><li>Manipulación de bloques de control de proceso. </li></ul><ul><li>Soporte de las actividades de Entrada / Salida. </li></ul><ul><li>Soporte de la asignación y desasignación de almacenamiento. </li></ul><ul><li>Soporte del sistema de archivos. </li></ul><ul><li>Soporte de un mecanismo de llamada / regreso al procedimiento. </li></ul><ul><li>Soporte de ciertas funciones contables (estadísticas) del sistema. </li></ul>
  18. 19. PLANIFICACIÓN DE PROCESOS La planificación de procesos es muy importante pues, es a través de esta que se ha logrado implementar el concepto de multiprogramación. La Planificación hace referencia a un conjunto políticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que deben ser ejecutados los trabajos que deben cumplimentarse por el sistema operativo. El Objetivo de la planificación es optimizar el rendimiento del sistema. Los Planificadores son módulos de software encargados de determinar el orden en que los procesos serán ejecutados. El sistema operativo utiliza para la planificación de procesos Colas de Planificación . Para explicar como el sistema operativo opera con colas, recordemos que los estados de los procesos :
  19. 20. PLANIFICACION DE PROCESOS
  20. 21. OBJETIVOS DE LA PLANIFICACION <ul><li>Equidad : Este objetivo consiste en compartir la CPU equitativamente, sin priviligiar notoriamente algún tipo de proceso. </li></ul><ul><li>Maximizar la utilización de la CPU : Las funciones que realice el planificador de procesos tienden a mantener la CPU utilizada la mayor parte del tiempo. </li></ul><ul><li>Maximizar la productividad : La productividad es una medida del rendimiento, que se refleja con la cantidad de tareas que puede realizar la CPU en un intervalo de tiempo. </li></ul><ul><li>Minimizar el tiempo de espera : Este tiempo corresponde al tiempo en que un proceso está en la cola de procesos listos, es un tiempo de espera por asignación de CPU. </li></ul>
  21. 22. OBJETIVOS DE LA PLANIFICACION <ul><li>Minimizar el tiempo de retorno : Este tiempo corresponde al tiempo total en que se utiliza para la ejecución completa del proceso. Este tiempo se asocia en general al tiempo de ejecución de los procesos por lotes (batch). </li></ul><ul><li>Minimizar el tiempo de respuesta : Este tiempo está relacionado con los tiempos de respuesta parciales de los procesos interactivos. Puesto que estos procesos se caracterizan porque interactuan con el medio constantemente durante la ejecución completa del proceso </li></ul>
  22. 23. CRITERIOS DE PLANIFICACIÓN <ul><li>Los criterios para comparar los algoritmos de planificación son: </li></ul><ul><li>Utilización de CPU: La CPU esté tan ocupada como se pueda </li></ul><ul><li>Rendimiento: Número de procesos que se completan por unidad de tiempo. </li></ul><ul><li>Tiempo de retorno: El tiempo que tarda la ejecución de ese proceso  Suma de los periodos durante los cuales espera entrar en la memoria. </li></ul><ul><li>Tiempo de espera: Es la suma de los periodos que el proceso pasa esperando en dicha cola. </li></ul><ul><li>Tiempo de respuesta: Es el tiempo que transcurre entre la presentación de una solicitud y la producción de la primera respuesta. </li></ul>
  23. 24. TIPOS DE PLANIFICADORES <ul><li>Planificador a largo plazo </li></ul><ul><li>Planificador a mediano plazo </li></ul><ul><li>Planificador a corto plazo </li></ul>
  24. 25. PLANIFICADOR A LARGO PLAZO <ul><li>Planificador de trabajos: </li></ul><ul><li>Selección de trabajos a cargar en memoria principal. </li></ul><ul><li>Invocado muy infrecuentemente (segundos o minutos). </li></ul><ul><li>Puede ser (más) lento. </li></ul><ul><li>Controla el grado de multiprogramación en el sistema. </li></ul>
  25. 26. PLANIFICADOR A MEDIANO PLAZO <ul><li>Traslado de un proceso en memoria principal a disco (intercambio o </li></ul><ul><li>“ swapping”). Posteriormente volverá a memoria principal. </li></ul><ul><li>Reduce la contienda por el uso de la CPU. </li></ul><ul><li>En ocasiones necesario ante los requisitos de memoria principal. </li></ul>
  26. 27. PLANIFICADOR A CORTO PLAZO <ul><li>Planificador de la CPU </li></ul><ul><li>Selección del proceso listo que será ejecutado a continuación. </li></ul><ul><li>Invocado muy frecuentemente (milisegundos). </li></ul><ul><li>Debe ser rápido. </li></ul>
  27. 28. PLANIFICADOR A CORTO PLAZO Cola de listos CPU Cola de lotes Cola de suspendidos Cola de retirados Terminación Lote de trabajos Planificador a medio plazo Planificador a largo plazo Planificador a corto plazo Programas interactivos
  28. 29. LOS ALGORITMOS DE PLANIFICACIÓN Las políticas de planificación, en general, persiguen varios objetivos, entre los que destacan: - Ser justas, tratando a todas las cargas de procesos de igual modo. - Aumentar la productividad. - Aumentar la capacidad de atención de usuarios y programas concurrentes activos sin el peligro de saturación. - Ser predecibles. - Imponer una mínima carga extra al sistema. - Evitar tanto la saturación como la ociosidad de los recursos. - Proveer seguridad y evitar problemas clásicos como el del &quot;aplazamiento indefinido&quot;.
  29. 30. LOS ALGORITMOS DE PLANIFICACIÓN <ul><li>Los algoritmos de planificación más conocidos: </li></ul><ul><li>ALGORITMOS MONOPROCESADOR: </li></ul><ul><li>Algoritmo de planificación FIFO </li></ul><ul><li>Algoritmo de planificación SJF, primero el trabajo más corto . </li></ul><ul><li>Algoritmo de Planificación Basado en Prioridades </li></ul><ul><li>Algoritmo de Planificación por turno rotario (RR). </li></ul><ul><li>Algoritmo de Planificación MLQ, de múltiples colas multinivel </li></ul>
  30. 31. FIFO <ul><li>Los procesos pasan a CPU en orden de llegada a cola de procesos listos. </li></ul><ul><li>Si el proceso en ejecución necesita E/S, se inserta al final de la cola de procesos listos al regresar a ésta. </li></ul><ul><li>Algoritmo no expulsivo. </li></ul><ul><li>Fácil implementación con cola FIFO. </li></ul><ul><li>Poco eficiente. </li></ul><ul><li>Sufre la Anomalía de Belady </li></ul>
  31. 32. FIFO
  32. 33. ALGORITMO SJF <ul><li>Asociar a cada proceso el tiempo de ráfaga de CPU. </li></ul><ul><li>Seleccionar el proceso con menor ráfaga de CPU. </li></ul><ul><li>En caso de empate, aplicar F I F O . </li></ul><ul><li>Algoritmo no expulsivo. </li></ul>
  33. 34. BASADO EN PRIORIDADES <ul><li>Asociar a cada proceso una prioridad (número entero). </li></ul><ul><li>Asignar la CPU al proceso más prioritario. </li></ul><ul><li>En caso de empate, aplicar F IFO . </li></ul><ul><li>Asumiremos mayor prioridad con menor número entero. </li></ul><ul><li>Algoritmo expulsivo o no expulsivo. </li></ul>
  34. 35. BASADO EN PRIORIDADES
  35. 36. ROUND ROBIN <ul><li>Especialmente diseñado para sistemas de tiempo compartido. </li></ul><ul><li>Cola circular de procesos listos. </li></ul><ul><li>Asociar a cada proceso un tiempo de posesión de CPU ( cuantum q ). </li></ul><ul><li>Tras el cuantum q el proceso en ejecución se expulsa de la CPU y se pasa </li></ul><ul><li>al final de la cola de procesos listos. </li></ul><ul><li>Algoritmo expulsivo cada cuantum q de tiempo. </li></ul>
  36. 37. ROUND ROBIN
  37. 38. ROUND ROBIN
  38. 39. ROUND ROBIN <ul><li>El rendimiento del algoritmo depende de q : </li></ul><ul><li>q grande FIFO. </li></ul><ul><li>q pequeño Muchos cambios de contexto y sobrecarga en la gestión de interrupciones de reloj. </li></ul><ul><li>q debe ser grande respecto al tiempo de realizar un cambio de contexto. </li></ul><ul><li>Generalmente, tiempo de retorno mayor que con SRTF pero mejor tiempo de respuesta. </li></ul>
  39. 40. COLAS MULTINIVEL <ul><li>Colas multinivel sin realimentación: </li></ul><ul><li>Varias colas para los procesos listos. </li></ul><ul><li>Cada cola tiene su propio algoritmo de planificación. </li></ul><ul><li> Sistema de colas definido por: </li></ul><ul><li>* Número de colas. </li></ul><ul><li>* Algoritmo de planificación de cada cola. </li></ul><ul><li>* Planificación entre colas. </li></ul><ul><li>- Prioridad a cada cola. </li></ul><ul><li>- Cuantum de CPU a cada cola, que se </li></ul><ul><li>reparte entre los procesos de cada cola </li></ul>
  40. 41. COLAS MULTINIVEL
  41. 42. COLAS MULTINIVEL <ul><li>Colas multinivel con realimentación: </li></ul><ul><li>Varias colas para los procesos listos. </li></ul><ul><li>Un proceso se mueve de una cola a otra. </li></ul><ul><li>Sistema de colas definido por: </li></ul><ul><li>* Número de colas. </li></ul><ul><li>* Algoritmo de planificación de cada cola. </li></ul><ul><li>* Cola en la que entrará un proceso al llegar a preparado. </li></ul><ul><li>* Planificación entre colas. </li></ul><ul><li>* Método para determinar la realimentación: </li></ul><ul><li>- Cuándo promover un proceso a una cola de mayor prioridad. </li></ul><ul><li>- Cuándo degradar un proceso a una cola de </li></ul><ul><li> menor prior i dad. </li></ul>
  42. 43. COLAS MULTINIVEL Colas multinivel con realimentación:
  43. 44. PLANIFICACIÓN DE PROCESADORES MÚLTIPLES <ul><li>Algoritmo de planificación complejo. </li></ul><ul><li>Sistema heterogéneo: </li></ul><ul><li>- Cada procesador tiene su cola y algoritmo de planificación. </li></ul><ul><li>- Los procesos han de ejecutarse en un procesador determinado. </li></ul><ul><li>Sistema homogéneo: </li></ul><ul><li>- Cola común de procesos listos. </li></ul>
  44. 45. OPERACIONES CON PROCESOS Recordemos: ¡Un proceso es un programa en ejecución! Por lo que: Es necesario que el Sistema Operativo tenga mecanismos para crear o eliminar dichos procesos.
  45. 46. CREACIÓN DE PROCESOS La creación de procesos se la realiza a travéz de: fork: En el momento de la llamada a fork el proceso hijo: • Es una copia exacta del padre excepto el PID. • Tiene las mismas variables y ficheros abiertos. • Las variables son independientes (padre e hijo tienen distintas pilas). • Los ficheros son compartidos (heredan el descriptor).
  46. 47. CREACIÓN DE PROCESOS La creación de procesos se la realiza a travéz de: fork: En el momento de la llamada a fork el proceso hijo: • Es una copia exacta del padre excepto el PID. • Tiene las mismas variables y ficheros abiertos. • Las variables son independientes (padre e hijo tienen distintas pilas). • Los ficheros son compartidos (heredan el descriptor).
  47. 48. ELIMINACIÓN DE PROCESOS <ul><li>En cualquier sistema inform á tico, debe existir alguna forma de que un proceso pueda indicar que ha terminado. </li></ul><ul><li>Razones para la terminación de un proceso : </li></ul><ul><li>Normal </li></ul><ul><li>Por tiempo excedido </li></ul><ul><li>Violación de limites. </li></ul><ul><li>No memoria disponible. </li></ul><ul><li>Error de protección </li></ul>
  48. 49. RELACIONES ENTRE PROCESOS <ul><li>Todos los procesos concurrentes compiten por la asignación de recursos del sistema que le permitan realizar las operaciones respectivas; además durante la división explícita el programador divide una aplicación lógica en varios procesos con atributos propios surgiendo la necesidad de que estos cooperen entre sí, surgiendo las relaciones de: </li></ul><ul><li>Competición: Los procesos trabajan solos sin afectar mayormente a los demás, realizando asignación cuidadosa de recursos. </li></ul><ul><li>Cooperación: Afectan a los demás procesos a través del intercambio de datos y señales de sincronización. </li></ul>
  49. 50. HILOS Un ‘Hilo’ es una unidad básica de utilización de la CPU y tiene poco estado compartido. Un grupo de hilos semejantes comparten código, espacio de direcciones y recursos del SO. El entorno e n e l cual se ejecuta un hilo se llama ‘Tarea’ . Un proceso tradicional equivale a una tarea con un solo hilo. Una tarea no hace nada si no tiene hilos. Un hilo posee un registro de estados y generalmente su propia pila.

×