252M 6 SO
this site the web

5.5 relojes

Los relojes o cronómetros son esenciales para la operación de sistemas de tiempo compartido
Registran la hora del día.
Evitan que un proceso monopolice la cpu.

5.5.1 hardware de discos

Los discos están organizados en cilindros, pistas y sectores.
El número típico de sectores por pista varía entre 8 y 32 (o más).
Todos los sectores tienen igual número de bytes.
Los sectores cercanos a la orilla del disco serán mayores físicamente que los cercanos al anillo.
Un controlador puede realizar búsquedas en una o más unidades al mismo tiempo:
• Son las búsquedas traslapadas.
• Mientras el controlador y el software esperan el fin de una búsqueda en una unidad, el controlador puede iniciar una búsqueda en otra.
Muchos controladores pueden:
• Leer o escribir en una unidad.
• Buscar en otra.

5.5.2 El software para reloj

toma generalmente la forma de un manejador de dispositivo, aunque no es un dispositivo de bloque ni de caracter.
Los relojes más sencillo trabajan con la línea de corriente eléctrica de 110 o 220 voltios y provocan una interrupción por cada ciclo de voltaje, a 50 o 60 hz.
Otro tipo de relojes consta de tres componentes:
• Un oscilador de cristal, un contador y un registro.
• Una pieza de cristal de cuarzo se monta en una estructura bajo tensión:
o Genera una señal periódica de muy alta precisión, generalmente entre 5 y 100 mhz.
o La señal se alimenta en el contador para que cuente en forma descendente hasta cero.
o Cuando el contador llega a cero, provoca una interrupción de la cpu.
Los relojes programables tienen varios modos de operación:
• Modo de una instancia:
o Cuando el reloj se inicializa, copia el valor del registro en el contador.
o Decrementa el contador en cada pulso del cristal.
o Cuando el contador llega a cero provoca una interrupción y se detiene hasta ser nuevamente inicializado por el software.
• Modo de onda cuadrada:
o Luego de llegar a cero y provocar la interrupción, el registro se copia de manera automática en el contador.
o Todo el programa se repite en forma indefinida.
o Las interrupciones periódicas se llaman marcas del reloj.
La ventaja del reloj programable es que su frecuencia de interrupción puede ser controlada por el software.
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 más 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.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.2.5 SOFTWARE DE E / S EN EL ESPACIO DEL USUARIO

La mayoría del software de e / s está dentro del S. O.
Una pequeña parte consta de bibliotecas ligadas entre sí con los programas del usuario.
La biblioteca estándar de e / s contiene varios procedimientos relacionados con e / s y todos se ejecutan como parte de los programas del usuario.
Otra categoría importante de software de e / s a nivel usuario es el sistema de spooling.
El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramación:
• El ejemplo típico lo constituye la impresora de líneas.
• Los procesos de usuario no abren el archivo correspondiente a la impresora.
• Se crea un proceso especial, llamado demonio en algunos sistemas.
• Se crea un directorio de spooling.
Para imprimir un archivo:
• Un proceso genera todo el archivo por imprimir y lo coloca en el directorio de spooling.
• El proceso especial, único con permiso para utilizar el archivo especial de la impresora, debe imprimir los archivos en el directorio.
• Se evita el posible problema de tener un proceso de usuario que mantenga un recurso tomado largo tiempo.
Un esquema similar también es aplicable para la transferencia de archivos entre equipos conectados:
• Un usuario coloca un archivo en un directorio de spooling de la red.
• Posteriormente, el proceso especial lo toma y transmite. Un ej. son los sistemas de correo electrónico.

5.3 DISCOS EN RAM

Utilizan una parte de la memoria principal asignada con anterioridad para almacenar los bloques
Tienen la ventaja del acceso instantáneo:
• No hay demora rotacional o debida a las búsquedas.
• Son adecuados para el almacenamiento de programas o datos con accesos muy frecuentes.
Los bloques de almacenamiento tienen el mismo tamaño que en los discos reales.
Cuando el manejador debe leer de o escribir en un bloque de un disco en RAM, calcula el lugar de la memoria donde se encuentra el bloque solicitado y lee o escribe en el mismo.

