Sistemas Operativos
Por: 14-05-2009 por rcvalladolid | Categorías asociadas: Capitulo 7, Paralelo "B"

 Nombre: Roberto Valladolid.

INTERBLOQUEOS

En un entorno multiprogramación, varios procesos pueden competir por un numero finito de recursos. Un proceso solicita recursos y, si los recursos no están disponibles en ese momento, el proceso pasa a estado de espera.

Es posible que algunas veces, un proceso en espera no pueda nunca cambiar de estado, por que los recursos que ha utilizado estén ocupados por otros procesos que a su vez estén esperando otros recursos. Cuando se produce una situación como esta, se dice que ha ocurrido un interbloqueo.

El interbloqueo se puede definir como 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.

Caracterización de los interbloqueos.

En un interbloqueo, los procesos nunca terminan de ejecutarse y los recursos del sistema están ocupados, lo que impide otros trabajos, a continuación algunos detalles de características.

Condiciones Necesarias:

Una situación de interbloqueo puede surgir si se dan simultáneamente las cuatro condiciones siguientes en un sistema.

1.     Exclusión mutua: Al menos un recurso debe estar en modo no compartido; es decir, solo un proceso puede usarlo cada vez. Si otro proceso solicita otro recurso, el proceso solicitante tendrá que esperar hasta que el recurso sea liberado.

2.     Retención y espera: Un proceso debe estar reteniendo al menos un recurso y esperando para adquirir otros recursos adicionales que actualmente estén retenidos por otros procesos.

3.     Sin desalojo: Los recursos no pueden ser desalojados; es decir u  recurso solo puede ser liberado voluntariamente por el proceso que le retiene, después de que dicho proceso haya completado su tarea.

4.     Espera Circular: Debe existir un conjunto {P0,P1,…,Pn} de procesos en espera, tal que P0 este esperando a un recurso retenido por P1, P1 esté esperando a un recurso retenido por P2, …, Pn-1 este esperando a un recurso retenido por Pn’ y Pn esté esperando a un recurso retenido por P0. Los procesos interbloqueados forman una cadena circular de modo que cada proceso retiene uno o más de los recursos que son solicitados por el siguiente proceso de la cadena.

 simple

 

Grafo de asignación de recursos

Los interbloqueos pueden definirse de forma mas precisa mediante un grafo dirigido, que se llama grafo de asignación de recursos del sistema. Este grafo consta de un conjunto de vértices V y de un conjunto de aristas E.

Métodos para tratar los interbloqueos

En general, podemos abordar el problema de los interbloqueos de una de tres formas:

·         Podemos emplear un protocolo para impedir o evitar los interbloqueos, asegurando que el sistema nunca entre en estado de interbloqueo.

·         Podemos permitir que el sistema entre en estado de interbloqueo, detectarlo y realizar una recuperación.

·         Podemos ignorar el problema y actuar como si nunca se produjeran interbloqueos en el sistema.

Estos métodos básicos se pueden combinar, permitiéndonos seleccionar un método óptimo para cada clase de recurso existente en el sistema.

La prevención de interbloqueos proporciona un conjunto de métodos para asegurar que al menos una de las condiciones necesarias no pueda cumplirse. Estos métodos evitan los interbloqueos restringiendo el modo en que se pueden realizar las solicitudes.

Si un sistema no emplea un algoritmo de prevención de interbloqueo ni un algoritmo de evasión, entonces puede producirse una situación de interbloqueo.

El sistema debe disponer de métodos de recuperación manual para tales condiciones y puede, simplemente, usar esas mismas técnicas para recuperarse de los interbloqueos.

Prevención de interbloqueos

Estas cuatro condiciones no se cumpla, podemos prevenir la aparición de interbloqueos.

Exclusión mutua

La condición de exclusión mutua se aplica a los recursos que no pueden ser compartidos. Un proceso no necesita esperar nunca para acceder a un recurso compartible. Sin embargo, en general, no podemos evitar los interbloqueos negando la condición de exclusión mutua, ya que algunos recursos son intrínsecamente no compartibles.

Retención y espera

Para asegurar que la condición de retención y espera nunca se produzca en el sistema, debemos garantizar que, cuando un proceso solicite un recurso, el proceso no esté retenido ningún otro recurso. Podemos implementar este mecanismo requerimiento que las llamadas al sistema que solicitan los recursos para un proceso precedan a todas las demás llamadas al sistema.

Una posible alternativa sería un protocolo que permitiera a un proceso solicitar recursos solo cuando no tenga ninguno retenido.

Ambos protocolos tienen dos desventajas importantes. Primero, la tasa de utilización de los recursos puede ser baja, dado que los recursos pueden asignarse pero no utilizarse durante un periodo largo de tiempo. La segunda desventaja es que puede producirse el fenómeno de inanición, un proceso que necesite varios recursos muy solicitados puede tener que esperar de forma indefinida, debido a que al menos uno de los recursos que necesita está siempre asignado a algún otro proceso.

Sin desalojo

La tercera condición necesaria para la aparición de interbloqueos es que los recursos que ya  están asignados no sean desalojados. Para impedir que se cumpla esta condición, podemos usar el protocolo siguiente: si un proceso esta retenido varios recursos y solicita otro recurso que no se le puede asignar de forma inmediata, entonces todos los recursos actualmente retenidos se desalojan.

Espera circular

Una forma de garantizar que esta condición nunca se produzca es imponer una ordenación total de todos los tipos de recursos y requerir que cada proceso solicite sus recursos en un orden creciente de enumeración.

Los recursos se clasifican por categorías y los procesos solo pueden solicitar los recursos en orden creciente, además todos los recursos de una categoría deben ser solicitados a la vez. Una vez que un proceso ha solicitado un recurso de una categoría, no puede solicitar otro de una categoría inferior.

Evasión de interbloqueos

Esas restricciones aseguran que al menos una de las condiciones necesarias para que haya interbloqueo no se produzca y, por tanto, que no puedan aparecer interbloqueos. Sin embargo, esta técnica de prevención de interbloqueos tiene algunos posibles efectos colaterales, como son una baja tasa de utilización de los dispositivos y un menor rendimiento del sistema.

Un método alternativo para evitar los interbloqueos consiste en requerir información adicional sobre como van a ser solicitados los recursos. Cada solicitud requiere que, para tomar la correspondiente decisión, el sistema considere los recursos actualmente disponibles, los recursos actualmente asignados a cada proceso y las solicitudes y liberaciones futuras de cada proceso.

El modelo más simple y útil requiere que cada proceso declare el número máximo de recursos de cada tipo que puede necesitar. El algoritmo de evasión de interbloqueos examina dinámicamente el estado de asignación de cada recurso con el fin de asegurar que nunca se produzca una condición de espera circular. El estado de asignación del recurso esta definido por el número de recursos disponibles y asignados y la demanda máxima de los procesos.

Estado seguro

Un estado es seguro si el sistema puede asignar recursos a cada proceso en determinado orden sin que eso produzca un interbloqueo. Un sistema está en estado seguro solo si existe lo que se denomina una secuencia segura. Un estado seguro implica que no puede producirse interbloqueo, a la inversa, todo estado de interbloqueo es inseguro, sin embargo, no todos los estados inseguros representan un interbloqueo.

Un estado inseguro puede llevar a que aparezca un interbloqueo, siempre y cuando el estado sea seguro, el sistema operativo podrá evitar los estados inseguros, el sistema operativo no puede impedir que los procesos soliciten recursos de tal modo que se produzca un interbloqueo, el comportamiento de los procesos es el que controla los estados inseguros.

