jueves, 10 de diciembre de 2009

5.1 PRINCIPIOS DE HARDWARE DE IO

Es necesario proteger la información alojada en el sistema de archivos, efectuando los resguardos correspondientes [23, Tanenbaum].
De esta manera se evitan las consecuencias generalmente catastróficas de la pérdida de los sistemas de archivos.
Las pérdidas se pueden deber a problemas de hardware, software, hechos externos, etc.
Manejo de un bloque defectuoso:
Se utilizan soluciones por hardware y por software.
La solución en hardware:
Consiste en dedicar un sector del disco a la lista de bloques defectuosos. Al inicializar el controlador por primera vez: Lee la “lista de bloques defectuosos”. Elige un bloque (o pista) de reserva para reemplazar los defectuosos. Registra la asociación en la lista de bloques defectuosos. En lo sucesivo, las solicitudes del bloque defectuoso utilizarán el de repuesto. La solución en software: Requiere que el usuario o el sistema de archivos construyan un archivo con todos los bloques defectuosos. Se los elimina de la “lista de bloques libres”. Se crea un “archivo de bloques defectuosos”: Esta constituido por los bloques defectuosos. No debe ser leído ni escrito. No se debe intentar obtener copias de respaldo de este archivo. Respaldos (copias de seguridad o de back-up): Es muy importante respaldar los archivos con frecuencia.
Los respaldos pueden consistir en efectuar copias completas del contenido de los discos (flexibles o rígidos).
Una estrategia de respaldo consiste en dividir los discos en áreas de datos y áreas de respaldo, utilizándolas de a pares:
Se desperdicia la mitad del almacenamiento de datos en disco para respaldo. Cada noche (o en el momento que se establezca), la parte de datos de la unidad 0 se copia a la parte de respaldo de la unidad 1 y viceversa. Otra estrategia es el vaciado por incrementos o respaldo incremental : Se obtiene una copia de respaldo periódicamente (por ej.: una vez por mes o por semana), llamada copia total. Se obtiene una copia diaria solo de aquellos archivos modificados desde la última copia total; en estrategias mejoradas, se copian solo aquellos archivos modificados desde la última vez que dichos archivos fueron copiados. Se debe mantener en el disco información de control como una “lista de los tiempos de copiado” de cada archivo, la que debe ser actualizada cada vez que se obtienen copias de los archivos y cada vez que los archivos son modificados. Puede requerir una gran cantidad de cintas de respaldo dedicadas a los respaldos diarios entre respaldos completos. Consistencia del sistema de archivos: Muchos sistemas de archivos leen bloques, los modifican y escriben en ellos después.
Si el sistema falla antes de escribir en los bloques modificados, el sistema de archivos puede quedar en un “estado inconsistente”.
La inconsistencia es particularmente crítica si alguno de los bloques afectados son:
Bloques de nodos-i. Bloques de directorios. Bloques de la lista de bloques libres. La mayoría de los sistemas dispone de un programa utilitario que verifica la consistencia del sistema de archivos: Se pueden ejecutar al arrancar el sistema o a pedido. Pueden actuar sobre todos o algunos de los discos. Pueden efectuar verificaciones a nivel de bloques y a nivel de archivos. La consistencia del sistema de archivos no asegura la consistencia interna de cada archivo, respecto de su contenido. Generalmente pueden verificar también el sistema de directorios y / o de bibliotecas. Generalmente los utilitarios utilizan dos tablas: Tabla de bloques en uso. Tabla de bloques libres. Cada bloque debe estar referenciado en una de ellas. Si un bloque no aparece en ninguna de las tablas se trata de una falla llamada bloque faltante: No produce daños pero desperdicia espacio en disco. Se soluciona añadiendo el bloque a la tabla de bloques libres. También podría detectarse la situación de falla debida a un bloque referenciado dos veces en la tabla de bloques libres: Esta falla no se produce en los sistemas de archivos basados en mapas de bits, sí en los basados en tablas o listas. La solución consiste en depurar la tabla de bloques libres. Una falla muy grave es que el mismo bloque de datos aparezca referenciado dos o más veces en la tabla de bloques en uso: Como parte del mismo o de distintos archivos. Si uno de los archivos se borra, el bloque aparecería en la tabla de bloques libres y también en la de bloques en uso. Una solución es que el verificador del sistema de archivos: Asigne un bloque libre. Copie en el bloque libre el contenido del bloque conflictivo. Actualice las tablas afectando el bloque copia a alguno de los archivos. Agregue el bloque conflictivo a la tabla de bloques libres. Informe al usuario para que verifique el daño detectado y la solución dada. Otro error posible es que un bloque esté en la tabla de bloques en uso y en la tabla de bloques libres: Se soluciona eliminándolo de la tabla de bloques libres. Las verificaciones de directorios incluyen controles como: Número de directorios que apuntan a un nodo-i con los contadores de enlaces almacenados en los propios nodos-i; en un sistema consistente de archivos deben coincidir. Una posible falla es que el contador de enlaces sea mayor que el número de entradas del directorio: Aunque se eliminaran todos los archivos de los directorios el contador sería distinto de cero y no se podría eliminar el nodo-i. No se trata de un error serio pero produce desperdicio de espacio en disco con archivos que no se encuentran en ningún directorio. Se soluciona haciendo que el contador de enlaces en el nodo-i tome el valor correcto; si el valor correcto es 0, el archivo debe eliminarse. Otro tipo de error es potencialmente catastrófico: Si dos entradas de un directorio se enlazan a un archivo, pero el nodo-i indica que solo existe un enlace, entonces, al eliminar cualquiera de estas entradas de directorio, el contador del nodo-i tomará el valor 0. Debido al valor 0 el sistema de archivos lo señala como no utilizado y libera todos sus bloques. Uno de los directorios apunta hacia un nodo-i no utilizado, cuyos bloques se podrían asignar entonces a otros archivos. La solución es forzar que el contador de enlaces del nodo-i sea igual al número de entradas del directorio. También se pueden hacer verificaciones heurísticas, por ej.: Cada nodo-i tiene un modo, pero algunos modos son válidos aunque extraños: Ej.: Se prohibe el acceso al propietario y todo su grupo, pero se permite a los extraños leer, escribir y ejecutar el archivo. La verificación debería detectar e informar de estas situaciones. Se debería informar como sospechosos aquellos directorios con excesivas entradas, por ej., más de mil. Inicio: Fin: Desempeño del Sistema de Archivos
El acceso al disco es mucho más lento que el acceso a la memoria:
Los tiempos se miden en milisegundos y en nanosegundos respectivamente. Se debe reducir el número de accesos a disco. La técnica más común para reducir los accesos a disco es el bloque caché o buffer caché[23, Tanenbaum]: Se utiliza el término ocultamiento para esta técnica (del francés “cacher”: ocultar). Un caché es una colección de bloques que pertenecen desde el punto de vista lógico al disco, pero que se mantienen en memoria por razones de rendimiento. Uno de los algoritmos más comunes para la administración del caché es el siguiente: Verificar todas las solicitudes de lectura para saber si el bloque solicitado se encuentra en el caché. En caso afirmativo, se satisface la solicitud sin un acceso a disco. En caso negativo, se lee para que ingrese al caché y luego se copia al lugar donde se necesite. Cuando hay que cargar un bloque en un caché totalmente ocupado: Hay que eliminar algún bloque y volverlo a escribir en el disco en caso de que haya sido modificado luego de haberlo traído del disco. Se plantea una situación muy parecida a la paginación y se resuelve con algoritmos similares. Se debe considerar la posibilidad de una falla total del sistema y su impacto en la consistencia del sistema de archivos: Si un bloque crítico, como un bloque de un nodo-i, se lee en el caché y se modifica, sin volverse a escribir en el disco, una falla total del sistema dejará al sistema de archivos en un estado inconsistente. Se deben tener en cuenta los siguientes factores: ¿ Es posible que el bloque modificado se vuelva a necesitar muy pronto ?: Los bloques que se vayan a utilizar muy pronto, como un bloque parcialmente ocupado que se está escribiendo, deberían permanecer un “largo tiempo”. ¿ Es esencial el bloque para la consistencia del sistema de archivos ?: Si es esencial (generalmente lo será si no es bloque de datos) y ha sido modificado, debe escribirse en el disco de inmediato: Se reduce la probabilidad de que una falla total del sistema haga naufragar al sistema de archivos. Se debe elegir con cuidado el orden de escritura de los bloques críticos. No es recomendable mantener los bloques de datos en el caché durante mucho tiempo antes de reescribirlos. La solución de algunos S. O. consiste en tener una llamada al sistema que fuerza una actualización general a intervalos regulares de algunos segundos (por ej. 30). Otra solución consiste en escribir los bloques modificados (del caché) al disco, tan pronto como haya sido escrito (el caché):
Se dice que se trata de cachés de escritura. Requiere más e / s que otros tipos de cachés. Una técnica importante para aumentar el rendimiento de un sistema de archivos es la reducción de la cantidad de movimientos del brazo del disco (mecanismo de acceso): Se deben colocar los bloques que probablemente tengan un acceso secuencial, próximos entre sí, preferentemente en el mismo cilindro. Los nodos-i deben estar a mitad del disco y no al principio, reduciendo a la mitad el tiempo promedio de búsqueda entre el nodo-i y el primer bloque del archivo. Inicio: Fin: Descriptor de Archivos
El descriptor de archivos o bloque de control de archivos es un bloque de control que contiene información que el sistema necesita para administrar un archivo [7, Deitel].
Es una estructura muy dependiente del sistema.
Puede incluir la siguiente información:
Nombre simbólico del archivo. Localización del archivo en el almacenamiento secundario. Organización del archivo (método de organización y acceso). Tipo de dispositivo. Datos de control de acceso. Tipo (archivo de datos, programa objeto, programa fuente, etc.). Disposición (permanente contra temporal). Fecha y tiempo de creación. Fecha de destrucción. Fecha de la última modificación. Suma de las actividades de acceso (número de lecturas, por ejemplo). Los descriptores de archivos suelen mantenerse en el almacenamiento secundario; se pasan al almacenamiento primario al abrir el archivo. El descriptor de archivos es controlado por el sistema de archivos; el usuario puede no hacer referencia directa a él.
Inicio: Fin:
Seguridad