5.4 DISCO DURO

Un disco duro (del inglés hard disk (HD)) es un disco magnético en el que puedes almacenar datos de ordenador. El disco duro es la parte de tu ordenador que contiene la información electrónica y donde se almacenan todos los programas (software). Es uno de los componentes del hardware más importantes dentro de tu PC.
El término duro se utiliza para diferenciarlo del disco flexible o disquete (floppy en inglés). Los discos duros pueden almacenar muchos más datos y son más rápidos que los disquetes. Por ejemplo, un disco duro puede llegar a almacenar más de 100 gigabytes, mientras que la mayoría de los disquetes tienen una memoria máxima de 1.4 megabytes.
Componentes de un disco duro
Normalmente un disco duro consiste en varios discos o platos. Cada disco requiere dos cabezales de lectura/grabación, uno para cada lado. Todos los cabezales de lectura/grabación están unidos a un solo brazo de acceso, de modo que no puedan moverse independientemente. Cada disco tiene el mismo número de pistas, y a la parte de la pista que corta a través de todos los discos se le llama cilindro.

5.4.1 SOFTWARE DE DISCO

Siempre que se enciende el computador, los discos sobre los que se almacenan los datos giran a una gran velocidad (a menos que disminuyan su potencia para ahorrar electricidad).
Los discos duros de hoy, con capacidad de almacenar multigigabytes mantienen el mínimo principio de una cabeza de Lectura/Escritura suspendida sobre una superficie magnética que gira velozmente con precisión microscópica.
Pero hay un aspecto de los discos duros que probablemente permanecerá igual. A diferencia de otros componentes de la PC que obedecen a los comandos del software, el disco duro hace ruidos cuando emprende su trabajo. Estos ruidos son recordatorio de que es uno de los pocos componentes de una PC que tiene carácter mecánico y electrónico al mismo tiempo
Los discos duros pertenecen a la llamada memoria secundaria o almacenamiento secundario. Al disco duro se le conoce con gran cantidad de denominaciones como disco duro, rígido (frente a los discos flexibles o por su fabricación a base de una capa rígida de aluminio), fijo (por su situación en el ordenador de manera permanente). Estas denominaciones aunque son las habituales no son exactas ya que existen discos de iguales prestaciones pero son flexibles, o bien removibles o transportables, u otras marcas diferentes fabricantes de cabezas.
Las capacidades de los discos duros varían desde 10 Mb. hasta varios Gb. en minis y grandes ordenadores. Para conectar un disco duro a un ordenador es necesario disponer de una tarjeta controladora. La velocidad de acceso depende en gran parte de la tecnología del propio disco duro y de la tarjeta controladora asociada al discos duro.
Estos están compuestos por varios platos, es decir varios discos de material magnético montados sobre un eje central sobre el que se mueven. Para leer y escribir datos en estos platos se usan las cabezas de lectura/escritura que mediante un proceso electromagnético codifican / decodifican la información que han de leer o escribir. La cabeza de lectura/escritura en un disco duro está muy cerca de la superficie, de forma que casi vuela sobre ella, sobre el colchón de aire formado por su propio movimiento. Debido a esto, están cerrados herméticamente, porque cualquier partícula de polvo puede dañarlos.
Unidad de disco duro:
Los discos duros se presentan recubiertos de una capa magnética delgada, habitualmente de óxido de hierro, y se dividen en unos círculos concéntricos cilindros (coincidentes con las pistas de los disquetes), que empiezan en la parte exterior del disco (primer cilindro) y terminan en la parte interior (último). Asimismo estos cilindros se dividen en sectores, cuyo número esta determinado por el tipo de disco y su formato, siendo todos ellos de un tamaño fijo en cualquier disco. Cilindros como sectores se identifican con una serie de números que se les asignan, empezando por el 1, pues el numero 0 de cada cilindro se reserva para propósitos de identificación mas que para almacenamiento de datos. Estos, escritos/leídos en el disco, deben ajustarse al tamaño fijado del almacenamiento de los sectores. Habitualmente, los sistemas de disco duro contienen más de una unidad en su interior, por lo que el número de caras puede ser más de 2. Estas se identifican con un número, siendo el 0 para la primera. En general su organización es igual a los disquetes. La capacidad del disco resulta de multiplicar el número de caras por el de pistas por cara y por el de sectores por pista, al total por el número de bytes por sector.