Detección de interbloqueos

Las estrategias de prevención de interbloqueo; resuelven el problema limitando el acceso a recursos e imponiendo restricciones sobre los procesos. En cambio, las estrategias de detección de interbloqueo, no limitan el acceso a recursos ni restringen las acciones del proceso. Con la detección del interbloqueo, se concederán los recursos  que los procesos necesiten siempre que sea posible.  Periódicamente, el Sistema Operativo  ejecuta un algoritmo que permite detectar la condición de círculo vicioso de espera.

La detección del interbloqueo es el proceso de determinar si realmente existe un interbloqueo e identificar los procesos  y recursos implicados en él. Una posibilidad detectar un interbloqueo es monitorear cada cierto tiempo el estado de los recursos. Cada vez que se solicita o se devuelve un recurso, se actualiza el estado de los recursos y se hace una verificación para observar si existe algún ciclo.

Este método está basado en suponer que un interbloqueo no se presente y que los recursos del sistema que han sido asignados, se liberarán en el momento que otro proceso lo requiera.

Si un sistema no emplea ni algoritmos de prevención ni de evasión de interbloqueos, entonces puede producirse una situación de interbloqueo. En este caso, el sistema debe proporcionar:

·        Un algoritmo que examine el estado del sistema para determinar si se ha producido un interbloqueo.

·        Un algoritmo para recuperarse del interbloqueo.

Una sola instancia de cada tipo de recurso

Si todos los recursos tienen una única instancia, entonces podemos definir un algoritmo de detección de interbloqueos que utilice una variante del grafo de asignación de recursos, denominada grafo de espera.

Varias instancias de cada tipo de recurso

El esquema del grafo de espera no es aplicable a los sistemas de asignación de recursos con múltiples instancias de cada tipo de recurso.

Available: Un vector de longitud m que indica el numero de recursos disponibles de cada tipo.

Allocation: Una matriz n * m que define el numero de recursos de cada tipo que están asignados actualmente a cada proceso.

Request: Una matriz n * m que especifica la solicitud actual efectuada por cada proceso.

Utilización del algoritmo de detección

Los interbloqueos se producen solo cuando algún proceso realiza una solicitud que no se puede conceder de forma inmediata, esta solicitud puede ser la solicitud final que complete una cadena de procesos en espera. Si se invoca el algoritmo de detección de interbloqueo para cada solicitud de recursos, esto dará lugar a una considerable sobrecarga en el tiempo de uso del procesador.

Recuperación de un Interbloqueo

Cuando el algoritmo de detección determina que existe un interbloqueo, tenemos varias alternativas. Una posibilidad es informar al operador de que se ha producido un interbloqueo y dejar que lo trate de forma manual.

La recuperación después de un interbloqueo se complica porque puede no estar claro que el sistema se haya bloqueado. Las mayorías de los Sistemas Operativos no tienen los medios suficientes para suspender un proceso, eliminarlo del sistema y reanudarlo más tarde.

Actualmente, la recuperación se suele realizar eliminando un proceso y quitándole sus recursos. El proceso eliminado se pierde, pero gracias a esto ahora es posible terminar. Algunas veces es necesario, eliminar varios procesos hasta que se hayan liberado los recursos necesarios para que terminen los procesos restantes.

Terminación de procesos

En ambos métodos, el sistema reclama todos los recursos asignados a los procesos terminados.

Interrumpir todos los procesos interbloqueados: Claramente, este método interrumpirá el ciclo de interbloqueo, pero a un precio muy alto.

Interrumpir un proceso cada vez hasta que el ciclo de interbloqueo se elimine: Este método requiere una gran cantidad de trabajo adicional, ya que después de haber interrumpido cada proceso hay que invocar un algoritmo de detección de interbloqueos para determinar si todavía hay procesos en interbloqueo.

Hay muchos factores que influyen en que procesos seleccionar, entre los que se incluyen:

1.      La prioridad del proceso

2.     Durante cuanto tiempo ha estado el proceso ejecutándose y cuanto tiempo de adicional necesita el proceso para completar sus tareas.

3.      Cuantos y que tipo de recursos ha utilizado el proceso.

4.     Cuantos más recursos necesita el proceso para completarse.

5.     Cuantos procesos hará falta terminar.

6.     Si se trata de un proceso interactivo o de procesamiento por lotes.

Apropiación de recursos

Para eliminar los interbloqueos utilizando el método de apropiación de recursos, desalojamos de forma sucesiva los recursos de los procesos y asignamos dichos recursos a otros procesos hasta que el ciclo de interbloqueo se interrumpa.

Si se necesita el desalojo para tratar los interbloqueos, entonces debemos abordar tres cuestiones:

1.      Selección de una victima

2.      Anulación

3.      Inanición

 




Por: 08-05-2009 por carlospatricio | Categorías asociadas: Capitulo VIII, Paralelo "B"

