2.- Administracion De Procesos y Del Procesador
3 participantes
Página 1 de 1.
2.- Administracion De Procesos y Del Procesador
Haciendo uso de libros, foros,
wikis, blogs, webquest,
artículos científicos, o algunas
otras TICs, el estudiante debe
investigar al menos dos de los
siguientes temas:
/// 1) Introducción a la
Administración de Procesos y
del procesador,
/// 2) Concepto de procesos y
procesadores,
/// 3) Estados y transiciones
de los procesos,
/// 4) Procesos ligeros (hilos o
hebras),
/// 5) Concurrencia y
secuenciabilidad,
/// 6) Niveles y objetivos y
criterios de planificación,
/// 7) Técnicas de
administración del planificador,
/// Diferencias entre los
conceptos de algoritmo vs.
programa vs. proceso vs. tarea
vs. job vs.sesión vs. lote (debe
valorar la utilidad de cada uno
de ellos),
/// 9) El concepto de
interbloqueo (deadlock, y
analizar su detección,
prevención y recuperación),
/// 10) Conceptos que tienen
que ver con el análisis y
planificación y diseño de
rutinas para mejorar la
capacidad de procesamiento
de los programas de los
usuarios,
/// 11) Indagar acerca de los
algoritmos que permiten el
aprovechamiento de las
capacidades del procesador
como recurso fundamental que
requiere ser administrado por
el sistema operativo,
/// 12) Analizar mediante
ejemplos de la vida real el
concepto de proceso, programa
y procesador y trasladarlo al
contexto de las computadoras
/// y
/// 13) Representar mediante
un diagrama, las transiciones
de estado de los procesos para
reconocer las características
que los distinguen.
///
Procure analizar la información
de distintas fuentes
(incluyendo un segundo idioma,
así como terminología
científico-tecnológica) para
seleccionar la más conveniente
y que se adecúe al área de
informática. Elabore un
resumen o análisis o síntesis o
reflexión o tabla comparativa o
cuadro sinóptico (estilo
inducción-deducción) o mapa
conceptual o mapa mental o
diagrama, que permitan
promover el pensamiento crítico
o posición critica del
estudiante, lo cual debe
compartir en el Foro.
////////
NOTA: Procure participar con
reactivos que aún no hayan
sido contestados, ya que
solamente se considerarán las
primeras tres participaciones.
///
ATTE:
M.C. Edgar Rangel Lugo.
wikis, blogs, webquest,
artículos científicos, o algunas
otras TICs, el estudiante debe
investigar al menos dos de los
siguientes temas:
/// 1) Introducción a la
Administración de Procesos y
del procesador,
/// 2) Concepto de procesos y
procesadores,
/// 3) Estados y transiciones
de los procesos,
/// 4) Procesos ligeros (hilos o
hebras),
/// 5) Concurrencia y
secuenciabilidad,
/// 6) Niveles y objetivos y
criterios de planificación,
/// 7) Técnicas de
administración del planificador,
/// Diferencias entre los
conceptos de algoritmo vs.
programa vs. proceso vs. tarea
vs. job vs.sesión vs. lote (debe
valorar la utilidad de cada uno
de ellos),
/// 9) El concepto de
interbloqueo (deadlock, y
analizar su detección,
prevención y recuperación),
/// 10) Conceptos que tienen
que ver con el análisis y
planificación y diseño de
rutinas para mejorar la
capacidad de procesamiento
de los programas de los
usuarios,
/// 11) Indagar acerca de los
algoritmos que permiten el
aprovechamiento de las
capacidades del procesador
como recurso fundamental que
requiere ser administrado por
el sistema operativo,
/// 12) Analizar mediante
ejemplos de la vida real el
concepto de proceso, programa
y procesador y trasladarlo al
contexto de las computadoras
/// y
/// 13) Representar mediante
un diagrama, las transiciones
de estado de los procesos para
reconocer las características
que los distinguen.
///
Procure analizar la información
de distintas fuentes
(incluyendo un segundo idioma,
así como terminología
científico-tecnológica) para
seleccionar la más conveniente
y que se adecúe al área de
informática. Elabore un
resumen o análisis o síntesis o
reflexión o tabla comparativa o
cuadro sinóptico (estilo
inducción-deducción) o mapa
conceptual o mapa mental o
diagrama, que permitan
promover el pensamiento crítico
o posición critica del
estudiante, lo cual debe
compartir en el Foro.
////////
NOTA: Procure participar con
reactivos que aún no hayan
sido contestados, ya que
solamente se considerarán las
primeras tres participaciones.
///
ATTE:
M.C. Edgar Rangel Lugo.
ACTIVIDAD GRUPAL
1) Introducción a la Administración de Procesos y del procesador
Los sistemas operativos son y serán el corazón de todos los equipos de cómputo es por ello que es indispensable conocer cuáles son las funciones que realiza el sistema operativo para poder realizar las tareas que se le encomienda, es decir los sistemas operativos manejan muchísimos procesos claro que todos estos procesos se llevan a cabo con ayuda del procesador, un proceso tiene muchas definiciones entre ellas se encuentra la siguiente: un proceso es un programa que se encuentra en ejecución durante un determinado tiempo.
En este trabajo se encuentra información muy completa de la forma en que se realizan los procesos en el procesador, entre ellos se encuentran la concurrencia entre procesos, la forma de planificación de los procesos, los tipos de interbloqueo y las técnicas de administración de procesos.
En el desarrollo del trabajo presentamos las definiciones que cada tipo de planificación utiliza, los objetivos que utilizan para ser la base de cada estructura de los procesos, otro punto importante que estaremos utilizando en este trabajo es que mostramos la forma de solucionar los problemas por cualquier tipo de bloqueo o por cualquier interrupción del sistema operativo.
Para terminar este trabajo presentamos algunas técnicas de administración en las que indicamos cual es la forma en que se deben de implementar para realizar operaciones con el procesador o para hacer funcionar mejor el procesador.
2) Concepto de procesos y procesadores
El concepto central de cualquier sistema operativo es el de proceso: una abstracción de un programa en ejecución también llamada tarea. No hay un acuerdo universal sobre una definición de proceso, pero si algunas definiciones aceptadas.
• Un programa que se está ejecutando.
• Una actividad asincrónica.
• El emplazamiento del control de un procedimiento que está siendo ejecutado.
• Aquello que se manifiesta por la existencia en el Sistema Operativo de un bloque de control de proceso.
• Aquella entidad a la cual son asignados los procesadores.
• La unidad despachable.
En sistemas de multiprogramación la CPU alterna de programa en programa, en un esquema de seudo paralelismo, es decir que la CPU ejecuta en cierto instante un solo programa, intercambiando muy rápidamente entre uno y otro.
El modelo de procesos posee las siguientes características:
• Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios procesos secuenciales o procesos.
• Un proceso incluye al programa en ejecución y a los valores activos del contador, registros y variables del mismo.
• Conceptualmente cada proceso tiene su propia CPU virtual.
Si la CPU alterna entre los procesos, la velocidad a la que ejecuta un proceso no será uniforme, por lo que es necesario aclarar lo siguiente:
Que los procesos no deben programarse con hipótesis implícitas acerca del tiempo. Que normalmente la mayoría de los procesos no son afectados por la multiprogramación subyacente de la CPU o las velocidades relativas de procesos distintos. Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada, salida y estado.
Un solo procesador puede ser compartido entre varios procesos con cierto “algoritmo de planificación” , el cual determina cuándo detener el trabajo en un proceso y dar servicio a otro distinto.
En cuanto a las jerarquías de procesos es necesario señalar que los Sistemas Operativos deben disponer de una forma de crear y destruir procesos cuando se requiera durante la operación, teniendo además presente que los procesos pueden generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse ejecución en paralelo.
Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:
Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos.
Los procesos en ejecución pueden bloquearse por qué:
• Desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles.
• El Sistema Operativo asignó la CPU a otro proceso.
• Los estados que puede tener un proceso son
• En ejecución: utiliza la CPU en el instante dado.
• Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso.
• Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.
3) Estados y transiciones de los procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado. Debido a ello se puede establecer una “Lista de Listos” para los procesos “listos” y una “Lista de Bloqueados” para los “bloqueados”.
La “Lista de Listos” se mantiene en orden prioritario y la “Lista de Bloqueados” está desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los eventos que están esperando. Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en la última parte de la “Lista de Listos”.
La asignación de la CPU al primer proceso de la “Lista de Listos” se denomina “Despacho”, que es ejecutado por una entidad del Sistema Operativo llamada “Despachador”. El “Bloqueo” es la única transición de estado iniciada por el propio proceso del usuario, puesto que las otras transiciones son iniciadas por entidades ajenas al proceso.
La manifestación de un proceso en un Sistema Operativo es un “Bloque de Control de Proceso” (PCB) con información que incluye:
• Estado actual del proceso.
• Identificación única del proceso.
• Prioridad del proceso.
• Apuntadores para localizar la memoria del proceso.
Los sistemas que administran los procesos deben poder crear, destruir, suspender, reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.
La “creación” de un proceso significa:
Dar nombre al proceso
Insertar un proceso en la lista del sistema de procesos conocidos.
Determinar la prioridad inicial del proceso.
Crear el bloque de control del proceso.
Asignar los recursos iníciales del proceso.
Un proceso puede “crear un nuevo proceso”, en cuyo caso el proceso creador se denomina “proceso padre” y el proceso creado “proceso hijo” y se obtiene una “estructura jerárquica de procesos”.
La “destrucción” de un proceso implica:
Borrarlo del sistema:
Devolver sus recursos al sistema.
Purgarlo de todas las listas o tablas del sistema.
Borrar su bloque de control de procesos.
La “destrucción” de un proceso puede o no significar la destrucción de los procesos hijos, según el Sistema Operativo. Generalmente se denomina “Tabla de Procesos” al conjunto de información de control sobre los distintos procesos.
4) Procesos ligeros (hilos o hebras)
Los procesos ligeros son programas en ejecución son básicamente procesos pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además puede cada hilo tener su información privada.
Dentro de la información propia tenemos:
Contador de programa
Pila
Registros.
Estado del proceso ligero.
Dentro de la información compartida tenemos:
Variables globales.
Archivos abiertos
Señales
Semáforos.
Señales
Las señales son el mecanismo de comunicación que se establece entre los procesos. Para comparar se puede decir que las señales son a los procesos lo que las interrupciones son al procesador. Cuando un proceso recibe una señal detiene su ejecución, bifurca a la rutina del tratamiento de la señal que esta en el mismo proceso y luego una vez finalizado sigue la ejecución en el punto que había bifurcado anteriormente.
5) Concurrencia y secuenciabilidad
La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, comparació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 y es fundamental para que existan diseños como Multiprogramación, Multiproceso y Proceso distribuido
Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos.
La concurrencia puede presentarse en tres contextos diferentes:
• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.
• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.
• Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultánea.
Tipos de procesos concurrentes.
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.
Procesos son cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos:
• Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos.
• Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.
Elementos a gestionar y diseñar a causa de la concurrencia. Se pueden enumerar los siguientes:
1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBC’s (Bloque de Control de Procesos)
2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo.
3. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos.
4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecución con respecto a otros procesos concurrentes.
Cuando dos o mas procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan algunas relaciones entre ellos como puede ser la cooperación para un determinado trabajo o el uso de información y recursos compartidos.
Exclusión Mutua Secciones Criticas
Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, es decir, quieren acceder a un recurso al mismo tiempo. Y la ejecución de un proceso puede influir en el comportamiento de los procesos que compiten y el sistema operativo le asignará el recurso a uno de ellos y el otro tendrá que esperar. Por lo que el proceso que quede esperando, se retrasará, se bloqueara y en el peor de los casos nunca se terminará con éxito.
El problema de la sección crítica es uno de los problemas que con mayor frecuencia aparece cuando se ejecutan procesos concurrentes.
Para entender un poco mejor el concepto se presenta el siguiente ejemplo: Se tiene un Sistema Operativo que debe asignar un identificador de proceso (PID) a dos procesos en un sistema multiprocesador. Cuando el SO realiza esta acción en dos procesadores de forma simultánea sin ningún tipo de control, se pueden producir errores, ya que se puede asignar el mismo PID a dos procesos distintos.
Solución a la sección crítica:
Para resolver el problema de la sección crítica es necesario utilizar algún mecanismo de sincronización que permita a los procesos cooperar entre ellos sin problemas. Este mecanismo debe proteger el código de la sección crítica y su funcionamiento básico es el siguiente:
• Cada proceso debe solicitar permiso para entrar en la sección crítica, mediante algún fragmento de código que se denomina de forma genérica entrada en la sección crítica.
• Cuando un proceso sale de la sección critica debe indicarlo mediante otro fragmento de código que se denomina salida de la sección crítica. Este fragmento permitirá que otros procesos entren a ejecutar el código de la sección crítica. Cualquier solución que se utilice para resolver este problema debe cumplir los requisitos siguientes:
• Exclusión mutua: Si un proceso está ejecutando código de la sección crítica, ningún otro proceso lo podrá hacer.
• Progreso: Si ningún proceso está ejecutando dentro de la sección crítica, la decisión de qué proceso entra en la sección se hará sobre los procesos que desean entrar.
Exclusión mutua
La exclusión mutua la podríamos definir como una operación de control que permite la coordinación de procesos concurrentes, y que tiene la capacidad de prohibir a los demás procesos realizar una acción cuando un proceso haya obtenido el permiso.
Hacer que se cumpla la exclusión mutua crea dos problemas de control adicionales.
• Interbloqueo. Si se tienen dos procesos P1 y P2 y dos recursos críticos, R1 y R2. Supóngase que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su función. En tal caso, es posible que se presente la siguiente situación: el sistema operativo asigna R1 a P2 y R2 a P1. Cada proceso está esperando a uno de los dos recursos.
• Inanición. Supóngase que tres procesos, P1, P2 y P3, necesitan acceder periódicamente al recurso R. Considérese la situación en la que P1 está en posesión del recurso y tanto P2 como P3 están parados, esperando al recurso. Cuando P1 abandona su sección crítica, tanto P2 como P3 deben poder acceder a R.
Requisitos para la exclusión mutua.
1. Debe cumplirse la exclusión mutua: Solo un proceso, de entre todos los que poseen secciones críticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado.
2. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los otros procesos.
3. Un proceso no debe poder solicitar acceso a una sección crítica para después ser demorado indefinidamente; no puede permitirse el interbloqueo o la inanición.
4. Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilación.
CONCLUSION:
Llegado a este punto, hemos aprendido como el sistema operativo se encuentra estructurado en una primera etapa, el desarrollo de procesos y la comprensión de los hilos de ejecución a través de los cuales, el sistema delega funciones y opera en forma multi funcional.
También estudiamos la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecución de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador.
La manera en la que opera nuestra computadora es muy compleja, una vez más comprender su funcionamiento, nos permite prever soluciones a ciertos problemas de ejecución, así como establecer prioridades al monto de asignar tareas, sobre todo para los sistemas multiusuarios.
BIBLIOGRAFIA:
Angellen Barrios, Sandra Certain (2000 febrero 2002). Procesos ligeros Hilos y hebras. Recuperado 27 de Octubre de 2008 de http://www.monografias.com/trabajos19/sistemas-operativos/sistemas operativos.shtml#admin
Angellen Barrios, Sandra Certain (2000 febrero 2002). Procesos ligeros Hilos y hebras. Recuperado 27 de Octubre de 2008 de http://www.monografias.com/trabajos19/sistemas-operativos/sistemas operativos.shtml#admin
ATENTAMENTE EL EQUIPO INTEGRADO POR :
MARIA JANETH CABRERA TERRONES
KARLA ANAHI SANTOS CASTRO
CARLA YARITZA CAMACHO BARRERA
GEOVANI DUARTE TOLEDO
RICARDO GOMÉZ ARROLLO
ANASTACIO MENDOZA JAIMEZ
EMMANUEL MARTINEZ HERNANDEZ
OSMAR MATURANA SANCHÉZ
LIZETH JAZMIN FRANCO RODRIGUEZ
Los sistemas operativos son y serán el corazón de todos los equipos de cómputo es por ello que es indispensable conocer cuáles son las funciones que realiza el sistema operativo para poder realizar las tareas que se le encomienda, es decir los sistemas operativos manejan muchísimos procesos claro que todos estos procesos se llevan a cabo con ayuda del procesador, un proceso tiene muchas definiciones entre ellas se encuentra la siguiente: un proceso es un programa que se encuentra en ejecución durante un determinado tiempo.
En este trabajo se encuentra información muy completa de la forma en que se realizan los procesos en el procesador, entre ellos se encuentran la concurrencia entre procesos, la forma de planificación de los procesos, los tipos de interbloqueo y las técnicas de administración de procesos.
En el desarrollo del trabajo presentamos las definiciones que cada tipo de planificación utiliza, los objetivos que utilizan para ser la base de cada estructura de los procesos, otro punto importante que estaremos utilizando en este trabajo es que mostramos la forma de solucionar los problemas por cualquier tipo de bloqueo o por cualquier interrupción del sistema operativo.
Para terminar este trabajo presentamos algunas técnicas de administración en las que indicamos cual es la forma en que se deben de implementar para realizar operaciones con el procesador o para hacer funcionar mejor el procesador.
2) Concepto de procesos y procesadores
El concepto central de cualquier sistema operativo es el de proceso: una abstracción de un programa en ejecución también llamada tarea. No hay un acuerdo universal sobre una definición de proceso, pero si algunas definiciones aceptadas.
• Un programa que se está ejecutando.
• Una actividad asincrónica.
• El emplazamiento del control de un procedimiento que está siendo ejecutado.
• Aquello que se manifiesta por la existencia en el Sistema Operativo de un bloque de control de proceso.
• Aquella entidad a la cual son asignados los procesadores.
• La unidad despachable.
En sistemas de multiprogramación la CPU alterna de programa en programa, en un esquema de seudo paralelismo, es decir que la CPU ejecuta en cierto instante un solo programa, intercambiando muy rápidamente entre uno y otro.
El modelo de procesos posee las siguientes características:
• Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios procesos secuenciales o procesos.
• Un proceso incluye al programa en ejecución y a los valores activos del contador, registros y variables del mismo.
• Conceptualmente cada proceso tiene su propia CPU virtual.
Si la CPU alterna entre los procesos, la velocidad a la que ejecuta un proceso no será uniforme, por lo que es necesario aclarar lo siguiente:
Que los procesos no deben programarse con hipótesis implícitas acerca del tiempo. Que normalmente la mayoría de los procesos no son afectados por la multiprogramación subyacente de la CPU o las velocidades relativas de procesos distintos. Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada, salida y estado.
Un solo procesador puede ser compartido entre varios procesos con cierto “algoritmo de planificación” , el cual determina cuándo detener el trabajo en un proceso y dar servicio a otro distinto.
En cuanto a las jerarquías de procesos es necesario señalar que los Sistemas Operativos deben disponer de una forma de crear y destruir procesos cuando se requiera durante la operación, teniendo además presente que los procesos pueden generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse ejecución en paralelo.
Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:
Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos.
Los procesos en ejecución pueden bloquearse por qué:
• Desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles.
• El Sistema Operativo asignó la CPU a otro proceso.
• Los estados que puede tener un proceso son
• En ejecución: utiliza la CPU en el instante dado.
• Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso.
• Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.
3) Estados y transiciones de los procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado. Debido a ello se puede establecer una “Lista de Listos” para los procesos “listos” y una “Lista de Bloqueados” para los “bloqueados”.
La “Lista de Listos” se mantiene en orden prioritario y la “Lista de Bloqueados” está desordenada, ya que los procesos se desbloquean en el orden en que tienen lugar los eventos que están esperando. Al admitirse un trabajo en el sistema se crea un proceso equivalente y es insertado en la última parte de la “Lista de Listos”.
La asignación de la CPU al primer proceso de la “Lista de Listos” se denomina “Despacho”, que es ejecutado por una entidad del Sistema Operativo llamada “Despachador”. El “Bloqueo” es la única transición de estado iniciada por el propio proceso del usuario, puesto que las otras transiciones son iniciadas por entidades ajenas al proceso.
La manifestación de un proceso en un Sistema Operativo es un “Bloque de Control de Proceso” (PCB) con información que incluye:
• Estado actual del proceso.
• Identificación única del proceso.
• Prioridad del proceso.
• Apuntadores para localizar la memoria del proceso.
Los sistemas que administran los procesos deben poder crear, destruir, suspender, reanudar, cambiar la prioridad, bloquear, despertar y despachar un proceso.
La “creación” de un proceso significa:
Dar nombre al proceso
Insertar un proceso en la lista del sistema de procesos conocidos.
Determinar la prioridad inicial del proceso.
Crear el bloque de control del proceso.
Asignar los recursos iníciales del proceso.
Un proceso puede “crear un nuevo proceso”, en cuyo caso el proceso creador se denomina “proceso padre” y el proceso creado “proceso hijo” y se obtiene una “estructura jerárquica de procesos”.
La “destrucción” de un proceso implica:
Borrarlo del sistema:
Devolver sus recursos al sistema.
Purgarlo de todas las listas o tablas del sistema.
Borrar su bloque de control de procesos.
La “destrucción” de un proceso puede o no significar la destrucción de los procesos hijos, según el Sistema Operativo. Generalmente se denomina “Tabla de Procesos” al conjunto de información de control sobre los distintos procesos.
4) Procesos ligeros (hilos o hebras)
Los procesos ligeros son programas en ejecución son básicamente procesos pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además puede cada hilo tener su información privada.
Dentro de la información propia tenemos:
Contador de programa
Pila
Registros.
Estado del proceso ligero.
Dentro de la información compartida tenemos:
Variables globales.
Archivos abiertos
Señales
Semáforos.
Señales
Las señales son el mecanismo de comunicación que se establece entre los procesos. Para comparar se puede decir que las señales son a los procesos lo que las interrupciones son al procesador. Cuando un proceso recibe una señal detiene su ejecución, bifurca a la rutina del tratamiento de la señal que esta en el mismo proceso y luego una vez finalizado sigue la ejecución en el punto que había bifurcado anteriormente.
5) Concurrencia y secuenciabilidad
La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, comparació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 y es fundamental para que existan diseños como Multiprogramación, Multiproceso y Proceso distribuido
Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos.
La concurrencia puede presentarse en tres contextos diferentes:
• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.
• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.
• Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultánea.
Tipos de procesos concurrentes.
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.
Procesos son cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos:
• Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos.
• Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.
Elementos a gestionar y diseñar a causa de la concurrencia. Se pueden enumerar los siguientes:
1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBC’s (Bloque de Control de Procesos)
2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo.
3. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos.
4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecución con respecto a otros procesos concurrentes.
Cuando dos o mas procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan algunas relaciones entre ellos como puede ser la cooperación para un determinado trabajo o el uso de información y recursos compartidos.
Exclusión Mutua Secciones Criticas
Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, es decir, quieren acceder a un recurso al mismo tiempo. Y la ejecución de un proceso puede influir en el comportamiento de los procesos que compiten y el sistema operativo le asignará el recurso a uno de ellos y el otro tendrá que esperar. Por lo que el proceso que quede esperando, se retrasará, se bloqueara y en el peor de los casos nunca se terminará con éxito.
El problema de la sección crítica es uno de los problemas que con mayor frecuencia aparece cuando se ejecutan procesos concurrentes.
Para entender un poco mejor el concepto se presenta el siguiente ejemplo: Se tiene un Sistema Operativo que debe asignar un identificador de proceso (PID) a dos procesos en un sistema multiprocesador. Cuando el SO realiza esta acción en dos procesadores de forma simultánea sin ningún tipo de control, se pueden producir errores, ya que se puede asignar el mismo PID a dos procesos distintos.
Solución a la sección crítica:
Para resolver el problema de la sección crítica es necesario utilizar algún mecanismo de sincronización que permita a los procesos cooperar entre ellos sin problemas. Este mecanismo debe proteger el código de la sección crítica y su funcionamiento básico es el siguiente:
• Cada proceso debe solicitar permiso para entrar en la sección crítica, mediante algún fragmento de código que se denomina de forma genérica entrada en la sección crítica.
• Cuando un proceso sale de la sección critica debe indicarlo mediante otro fragmento de código que se denomina salida de la sección crítica. Este fragmento permitirá que otros procesos entren a ejecutar el código de la sección crítica. Cualquier solución que se utilice para resolver este problema debe cumplir los requisitos siguientes:
• Exclusión mutua: Si un proceso está ejecutando código de la sección crítica, ningún otro proceso lo podrá hacer.
• Progreso: Si ningún proceso está ejecutando dentro de la sección crítica, la decisión de qué proceso entra en la sección se hará sobre los procesos que desean entrar.
Exclusión mutua
La exclusión mutua la podríamos definir como una operación de control que permite la coordinación de procesos concurrentes, y que tiene la capacidad de prohibir a los demás procesos realizar una acción cuando un proceso haya obtenido el permiso.
Hacer que se cumpla la exclusión mutua crea dos problemas de control adicionales.
• Interbloqueo. Si se tienen dos procesos P1 y P2 y dos recursos críticos, R1 y R2. Supóngase que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su función. En tal caso, es posible que se presente la siguiente situación: el sistema operativo asigna R1 a P2 y R2 a P1. Cada proceso está esperando a uno de los dos recursos.
• Inanición. Supóngase que tres procesos, P1, P2 y P3, necesitan acceder periódicamente al recurso R. Considérese la situación en la que P1 está en posesión del recurso y tanto P2 como P3 están parados, esperando al recurso. Cuando P1 abandona su sección crítica, tanto P2 como P3 deben poder acceder a R.
Requisitos para la exclusión mutua.
1. Debe cumplirse la exclusión mutua: Solo un proceso, de entre todos los que poseen secciones críticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado.
2. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los otros procesos.
3. Un proceso no debe poder solicitar acceso a una sección crítica para después ser demorado indefinidamente; no puede permitirse el interbloqueo o la inanición.
4. Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilación.
CONCLUSION:
Llegado a este punto, hemos aprendido como el sistema operativo se encuentra estructurado en una primera etapa, el desarrollo de procesos y la comprensión de los hilos de ejecución a través de los cuales, el sistema delega funciones y opera en forma multi funcional.
También estudiamos la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecución de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador.
La manera en la que opera nuestra computadora es muy compleja, una vez más comprender su funcionamiento, nos permite prever soluciones a ciertos problemas de ejecución, así como establecer prioridades al monto de asignar tareas, sobre todo para los sistemas multiusuarios.
BIBLIOGRAFIA:
Angellen Barrios, Sandra Certain (2000 febrero 2002). Procesos ligeros Hilos y hebras. Recuperado 27 de Octubre de 2008 de http://www.monografias.com/trabajos19/sistemas-operativos/sistemas operativos.shtml#admin
Angellen Barrios, Sandra Certain (2000 febrero 2002). Procesos ligeros Hilos y hebras. Recuperado 27 de Octubre de 2008 de http://www.monografias.com/trabajos19/sistemas-operativos/sistemas operativos.shtml#admin
ATENTAMENTE EL EQUIPO INTEGRADO POR :
MARIA JANETH CABRERA TERRONES
KARLA ANAHI SANTOS CASTRO
CARLA YARITZA CAMACHO BARRERA
GEOVANI DUARTE TOLEDO
RICARDO GOMÉZ ARROLLO
ANASTACIO MENDOZA JAIMEZ
EMMANUEL MARTINEZ HERNANDEZ
OSMAR MATURANA SANCHÉZ
LIZETH JAZMIN FRANCO RODRIGUEZ
Última edición por RICARDO GOMEZ ARROYO el Miér Mar 05, 2014 8:21 pm, editado 1 vez
RICARDO GOMEZ ARROYO- Mensajes : 5
Fecha de inscripción : 27/10/2012
2.3 PROCESOS LIGEROS (HILOS O HEBRAS)
Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la Figura, un proceso puede contener un solo flujo de ejecución, como ocurre en los procesos clásicos, o más de un flujo de ejecución (procesos ligeros).
Desde el punto de vista de la programación, un proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main.
Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecución, pudiéndose destacar las siguientes:
• Contador de programa.
• Pila.
• Registros.
• Estado del proceso ligero (ejecutando, listo o bloqueado).
Todos los procesos ligeros de un mismo proceso comparten la información del mismo. En concreto, comparten:
• Espacio de memoria.
• Variables globales.
• Archivos abiertos.
• Procesos hijos.
• Temporizadores.
• Señales y semáforos.
• Contabilidad.
Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el código, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista protección de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los procesos convencionales.
El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura representa de forma esquemática la estructura de un proceso de Windows NT con sus procesos ligeros.
Es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Comparte el código, los datos y los recursos con sus hebras pares.
• Una tarea (o proceso pesado) está formada ahora por una o más hebras
• Una hebra sólo puede pertenecer a una tarea
CARACTERÍSTICAS
• Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO.
• La conmutación de contexto es más rápida gracias al extenso compartir de recursos.
• No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso.
ESTADOS DE LOS PROCESOS LIGEROS
Un proceso ligero puede estar ejecutando, listo o bloqueado.
PARALELISMO
Los procesos ligeros permiten paralelizar una aplicación.
ATENTAMENTE: INTEGRANTES DEL EQUIPO 3
IRENE PINEDA BARRIOS
ISELA DE JESUS MARTINEZ CARACHURE
SAMANTA DAYANARA SALGADO ESCUDERO
GUSTAVO ANGEL ALBARRAN ARROYO
CELSO CHARCO MANUEL
Desde el punto de vista de la programación, un proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main.
Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecución, pudiéndose destacar las siguientes:
• Contador de programa.
• Pila.
• Registros.
• Estado del proceso ligero (ejecutando, listo o bloqueado).
Todos los procesos ligeros de un mismo proceso comparten la información del mismo. En concreto, comparten:
• Espacio de memoria.
• Variables globales.
• Archivos abiertos.
• Procesos hijos.
• Temporizadores.
• Señales y semáforos.
• Contabilidad.
Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el código, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista protección de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los procesos convencionales.
El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura representa de forma esquemática la estructura de un proceso de Windows NT con sus procesos ligeros.
Es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Comparte el código, los datos y los recursos con sus hebras pares.
• Una tarea (o proceso pesado) está formada ahora por una o más hebras
• Una hebra sólo puede pertenecer a una tarea
CARACTERÍSTICAS
• Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO.
• La conmutación de contexto es más rápida gracias al extenso compartir de recursos.
• No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso.
ESTADOS DE LOS PROCESOS LIGEROS
Un proceso ligero puede estar ejecutando, listo o bloqueado.
PARALELISMO
Los procesos ligeros permiten paralelizar una aplicación.
ATENTAMENTE: INTEGRANTES DEL EQUIPO 3
IRENE PINEDA BARRIOS
ISELA DE JESUS MARTINEZ CARACHURE
SAMANTA DAYANARA SALGADO ESCUDERO
GUSTAVO ANGEL ALBARRAN ARROYO
CELSO CHARCO MANUEL
Gustavo94- Invitado
REPLICA
De acuerdo a la información presentada por el compañero RICARDO GOMEZ ARROYO, nos pudimos percatar que su información es muy entendible para los compañeros. Nos habla de la introducción a la administración de procesos, conceptos de procesos, estados de transiciones o otros temas que se desglosan del mismo tema para realizar sus operaciones o sus aplicaciones ya que esta nos puede servir para realizar las tareas y conocer dichos estados.
ATENTAMENTE INTEGRANTES DEL EQUIPO 3:
RENE PINEDA BARRIOS
ISELA DE JESUS MARTINEZ CARACHURE
SAMANTA DAYANARA SALGADO ESCUDERO
GUSTAVO ANGEL ALBARRAN ARROYO
CELSO CHARCO MANUEL
Gustavo94- Invitado
Administracion De Procesos y Del Procesador (Actividad Grupal)
*Concepto de interbloqueo (deadlock, y analizar su detección, prevención recuperación)
Consiste cuando dos procesos se ejecutan de manera concurrente y en ambos desean usar el mismo recurso el cual esta siendo utilizado, entonces ambos esperan a que dicho recurso se desocupe. pero si nunca sucede, entonces quedaran intebloqueados., Es por ello, que el concepto de interbloqueo, refiere a que dos procesos quieren utilizar un mismo recurso, el cual esta siendo ocupado y ninguno lo puede utilizar en ese momento, entonces quedan bloqueados algunos procesos, esperando que el recurso sea desocupado.
Comúnmente, suele generarse interbloqueo entre dos procesos, cuando el Proceso A utiliza el Recurso R, y para poder liberarlo debe utilizar antes el recurso Q. pero el Proceso B, esta utilizando el recurso Q, y para liberarlo, necesita primero hace uso del recurso R, el cual, esta siendo ocupado por Proceso A.
Recopilado de la Lectura Básica 2. Administración de Procesos y del Procesador
M.C. Edgar Rangel Luno
México, 2014
Las técnicas para prevenir el deadlock consisten en proveer mecanismos para evitar que se presente una o varias de las cuatro condiciones necesarias del deadlock. Algunas de ellas son:
-Asignar recursos en orden lineal: Esto significa que todos los recursos están etiquetados con un valor diferente y los procesos sólo pueden hacer peticiones de recursos "hacia adelante".
-Asignar todo o nada: Este mecanismo consiste en que el proceso pida todos los recursos que va a necesitar de una vez y el sistema se los da solamente si puede dárselos todos, si no, no le da nada y lo bloquea.
-Algoritmo del banquero: Este algoritmo usa una tabla de recursos para saber cuántos recursos tiene de todo tipo, también requiere que los procesos informen del ma´ximo de recursos que va a usar de cada tipo. Cuado un proceso pide un recurso, el algoritmo verifica si asignandole ese recurso todavia le quedan otros de mismo tipo para que alguno de los procesos en el sistema todavía se le pueda dar hasta su máximo. Si la respuesta es afirmativa, el sistema se dice que está en "estado seguro" y se otorga el recurso, Si la respuesta es negativa, se dice que el sistema está en estado inseguro y se hace esperar a ese proceso.
Para detectar un deadlock, se puede usar el mismo algoritmo del banquero, que aunque no dice que hay un deadlock, si dice cuándo se esta en estado insegur que es la antesala del deadlock.
Sin embargo, para detectar el deadlock se pueden usar las gráficas de recursos. En ellas se pueden usar cuadrados para indicar procesos y círculos para los recursos, y flechas para indicar si un recurso ya esta asignado a un proceso o si un proceso está esperando un recurso. El deadlock es detectado cuando se puede hacer un viaje de ida y vuelta desde un procesos o recurso. Por ejemplo, suponga los siguientes eventos:
Evento 1: Proceso A pide recurso 1 y se le asigna.
Evento 2: Proceso A termina su time slice.
Evento 3: Proceso B pide recurso 2 y se le asigna.
Evento 4: Proceso B termina su time slice.
Evento 5: Proceso C pide recurso 3 y s le asigna.
Evento 6: Proceso C pide recurso 1 y como lo está ocupando el proceso A espera.
Evento 7: Proceso B pide recurso 3 y se bloquea porque lo ocupa el proceso B.
Una vez que un deadlock se detecta, es obvio que el sistema está en problemas y lo único que resta por hacer es una de dos cosas: tener algún mecanismo de suspensión o reanudación que permita copiar todo el contexto de un proceso incluyendo valores de memoria y aspecto de los periféricos que esté usando para reanudarlo otro día, o simplemente eliminar un proceso o arrebatarle el recurso, causando para ese proceso la perdida de datos y tiempo.
Bibliografía:
Sistemas Operativos Moderlos
Héctor Jairo Ortiz Pabón
1a. edición: 2005
ISBN: 958-97586-1-4
Universidad de Medellín-
Pag. 92 y 93
* Procesos ligeros (hilos o hebras)
Un hilo (thread) o proceso ligero es una unidad básica de ejecución, con su propio contador de programa, registros de CPU y pila. En los sistemas que trabajan con hiloos, cuado se lanza una aplicación se crea un proceso pesado, al cual el sistema operativo le asigna un espacio de memoria (con el código y los datos de la aplicación), ficheros abiertos y otros recursos. A su vez, dentro de un proceso pesado se pueden lanzar múltiples hilos concurrentes, que comparten todos los recursos asignados al proceso pesado.
Los hilos tienen características que son ventajosas:
*El BCP (Bloque de control del proceso) de un hilo es muy pequeño en comparación con el de un proceso pesado.
*Dado que todos los hilos de un proceso pesado comparten los recursos, un proceso pesado podría contener decenas de hilos sin mucho coste adicional (solo los pequeños BCP de sus hilos).
*La comunicación entre los hilos del proceso es mas sencilla que entre procesos pesados (usando la memoria que comparten).
Todo ello consigue los siguientes Beneficios:
*Se facilita la escritura de aplicaciones concurrentes cooperativas, es decir, aplicaciones en las que múltipls proceso colaboran entre sí para llevar a cabo un objetivo común.
*Se pueden lanzar centenares de actividades concurrentes sin que el sistema se resista.
Bibliografía:
Fundamentos de Sistemas Operativos
Santiago Candela
Carmelo Rubén García
AlEXIS Quesada
Francisco José Santana
José Miguel Santos
ISBN: 978-84-9732-547-9
Ed. Thomson
Pag.68
Consiste cuando dos procesos se ejecutan de manera concurrente y en ambos desean usar el mismo recurso el cual esta siendo utilizado, entonces ambos esperan a que dicho recurso se desocupe. pero si nunca sucede, entonces quedaran intebloqueados., Es por ello, que el concepto de interbloqueo, refiere a que dos procesos quieren utilizar un mismo recurso, el cual esta siendo ocupado y ninguno lo puede utilizar en ese momento, entonces quedan bloqueados algunos procesos, esperando que el recurso sea desocupado.
Comúnmente, suele generarse interbloqueo entre dos procesos, cuando el Proceso A utiliza el Recurso R, y para poder liberarlo debe utilizar antes el recurso Q. pero el Proceso B, esta utilizando el recurso Q, y para liberarlo, necesita primero hace uso del recurso R, el cual, esta siendo ocupado por Proceso A.
Recopilado de la Lectura Básica 2. Administración de Procesos y del Procesador
M.C. Edgar Rangel Luno
México, 2014
Las técnicas para prevenir el deadlock consisten en proveer mecanismos para evitar que se presente una o varias de las cuatro condiciones necesarias del deadlock. Algunas de ellas son:
-Asignar recursos en orden lineal: Esto significa que todos los recursos están etiquetados con un valor diferente y los procesos sólo pueden hacer peticiones de recursos "hacia adelante".
-Asignar todo o nada: Este mecanismo consiste en que el proceso pida todos los recursos que va a necesitar de una vez y el sistema se los da solamente si puede dárselos todos, si no, no le da nada y lo bloquea.
-Algoritmo del banquero: Este algoritmo usa una tabla de recursos para saber cuántos recursos tiene de todo tipo, también requiere que los procesos informen del ma´ximo de recursos que va a usar de cada tipo. Cuado un proceso pide un recurso, el algoritmo verifica si asignandole ese recurso todavia le quedan otros de mismo tipo para que alguno de los procesos en el sistema todavía se le pueda dar hasta su máximo. Si la respuesta es afirmativa, el sistema se dice que está en "estado seguro" y se otorga el recurso, Si la respuesta es negativa, se dice que el sistema está en estado inseguro y se hace esperar a ese proceso.
Para detectar un deadlock, se puede usar el mismo algoritmo del banquero, que aunque no dice que hay un deadlock, si dice cuándo se esta en estado insegur que es la antesala del deadlock.
Sin embargo, para detectar el deadlock se pueden usar las gráficas de recursos. En ellas se pueden usar cuadrados para indicar procesos y círculos para los recursos, y flechas para indicar si un recurso ya esta asignado a un proceso o si un proceso está esperando un recurso. El deadlock es detectado cuando se puede hacer un viaje de ida y vuelta desde un procesos o recurso. Por ejemplo, suponga los siguientes eventos:
Evento 1: Proceso A pide recurso 1 y se le asigna.
Evento 2: Proceso A termina su time slice.
Evento 3: Proceso B pide recurso 2 y se le asigna.
Evento 4: Proceso B termina su time slice.
Evento 5: Proceso C pide recurso 3 y s le asigna.
Evento 6: Proceso C pide recurso 1 y como lo está ocupando el proceso A espera.
Evento 7: Proceso B pide recurso 3 y se bloquea porque lo ocupa el proceso B.
Una vez que un deadlock se detecta, es obvio que el sistema está en problemas y lo único que resta por hacer es una de dos cosas: tener algún mecanismo de suspensión o reanudación que permita copiar todo el contexto de un proceso incluyendo valores de memoria y aspecto de los periféricos que esté usando para reanudarlo otro día, o simplemente eliminar un proceso o arrebatarle el recurso, causando para ese proceso la perdida de datos y tiempo.
Bibliografía:
Sistemas Operativos Moderlos
Héctor Jairo Ortiz Pabón
1a. edición: 2005
ISBN: 958-97586-1-4
Universidad de Medellín-
Pag. 92 y 93
* Procesos ligeros (hilos o hebras)
Un hilo (thread) o proceso ligero es una unidad básica de ejecución, con su propio contador de programa, registros de CPU y pila. En los sistemas que trabajan con hiloos, cuado se lanza una aplicación se crea un proceso pesado, al cual el sistema operativo le asigna un espacio de memoria (con el código y los datos de la aplicación), ficheros abiertos y otros recursos. A su vez, dentro de un proceso pesado se pueden lanzar múltiples hilos concurrentes, que comparten todos los recursos asignados al proceso pesado.
Los hilos tienen características que son ventajosas:
*El BCP (Bloque de control del proceso) de un hilo es muy pequeño en comparación con el de un proceso pesado.
*Dado que todos los hilos de un proceso pesado comparten los recursos, un proceso pesado podría contener decenas de hilos sin mucho coste adicional (solo los pequeños BCP de sus hilos).
*La comunicación entre los hilos del proceso es mas sencilla que entre procesos pesados (usando la memoria que comparten).
Todo ello consigue los siguientes Beneficios:
*Se facilita la escritura de aplicaciones concurrentes cooperativas, es decir, aplicaciones en las que múltipls proceso colaboran entre sí para llevar a cabo un objetivo común.
*Se pueden lanzar centenares de actividades concurrentes sin que el sistema se resista.
Bibliografía:
Fundamentos de Sistemas Operativos
Santiago Candela
Carmelo Rubén García
AlEXIS Quesada
Francisco José Santana
José Miguel Santos
ISBN: 978-84-9732-547-9
Ed. Thomson
Pag.68
*Concurrencia y secuenciabilidad
Los procesos son concurrentes si existen simultaneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asincronos, lo cual significa que en ocasiones requieren cierta sincronizacion o cooperacion.
Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos.
La concurrencia puede presentarse en tres contextos diferentes:
• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.
• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.
• Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultánea.
Tipos de procesos concurrentes.
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.
Procesos son cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos:
• Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos.
• Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.
Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos.
La concurrencia puede presentarse en tres contextos diferentes:
• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.
• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.
• Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultánea.
Tipos de procesos concurrentes.
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.
Procesos son cooperantes: Son aquellos que están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos:
• Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos.
• Interacción motivada porque los procesos se comunican y sincronizan entre sí para alcanzar un objetivo común, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.
*Resumen
De lo investigado en esta unidad podemos concluir que la administración de procesos y del procesador se refiere al uso de programas o aplicaciones que sirven para administrar los procesos y programas que se esta ejecutando en memoria un servidor web. Mientras que un proceso ligero, o thread, es un programa en ejecucion (flujo de ejecucion) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros, donde también un programa cargado en memoria puede contener varios procesos hijos e hilos, donde una de las diferencias entre hiloz y procesos radica en que el proceso puede suspender ña ejecución del programa principal que lo invocó y el hilo se ejecuta al mismo tiemo sin suspenderlo.
Por otra parte hablando de los interbloqueos nos dice que que se define como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o que se comunican unos con otros.
Por otra parte hablando de los interbloqueos nos dice que que se define como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o que se comunican unos con otros.
Integrantes del equipo:
Jessica Gabriela Ortuño Farfán
Juana Estrada Jacobo
Luis Antonio Antunez Rodriguez
Pedro Hilario Castañeda
Fredi Rojas Higuera[/justify]
Jeess- Mensajes : 14
Fecha de inscripción : 28/10/2012
REPLICA
Bueno, en mi punto de vista, la informacion recabada por mis compañeros es buena, (todos) ya que pusieron las url de las paginas consultadas para la realización de este trabajo, donde cada uno nos explica de diferentes formas los temas de esta unidad, y al haber sido consultados en diferentes fuentes nos da la oportunidad de comparar la informacion.
Por otro lado mencionando la replica del compañero Osmar hacia el compañero Gustavo, estoy de acuerdo en la forma que presento su información pero estar en desacuerdo por la forma en que se dio a conocer el equipo creo que es de cada quien, espero nos definas porque ese nombre equipo "cochitos" que nuestro equipo tenemos duda (jiji) pero bueno, eso es punto y a parte .
Atte. Jessica Gabriela Ortuño
Juana Estrada Jacobo
Pedro Hilario Castañeda
Luis Antonio Antunez Rodriguez
Fredi Rojas Higuera
Por otro lado mencionando la replica del compañero Osmar hacia el compañero Gustavo, estoy de acuerdo en la forma que presento su información pero estar en desacuerdo por la forma en que se dio a conocer el equipo creo que es de cada quien, espero nos definas porque ese nombre equipo "cochitos" que nuestro equipo tenemos duda (jiji) pero bueno, eso es punto y a parte .
Atte. Jessica Gabriela Ortuño
Juana Estrada Jacobo
Pedro Hilario Castañeda
Luis Antonio Antunez Rodriguez
Fredi Rojas Higuera
Jeess- Mensajes : 14
Fecha de inscripción : 28/10/2012
Temas similares
» 2.- ADMINISTRACIÓN DE PROCESOS Y DEL PROCESADOR.
» 1.- El SGBD y El Lenguaje De Definición De Datos
» ESTADOS Y TRANSICIONES DE LOS PROCESOS
» Tema 2.- Procesos y Comunicación
» 3.- Procesos y Procesadores En Los Sistemas Operativos Distribuidos
» 1.- El SGBD y El Lenguaje De Definición De Datos
» ESTADOS Y TRANSICIONES DE LOS PROCESOS
» Tema 2.- Procesos y Comunicación
» 3.- Procesos y Procesadores En Los Sistemas Operativos Distribuidos
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.