Los sistemas de archivos generalmente contienen información muy valiosa para sus usuarios, razón por la que los sistemas de archivos deben protegerla [23, Tanenbaum].
El Ambiente de Seguridad

Se entenderá por seguridad a los problemas generales relativos a la garantía de que los archivos no sean leídos o modificados por personal no autorizado; esto incluye aspectos técnicos, de administración, legales y políticos.

Se consideraran mecanismos de protección a los mecanismos específicos del sistema operativo utilizados para resguardar la información de la computadora.
La frontera entre seguridad y mecanismos de protección no está bien definida.

5.1.1 DISPOSITIVOS DE IO

El MPU usa 8 líneas de dirección para identificar dispositivos de I/O.
A este tipo de direccionamiento se le conoce como Peripherals-mapped I/O
El MPU puede identificar hasta 256 (28 = 256) dispositivos de entrada y 256 de salida
Los dispositivos de entrada y salida son diferenciados por las señales de control I/O Read e I/O Write


El rango de direcciones es de 00H a FFH es conocido como el mapa de I/O
Las direcciones son referidas como dirección del dispositivo o número de puerto de I/O
Para conectar dispositivos de I/O se deben resolver dos problemas
◦Como asignarles una dirección
◦Como conectarlos al bus de datos

En una arquitectura de bus, los dispositivos no pueden conectarse directamente al bus de datos o direcciones.
Todos los dispositivos deben conectarse a través de un dispositivo de interfaz tri-estado
De esta manera, los dispositivos estarán conectados y habilitados solamente si el MPU escoge comunicarse con ellos.

5.1.2 CONTROLADORES DE DISPOSITIVOS