MEMORIA PRINCIPAL
La memoria principal y los registros integrados dentro del propio procesador son las únicas áreas de almacenamiento a las que el CPU puede acceder directamente.
El acceso a memoria puede requerir muchos ciclos del reloj del procesador para poderse complementar. El remedio consiste en añadir una memoria rápida entre la CPU y la memoria principal dicho búfer de memoria se denomina caché. Primero tenemos que asegurarnos  que cada proceso disponga de un espacio de memoria separado. Para hacer esto, debemos poder determinar el rango de direcciones legales a las que el proceso pueda acceder y garantizar también que el proceso sólo acceda a esas direcciones legales. La protección del espacio de memoria se consigue haciendo que el hardware de la CPU compare todas las direcciones generadas en modo usuario con el contenido de esos registros. Los registros base y límite solo pueden ser cargados por el sistema operativo, que utiliza una instrucción privilegiada especial, ya que únicamente el sistema operativo podrá cargar los registros base y límite.
Los procesos del disco que estén esperando a ser cargados en memoria para su ejecución forman lo que se denomina cola de entrada. Consiste en seleccionar uno de los procesos de la cola de entrada y cargar dicho proceso en memoria, este accede a las instrucciones y datos contenidos en la memoria, el proceso terminará su ejecución y sus espacio de memoria será declarado como disponible, un compilador se  encargara de reasignar estas direcciones reubicables a direcciones absolutas. La reasignación de las instrucciones y los datos a direcciones de memoria puede realizarse en cualquiera de los siguientes pasos: tiempo de compilación, tiempo de carga, tiempo de ejecución.
Una dirección generada por la CPU se denomina comúnmente dirección lógica, mientras que una dirección vista por la unidad de memoria se denomina comúnmente dirección física, el esquema de reasignación de direcciones en tiempo de ejecución hace que las direcciones lógica y física difieran, usualmente decimos que la dirección lógica es una dirección virtual. El conjunto de todas las direcciones lógicas generadas por un programa es lo que se denomina un espacio de direcciones lógicas. La correspondencia entre direcciones virtuales y físicas en tiempo de ejecución es establecida por un dispositivo hardware que se denomina unidad de gestión de memoria. El tamaño de un proceso está limitado por el tamaño de la memoria física, con la carga dinámica, una rutina no se carga hasta que se la invoca; todas las rutinas se mantienen en disco en un formato de carga reubicable, el programa principal se carga en la memoria y se ejecuta. La ventaja del mecanismo de carga dinámica es que una rutina no utilizada no se cargara nunca en memoria. El mecanismo de carga dinámica no requiere de ningún soporte especial por parte del sistema operativo. Es responsabilidad del usuario diseñar sus programas para poder aprovechar dicho método.
Los procesos pueden ser intercambiados temporalmente, sacándolos de la memoria y almacenándolos  en un almacén de respaldo y volviéndolos a llevar luego a memoria para continuar su ejecución. El gestor de memoria puede intercambiar los procesos con la suficiente rapidez como para que haya siempre algunos procesos en memoria, listos para ejecutarse, cuando el planificador de la CPU quiera asignar el procesador a otra tarea.
La memoria esta usualmente dividida en dos particiones: una para el sistema operativo residente y otra para los procesos de usuarios, en el esquema de asignación continúa de memoria, cada proceso está contenido en una única sección contigua de memoria.
Uno de los métodos más simples para asignar la memoria consiste en dividirla en varias particiones de tamaño fijo. En este método de particiones múltiples, cuando una partición esta libre, se selecciona un proceso  de la cola de entrada y se lo carga en dicha partición. En el esquema de particiones fijas, el sistema operativo mantiene una tabla que indica que partes de la memoria están disponibles y cuales ocupados. La asignación dinámica  se ocupa de cómo satisfacer una solicitud de tamaño n a partir de una lista de agujeros libres. Las estrategias para seleccionar un agujero libre entre el conjunto de agujeros disponibles son las de primer ajuste, mejor ajuste y peor ajuste.
El problema de la fragmentación externa aparece cuando hay un espacio de memoria total suficiente como para satisfacer una solicitud, en el peor de los casos podríamos tener un bloque de memoria libre entre cada dos procesos, mientras que la fragmentación interna es la diferencia entre los dos valores, es decir, la memoria que es interna a una partición pero que no está siendo utilizada. Una solución al problema de la fragmentación externa  consiste en la compactación, el objetivo es mover el contenido de la memoria con el fin de situar toda la memoria libre de manera contigua, para formar un único bloque de gran tamaño.
La paginación es un esquema de gestión de memoria que permite que el espacio de direcciones físicas de un proceso no sea contiguo, la paginación evita el considerable problema de encajar fragmentos de memoria de tamaño variable en el almacén de respaldo. El almacén de respaldo también sufre los problemas de fragmentación que hemos mencionado en relación con la memoria principal, pero con la salvedad de que el acceso es mucho más lento, lo que hace que la compactación sea imposible.
La protección de memoria en un entorno paginado se consigue mediante una serie de bits de protección asociados con cada marco. Al mismo tiempo que se calcula la dirección física, pueden comprobarse los bits de protección para verificar que no se esté haciendo ninguna escritura en una página de solo lectura, todo intento de escribir una página de solo lectura provocara una interrupción hardware al sistema operativo.
Un aspecto importante de la gestión de memoria que se volvió inevitable con los mecanismos de paginación es la separación existente entre la vista que el usuario tiene de la memoria y la memoria física real, la vista del usuario se mapea sobre la memoria física, este mapeo permite la diferenciación entre memoria lógica y memoria física.
La segmentación es un esquema de gestión de memoria que soporta esta visión de la memoria que tienen los usuarios. Un espacio lógico de direcciones es una colección de segmentos y cada segmento tiene un nombre y una longitud. Las direcciones  especifican tanto el nombre del segmento como el desplazamiento dentro de ese segmento. El usuario especifica, por tanto, cada dirección proporcionando dos valores: un nombre de segmento y un desplazamiento. Así una  dirección lógica estará compuesta  por una pareja  del tipo:
<número-segmento, desplazamiento>




Por: 30-04-2009 por rjjaramillo1 | Categorías asociadas: Capitulo 3, Paralelo "B"

Estado de proceso.- a medida que se ejecuta el proceso, el proceso va cambiando de estado.

imagen14

· Nuevo: el proceso está siendo creado.

· En ejecución: Se ésta ejecutando las intrusiones

· En espera: el proceso está esperando a que se produzca un suceso.

· Preparado: el proceso ésta en la espera de que le asigne un procesador

· Terminado: termina la ejecución del proceso

Bloque de control de procesos

Un bloque control de procesos contiene muchos elementos de información asociados con un proceso especifico, entre los que se incluyen.

· Estado de procesos

· Contador de programas

· Registro de la CPU

· Información de planificación de la CPU

· Información de gestión de memoria

· Información contable

· Información del estado de E/S

Hebras.- Es un programa que tiene una sola hebra de ejecución .una única hebra de control permite al proceso realizar solo una tarea cada vez.

Planificación de procesos.-es una multiprogramación que se ejecutan varios procesos al mismo tiempo.

Colas de planificación.-esto se da cuando los procesos entran al sistema .se colocan en la cola de trabajos que contienen todos los procesos del sistema.

El sistema también incluyen otras colas .cuando se asigna a la CPU un proceso, este se ejecuta durante un rato y finamente termina, es interrumpido o espera a que se produzca un determinado suceso, como la terminación de una solicitud de E/S.

Planificadores.-

Planificador a largo plazo.- selecciona procesos de esta cola y las carga a la memoria para su ejecución.

Planificador a corto plazo.- selecciona entre os procesos que ya están preparados para ser ejecutados y asigna la CPU a uno de ellos

Cambio de contexto.-esto hace que el SO obligue a la CPU abandonar su tarea actual, para ejecutar una rutina del Kernel. Estos sucesos se producen con frecuencia en los sistemas de propósito general.

Creación de procesos.-un proceso puede crear otros varios procesos, nuevos mientras se ejecutan. Estos procesos creadores se denomina procesos padre, y los nuevos procesos se denomina procesos hijos cada uno de estos procesos nuevos pueden a su vez crear otros procesos, dando lugar a un árbol

imagen111

La comunicación en los sistemas cliente- servidor pueden utilizar (1) sockets (2) llamadas procedimientos remotos (RPC) o(3) invocación de métodos remotos (RMI)de java . un sockets se define como un punto terminal para una comunicación.




Por: 28-04-2009 por mariuximaza | Categorías asociadas: Capitulo 7

Un interbloqueo se produce cuando dos o más tareas se bloquean entre sí permanentemente teniendo cada tarea un bloqueo en un recurso que las otras tareas intentan bloquear.

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.