5.4.2 HARDWARE PARA DISCOS

Los discos están organizados en cilindros, pistas y sectores.
El número típico de sectores por pista varía entre 8 y 32 (o más).
Todos los sectores tienen igual número de bytes.
Los sectores cercanos a la orilla del disco serán mayores físicamente que los cercanos al anillo.
Un controlador puede realizar búsquedas en una o más unidades al mismo tiempo:
• Son las búsquedas traslapadas.
• Mientras el controlador y el software esperan el fin de una búsqueda en una unidad, el controlador puede iniciar una búsqueda en otra.
Muchos controladores pueden:
• Leer o escribir en una unidad.
• Buscar en otra.
Los controladores no pueden leer o escribir en dos unidades al mismo tiempo.
La capacidad de búsquedas traslapadas puede reducir considerablemente el tiempo promedio de acceso.
5.2.4 SOFTWARE DE IO INDEPENDIENTE DE DISPOSITIVOS.
El siguiente nivel dentro de la administración de dispositivos de entrada/salida tenemos al subsistema de E/S del kernel. Este es una interfaz común de la cual pueden hacer uso todos los manejadores de dispositivos.
El kernel además proporciona servicios relacionados con la E/S tales como:

1.Planificación.
2.Almacenamiento en búfer.
3.Almacenamiento en caché.
4.Administración de colas.
5.Reserva de dispositivos.
6.Tratamiento de errores.

Planificación

Significa determinar un orden mediante el cual se debe de ejecutar las órdenes de entrada/salida. Muchas veces, el orden en el cual son solicitadas no es la mejor manera de ejecutarlas. Bajo una buena planificación es posible elevar el desempeño de sistema, puesto que va a permitir compartir el acceso a los dispositivos de forma equitativa entre los distintos procesos y puede reducir el tiempo de espera promedio requerido para que la entrada/salida se complete.
Los diseñadores de sistemas operativos implementan los mecanismos de planificación manteniendo una cola de espera de solicitudes para cada dispositivo. Cuando una aplicación ejecuta una llamada al sistema de entrada/salida solicitando a su vez el bloqueo, la solicitud se coloca en la cola correspondiente a dicho dispositivo. El planificador de entrada/salida reordena la cola para mejorar la eficiencia global del sistema y el tiempo promedio de respuesta experimentado por las aplicaciones.
El sistema operativo puede escoger en dar un servicio equitativo a todos los procesos que demandan servicios de entrada/salida o pueden también privilegiar a ciertos procesos que tienen mayor prioridad y que son sensibles a la pérdida de datos si no se atienden con la suficiente rapidez.
Cuando el sistema operativo soporta mecanismos de entrada salida asíncrona, debe también ser capaz de controlar múltiples solicitudes de entrada/salida que lleguen simultáneamente. Para solucionar este problema, el sistema operativo hace uso de una cola de espera asociada a cada dispositivo de entrada/salida. En esta estructura de datos el sistema operativo mantiene información acerca del estado del dispositivo.
Almacenamiento en búfer
Un búfer es un área de memoria que permite almacenar datos temporalmente mientras se están transfiriendo entre dos dispositivos o entre un dispositivo y un proceso o aplicación. El almacenamiento en búfer se realiza por tres razones:
•Permite adaptar las diferentes velocidades de los dispositivos o la aplicación.
•Permite adaptar el tamaño de transferencia de datos que pueden tener dispositivos diferentes. Esto es el tamaño de búfer interno puede variar de dispositivo a dispositivo. Entonces con un búfer intermedio puede resolverse este problema.
•Permite también mantener la integridad de los datos durante una transferencia de datos. Esto suele pasar cuando una aplicación hace una llamada al sistema operativo para escribir información de su búfer, el sistema operativo copia primero esos datos a otro búfer y libera a la aplicación. Si la aplicación hace cambios en su búfer, éstos no se reflejarán en disco puesto que fueron hechos después de la llamada de escritura.