Un controlador de dispositivo, llamado normalmente controlador (en inglés, device driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica cómo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podría usar el hardware.


Existen tantos tipos de controladores como tipos de periféricos, y es común encontrar más de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. Por ejemplo, aparte de los oficiales (normalmente disponibles en la página web del fabricante), se pueden encontrar también los proporcionados por el sistema operativo, o también versiones no oficiales hechas por terceros.
Debido que el software de controladores de dispositivos se ejecuta como parte del sistema operativo, con acceso sin restricciones a todo el equipo, resulta esencial que sólo se permitan los controladores de dispositivos autorizados. La firma y el almacenamiento provisional de los paquetes de controladores de dispositivos en los equipos cliente, mediante las técnicas descritas en esta guía, proporcionan las ventajas siguientes:


Seguridad mejorada. Puesto que los usuarios estándar no pueden instalar controladores de dispositivos que no estén firmados o que estén firmados por un editor que no es de confianza, los administradores tendrán un control riguroso respecto a los controladores de dispositivos que pueden usarse en una organización. Podrán impedirse los controladores de dispositivos desconocidos, así como cualquier controlador de dispositivo que el administrador no permita expresamente. Mediante el uso de directivas de grupo, un administrador puede proporcionar a todos los equipos cliente de una organización los certificados de los editores que se consideren de confianza, permitiendo la instalación de los controladores sin intervención del usuario, para comprobar que se trata de una firma digital de confianza.


Reducción de los costes de soporte técnico. Los usuarios sólo podrán instalar los dispositivos que hayan sido probados y admitidos por la organización. En consecuencia, el sistema permite mantener la seguridad del equipo, al tiempo que se reducen las solicitudes del departamento de soporte técnico.


Experiencia de usuario mejorada. Un paquete de controladores firmado por un editor de confianza y almacenado provisionalmente en el almacén de controladores funciona de modo automático, cuando el usuario conecta el dispositivo al equipo. No se requiere acción alguna por parte del usuario.

5.2 PRINCIPIOS DE SOFTWARE DE IO

El control de los dispositivos Entrada/Salida (Input/Output – I/O) del computador, es una de las labores más importantes que realiza el Sistema Operativo.


Manejo de interrupciones, controladores de dispositivos e interfaces al usuario son algunos de los componentes que se estudian en esta unidad, que permiten al SO orquestar el conjunto de aparatos conectados al computador.

A excepción de contados casos, los dispositivos de I/O pueden clasificarse en 2 grandes grupos:

Dispositivos de Bloques: aquellos que almacenan información en bloques de tamaño fijo, usualmente entre 512b y 32kb. Cada bloque puede ser leído o escrito de forma independiente. Ej: discos, discos USB.
Dispositivos de caracteres: acepta o suministra un flujo de caracteres no estructurados. No son direccionables ni pueden desplazarse en los datos.
Ej: teclado, mouse, red, etc.
Excepciones: relojes, video mapeado en memoria, etc.

5.2.2 MANEJADORES DE INTERRUPCIONES

Definición de Manejador de interrupción(interrupt handler).

Un manejador de interrupciones, también conocido como ISR (interrupt service routine o rutina de servicio de interrupción), es una subrutina callback en un sistema operativo o en un controlador de dispositivo cuya ejecución es desencadenada por la recepción de una interrupción. Los manejadores de instrucciones tienen una multitud de funciones, que varían basadas en el motivo por el cual la interrupción fue generada y la velocidad en la cual el manejador de interrupciones completa su tarea.Estos manejadores pueden ser iniciados por interrupciones de hardware o de software, y son usados para servir a los dispositivos de hardware y transiciones entre modos protegidos de operación como los llamados de sistema


INTERRUPCIONES
El periférico lleva la iniciativa.
Una interrupción de E/S es asíncrona con respecto a la ejecución de las instrucciones.
No esta asociada a ninguna instrucción.
El periférico estará conectado a una línea de interrupciones del procesador.
Se necesita especificar el identificador del periférico que realizara la interrupción.
Es habitual que haya interrupciones más urgentes que otras, por lo que se requiere algún sistema de prioridades.
Se requiere hardware especial (causar y detectar interrupción).

Proceso de Interrupción

Activación, por parte del periférico, de la línea de interrupción.
Suspensión de la ejecución del programa en curso:
Termina la instrucción en curso.
Almacenamiento del estado del procesador (PC y otros reg.).
Identificación de la fuente de la interrupción.
Carga y ejecución de la rutina de interrupción.
Recuperación del estado anterior a la interrupción.
Reanulación de la ejecución del programa interrumpido.

5.2.3 MANEJADOR DE DISPOSITIVOS

Dispositivos de interfaz de usuario. Se llama así a los dispositivos que permiten la comunicación entre los usuarios y la computadora. Dentro de este grupo se incluyen todos los dispositivos que sirven para proporcionar interfaz con el usuario, tanto para entrada (ratón, teclado, etc.) como para salida (impresoras, pantalla, etc.). Existen periféricos menos habituales, pero más sofisticados, tales como un escáner, lectores de huella digital, lectores de cinta magnética, instrumentos musicales digitales (MIDI), etc.

• Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento no volátil de datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la UCP. Según su capacidad y la inmediatez con que se puede acceder a los datos almacenados en estos dispositivos, se pueden dividir en almacenamiento secundario (discos y disquetes) y terciario (cintas)

Periféricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a través de las unidades de entrada/salida. Son el componente mecánico que se conecta a la computadora.

• Controladores de dispositivos o unidades de E/S. Se encargan de hacer la transferencia de información entre la memoria principal y los periféricos. Son el componente electrónico a través del cual se conecta el dispositivo de E/S. Tienen una conexión al bus de la computadora y otra para el dispositivo (generalmente mediante cables internos o externos).

* Contienen el código dependiente del dispositivo
*Cada manejador mantiene su cola de solicitudes

5.2.4 SOFTWARE DE IO INDEPENDIENTE DE DISPOSITIVOS

Objetivos del Software de IO
Un concepto clave es la independencia del dispositivo:
• Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos, sin tener que modificar los programas para cada tipo de dispositivo.
• El problema debe ser resuelto por el S. O.
El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del dispositivo.
Todos los archivos y dispositivos adquieren direcciones de la misma forma, es decir mediante el nombre de su ruta de acceso.
Otro aspecto importante del software es el manejo de errores de e / s:
• Generalmente los errores deben manejarse lo más cerca posible del hardware.
• Solo si los niveles inferiores no pueden resolver el problema, se informa a los niveles superiores.
• Generalmente la recuperación se puede hacer en un nivel inferior y de forma transparente. Otro aspecto clave son las transferencias síncronas (por bloques) o asíncronas (controlada por interruptores):
• La mayoría de la e / s es asíncrona: la cpu inicia la transferencia y realiza otras tareas hasta una interrupción.
• La programación es más fácil si la e / s es síncrona (por bloques): el programa se suspende automáticamente hasta que los datos estén disponibles en el buffer.
El S. O. se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario.
También el S. O. debe administrar los dispositivos compartidos (ej.: discos) y los de uso exclusivo (ej.: impresoras).
Generalmente el software de e / s se estructura en capas (ver Figura 5.3 [23, Tanenbaum]):
• Manejadores de interrupciones.
• Directivas de dispositivos.
• Software de S. O. independiente de los dispositivos.
• Software a nivel usuario.

5.3 DISCOS RAM

Puedes reservar una parte de la memoria de tu ordenador para que funcione como unidad de disco, llamada disco RAM. Con un disco RAM, puedes grabar y recuperar archivos con gran rapidez, pero el almacenamiento de los archivos es sólo temporal.
La velocidad es mayor si utilizas un disco RAM, y además ahorrarás energía, ya que el ordenador consume menos y tarda menos en acceder a la RAM que en acceder a un disco duro.

A los usuarios de PowerBook el disco RAM les resultará útil para maximizar la duración de las baterías.
Pueden guardar los archivos más utilizados en el disco RAM, ya que acceder a él consume menos que acceder a las unidades de disco duro. Además, el hecho de acceder con frecuencia a archivos en disco RAM permite a los PowerBook "frenar" más a menudo el giro del disco rígido interno.
La memoria asignada a un disco RAM no está disponible para programas; tenlo presente a la hora de seleccionar el tamaño del disco RAM. Lo normal es que represente entre un 25 y un 50% de la memoria disponible, ya que de no ser así otras aplicaciones no tendrían suficiente RAM para funcionar correctamente.

5.4. DISCOS DUROS

es un dispositivo de almacenamiento no volátil, es decir conserva la información que le ha sido almacenada de forma correcta aun con la perdida de energía, emplea un sistema de grabación magnética digital, es donde en la mayoría de los casos se encuentra almacenado el sistema operativo de la computadora. En este tipo de disco se encuentra dentro de la carcasa una serie de platos metálicos apilados girando a gran velocidad. Sobre estos platos se sitúan los cabezales encargados de leer o escribir los impulsos magnéticos. Hay distintos estándares a la hora de comunicar un disco duro con la computadora. Existen distintos tipos de interfaces las más comunes son: Integrated Drive Electronics (IDE, también llamado ATA) , SCSI generalmente usado en servidores, SATA, este último estandarizado en el año 2004 y FC exclusivo para servidores.

5.5 RELOJES

Son el medio por el cual funciona la CPU. Básicamente todo sistema de computadora cuenta con un cristal de cuarzo que vibra a determinada frecuencia. Incluso, cuando se compra un procesador, lo primero que se hace es saber a qué velocidad de reloj trabajará éste. Actualmente se cuentan con procesadores capaces de trabajar a velocidades que varían desde los 800 Mega Hertz hasta los 4 Giga Hertz o más. Un Hertz está definido como el tiempo que transcurre durante un ciclo completo, donde un ciclo se define como un pico y un valle.

5.5.1 HARDWARE DE DISCOS

Se compone de muchos elementos; citaremos los más importantes de cara a entender su funcionamiento. En primer lugar, la información se almacena en unos finos platos o discos, generalmente de aluminio, recubiertos por un material sensible a alteraciones magnéticas. Estos discos, cuyo número varía según la capacidad de la unidad, se encuentran agrupados uno sobre otro y atravesados por un eje, y giran continuamente a gran velocidad.
Asimismo, cada disco posee dos diminutos cabezales de lectura/escritura, uno en cada cara. Estos cabezales se encuentran flotando sobre la superficie del disco sin llegar a tocarlo, a una distancia de unas 3 o 4 micropulgadas (a título de curiosidad, podemos comentar que el diámetro de un cabello humano es de unas 4.000 micropulgadas). Estos cabezales generan señales eléctricas que alteran los campos magnéticos del disco, dando forma a la información. (dependiendo de la dirección hacia donde estén orientadas las partículas, valdrán 0 o valdrán 1).
La distancia entre el cabezal y el plato del disco también determinan la densidad de almacenamiento del mismo, ya que cuanto más cerca estén el uno del otro, más pequeño es el punto magnético y más información podrá albergar.

5.5.2 SOFTWARE RELOJ

Una computadora personal tiene un reloj de hardware alimentado por una batería. Esa batería asegura que el reloj continúe trabajando aún cuando la computadora se encuentre sin suministro eléctrico. El reloj de hardware puede ser modificado (o definido) desde la pantalla de configuración de la BIOS o desde cualquier sistema operativo.

El kernel Linux mantiene la fecha y hora de manera independiente al reloj de hardware. Durante el inicio de un sistema Linux, el kernel configura su propio reloj de software accediendo a la fecha y hora mantenida por el reloj de hardware. Luego, ambos relojes trabajan independientemente. Linux mantiene su propio reloj debido a que leer el reloj de hardware constantemente es lento y complicado.

5.5.3 MANEJADOR DE RELOJ

Las principales funciones del software manejador del reloj son:
 Mantener la hora del día o tiempo real
 Evitar que los procesos se ejecuten durante mas tiempo del permitido
 Mantener un registro del uso de la CPU
 Controlar llamadas al sistema tipo “alarm” por parte de los procesos del usuario
 Proporcionar cronómetros guardianes de partes del propio sistema
 Realizar resúmenes, monitoreo y recolección de estadísticas
El software manejador del reloj puede tener que simular varios relojes virtuales con un único reloj físico.


5.6 TERMINALES

Dispositivo del hardware electrónico o electromecánico que se usa para introducir o mostrar datos de una computadora. Su funcion es mostrar y recibir datos con capacidad significativa del procesador de datos, puede ser llamado “Terminal inteligente o cliente lijero”.
Una computadora puede ejecutar software que envie la funcion de un terminal en cocaciones permitiendo el uso simultaneo de programas locales y acceso a un servidor.

5.6.1 HARDWARE DE TERMINALES

Puertos serie hay de 2 tipos: Los DB25 y los DB9.
Los DB9 son los vulgarmente (e incorrectamente) conocidos como puertos de mouse. Tienen 9 patillas y son "macho" es decir: que las patillas son pinchos. En los conectores "hembra", las patillas son orificios para que entren los pinchos. Cualquier semejanza con el sexo real está hecha con toda la intencionalidad. :-)