4- Condición de espera circular (o circulo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena

PREVENCIÓN DEL INTERBLOQUEO
La estrategia básica de la prevención del interbloqueo consiste, a grandes rasgos, en diseñar su sistema de manera que esté excluida, a priori, la posibilidad de interbloqueo.

Los métodos para prevenir el interbloqueo son de dos tipos:

- Los métodos indirectos que consisten en impedir la aparición de alguna de las tres condiciones necesarias para que se de el interbloqeo.

- Los métodos directos que consisten en evitar la aparición del circulo vicioso de espera.

Algoritmo de detección del interbloqueo

Una comprobación para interbloqueo puede hacerse con igual o menor frecuencia que cada solicitud de recursos, dependiendo de que tan probable es que ocurra un interbloqueo. Comprobar cada solicitud de recursos tiene dos ventajas: Conduce a la detección temprana y el algoritmo es simple, de manera relativa porque se basa en cambios crecientes al estado del sistema. Además, las comprobaciones frecuentes consumen un tiempo considerable de procesador.

Los algoritmos de detección de bloqueos implican cierta sobrecarga en tiempo de ejecución:

surge el siguiente interrogante:

¿ compensa la sobrecarga implicita en los algoritmos de detección de bloqueos, el ahorro potencial de localizarlos y romperlos ?.

El empleo de algoritmos de detección de interbloqueo implica cierto gasto extra durante la ejecución. Así pues, se presenta de nuevo la cuestión de costeabilidad, tan habitual en los sistemas operativos. Los algoritmos de detección de interbloqueo determinan por lo general si existe una espera circular.




Por: 27-04-2009 por pecaamano | Categorías asociadas: Opinion Conferencia

En la conferencia dada sobre escenario y cultura de la web social se hablo sobre la evolucion que de ha ido dando en la comunicacion e informacion desde sus inicios, asi tambien que se ha vuelto una herramienta por decirlo asi “BASICA” en nuestra vida ya que hoy en dia todo gira alrededor del internet, desde la comunicacion hasta la busqueda de informacion y que debemos aprovecharla al maximo.

Para hacer comunicación y cómo transmitir información nos dio 10 pasos:

1. Especializarce en temas, no en medios.

2. Aprender a convertir las ideas en proyectos.

3. Aprender a convertir los proyectos en negocios.

4. Concentrarse en los lenguajes y en la narrativa, no en la tecnología.

5. Comenzar a construir nuestra identidad profesional ahora.

6. Aprende a trabajar con otras personas.

7. Aprende a pensar creativamente.

8. Aprende a trabajar rapido y bien.

9. Comenzar un blog.

10. Pregunta curiosidad.

Tambien se dijo que todo proyecto grandes que se hagan es mejor hacerlo por partes y en grupos “DIVIDE Y VENCERAS”.

SALUDOS…




CAPÍTULO I (Materia: SISTEMAS OPERATIVOS)

El Sistema Operativo

Un sistema operativo es aquel programa que se ejecuta continuamente en la computadora (usualmente denominado kernel), siendo todo lo demás programas del sistema y programas de aplicación.

El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los distintos usuarios, por ello se suele decir que es la interfaz de comunicación entre el hardware y el usuario.

Existen sistemas operativos para mainframes, y para computadoras personales (PCs), los sistemas operativos para mainframe están diseñados principalmente para optimizar el uso del hardware, los sistemas operativos para PCs soportan desde complejos juegos hasta aplicaciones de negocios.

Punto de vista del usuario.

Desde el punto de vista de un monousuario un sistema debe ser rápido y fácil de manejar, se dice en este caso que el sistema operativo presta cierta atención al rendimiento y ninguna a la gestión de recursos.

En el caso de un mainframe, el sistema operativo se diseña para maximizar la utilización de recursos, asegurar que todo el tiempo de CPU, memoria y E/S disponibles se usen de forma eficiente, y que cada usuario disponga sólo de la parte equitativa que le corresponde.

Cuando se usan estaciones de trabajo conectadas a redes de otras estaciones de trabajo y servidores, el sistema operativo se diseña parar llegar a un compromiso entre la usabilidad individual y la utilización de recursos.

Vista del usuario.

Desde el punto de vista de la computadora, el OS está más íntimamente relacionado con el hardware. En este contexto podemos ver un sistema operativo como un asignador de recursos.

Un sistema operativo es un programa de control, y como tal gestiona la ejecución de los programas de usuario para evitar errores y mejorar el uso de la computadora. Tiene que ver recíprocamente con el funcionamiento y control de los dispositivos de E/S.

Organizacion de una computadora

Funcionamiento.- Para el funcionamiento de una computadora se necesita un programa de arranque, éste normalmente se almacena en la memoria ROM (read only memory), o en la memoria EEPROM (electrically erasable programable read-only-memory), y se conoce con el término de firmware, dentro del hardware de la computadora. Se inician todos los aspectos del sistema, desde los registros de la CPU hasta las controladoras de dispositivos y el contenido de la memoria. El programa de arranque debe saber cómo cargar el sistema operativo e iniciar la ejecución de dicho sistema, para conseguir este objetivo, el programa de arranque debe localizar y cargar en memoria el Kernel(núcleo) del sistema opertarivo. Después el sistema operativo comienza ejecutando el primer proceso, por ejemplo “init”, y espera a que se produzca algún suceso.

La ocurrencia de un suceso normalmente se indica mediante una interrupción.

Interrupción.- Da paso a un suceso, puede ser de hardware o de software. Cuando se interrumpe a la CPU, deja lo que está haciendo e inmediatamente transfiere la ejecución a una posición fijada.

Estructura de almacenamiento.- Los programas de computadora deben hallarse en la memoria principal (RAM - Random Access Memory) para ser ejecutados. El procesador puede acceder directamente a ésta.

La memoria principal es un dispositivo de almacenamiento volátil que pierde su contenido cuando se quita la alimentación (corriente eléctrica), normalmente la memoria principal es demasiado pequeña como para almacenar todos los programas y datos necesarios de forma permanente.

Por esta razón la mayor parte de los sistemas informáticos proporcionan almacenamiento secundario como una extensión de la memoria principal, aquí se almacenan grandes cantidades de datos de forma permanente.

Estructura de E/S.- Las unidades de E/S están conectadas con el procesador y la memoria principal, y cada una de ellas controla uno o más dispositivos periféricos.

Los dispositivos de E/S se pueden clasificar en:

De interacción con e usuario.-Permiten la comunicación con el usuario del computador.

De interacción con máquinas: Permite la comunicación con elementos del equipo.

De comunicación.- Permite la comunicación con dispositivos remotos.

Arquitectura de un sistema informático

Sistemas Multiprocesador.- En un sistema multiprocesador hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuario.

Sistemas Multiprocesador.- Disponen de dos o más procesadores que se comunicación entre sí, compartiendo el bus de la computadora y en ocasiones el reloj, la memoria y los dispositivos periféricos.

Sistemas en clúster.- Es otro tipo de sistema multiprocesador. La diferencia con los sistemas multiprocesamiento es que éstos están formados por dos más sistemas individuales acoplados.

Las computadoras en clúster comparten el almacenamiento y se conectan entre sí a través de una LAN.

Normalmente la conexión en clúster se usa para proporcionar un servicio con alta disponibilidad, es decir un servicio que funcionará incluso si uno o más sistemas del clúster fallaran.

Estructura de un Sistema Operativo

Uno de los aspectos más importantes de los sistemas operativos es la capacidad para multi-programar.

Multiprogramación.- Permite organizar la ejecución de los trabajos a fin de mejorar el aprovechamiento de la CPU. Por ejemplo, al solicitar un trabajo E/S, mientras ésta se realiza se selecciona otro trabajo para ejecutarlo.

Sistemas Multitarea (tiempo compartido).- Pueden ejecutar varias tareas simultáneamente (o cuasi-simultáneamente), aprovechando los tiempos ociosos de la CPU. Alternan entre varias tareas, las que se procesan en partes durante pequeños intervalos de tiempo (quantums).

Operaciones Del So

Los SO están controlados mediante interrupciones, para cada interrupción diferentes códigos del sistema operativo determinan que acción hay que llevar a cabo.

Se debe asegurar que un error que se produzca en un programa de usuario solo genere problemas en el programa que se estuviera ejecutando.

Un SO diseñado apropiadamente debe asegurar que un programa incorrecto no pueda dar lugar a que otros programas se ejecuten incorrectamente.

Operación en modo dual

Para asegurar la correcta ejecución del sistema operativo, tenemos que poder distinguir entre la ejecución del código del sistema operativo y del código definido por el usuario.

Necesitamos dos modos diferentes de operación: modo usuario y modo kernel. Un bit denominado bit de modo, se añade al hardware de la computadora para indicar el modo actual kernel o usuario, también podemos diferenciar entre una tarea que se ejecute en nombre de sistema operativo y otra que se ejecute en nombre de usuario.

El modo dual de operaciones nos proporciona los medios para proteger el sistema operativo de los usuarios que puedan causar errores, y también para proteger a los usuarios de los errores de otros usuarios. Esta protección se consigue designando algunas de las instrucciones de máquina que pueden causar daño como instrucciones privilegiadas. Cuando se ejecuta una llamada al sistema, el hardware la trata como una interrupción software.

Temporizador

Se debe utilizar un temporizador para evitar que un único trabajo monopolice el uso del sistema. El temporizador se actualiza al comienzo de cada trabajo. Si el tiempo termina, se produce una interrupción, y el control vuelve al monitor.

Gestión de Procesos

Un programa no hace nada a menos que una CPU ejecute sus instrucciones. Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que incluyen tiempo de CPU, memoria, archivos y dispositivos de E/S. Un proceso es un programa en ejecución puede ser un procesador de textos que ejecuta el usuario.

Un proceso es una unidad de trabajo en un sistema. Cada sistema consta de una colección de procesos, siendo algunos de ellos procesos del sistema operativo y el resto procesos de usuario. Todos estos procesos pueden, potencialmente, ejecutarse de forma concurrente.

Gestión de memoria.- Es uno de los elementos principales que caracterizan un proceso es la memoria que utiliza, la asignación de memoria es exclusiva para el proceso que la requiere, es decir, ésta es lógicamente separada de cualquier otro proceso del sistema.

La gestión de memoria es una tarea, cuya responsabilidad recae en el SO.

Consiste básicamente en cargar y descargar procesos en memoria principal para que sean ejecutados, para ello el SO gestiona lo que se conoce como Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.

Gestión de Almacenamiento

Gestión del sistema de archivos

La mayoría de los sistemas operativos tienen sistemas de archivos. Se usan para almacenar datos de manera segura. Están compuestos por particiones, archivos y directorios, y opcionalmente también de archivos de enlace (accesos directos en Windows). Los sistemas de archivos se deben montar, aunque esto lo hace automáticamente el sistema operativo al iniciar la sesión. Algunos SO de red permiten montar los sistemas de archivos de otras computadoras en directorios comunes.

Entre las estructuras que puede tener tenemos: estructura arbórea, grafo acíclico y grafo general. La estructura arbórea es la más sencilla de implementar. Internamente el disco está dividido en bloques físicos (por ej: 512 bytes) y bloques lógicos o clusters (por ej: 4KB). Es bueno que los clúster sean múltiplo del tamaño de los bloques físicos, por razones de eficiencia.

En la estructura de un sistema de archivos tenemos que considerar que, al igual que con la memoria principal, siempre se produce algo de fragmentación, que puede ser interna (dentro de cada clúster o bloque) o externa (entre archivos).

Cada nodo de la estructura se llama archivo o directorio, y tiene un nombre lógico que está directamente relacionado con una posición física dentro del disco. Es responsabilidad de este sistema recuperar los datos dado un nombre de archivo y su ruta de acceso. Esto lo hace usando tablas o punteros.

Por ejemplo el archivo c:materiasoperativos.doc está vinculado con la ubicación 227E-5294-FF12-437D dentro del disco.

Gestión del almacenamiento masivo

La mayoría de sistemas informáticos modernos usan discos como principal medio de almacenamiento en línea, tanto para los programas como para los datos. Por tanto, la apropiada gestión del almacenamiento en disco tiene una importancia crucial en un sistema informático. El sistema operativo es responsable de las siguientes actividades:

Gestión del espacio libre

Asignación del espacio de almacenamiento

Planificación del disco

El almacenamiento terciario no es crucial para el rendimiento del sistema, aunque también es necesario gestionarlo, algunos SO realizan esta tarea, mientras que otros dejan el control de almacenamiento terciario a los programas de aplicación.

Sistemas de E/S

Uno de los propósitos de un sistema operativo es ocultar al usuario las peculiaridades de los dispositivos hardware específico. El subsistema de E/S consta de varios componentes:

Un componente de gestión de memoria que incluye almacenamiento en búffer, gestión de caché y gestión de colas.

Una interfaz general para controladores de dispositivo.

Controladores para dispositivos hardware específicos.

Almacenamiento en Cache

Para amortiguar la lentitud del almacenamiento en dispositivos E/S se usa un almacenamiento de soporte que evita al procesador solicitar byte por byte, y en vez de ello se leen muchos datos con una sola solicitud. Son los buffers y la caché. Los buffers se usan tanto para lectura y escritura de disco, para impresora, monitor, para placa de red, etc. SU misión es agilizar la transferencia emitiendo una sola petición e interrupción para un conjunto de datos. Los tipos de buffers son:

· buffer sencillo

· buffer doble

· circular

La función de la caché es similar a la de los buffers, pero está implementada con circuitos de muy alta velocidad y tienen algunas ventajas tecnológicas como la búsqueda por asociación (que busca en muchas entradas al mismo tiempo).

Nos puede ser muy útil para mejorar el rendimiento poner partes del sistema de archivos en la caché, y cualesquier otros datos que usemos con frecuencia.

Protección y Seguridad

Un mecanismo que controla el acceso de procesos y usuarios a los recursos definidos por un sistema informático. Los mecanismos de protección pueden mejorar la fiabilidad, permitiendo detectar errores en las interfaces entre componentes del sistema.

Un sistema con protección tiene la capacidad de distinguir entre un uso autorizado y no autorizado. Un sistema puede tener la protección adecuada pero estar expuesto a fallos y permitir accesos inapropiados.

Es responsabilidad de los mecanismos de seguridad defender al sistema frente a ataques internos y externos y los ataques incluyen virus, gusanos, denegación de servicios, etc.

La protección y la seguridad requieren que el sistema pueda distinguir a todos sus usuarios y grupos de usuarios.

Sistemas Distribuidos

Un sistema distribuido es una colección de computadoras físicamente separadas y posiblemente heterogéneas que están conectadas en red para proporcionar a los usuarios acceso a los diversos recursos que el sistema mantiene. Acceder a un recurso compartido incrementa la velocidad de cálculo, la funcionalidad, la disponibilidad de los datos y la fiabilidad. Algunos sistemas operativos generalizan el acceso a red como una forma de acceso a archivo, manteniendo los detalles de la conexión de red en el controlador de dispositivos de la interfaz de red.

Un sistema operativo distribuido proporciona un entorno menos autónomo. Los diferentes sistemas operativos se comunican de modo que se crea la ilusión de que un único sistema operativo controla la red.

Sistemas de Propósito General

Sistemas embebidos en tiempo real

Computadoras predominantes actualmente (motores de automóviles, robots para fabricación), tienen tareas específicas. Los sistemas en los que operan son primitivos, disponen de interfaz limitada. Por lo general se encargan de monitorizar y gestionar dispositivos hardware.

Los sistemas embebidos casi siempre ejecutan sistemas operativos en tiempo real. Las computadoras con sistemas embebidos pueden ser:

• De propósito general que ejecuta sistemas operativos estándar, con aplicaciones de propósito especial para implementar la funcionalidad.

• Sistemas de hardware con sistemas operativos embebidos de propósito especial que sólo proporcionan la funcionalidad deseada.

Dispositivos de hardware con circuitos integrados específicos de la aplicación, que realizan sus tareas sin ningún SO.

Sistemas Multimedia

La mayor parte de los sistemas operativos están diseñados para gestionar datos convencionales, como archivos de texto, programas. Surgen con la incorporación de datos multimedia.

Las aplicaciones multimedia incluyen archivos de audio, películas de DVD, videoconferencia, webcats.

Sistemas de Mano

Los sistemas de mano incluyen PDA, tales como los Palm muchos de los cuales usan sistemas operativos embebidos de propósito especial. Los desarrolladores de aplicaciones y sistemas de mano se enfrentan a muchos retos, la mayoría de ellos debidos al tamaño.

Los dispositivos tienen muy poca memoria, procesadores lentos y pantallas de visualización pequeñas. Usan SO embebidos de propósito especial. Los problemas básicos que enfrentan son la poca memoria, los procesadores lentos y la E/S.

Entornos informáticos

Sistema informático tradicional

Actualmente proporciona más formas de acceso a estos entornos informáticos. La tecnología web se está extendiendo Portales Servicios, acceso a internet, con cómodos.

Hoy en día, los sistemas tradicionales de tiempo compartido no son habituales. Las mismas técnicas de planificación se usan todavía en estaciones de trabajo y servidores, aunque frecuentemente los procesos son todos propiedad del mismo usuario.

Estructuras De Sistemas Operativos

El sistema operativo presta ciertos servicios a los programas y a los usuarios de dichos programas. Estos servicios del sistema operativo se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo.

Un cierto conjunto de servicios del sistema operativo proporciona funciones que resultan útiles al usuario:

Interfaz de usuario.- tipos existentes es la interfaz de línea de comandos, que usa comandos de texto, otro tipo es la interfaz de proceso por lotes. Habitualmente se utiliza una interfaz grafica de usuario.

Ejecución de programas.- Para ejecutar un programa es preciso realizar una serie de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los dispositivos de E/S y los ficheros deben iniciarse, y deben prepararse otros recursos. El sistema operativo proporciona todo eso al usuario.

Operaciones de E/S.- Cada dispositivo de E/S necesita su conjunto particular de instrucciones y señales de control para poder operar. El sistema operativo se encarga de esos detalles para que el programador pueda pensar simplemente en términos de lecturas y escrituras.

Manipulación del sistema de archivos.- los programas necesitan ejecutar algunas operaciones sobre archivos y directorios como pueden ser: leer, escribir, crear, borrar, buscar; estos incluyen mecanismos de gestión de permisos para conceder o denegar el acceso a los archivos o directorios.

Comunicaciones.- los procesos necesitan intercambiar información con otros procesos, estas comunicaciones se pueden realizar a través de memoria compartida o por paso de mensajes.

Detección de errores.- El SO necesita detectar los posibles errores que surjan ya sea en el Hardware del procesador y de memoria, en un dispositivo de E/S o en programas de usuario.

Otros servicios orientados a garantizar la eficiencia del propio sistema entre los cuales están:

Asignación de recursos.- El SO gestiona muchos tipos diferentes de recursos; algunos pueden disponer de código software especial que gestione su asignación, otros pueden tener código que gestione de forma general.

Responsabilidad.- Conviene hacer un seguimiento de que usuarios emplean que clase de recursos de la computadora y en que cantidad.

Protección y seguridad.- La protección es asegurar que todos los accesos a los recursos del sistema estén controlados y garantizar la seguridad del sistema frente a posibles intrusos, mediante una contraseña.

Interfaz de usuario del sistema operativo

Interprete de comandos

Estos se conoce también como Shell, la función principal es obtener y ejecutar el siguiente comando especificado por el usuario. Algunos SO lo incluyen en el Kernel otros lo tratan como un programa especial que se ejecuta cuando se inicia un trabajo o una sesión.

Interfaz grafica de usuario

Los usuarios emplean un sistema de ventanas y menús controlables por medio del ratón.

Permite que el usuario interactue con el Sistema Operativo a través de una interfaz

Llamadas al sistema

Las llamadas al sistema proporcionan una interfaz con la que poder invocar los servicios que el sistema operativo ofrece. Es la única forma en la que un programa puede solicitar operaciones al SO.

Programas del sistema

Los programas del sistema proporcionan un cómodo entorno para desarrollar y ejecutar programas, pueden dividirse en las siguientes categorías.

Administración de Archivos: Estos programas crean, borran, copian, cambian de nombre, imprimen etc. De forma general manipulan archivos.

Información de Estado: Algunos programas solicitan al sistema la fecha, la hora, cantidad de memoria, espacio en disco, usuario.

Modificación de Archivos: editores de texto para crear y modificar el contenido de los archivos almacenados en el disco o en otros dispositivos.

Soporte de Lenguajes de Programación: Se proporcionan compiladores, ensambladores, depuradores en intérpretes para los lenguajes de programación (C, C++, Java).

Carga y Ejecución de Programas: los programas compilados deben cargarse en memoria para poder ejecutarse.

Comunicaciones: Proporcionan los mecanismos para crear conexiones virtuales entre procesos, usuarios y computadores.

Diseño e implementación del sistema operativo

Objetivos del diseño

Objetivos de Usuario: los usuarios desean ciertas propiedades como: sistema sea cómodo, fácil de utilizar y aprender, fiable, seguro y rápido.

Objetivos del Sistema: el sistema debería ser fácil de diseñar, implementar y mantener, flexible, fiable, libre de errores y eficiente.

Mecanismos y políticas

Un principio importante es el de separar las políticas de los mecanismos. Los mecanismos determinan como hacer algo, las políticas determinan que hacer.

La separación de políticas y mecanismos es importante por cuestiones de flexibilidad.

Implementación

Tradicionalmente los SO tenían que escribirse en lenguaje ensamblador hoy en día se escriben en Lenguaje de Alto Nivel como C o C++.

La Ventajas de usar un lenguaje de alto nivel:

El código puede escribirse más rápido, es más compacto y es más fácil de entender y depurar.

Las posibles desventajas de implementar un SO es un lenguaje de alto nivel se reducen a los requisitos de velocidad y de espacio de almacenamiento.

Estructura del sistema operativo

Un método habitual consiste en dividir la tarea en componentes más pequeños, en lugar de tener un Sistema Monolítico. Cada uno de estos módulos debe ser una parte bien definida del sistema, con entradas, salidas y funciones cuidadosamente especificadas.

Estructura simple

Proporciona la máxima funcionalidad en el menor espacio posible, por lo que no fue dividido en módulos de forma cuidadosa.

El kernel se divide en una serie de interfaces y controladores de dispositivo, que se han ido añadiendo y ampliando a lo largo de los años. El kernel proporciona el sistema de archivos, los mecanismos de planificación de la CPU, la funcionalidad de gestión de memoria y otras funciones del sistema operativo, a través de las llamadas al sistema.

Estructura en niveles

El sistema operativo se divide en una serie de capas, El nivel inferior (nivel 0) es le Hardware y el nivel superior (Nivel N) es la interfaz de usuario, también puede mantener un control mayor sobre la computadora y sobre las aplicaciones que hacen uso de dicha computadora.

Los niveles se seleccionan de manera que cada uno usa sus funciones y servicios de los niveles inferiores. Un nivel no necesita saber cómo se implementan las operaciones solo necesitan saber que hacen esas operaciones. Un problema con la implementación por niveles es que tiende a ser menos eficientes a ser menos que otros tipos de implementación

Microkernels

Normalmente los microkernels proporcionan una gestión de memoria y de procesos mínima, además un mecanismo de comunicaciones.

Su función principal es proporcionar un mecanismo de comunicaciones entre el programa cliente y los distintos servicios que se ejecutan en el espacio de usuario. Otra ventaja del microkernel es la facilidad para ampliar el sistema operativo, proporciona mas seguridad y fiabilidad, dado que la mayor parte de los servicios se ejecutan como procesos de usuario, en lugar de procesos de kernel.

Los microkernel pueden tener un rendimiento peor que otras soluciones debido a la carga de procesamiento adicional impuesta por las funciones del sistema.

Módulos

La mejor metodología es usar técnicas de programación orientada a objetos para crear un kernel modular, Tal estrategia utiliza módulos que se cargan dinámicamente y resulta habitual en las implementaciones modernas de UNIX.

Maquinas Virtuales

La idea fundamental que subyace a una maquina virtual es la de abstraer el hardware de la computadora formando varios entornos de ejecución diferentes, creando así la ilusión de que cada entorno de ejecución esta operando en su propia computadora privada.

Compartir el mismo hardware pero poder operar con entornos de ejecución diferentes (distintos SO) de forma concurrente ya que este proporcionan una interfaz idéntica a la del propio SO.

Implementación

Las acciones que dan lugar a la transferencia del modo usuario al modo kernel en una maquina real también tienen que hacer que se pase del modo usuario virtual al modo kernel virtual en una maquina virtual.

Tal transferencia puede conseguirse cuando se hace una llamada al sistema por parte de un programa que se este ejecutando en una maquina virtual en modo usuario virtual, se produce una transferencia al monitor de la maquina virtual en la maquina real.

Beneficios

Existe una protección completa de los diversos recursos del sistema. Cada maquina esta completamente aislada de las demás, por lo que no existen problemas de protección. Un sistema de maquina virtual es un medio perfecto para la investigación y el desarrollo de SO.

Ejemplos

VMware

Es una popular aplicación comercial que abstrae el hardware de Intel creando una serie de maquinas virtuales aisladas. Permite al sistema Host ejecutar de forma concurrente varios sistemas operativos huésped diferente como máquinas virtuales independientes.

Máquina Virtual Java:

La JVM es una especificación de una computadora abstracta, puede implementarse por software encima de un SO host (Windows, Linux, Mac OS X) o como parte de un explorador Web.


Resumen de cap1 y 2 : POR Esteban Chamba Jiménez

Libro: Fundamentos de sistemas operativos <SILBERSCHAT – GALVIN - GAGNE>

Otras Referencias

STALLINGS Organización y arquitectura de computadores.

PUENTE P. Andrés G. Universidad del BíoBío

http://www.alipso.com/monografias4/Sist_operativos/




Por: 21-04-2009 por pecaamano | Categorías asociadas: Capitulo 7

La administración de los recursos es una de las principales tareas del sistema operativo.

• Los sistemas operativos tienen que ofrecer mecanismos que permitan a los procesos acceder de forma exclusiva a este tipo de recursos.

• Cuando un proceso solicita ciertos recursos y éstos no están disponibles en ese momento, entra en un estado de espera.

• Requerir el acceso exclusivo no sólo a un recurso, sino a varios.

Un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de ellos espera un suceso que sólo puede originar otro proceso del mismo conjunto.

Condiciones para que se produzca interbloqueo

Puede surgir si y sólo si en un sistema se presentan simultáneamente las condiciones:

– Exclusión mutua.

– Retención y espera

– No expropiación

– Espera circular

• No son completamente independientes

Un ejemplo clásico de interbloqueo es el interbloqueo de tráfico

interbloqueo

Métodos para el tratamiento del interbloqueo

PREVENCIÓN

Objetivo: conseguir que sea imposible la aparición de situaciones de interbloqueo impedir que se produzca una de las cuatro condiciones necesarias para producirlo:

Exclusión mutua, retención y espera, no expropiación, espera circular.

EXCLUSIÓN MUTUA

– Existen recursos para los que no es posible negar la condición de exclusión mutua

– Ficheros: permiten múltiples accesos de lectura, pero únicamente un proceso puede escribir a la vez

– Es posible eliminar la condición de exclusión mutua en algunos recursos.

– Impresora Spooler.

RETENCIÓN Y ESPERA. - Forzar a un proceso a que libere todos los recursos que retiene cada vez que solicite un recurso que no esté disponible.

El proceso solicita los recursos de forma incremental a lo largo de su ejecución, pero libera todos los recursos retenidos si se encuentra con una negativa. Los cambios hechos sobre la memoria o sobre ficheros pueden corromper el sistema si no se llevan a término.

NO EXPROPIACIÓN

• Permitir que el sistema revoque la propiedad de ciertos recursos a los procesos bloqueados.

ESPERA CIRCULAR

• Ordenación lineal de los diferentes tipos de recursos del sistema.

• Los recursos del sistema se dividen en clases diferentes Cj,

• Los interbloqueos se previenen con 2 restricciones:

1 exigiendo que todos los procesos soliciten y adquieran sus recursos en un orden estrictamente creciente de las clases mencionadas.

2 La adquisición de todos los recursos pertenecientes a una misma clase debe efectuarse con una sola petición (no incrementalmente).




Por: 21-04-2009 por drtorres | Categorías asociadas: Opinion Conferencia

En pimer lugar esta conferencia fue más dirigida para los estudiantes de Comunicación Social, pero en algunas partes hablo sobre la importancia de las tecnologías que se las aplica al intecambio de información. A como la evolución de la informática ha revolucionado la forma en que las personas se comunican.

Además nos dio algunos consejos para las personas que quieren ser unos buenos comunicadores:

  1. Especializarce en temas, no en medios.
  2. Aprender a convertir las ideas en proyectos.
  3. Aprender a convertir los proyectos en negocios.
  4. Concentrarse en los lenguajes y en la narrativa, no en la tecnología.
  5. Comenzar a construir nuestra identidad profesional ahora.
  6. Aprende a trabajar con otras personas.
  7.  Aprende a pensar creativamente.
  8.  Aprende a trabajar rapido y bien.
  9.  Comenzar un blog
  10. Pregunta curiosidad.



Por: 21-04-2009 por Jorge Luis Veintimilla O. | Categorías asociadas: Capitulo 7

RESUMEN CAP. 7 “INTERBLOQUEOS”

Un interbloqueo o bloqueo mutuo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema.

un proceso puede emplear un recurso siguiendo la siguiente secuencia:

  1. Solicitud: si la solicitud no puede ser concedida inmediatamente, entonces el proceso solicitante tendrá que esperar hasta que pueda adquirir el recurso.
  2. Uso: el proceso puede operar sobre el recurso.
  3. Liberación: el proceso libera el recurso.

Un interbloqueo se puede dar en las siguientes condiciones necesarias:

  • Exclusión mutua: al menos un recurso debe estar en modo no compartido.
  • Retención y espera: un proceso debe estar reteniendo al menos un recurso y esperando para adquirir otros recursos adicionales.
  • Sin desalojo: los recursos solo pueden ser liberados voluntariamente por el proceso que los retiene.
  • Esperar circular: debe existir un conjunto de procesos en espera, tal que cada proceso esté esperando a un recurso determinado.

Cuando ocurre un interbloqueo lo podemos tratar de tres formas:

  • La utilización de un protocolo para evitar los interbloqueos, asegurando que el sistema nunca entre en estado de interbloqueo.
  • Permitir que el sistema entre en un estado de interbloqueo, detectarlo y realizar una recuperación.

  • Ignorar los interbloqueos en el sistema.

Para tratar los interbloqueos, existen los algoritmos de prevención de interbloqueos, los cuales restringen el modo en que pueden hacerse las solicitudes, estas restricciones aseguran que al menos una de las condiciones necesarias para que haya interbloqueo no se produzca y, por tanto no pueda aparecer interbloqueos. El contra de utilizar estos algoritmos es de que se da una baja tasa de utilización de los dispositivos y un menor rendimiento del sistema.

BIBLIOGRAFÍA

  • SILBERSCHATS, GALVIN, GAGNE, “Fundamentos de Sistemas Operativos”, Séptima Edición, McGraw-Hill, España, 2006

Enlaces Web:

  • http://technet.microsoft.com/es-es/library/ms177433.aspx
  • http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/CINTIN02.htm



Por: 21-04-2009 por smcarrion | Categorías asociadas: Capitulo 7, Paralelo "B", Uncategorized

Nombre: Stalin Carrión Pardo

INTERBLOQUEOS

Un sistema constante un número finito de recursos, que se distribuyen entre una serie de procesos en competición, los recursos se dividen en varios tipos costando cada uno de ellos de un cierto número de instancias. El espacio de memoria, los ciclos de cerca de CPU, los archivos y dispositivos de E/S.
si un proceso solicita una instancia de un tipo de recurso, la asignación de cualquier instancia del tipo satisfará la solicitud.
Un proceso debe solicitar cada recurso antes de utilizarlo y debe liberarlo después de usado, podemos decir que un proceso puede solicitar tantos recursos como necesite para llevar a cabo las tareas que tengan asignadas, un proceso puede emplear un recurso siguiendo la siguiente secuencia:

1. Solicitud: si la solicitud no puede ser concedida inmediatamente, entonces el proceso solicitante tendrá que esperar hasta que pueda adquirir el recurso.

2. Uso: el proceso puede operar sobre el recurso.
3. Liberación: el proceso libera el recurso.
La solicitud y liberación de los recursos que sistema operativo no gestiona puede hacerse mediante las operaciones wait() y signal() de los semáforos, o a través de la adquisición y liberación de un cerrojo mútex.
Los interbloqueos también pueden implicar tipos de recursos diferentes.
Los programas multihebra son buenos candidatos para los interbloqueos, porque las distintas hebras pueden competir por la utilización de recursos compartidos.
En un interbloqueo los procesos nunca terminan de ejecutarse y los recursos del sistema están ocupados, lo que impide que se inicien otros trabajos.

Condiciones necesarias en un sistema:
1. Exclusión mutua: al menos un recurso debe estar en modo no compartido; es decir sólo un proceso puede usarlo cada vez.
2. Retención y espera: un proceso debe estar reteniendo al menos un recurso y esperando para adquirir otros recursos adicionales que actualmente esten retenidos por otros procesos.
3. Sin desalojo: los recursos no puede ser desalojados, es decir un recurso sólo puede ser liberado voluntariamente por el proceso que le retiene después de que dicho proceso haya terminado su tarea.
4. Espera circular: debe existir un conjunto {Po P1,…., Pn} de procesos en espera.

Los interbloqueos pueden definirse de forma más precisa mediante un grafos dirigido que se llaman grafos de asignación de recursos del sistema, esperanzó constante un conjunto de vértices V y de un conjunto de aristas E.

Métodos para tratar los interbloqueos

Podemos abordar el problema de los interbloqueos de una de tres formas:
podemos emplear un protocolo para impedir puede evitar los interbloqueos, asegurando que el sistema nunca entre en estado de interbloqueo.

  • Podemos permitir que sistema entre en estado de interbloqueo, detectarlo y realizar una recuperación.
  • Podemos ignorar el problema y actuar como si nunca se produjeran interbloqueos en el sistema.

Para garantizar que nunca se produzcan interbloqueos, el sistema puede emplear un esquema de prevención de interbloqueos o un esquema de evasión de interbloqueos. La prevención de interbloqueos proporciona un conjunto de métodos para asegurarse que al menos una de las condiciones necesarias no pueda cumplirse.
La evasión de interbloqueos requiere que se proporcione de antemano al sistema operativo información adicional sobre qué recursos solicitara y utilizará un proceso durante su tiempo de vida.
Un método alternativo para evitar los interbloqueos consiste en requerir información adicional sobre cómo van a ser solicitados los recursos, por ejemplo en un sistema que disponga de una unidad de cinta y de una impresora, el sistema necesita saber que el proceso P va a requerir primero la unidad de cinta y después la impresora antes de liberar ambos recursos, mientras que proceso Q va a requerir primero la impresora y luego la unidad de cinta.
Un estado es seguro si el sistema puede asignar recursos a cada proceso en determinado orden sin que esto produzca un interbloqueo, un sistema esta en estado seguro sólo si existe lo que se denomina una secuencia segura.
Si tenemos un sistema de asignación de recursos con sólo una instancia de cada tipo de recursos, puede utilizarse una variante de grafos de asignación de recursos para evitar los interbloqueos.
El algoritmo del grafo de asignación de recursos no es aplicable a los sistemas de asignación de recursos con múltiples instancias de cada tipo de recurso, el algoritmo del banquero se eligio con este nombre porque el algoritmo podría utilizarse en los sistemas bancarios para garantizar el banco nunca asigne sus fondos disponibles de tal forma que no pueda satisfacer las necesidades de todos sus clientes, cuando entra en el sistema un proceso nuevo debe declarar un número máximo de instancias de cada tipo de recursos que pueden necesitar.
Si un sistema no emplea ni algoritmo de prevención ni de evasión de interbloqueos entonces puede producirse una situación de interbloqueo en el sistema en este caso el sistema debe proporcionar:

  • Un algoritmo que examine el estado del sistema para determinar si se ha producido un interbloqueo.
  • Un algoritmo para recuperarse del interbloqueo.

Cuando un algoritmo de detección determina que existen interbloqueo tenemos varias alternativas, una posibilidad es informar al operador que se ha producido un interbloque o y dejar que la trata de forma manual otra posibilidad es dejar que sea el sistema el que haga la recuperación del interbloqueo de forma automática.

Para eliminar los interbloqueos interrumpiendo un proceso, se utiliza uno de los dos posibles métodos:
interrumpir todos los procesos interbloqueados: este método interrumpirá el ciclo de interbloqueo, pero a un precio muy alto.
Interrumpir un proceso cada vez hasta que el ciclo de interbloqueo se elimine: este método requiere una gran cantidad de trabajo adicional, ya que después de haber interrumpido cada proceso hya que invocar un algoritmo de detección de interbloqueos para determinar si todavía hay procesos en interbloqueo.
Para eliminar los interbloqueos utilizando el método de apropiación de recursos, desalojamos de forma sucesiva los recursos de los procesos y asignamos dichos recursos a otros procesos hasta que el ciclo de interbloqueo se interrumpa.