Almacenamiento en caché.

Una caché es una región de memoria rápida que alberga copias de ciertos datos. El acceso a la copia almacenada en la caché es más rápida que la que se hace a la memoria principal. No debe confundirse el almacenamiento en búfer con el de la caché. Un búfer puede almacenar la única copia existente de un elemento de datos, mientras que una caché, por definición, almacena en un dispositivo más rápido una copia de un elemento de datos que existe en otro lugar.


Administración de colas

Una cola de dispositivo es un búfer que almacena la salida dirigida a un dispositivo, por ejemplo, una impresora, que no pueda aceptar flujos de datos entrelazados. Aunque una impresora solo puede dar servicio a un trabajo a la vez, es posible que varias aplicaciones quieran hacer uso de la impresora en un mismo instante. Por supuesto que si el sistema operativo permitiera esa situación, los trabajos enviados se mezclarían siendo así inservibles. Para resolver este problema, el sistema operativo intercepta toda la salida dirigida a la impresora y va almacenando cada trabajo en un archivo de disco separado. Cuando una aplicación termina de imprimir, el sistema de administración de colas pone otro archivo temporal en la impresora. Esta administración puede llevarse a cabo ya sea por un hilo del sistema operativo o por un demonio de impresión. Cualquiera de estas técnicas permiten al usuario a al administrador ver el estado de impresión de los trabajos o de las impresoras, así como agregar nuevos trabajos, suspenderlos si hay un error o eliminarlos.

Tratamiento de errores
Un sistema operativo que utilice memoria protegida debe de prever los posibles errores de hardware y de las aplicaciones, de modo que cada pequeño error no provoque un fallo completo del sistema. Los dispositivos y las transferencias de entrada salida pueden fallar de muchas maneras, debido a razones transitorias como por ejemplo, cuando una red local se sobrecarga y no es capaz de comunicar adecuadamente dos computadoras o razones más graves como cuando falla la tarjeta controladora de disco o hay un error en la memoria principal.
Cuando ocurre un error de entrada salida es normal que el sistema operativo reintente la operación algunas veces para tratar de recuperarse del error, pero si el fallo es permanente, el sistema operativo debe de buscar la forma recuperarse perdiendo la menor cantidad de datos posible y evitando también que sean afectadas otras aplicaciones.
5.2.3 MANEJADOR DE DISPOSITIVOS

Son los manejadores asociados al dispositivo.
Un manejador contiene código dependiente de las características del dispositivo, por lo que el esquema del funcionamiento que se proporciona aquí es muy general. Para cada petición, el
Manejador o gestor del dispositivo está a la espera de que la rutina de E/S señale su evento, según se ha descrito más arriba, para atenderla. En un esquema cliente servidor, el manejador realiza un bucle infinito, bloqueándose en cada iteración.

Se describe el esquema ejemplo: de una iteración para el tratamiento de una entrada/salida por interrupciones típica en un dispositivo de caracteres.
•Cuando el manejador detecta un evento de petición pendiente, toma un elemento (IORB) de su cola de peticiones y extrae los parámetros de la petición.

•Programa la operación solicitada. Esto hace que el manejador se bloquee y que el núcleo del sistema operativo promueva un cambio de contexto.


•Espera por el final de la operación. Cuando se ejecute la rutina de atención correspondiente, el manejador se desbloquea y puede continuar.

•Transfiere la información a/desde el buffer especificado en el IORB. Para algunos dispositivos es preciso traducir la representación de los datos.


•Hace una comprobación de errores y escribe en el IORB el diagnóstico de la operación.

•Señala el evento especificado por el cliente en el IORB

•Si se trata de transferencias DMA (en dispositivos de bloques), el paso (4) va implícito y no lo gestiona el manejador, realizándose entre los pasos (2) y (3).


La función básica, consiste en ejecutar las funciones de entrada y salida que son comunes a todos los dispositivos.
Funciones:
•Identificación del dispositivo (Ubicación, tipo).
•Proveer un tamaño de bloque, independiente
•del dispositivo
•Asignación de memoria a los bloques, en los
•dispositivos.
•Asignación y liberación de los dispositivos
•dedicados.
5.2.2 MANEJADORES DE INTERRUPCIONES