Puerto serie DB9
A continuación os pongo un "gráfico" cutre para que sepáis que es lo que hay que ver detrás del PC para localizar el puerto serie:
.---------------.
\ o o o o o /
\ o o o o /
`-----------'
Si localizáis alguno, que además tiene que ser macho (pinchos) seguramente se trata de un puerto serie.
Si lo encontráis en su versión "hembra" (con orificios) se trata de el adaptador de VÍDEO (CGA, Hércules, EGA o VGA-digital).
Puerto serie DB25
También podéis encontrar su versión de 25 pines:
.-------------------------------.
\ o o o o o o o o o o o o o /
\ o o o o o o o o o o o o /
`---------------------------'
Igualmente, las patillas tienen que ser pinchos. Si son orificios, se trata de un puerto de impresora.

5.6.2 MANEJADORES

El manejador es responsable de las siguientes tareas:
1 Interacción con el manejador de archivos: Los datos en la base se guardan en disco mediante el sistema de archivos, proporcionado comúnmente por el sistema operativo. El manejador de la base, traduce las diferentes proposiciones del manejo de datos en comandos del sistema de archivos de bajo nivel. De esta forma el manejador se puede encargar del almacenamiento, recuperación y actualización de los datos en la base.
2 Implantación de la integridad: Los valores de los datos que se almacenan en la base, deben satisfacer ciertas limitantes de consistencia, estas limitantes deben ser determinadas por el administrador, pero es el manejador el encargado de verificar que las actualizaciones que se hagan a la base cumplan con dichas normas.
3 Puesta en práctica de la seguridad: El manejador de la base es quien verifica que los accesos a la base sean realizados por las personas autorizadas.
4 Respaldo y recuperación: Entre las labores que debe ejecutar el manejador está la de verificar de forma constante la integridad de la base, y lograr recuperación de datos y/o mejoras en caso que se requieran.
5 Control de concurrencia: Se podría entender, esta, como la principal tarea del manejador de la base, o por lo menos la más difícil. Cuando varios usuarios están accesando la base al mismo tiempo, es posible que la consistencia de los datos no se conserve. El manejador debe encargarse de coordinar los accesos de los diferentes usuarios, de forma que los datos en la base no se dañen.

lunes, 23 de noviembre de 2009

4.1 GESTIÓN DE MEMORIA

La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella.
Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los que no.
El propósito principal de una computadora es el de ejecutar programas, estos programas, junto con la información que accesan deben de estar en la memoria principal (al menos parcialmente) durante la ejecución.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administración tanto del procesador como de la memoria. La selección de uno de ellos depende principalmente del diseño del hardware para el sistema.

4.1.1 ORGANIZACIÓN DE LA MEMORIA

Existen tres tipos de memoria:
Una: la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podrá ser leida por el pic (el pic va leyendo las instrucciones del programa almacenado en esta memoria y las va ejecutando). Al apagar el pic esta memoria no se borra.
Dos: la memoria RAM en cuyos registros se irán almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra.
Tres: la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables que queremos conservar aunque se apague el pic. No se tratará aquí por ser una memoria mas difícil de emplear.

4.1.2 ADMINISTRADOR DE LA MEMORIA

Son los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.

4.1.3 JERARQUIA DE LA MEMORIA

Organización piramidal de la memoria en niveles, que tienen los ordenadores.
Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en:
* Cantidad
* Velocidad
* Coste


4.1.4 ESTRATEGIAS PARA LA ADMINISTRACIÓN DE MEMORIA

La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica.


MECANISMOS DE ASIGNACIÓN

Un mecanismo de asignación determina la cantidad de bloques (particiones) que serán administrados en la memoria.


1. ASIGNACIÓN DE UNA PARTICIÓN. En la memoria se considera la existencia de una sola partición, esto es, se tiene la capacidad de ejecutar un proceso. La partición es toda la memoria, cuya administración corre por cuenta del usuario, o sea, no hay un sistema operativo.


2. ASIGNACIÓN DE DOS PARTICIONES. La memoria se divide en 2 bloques. En una partición se carga el Sistema Operativo y en la otra el programa del usuario. Es el concepto de Sistema Operativo Monousuario.


3. ASIGNACIÓN DE MULTIPLES PARTICIONES. La memoria es dividida en varias particiones una para el Sistema Operativo y las demás para los procesos de usuarios u otras funciones especiales del Sistema Operativo. Este es el concepto teórico de asignación de memoria en los Sistemas Operativos de Multiparticiones y de Multitarea..


ESTRATEGIAS DE ASIGNACIÓN


Una estrategia de asignación de memoria determina el lugar donde será cargado un nuevo proceso en base a un criterio.



1. PRIMER AJUSTE. El Sistema Operativo asigna el primer bloque de memoria libre con espacio suficiente para satisfacer la información. La búsqueda de este bloque es de manera secuencial.


2. MEJOR AJUSTE. El sistema operativo busca el bloque de memoria que represente el menor desperdicio según el requerimiento.


3. PEOR AJUSTE. El sistema operativo asigna el bloque mas grande que encuentre.


4.1.5 MULTIPROGRAMACIÓN CON PARTICIONES FIJAS Y VARIABLES

Las particiones fijas, la memoria se puede organizar dividiéndose en diversas partes, las cuales pueden variar en tamaño. Esta partición la puede hacer el usuario en forma manual, al iniciar una sesión con la máquina.
Una vez implementada la partición, hay dos maneras de asignar los procesos a ella. La primera es mediante el uso de una cola única que asigna los procesos a los espacios disponibles de la memoria conforme se vayan desocupando. El tamaño del hueco de memoria disponible es usado para localizar en la cola el primer proceso que quepa en él. Otra forma de asignación es buscar en la cola el proceso de tamaño mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal método discrimina a los procesos más pequeños. Dicho problema podría tener solución si se asigna una partición pequeña en la memoria al momento de hacer la partición inicial, el cual sería exclusivo para procesos pequeños.




PARTICIONES VARIABLES


Este esquema fue originalmente usado por el sistema operativo IBM OS/360 (llamado MFT), el cual ya no está en uso. El sistema operativo lleva una tabla indicando cuáles partes de la memoria están disponibles y cuáles están ocupadas. Inicialmente, toda la memoria está disponible para los procesos de usuario y es considerado como un gran bloque o hueco único de memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. Si encontramos uno, se asigna únicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio. Cuando a un proceso se le asigna un espacio y es cargado a la memoria principal, puede entonces competir para el uso del CPU.



4.2 MEMORIA REAL

La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.

4.2.1 ADMINISTRACIÓN DE MEMORIA CON MAPA DE BITS

Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa). Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria, puesto que el tamaño del mapa sólo depende del tamaño de la memoria y el tamaño de la unidad de asignación.

jueves, 19 de noviembre de 2009

4.2.2 ADMINISTRACION DE MEMORIA

La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Para ello existen diferentes esquemas de administración de memoria desde los mas simples hasta los mas elaborados entre los cuales se ubican:

· Administración de la memoria sin intercambio o paginación.
Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.
· Monopogramación sin intercambio o paginación.
Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.
· Multiprogramación y uso de la memoria.
La multiprogramación facilita la programación de una aplicación al dividirla en dos o mas procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.
Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado por la fórmula :

Uso de la CPU = 1 − pn
· Multiprogramación con particiones fijas
El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución posible sería dividir la memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas también.
Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.


4.2.3DISTRIBUCION DEL ESPACIO PARA INTERCAMBIO

DISTRIBUCION DEL ESPACIO PARA INTERCAMBIO.

En algunos sistemas, cuando un proceso esta en la memoria, no se le puede asignar espacio en disco.cuando deba intercambiarse, puede colocarse en alguna otra parte del disco.los algoritmos para administrar el espacio de intercambio son los mismos que se emplean para administrar la memoria principal.

En otros sistemas,cuando se crea un proceso,el espacio para intercambio se asigna para el en disco. Cada ves que el proceso se intercambia, siempre se cambia a su espacio asignado, en lugar de dirigirse a un lugar diferente en cada ocacion. Cuando el proceso sale, se desasigna el espacio para el intercambio.

La única diferencia es que el espacio en el disco para un proceso debe asignarse como un numero integral de bloques de disco.por lo tanto, un proceso de tamaño 13.5 k que utiliza un disco con bloques de 1k se redondeara a 14k antes de que se busquen las estructuras de datos del espacio en el disco.

4.3 MEMORIA VIRTUAL

La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Esta "ilusión" permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física.

La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente.

Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es accesible a la CPU, según un programa va ejecutándose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginación).


La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este esquema.

La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física.

En un estado estable, prácticamente toda la memoria principal estará ocupada con fragmentos de procesos, por lo que el procesador y el S.O tendrán acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deberá expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendrá que traer de nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como hiperpaginación: donde el procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. Para evitarlo el S.O intenta adivinar, en función de la historia reciente, qué fragmentos se usarán con menor probabilidad en un futuro próximo.


4.3.1 PAGINACION DE MEMORIA

El término memoria virtual se asocia normalmente con sistemas que emplean paginación, aunque también se puede usar memoria virtual basada en la segmentación. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas.

Cada proceso tiene su propia tabla de páginas y cuando carga todas sus páginas en la memoria principal, se crea y carga en la memoria principal una tabla de páginas. Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en la memoria principal. Puesto que sólo algunas de las páginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la página correspondiente está presente (P) en la memoria principal o no. Si el bit indica que la página está en la memoria, la entrada incluye también el número de marco para esa página.

Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M), para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargó en la memoria principal. Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.

Puesto que la tabla de páginas es de longitud variable, en función del tamaño del proceso, no es posible suponer que quepa en los registros.


4.3.2 SEGMENTACION DE MEMORIA VIRTUAL

La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).

Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:

1.Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a priori cuán larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandirá o reducirá el segmento cuando se necesite.

2.Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.

3.Se presta a la compartición entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.

4.Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrá asignar los permisos de acceso de la forma adecuada.


4.3.3 ALGORITMOS DE SUSTITUCION DE PAGINAS

SUSTITUCION DE PAGINAS OPTIMA
Se sustituye aquella pagina que se vaya a referenciar dentro del tiempo mas largo posible.


SUSTITUCION DE PAGINA NO USADA RECIENTEMENETE

Se mantiene dos bits R y M que indican si una página fue referenciada (R) y/o modificada (M). Se clasifican la páginas en cuatro categorías de acuerdo:
Clase 0: no referido, no modificado
Clase 1: no referido, modificado
Clase 2: referido, no modificado
Clase 3: referido, modificado
Se retira una página elegida al azar de la clase no vacía con la numeración inferior.

4.3.5 LIBERACION DE PAGINAS

  • Un proceso usuario puede emitir una "liberacion voluntaria de pagina".
  • Se puede eliminar el desperdicio y acelerar la ejecucion.
  • Los compiladoresy el sistema operativo deberian detectar automaticamente situaciones de liberacion de pagina mucho antes de lo que es posible.

LIBERAR LAS PAGINAS ACTUALES DEL PROCESO:

int munlockall (void);

domingo, 8 de noviembre de 2009

PLANTACION TRABAJOS JOB SCHUDULING

Un planificador de tareas es una aplicación de software empresarial que se encarga de las ejecuciones de fondo sin vigilancia, comúnmente conocido por razones históricas, como el procesamiento por lotes.
Los sinónimos son el sistema de lotes, Distributed Resource Management System (SGDD), y Distributed Resource Manager (DRM). Today's job schedulers typically provide a graphical user interface and a single point of control for definition and monitoring of background executions in a distributed network of computers. Programadores de trabajo de hoy suelen ofrecer una interfaz gráfica de usuario y un único punto de control para la definición y seguimiento de las ejecuciones de fondo en una red distribuida de computadoras.
Cada vez más programadores de trabajos son necesarios para instrumentar la integración real de las actividades de negocio en tiempo con el fondo de TI tradicionales de procesamiento, a través
La programación de trabajo no debe confundirse con la planificación de procesos, que es la asignación de los procesos actualmente en ejecución a la CPU por el sistema operativo.

CONCEPTOS BASICOS JOB SCHUDULING

Maximizar la utilización del CPU obtenida con la multiprogramación


  • Ciclo de ráfaga CPU–I/O. La ejecución del proceso consiste de un ciclo de CPU y de una espera de I/O.



  • Distribución de las ráfagas de CPU

Un planificador de tareas es una aplicación de software de la empresa que se encarga de las ejecuciones desatendida fondo, comúnmente conocido por razones históricas como del procesamiento por lotes.




Los sinónimos son lote sistema, Sistema de Gestión de Recursos Distribuidos (SGDD), y Distributed Resource Manager (DRM). Hoy en día el trabajo de programadores suelen ofrecer una interfaz gráfica de usuario y un único punto de control para la definición y el seguimiento de las ejecuciones en el fondo de una red distribuida de computadoras. Trabajo cada vez más programadores están obligados a organizar la integración de los negocios en tiempo real con las actividades tradicionales de transformación de fondo que, a través de diferentes plataformas de sistemas operativos y entornos de aplicaciones de negocio

PLANEACION DE TRABAJOS (JOB SCHEDULING)

Objetivo de la planificación: Minimizar el tiempo de espera y minimizar el tiempo de respuesta.
La planificación (scheduling) es la base para lograr la multiprogramación.

Un sistema multiprogramado tendrá varios procesos que requerirán el recurso procesador a la vez. Esto sucede cuando los procesos están en estado ready (pronto). Si existe un procesador disponible, se debe elegir el proceso que será asignado para ejecutar. La parte del sistema operativo que realiza la elección del proceso es llamada planificador (scheduler).
La planificación hace referencia a un conjunto de políticas y mecanismos incorporados a sistemas operativos que gobiernan el orden en que se ejecutan los trabajos.

Un planificador es un módulo del S.O que selecciona el siguiente trabajo que hay que admitir en el sistema y el siguiente proceso que hay que ejecutar.

En muchos sistemas, la actividad de planificación se divide en tres funciones independientes: planificación a
  • largo
  • medio
  • corto plazo.

FIRST IN FIRST OUT(FIFO)

FIFO es el acrónimo inglés de First In, First Out (primero en entrar, primero en salir).

FIFO se utiliza en estructuras de datos para implementar colas. La implementación puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignación dinámica de memoria.

Si se implementa mediante vectores el número máximo de elementos que puede almacenar está limitado al que se haya establecido en el código del programa antes de la compilación (cola estática) o durante su ejecución (cola pseudoestática). Sea cual sea la opción elegida, el número de elementos que podrá almacenar la cola quedará determinado durante toda la ejecución del programa.