Manejadores de Interrupciones: Tratan las interrupciones que generan los controladores de los dispositivos una vez que estos están listos para la transferencia de datos o bien han leído o escrito los datos de la memoria principal.

La función principal de los manejadores de interrupciones es:

Su función es salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecución de un proceso. Cuando una interrupción ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de información a transferir es muy pequeña, en el caso del teclado, sería muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupción registra la ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulación de caracteres en un buffer del teclado. La notificación al manejador se hace únicamente cada cierto número de ocurrencias del evento, el caso del reloj, o activando un flag que indica que hay datos en el buffer del teclado.

•Las interrupciones deben diseñarse y manejarse en la forma más oculta posible.
•La mejor forma es que cada proceso que inicie una operación de E/S se bloquee hasta que la operación se haya completado y ocurra la interrupción.
•Luego, cuando la interrupción ocurre, el procedimiento de interrupción desbloquea el proceso que la originó.
5.2.1 OBJETIVOS DEL SOFTWARE DE IO

Para lograr estos objetivos, el Software de E/S puede estructurarse en cuatro capas de la siguiente manera:
•Manejadores de interrupciones. ( Interrupt -Handlers ).
•Manejadores de dispositivos ( Device- Driver)
•Software de E/S independiente del dispositivo
•( Device Independient I/O Software ).
•Software de E/S al nivel del usuario ( User level software ).

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.
Lo mas 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.

5.3 CONTROLADOR DE DISPOSITIVOS

Las unidades de entrada y salida constan por lo general de un componente mecánico y otro electrónico. El componente electrónico se llama controlador de dispositivo de adaptador.
La tarjeta controladora tiene por lo general un conector, en el que se puede conectar el cable que va al dispositivo en sí. Muchos controladores pueden manejar dos, cuatro y hasta ocho dispositivos idénticos.
El controlador de una terminal CRT también funciona como un dispositivo de bits en un nivel igual de bajo. Lee bytes que contienen caracteres a exhibir en la memoria y genera las señales utilizadas para modular la luz CRT para que esta se escriba en la pantalla. El controlador también genera las señales para que la luz CRT vuelva a realizar un trazo horizontal después de terminar una línea de rastreo, así como las señales para que se vuelva a hacer un trazo vertical después de rastrear en toda la pantalla. De no ser por el controlador CRT, el programador del sistema operativo tendría que programar en forma explicita el rastreo análogo del tubo de rayos catódicos. Con el controlador, el sistema operativo inicializa éste con pocos parámetros, tales como el número de caracteres por línea y el número de líneas en la pantalla, para dejar que el controlador se encargue de dirigir en realidad el rayo de luz.
Cada controlador tiene unos cuantos registros que se utiliza para la comunicación con la CPU. En ciertas computadoras, estos registros son parte del espacio normal de direcciones de la memoria.

5.2 PRINCIPIOS Y CUALIDADES DEL SOFTWARE

En general la elección de principios y técnicas está determinada por las cualidades que se desean para el software.
Los principios están orientados a obtener sistemas confiables y evolucionables. El IS no sólo necesita buenos principios para obtener productos de calidad sino también técnicas, metodologías y herramientas que se apoyen sobre ellos.
Rigor y formalidad
Sólo una aproximación rigurosa puede producir productos más confiables, controlar sus costos e incrementar su confiabilidad. La ventaja de la formalidad sobre el rigor es que la formalidad puede ser la base para la mecanizació del proceso.
No hay necesidad de ser formal durante todo el desarrollo pero el IS debe saber cuándo, cómo y dónde utilizar la formalidad.
Separación de intereses Permite lidiar con aspectos individuales del problema. Primero se debe intentar separar los temas que no están íntimamente relacionados entre sí.
La separación se puede hacer según vario criterios:
Tiempo (ciclo de vida del software)
Cualidades
Vistas (flujo de datos, de control, estático, dinámico,
etc.)
Partes (estructura, diseño)
 

W3C Validations

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi dapibus dolor sit amet metus suscipit iaculis. Quisque at nulla eu elit adipiscing tempor.

Usage Policies