El sistema debe reservar el tamaño de memoria necesario para acoger todos los datos, sea cual sea el número de elementos usados, lo que en algunas aplicaciones supone un despilfarro de la memoria. Sin embargo, si se usan punteros, el número máximo no está declarado sino que se hace un uso dinámico de la memoria, adaptándose al tamaño necesario en cada momento en función de los elementos que hay en la cola. Uno de los usos de las colas es la exploración "en anchura" de un árbol de búsqueda. Otro uso típico de las colas, es la gestión de descargas de una aplicación p2p.

ROUND ROBIN

Es un método para seleccionar todos los elementos en un grupo de manera equitativa y en un orden racional, normalmente comenzando por el primer elemento de la lista hasta llegar al último y empezando de nuevo desde el primer elemento. El planeamiento Round Robin es tan simple como fácil de implementar, y está libre de inanición.


Una forma sencilla de entender el round robin es imaginar una secuencia para "tomar turnos". En operaciones computacionales, un método para ejecutar diferentes procesos de manera concurrente, para la utilización equitativa de los recursos del equipo, es limitando cada proceso a un pequeño periodo de tiempo (quantum), y luego suspendiendo éste proceso para dar oportunidad a otro proceso y así sucesivamente. A esto se le denomina comúnmente como Planificación Round-Robin.


Pasos de ciclos


Para averiguar los pasos de ciclos de procesos totales se toman todos los números de procesos y se calculan con los procesos necesarios para la realización de estos...
Suponga que hay tres procesos y se desea averiguar cuanto tarda.


proceso A: 3 veces
proceso B: 4 veces
proceso C: 5 veces


SHORTEST JOB FIRST (SJF)

Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo compartido. El proceso en espera con el menor tiempo estimado de ejecución hasta su terminación es el siguiente en ejecutarse. Los tiempos promedio de espera son menores que con “FIFO”.

Los tiempos de espera son menos predecibles que en “FIFO”.
Favorece a los procesos cortos en detrimento de los largos.
Tiende a reducir el número de procesos en espera y el número de procesos que esperan detrás de procesos largos. Requiere un conocimiento preciso del tiempo de ejecución de un proceso, lo que generalmente se desconoce. Se pueden estimar los tiempos en base a series de valores anteriores.

SHORTEST REMAINING TIME (STR)

Esta disciplina elige siempre al proceso que le queda menos tiempo de ejecución estimado para completar su ejecución; de esta forma aunque un proceso requiera mucho tiempo de ejecución, a medida que se va ejecutando iría avanzando en la lista de procesos en estado listo hasta llegar a ser el primero. Para realizar esta elección, es necesario actualizar el PCB de los procesos a medida que se le asigna tiempo de servicio, lo que supone una mayor sobrecarga adicional.

En el algoritmo Shortest Remaining Time el planificador selecciona el proceso más corto, al igual que antes, pero en este caso el cambio se controla cada vez que un proceso llega a la cola. Es decir, cuando un proceso se desbloquea o se crea uno nuevo y el tiempo de ráfaga es menor que el tiempo de ráfaga del proceso que se está ejecutando, entonces se realiza un cambio de contexto, el bloqueado se ejecuta y el que se estaba ejecutando pasa a la cola de procesos listos. De este modo cuando se desbloquea o entra un proceso nuevo, se calcula su tiempo de ráfaga. Si el proceso que se está ejecutando le queda más tiempo de ráfaga que nuestro tiempo de ráfaga calculado entonces se procede a realizar el cambio de contexto.

Características:


  • Ofrece un buen tiempo de respuesta.
  • La productividad es alta a cambio de la sobrecarga del sistema (a cada paso debe decidir a que proceso asignarle la CPU).
  • Penaliza los procesos largos.
  • Se puede producir inanición.

HIGHEST RESPONSE RATIO NEXT (HRN)

Algoritmo apropiativo parecido al SRT consistente en calcular el Reponse Ratio (Ratio de respuesta) para asignar la CPU a procesos más viejos. (Para evitar la inanición).
Características:
  • Es muy productivo pero se sobrecarga el sistema.
  • Ofrece un buen tiempo de respuesta.

  • Equilibra los procesos, aunque da prioridad a los procesos más cortos.

  • Evita la inanición (los procesos que envejecen serán ejecutados).


Las prioridades, que son dinámicas, se calculan según la siguiente fórmula, donde pr es la “prioridad”, te es el “tiempo de espera” y ts es el “tiempo de servicio”:


• Elige proceso listo con valor mayor de R
• Tiene en cuenta edad del proceso
• Debe estimarse el tiempo se servicio previamente: en base a historia pasada o valor dado por usuario o administrador.
• R= w + s
s
R= tasa de respuesta
w= tiempo consumido esperando al procesador
s = tiempo de servicio esperado
`

Que corrige algunas deficiencias de SJF, particularmente el retraso excesivo de trabajos largos y el favoritismo excesivo para los trabajos cortos. HRN es un disciplina de planificación no apropiativa en la cual la prioridad de cada proceso no sólo se calcula en función del tiempo de servicio, sino también del tiempo que ha esperado para ser atendido. Cuando un trabajo obtiene el procesador, se ejecuta hasta terminar. Las prioridades dinámicas en HRN se calculan de acuerdo con la siguiente expresión: Prioridad = (tiempo de espera + tiempo de servicio) / tiempo de servicio Como el tiempo de servicio aparece en el denominador, los procesos cortos tendrán preferencia. Pero como el tiempo de espera aparece en el numerador, los procesos largos que han esperado también tendrán un trato favorable. Obsérvese que la suma tiempo de espera + tiempo de servicio es el tiempo de respuesta del sistema para el proceso si éste se inicia de inmediato.

MULTIPROCESAMIENTO PROCESADOR

Un multiprocesador se define como una computadora que contiene dos o más unidades de procesamiento que trabajan sobre una memoria común bajo un control integrado.
Si el sistema de multiprocesamiento posee procesadores de aproximadamente igual capacidad, estamos en presencia de multiprocesamiento simétrico; en el otro caso hablamos de multiprocesamiento asimétrico.
Si un procesador falla, los restantes continúan operando, lo cual no es automático y requiere de un diseño cuidadoso.
Un procesador que falla habrá de informarlo a los demás de alguna manera, para que se hagan cargo de su trabajo .
Los procesadores en funcionamiento deben poder detectar el fallo de un procesador
Determinado. El Sistema Operativo debe percibir que ha fallado un procesador determinado y ya no podrá asignarlo y también debe ajustar sus estrategias de asignación de recursos para evitar la sobrecarga del sistema que está degradado.

CONCEPTOS BASICOS DE MULTIPROCESAMIENTO

MULTIPROCESAMIENTO.
– La solución pueden ser los sistemas multiprocesadores:
o Solución más sencilla, natural y con mejor coste-prestaciones.
o Las mejoras en microprocesadores cada vez son más complejas: cada avance implica crecer en complejidad, potencia y superficie.
o Lenta pero clara mejora en el software, que permite explotar el paralelismo.
– Las arquitecturas actuales son muy diversas: hay más investigación que resultados definitivos.
– Hablaremos de multiprocesadores de pequeña y median escala
Dos factores clave para la extensión de los Multiprocesadores
1. Flexibilidad: El mismo sistema puede usarse para un único usuario incrementado el rendimiento en la ejecución de una única aplicación o para varios usuarios y aplicaciones en un entorno compartido.
2. Coste-rendimiento: Actualmente estos sistemas se basan en procesadores comerciales, por lo que su coste se ha reducido drásticamente. La inversión más fuerte se hace en la memoria y la red de interconexión.

PARALELISMO MULTIPROCESAMIENTO

PARALELISMO

Consiste en ejecutar más instrucciones en menos tiempo, aunque las instrucciones sigan tardando lo mismo en ejecutarse.

El paralelismo en software es considerado como el caso ideal de la ejecución de las instrucciones que forman parte de un programa, ya que no toma en cuenta las limitantes del hardware con que el mismo va ser ejecutado.

Paralelismo en hardware Definamos como paralelismo en hardware como la ejecución de un programa tomando en consideración el hardware con que va a ser ejecutado.

SISTEMA MULTIPROCESAMIENTO

En un sistema de multiprocesamiento procesadores múltiples son empleados a ejecutado más de una actividad en el tiempo, siempre que la informática masiva deba ser realizada con regularidad. Multiprocesador. Como muchas de las actividades principales de la informática se ejecutan simultáneamente por los procesadores diferentes.


Es esencial proporcionar la sincronización entre procesador múltiple ellos tienen acceso a la memoria común tal que ninguna parte del trabajo de informática debería ser descuidada por el procesador individual con una presunción que el otro procesador lo hará.
Un sistema de multiprocesamiento con vario funcionamiento juntos a la vez proporcionará un ambiente de multiprogramación. La multiprogramación permite que programas múltiples residan en áreas separadas de la memoria principal al mismo tiempo. Con este acercamiento, es posible mantener dos o más empleos simultáneamente en la ejecución o en estados de la ejecución.
Los sistemas de ordenador de multiprocesador son caros y encontraron su uso sólo en la aplicación de informática compleja y en la alta velocidad que funda el punto aplicación de cálculo numérica en espacios de Investigación e Industria.

ORGANIZACION DEL MULTIPROCESADOR

La organizacion más común es:
Tiempo compartido o bus común (conductor común).
• Matriz de barras cruzadas e interruptores.
• Almacenamiento de interconexión múltiple.
Tiempo Compartido o Bus Común (o Conductor Común)
Usa un solo camino de comunicación entre todas las unidades funcionales
El bus común es en esencia una unidad pasiva.

Un procesador o procesador de Entrada / Salida que desee transferir datos debe efectuar los siguientes pasos:

1. Verificar la disponibilidad del conductor y de la unidad de destino.
2. Informar a la unidad de destino de lo que se va a hacer con los datos.
3. Iniciar la transferencia de datos.
Las unidades receptoras deben poder reconocer qué mensajes del bus son enviados hacia ellas y seguir y confirmar las señales de control recibidas de la unidad emisora.
Es una organización económica, simple y flexible pero con una sola vía de comunicación, por lo cual:
• El sistema falla totalmente si falla el bus.
• La tasa neta de transmisiones está limitada por la tasa neta de transmisión del conductor.
• La contención por el uso del bus en un sistema sobrecargado puede ocasionar una seria degradación.




SISTEMAS OPERATIVOS DEL MULTIPROCESADOR

Son las capacidades Funcionales de los Sistemas Operativos de multiprogramación y multiprocesadores.


Asignación y administración de recursos.
• Protección de tablas y conjuntos de datos.
• Prevención contra el ínter bloqueo del sistema.
• Terminación anormal.
• Equilibrio de cargas de Entrada / Salida.
• Equilibrio de carga del procesador.
• Reconfiguración.

Las tres últimas son especialmente importantes en Sistemas Operativos de multiprocesadores, donde es fundamental explotar el paralelismo en el hardware y en los programas y hacerlo automáticamente. Las organizaciones básicas de los Sistemas Operativos para multiprocesadores son las siguientes:
• Maestro / satélite.
• Ejecutivo separado para cada procesador.
• Tratamiento simétrico (o anónimo) para todos los procesadores.

jueves, 5 de noviembre de 2009

miércoles, 7 de octubre de 2009

GUIA DE EXAMEN

¿QUE ES UN PROCESO?
Instrucciones que ejecuta el microprocesador mientras lee un programa determinado.

¿QUE ES CONCURRIRSE?
Procesos que generan tiempo de espera o ejecucion de procesos al mismo tiempo.

¿CUALES SON LOS ESTADOS DE LOS PROCESOS?
  • inicio
  • espera
  • ejecucion
  • bloqueado
  • terminado

¿QUE ES UNA BANDERA Y DONDE SE APLICA?

Es un estado que indica como se encuentra el proeso y asi mismo esta le indica al sistema.

¿QUE DIFERENCIOA EXISTE ENTRE SEMAFORO Y MONITOR?

El semaforo regula y el moniotor avisa sobre algun problema.

¿INVESTIGUE DENTRO DE LINUX Y WINDOWS COMO MATAR PROCESOS?

WINDOWS: ctrl+alt+sup y se seleccionan los procesos a eliminar.

LINUX:Escribimos primero ps -aux para obtener una lista de los procesos que se están ejecutando y su pid correspondiente (segunda columna), después kill pid_del_proceso para matar el proceso o kill -9 pid_del_proceso para obligar al sistema operativo a matar el proceso.
Otra opción es killall nombre_programa que matará todos los procesos que estén ejecutando ese programa.

Por último pkill criterio utiliza grep para buscar todos los procesos que coincidan con el criterio especificado y les manda la señal SIGTERM. Por ejemplo pkill fire mataría tanto el proceso firefox como el proceso firebird, dado que la cadena fire aparece en ambos.

EN QUE CONSISTE LA TECNICA DE INTERBLOQUEO

En que varios procesos piden al mismo tiempo un recurso

¿CUALES SON LAS CONDICIONES PARA PRODUCIR UN INTERBLOQUEO?

  • Condicion de exclusion mutua
  • Condicion de posesion y espera
  • Condicion de no apropiacion
  • Condicion de espera circular

DEFINA EL CONCEPTO DE

a) sincronizacion: Ejecucion simultanea de 2 procesos

b) exclusion mutua: Comunicacion requerida entre 1 o mas procesos

c) semaforo: Solucionan problemas de concurrencia de manera fiable.

¿CUALES SON LOS 5 ESTADOS DE LOS PROCESOS Y SUS SIMILITUDES ?


  • inicio

  • espera

  • ejecucion

  • bloqueado

  • terminado

2.

  • listo
  • suspendido
  • bloqueado
  • bloquear y suspendido
  • listo y suspendido

DEFINICION DE SISTEMA OPERATIVO

Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración de los dispositivos periféricos.

Funciones básicas


Los sistemas operativos, en su condición de capa software que posibilitan y simplifica el manejo de la computadora, desempeñan una serie de funciones básicas esenciales para la gestión del equipo. Entre las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:

  • Proporcionar más comodidad en el uso de un computador.
  • Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)

  • Brindar una interfaz al usuario, ejecutando instrucciones (comandos).

  • Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).


Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades.

ESTADOS DE PROCESO S.O.

El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso.

Diagrama de formación de un proceso.

Se trata de la utilización de dos archivos, un objeto ejecutable y una biblioteca del sistema, que después se colocan en la imagen del proceso dentro de la memoria RAM y posteriormente también se dan de alta dentro de la tabla de procesos, Bloque de control del proceso.

Modelo de dos estados.

El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución. De esta explicación se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan su turno para ejecutar.





Modelo de cinco estados

Diagrama de 5 estados

En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan esperando la realización de la operación de Entrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Espera. Se agregan además un estado Nuevo y otro Terminado.
Los cinco estados de este diagrama son los siguientes según Osëliyo:


Ejecución: el proceso está actualmente en ejecución.

Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador de corto plazo así lo disponga.


Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalización de una operación de Entrada/Salida solicitada por una llamada al sistema operativo.


Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.


Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.
Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En este modelo los estados Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una cola FIFO. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso.




Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación.
Asimismo, existen varias colas en estado de espera, como mínimo una por cada periférico.

Una de las razones para implementar el estado Espera era poder hacer que los procesos se puedan mantener esperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho más lentas estas operaciones, puede suceder que en nuestro modelo de cinco estados todos los procesos en memoria estén esperando en el estado Espera y que no haya más memoria disponible para nuevos procesos.



Podría conseguirse más memoria, aunque es probable que esto sólo permita procesos más grandes y no necesariamente nuevos procesos. Además hay un costo asociado a la memoria y de cualquier forma es probable que se llegaría al mismo estado con el tiempo. Otra solución es el intercambio.



El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Después del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente.



El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que está en el estado Suspendido, el mismo todavía se encuentre en espera. Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica que ya aconteció el suceso que estaba esperando. Para tener esta diferenciación entre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados: Listo, Espera, Espera y suspendido y Listo y suspendido.

CONCURRENCIA EXCLUSIÓN MUTUA Y SINCRONIZACIÓN

CONCURRENCIA
Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.


EXCLUSION MUTUA

Evitan el acceso simultaneo de recursos compartidos.



SINCRONIZACION


Ejecuta simultaneamente dos procesos.














CONTROL DE PROCESOS DE S.O.

En algunos sistemas operativos como en los de tiempo compartido, cada programa que se ejecuta, por ejemplo mediante una orden de EJECUTAR dada por el usuario, se trata como un proceso independiente. Estos procesos generados por el O.S se denominan IMPLÍCITOS. Una vez terminada la ejecución de los mismos, su eliminación también la realiza el propio O.S. Asi mismo, el O.S proporciona en tiempo real los servicios que son necesarios para que el usuario pueda definir procesos de forma explicita. Los programa acceden a estos servicios realizando LLAMADAS AL SISTEMA(SYSTEM CALL).

Estas llamadas pueden aparecer incrustadas en el código de un programa de usuario o del propio sistema, en cuyo caso, se asemejan a llamadas a procedimientos o funciones que dan lugar a transferencias de rutinas del O.S cuando se invocan en tiempo real. Las llamadas al sistema se realizan tambien, pero de forma indirecta, cuando se dan ordenes al O.S a través de un terminal(ó SHELL)la rutina de monitorización del terminal( que es asu vez un proceso) se encarga de transformar la ordenes en llamadas al sistema.

De este modo, al comienzo de la ejecución del programa principal de un usuario se inicia la ejecución de un proceso. A su vez el proceso podría crear nuevos procesos. En este caso, el proceso que crea otro nuevo se denomina proceso padre(parent process), y el proceso creado de denomina proceso hijo(child process). Una vez creado un proceso hijo, la ejecución de padre e hijo transcurre de manera concurrente. De esta forma se puede crear una jerarquía arborescente de procesos, en la que un padre puede tener varios hijos y estos pueden tener otros hijos, etc, pero donde cada hijo sólo tiene un padre.

PRINCIPIOS GENERALES DE CONCURRENCIA

Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

PROCESOS E HILOS

Unidad mínima de asignación: tarea.


Unidad mínima de expedición: hilo.




Dos hilos de una misma tarea (denominados hilos pares) comparten el segmento de código, el segmento de datos y un espacio de pila, es decir, los recursos asignados a la tarea.




Podemos captar la funcionalidad de los hilos si comparamos el control de múltiples hilos con el control de múltiples procesos. En el caso de los procesos, cada uno opera independientemente de los otros; cada proceso tiene su propio contador de programa, registro de pila, y espacio de direcciones.


Contexto del procesador.
Punto en el que estamos ejecutando, la instrucción concretamente en la que nos hallamos. Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo.

Pila de ejecución donde se irá metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).

Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea.
Ventajas del uso de hilos.
  • Se tarda menos tiempo en crear un hilo de una tarea existente que en crear un nuevo proceso.
  • Se tarda menos tiempo en terminar un hilo que en terminar un proceso.
  • Se tarda menos tiempo en cambiar entre dos hilos de una misma tarea que en cambiar entre dos procesos s mas sencillo la comunicación (paso de mensajes por ejemplo) entre hilos de una misma tarea que entre diferentes procesos.
  • Cuando se cambia de un proceso a otro, tiene que intervenir el núcleo del sistema operativo para que haya protección. Cuando se cambia de un hilo a otro, puesto que la asignación de recursos es la misma, no hace falta que intervenga el sistema operativo.

EXCLUSIÓN MUTUA

Evitar que fragmentos de código conocidos como secciones críticas sean accedidas al mismo tiempo a recursos que no deben ser compartidos.

La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.


A NIVEL SOFTWARE


Para los procesos concurrentes que se ejecuten en máquinas monoprocesador o multiprocesador con memoria principal compartida.

A NIVEL HARDWARE




  • Optimistas.
    Consideran que lo mas probable es que no haya conflictos, y si los hay sea en número reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones.
    Pesimistas.
    Bloquean todo aquello que pueda interferir.
    Actualizan la variable.
    Desbloquean lo bloqueado al principio.

    · Deshabilitar interrupciones y habilitar interrupciones (pesimista).
    · Test and Set (Compartir y Fijar) (pesimista).
    · Comparar e intercambiar (optimista).

SEMAFOROS SISTEMA OPERATIVO

Es un algoritmo de control de procesos, que tiene solo dos operaciones básicas, las cuales son:

  • Wait.- Pregunta a los procesos si su contador es > ó = que cero, en caso de no ser así, los decrementa. El proceso que cambia en este caso a negativo (−1) desde la cola de procesos Listos a ser ejecutados es el que automáticamente toma el control del procesador.
  • Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es <>



MONITORES SISTEMA OPERATIVO

Un monitor encapsula el código relativo a un recurso compartido en un solo módulo de programa
ventajas:
• mantenimiento más simple
• menos errores de programación
La interfaz del monitor es un conjunto de funciones que representan las diferentes operaciones que pueden hacerse con el recurso
La implementación del monitor garantiza la exclusión mutua
• mediante semáforos o algún otro mecanismo
• o implícitamente en los lenguajes concurrentes

PASO DE MENSAJES SISTEMAS OPERATIVOS

Es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se hace con los semáforos, monitores, etc.
Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación para sistemas distribuidos.
Los elementos principales que intervienen en el paso de mensajes son el proceso que envía, el que recibe y el mensaje.

CONCURRENCIA E INTERBLOQUEO DEADLOCK


  • Concurrencia: Es la ejecución de procesos al mismo tiempo, demasiadas peticiones a un mismo proceso.

  • Deadlock: Es cuando dos procesos están en un estado de ejecución, y requieren intercambiar recursos entre sí para continuar. Ambos procesos están esperando por la liberación del recurso requerido, que nunca será realizada; como no hay ningún resultado, tomará un camino que llevará a un estado de deadlock.

PRINCIPIOS DE INTERBLOQUEO

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

ACCIONES A REALIZAR EN INTERBLOQUEO

1.- Prevención del Interbloqueo

Consiste en diseñar un sistema de manera que esté que excluida la posibilidad de un interbloque.
a) Métodos Indirectos: Impide la aparición de
  • Condición de exclusión mutua: Comunicación requerida entre uno o más procesos.
  • Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.
  • 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.

b) Métodos Directos: Consisite en evotar la aparción de un circulo vicioso de espera.

2.- Predicción del interbloqueo

Se pueden alcanzar las tres condiciones necesarias, pero se realizan elecciones acertadas para asegurar que nunca se llega al punto de interbloqueo. La predicción permite más concurrencia que la prevención. Con predicción del interbloqueo, se decide dinámicamente si la petición actual de asignación de un recurso podría, de concederse, llevar potencialmente a un interbloqueo.

Enfoques para la predicción del interbloqueo: No iniciar un proceso si sus demandas pueden llevar a interbloqueo.

No conceder una solicitud de incrementar los recursos de un proceso si esta asignación puede llevar a interbloqueo.

3)Detección del interbloqueo

Una posibilidad detectar un interbloqueo es monitorear cada cierto tiempo el estado de los recursos.

4) Recuperación Manual
Nosotros como administradores debemos de terminar esos procesos.
Las teclas son Ctrl +Alt+Supr seleccionamos en la opción de finalizar proceso.

martes, 22 de septiembre de 2009

Linea del tiempo (Grupal)

1940

Primeras computadoras




1950
Sistemas en batch




1960
Multiprogramacion
Time sharing




1970
Minicomputadora
Microprocesador

1980
Pc, Sistemas Paralelo


1990

www. - sistema movil

1992

Creacion de Unix

1993
Windows NT



1995
Windows 95


1996
Intel

...