sábado, 21 de enero de 2012

Unidad 6 - Administración de Archivos

6.1 Sistema de Archivos

Los sistemas de archivos o ficheros, estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro de una computadora), que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos.

Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados.
Un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red.

Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear.

El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso o capacidades. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso.


6.2 Jerarquía de Datos
Internamente los Sistemas Operativos estructuralmente se clasifican según como se hayan organizado internamente en su diseño.

• Sistemas monolíticos: 
En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la última ofrece algún cálculo útil que la primera necesite.
Esta organización sugiere una estructura básica del sistema operativo:
1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)
2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema.
3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio.

• Sistemas en estratos: 
Estos sistemas operativos se organizan como una jerarquía de estratos, cada uno construido arriba del que está debajo de él.
El sistema tenía 6 estratos, estos se muestran en la siguiente tabla:
5 Operador de THE
4 Programas del usuario
3 Administración de Entrada/Salida 
2 Comunicación entre el operador y el proceso
1 Administración de la memoria y el tambor magnético
0 Distribución del procesador y multiprogramación

6.3 Tipos de Archivos

Un archivo virtual
Es un archivo de uso temporal que es utilizado por los procesos del sistema mientras se están ejecutando dichos procesos. Estos archivos se crean durante la ejecución de un sistema y los utiliza para el almacenamiento de información, intercambio y organización mientras se ejecuta el sistema, su tamaño es muy variable y terminan al detener la ejecución del sistema, muchos de ellos son borrados.
Se le conoce como archivo virtual, aquel que contiene los datos generados por el usuario.

Archivo virtual

Ejecución del proceso

Archivos temporales (*.tmp)

Archivo Real
Es un objeto que contiene programas, datos o cualquier otro elemento. Un archivo se muestra de manera real, en la información del espacio que ocupa en un disco duro o sistema de almacenamiento, en otras palabras su tamaño en bytes. 



6.4 Interfaz con Usuario

La interfaz de usuario es el medio con que el usuario puede comunicarse con una máquina, un equipo o una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo. Normalmente suelen ser fáciles de entender y fáciles de accionar.
Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas, teclado, ratón, los beeps y algunos otros sonidos que la computadora hace, y en general, todos aquellos canales por los cuales se permite la comunicación entre el ser humano y la computadora. La mejor interacción humano-máquina a través de una adecuada interfaz (Interfaz de Usuario), que le brinde tanto comodidad, como eficiencia.



6.4.1 El Sistema de Archivo visto por el usuario
Dentro de las Interfaces de Usuario se puede distinguir básicamente tres tipos: 

A) Una interfaz de hardware, a nivel de los dispositivos utilizados para ingresar, procesar y entregar los datos: teclado, ratón y pantalla visualizadora. 

B) Una interfaz de software, destinada a entregar información acerca de los procesos y herramientas de control, a través de lo que el usuario observa habitualmente en la pantalla. 

C) Una interfaz de Software-Hardware, que establece un puente entre la máquina y las personas, permite a la máquina entender la instrucción y a el hombre entender el código binario traducido a información legible.


Sus principales funciones son las siguientes:
  • ·         Puesta en marcha y apagado.
  • ·         Control de las funciones manipulables del equipo.
  • ·         Manipulación de archivos y directorios.
  • ·         Herramientas de desarrollo de aplicaciones.
  • ·         Comunicación con otros sistemas.
  • ·         Información de estado.
  • ·         Configuración de la propia interfaz y entorno.
  • ·         Intercambio de datos entre aplicaciones.
  • ·         Control de acceso.
  • ·         Sistema de ayuda interactivo.


6.4.2 Diseño del Sistema de Archivos

Pasos a seguir
• Inventario Preliminar: Relevamiento sin mucho detalle para ver el volumen de la tarea a realizar. 
• Etapa de Análisis: (crítica y detallado de la organización) (Análisis de Sistemas: usando herramientas, encuestas, estadísticas, etc., arman una carpeta que marca la organización actual de la empresa con las modificaciones propuestas para organizar el sistema). 
• Etapa de Diseño: Cuál es la mejor solución informática en función de la carpeta (Ingeniería de Sistemas) (Diagnósticos). Esto nos llevará a una carpeta técnica con instructivo, manual de funciones, etc., para llegar a la última etapa. 
• Programación e Implementación: Se elige el lenguaje y programadores. 
• Puesta en Marcha 
• Mantenimiento: Se lo mantiene con actualizaciones, con el tiempo, la perfomance del sistema decrece por lo que se requiere más mantenimiento. Cuando este tiempo es muy grande se intenta renovarlo. 
• Diseño: Varias metodologías y herramientas o software que nos facilitan la tarea, algunas veces orientadas.
• Metodologías:
1. Lineal 
2. Estructurada o Modular
3. Diseño Orientado a Objetos 
4. Metodologías CASE

En todas se llega al concepto fundamental de la informática "archivo". En el sistema Lineal, las aplicaciones son definidas o diseñadas en secuencias, como una escala o etapa de un proceso productivo.
En el sistema Modular, se parte de una idea general de lo que es el sistema y se empieza a seccionar el sistema en estructuras de acuerdo a un criterio pre establecido. 
Se llegará a un nivel donde ya no se podrá realizar subdivisiones y se tendrá entonces las aplicaciones.

• Archivos: Contenedores de los datos que nos suministran información de la organización.
Hay dos grupos de archivos o ficheros (entidad).

• Registro: Un registro de un archivo contiene todas las informaciones relativas a un mismo individuo o a un mismo objeto perteneciente al fichero. El individuo de un registro es una información que figura en todos los registros del fichero y que permite distinguirlos y buscarlos en el mismo. 

Las operaciones que conciernen a todos los registros de un archivo son:
• Creación de un archivo: Con técnicas. 
• Anulación o destrucción de un fichero. 
• Selección o clasificación del fichero: Ordenar todos los artículos (grabaciones) de un archivo siguiendo los valores crecientes y/o decrecientes de uno o varios campos que figuran en los registros de dicho fichero. Los campos utilizados para este fin (ordenamiento) se llaman llaves o claves o argumentos de clasificación, ordenamiento o entresacado.


6.4.3 Servidor de Archivos

Tipo de servidor en una red de ordenadores cuya función es permitir el acceso remoto a archivos almacenados en él o directamente accesibles por este. En principio, cualquier ordenador conectado a una red con un software apropiado, puede funcionar como servidor de archivos. Desde el punto de vista del cliente de un servidor de archivos, la localización de los archivos compartidos es transparente.

CARACTERÍSTICAS
- Dar soporte al almacenamiento de información en archivos continuos, que son archivos que contienen series de datos largas y continuas. Estas series de datos podrían ser, por ejemplo, el texto de un documento o los elementos de imagen de una imagen. 
- Los documentos almacenados en carpetas de Series son archivos continuos. Otros ejemplos de archivos continuos son los archivos de PC y los archivos de sistema. 
- El soporte de archivo continuo está diseñado para que su uso en las aplicaciones de cliente y servidor sea eficiente. Una estructura de directorio jerárquica que permite organizar los objetos como si fueran las ramas de un árbol. 
- Para acceder a un objeto, especifique la vía de acceso desde los directorios al objeto. Una interfaz común que permite al usuario y a las aplicaciones acceder a archivos continuos, archivos de bases de datos, documentos y otros objetos que están almacenados en el servidor.

FUNCIONES
El servidor de archivos permite al cliente almacenar y acceder a información, por ejemplo archivos y programas, que está ubicada en el servidor. Este servidor sustituye al servidor de carpeta de tipo 2 compartido que se utilizaba antes. El servidor de archivos de OS/400 intercambia información con el sistema de archivos integrado del servidor. Sus posibilidades de servicio de archivos equivalen a las de una carpeta compartida, pero los clientes pueden acceder también a la información de cualquiera de los sistemas de archivos nuevos. Los clientes utilizan su propia interfaz para interactuar con los sistemas de archivos.


6.4.4 Seguridad en Archivos

PHP está sujeto a la seguridad integrada en la mayoría de sistemas de servidores con respecto a los permisos de archivos y directorios. Esto permite controlar qué archivos en el sistema de archivos se pueden leer. Se debe tener cuidado con los archivos que son legibles para garantizar que son seguros para la lectura por todos los usuarios que tienen acceso al sistema de archivos.

Desde que PHP fue diseñado para permitir el acceso a nivel de usuarios para el sistema de archivos, es perfectamente posible escribir un script PHP que le permita leer archivos del sistema, modificar sus conexiones de red, enviar trabajos de impresión masiva, etc. Esto tiene algunas implicaciones obvias, es necesario asegurarse que los archivos que se van a leer o escribir son los apropiados.


6.4.5 Mecanismos de Protección de Archivos
La función de la protección en un sistema computacional es la de proveer un mecanismo para la aplicación de políticas que gobiernen el uso de los recursos. Estas políticas pueden ser establecidas de varias maneras. Algunas son fijadas durante el diseño del sistema, mientras que otras son formuladas como parte de la administración en la ejecución del sistema. Algunas otras son definidas por usuarios individuales para proteger sus archivos y programas. Un sistema de protección debe tener la flexibilidad para aplicar las políticas que sean declaradas para ello. 
Las políticas para el uso de recursos pueden variar, dependiendo de la aplicación y pueden estar sujetas a cambios. Por estas razones, la protección no puede ser considerada como un problema que solamente concierne al diseñador de un Sistema Operativo, sino que debe considerarse, como una herramienta para los programadores de aplicaciones, de manera que los recursos creados y soportados por un subsistema de aplicación, puedan ser protegidos contra el mal uso.

Un principio importante es la separación entre política y mecanismo. Los mecanismos determinan como será realizado algo. En contraste, las políticas deciden que es lo que se realizará. Es posible que las políticas cambien de lugar en lugar o de tiempo en tiempo. En el peor de los casos, cada cambio en la política requerirá un cambio en el subyacente mecanismo. 


6.4.6 Implementación Sistemas de Archivos

Una implementación o implantación es la realización de una aplicación, o la ejecución de un plan, idea, modelo científico, diseño, especificación, estándar, algoritmo o política.
En ciencias de la computación, una implementación es la realización de una especificación técnica o algoritmos como un programa, componente software, u otro sistema de cómputo. Muchas implementaciones son dadas según a una especificación o un estándar. Por ejemplo, un navegador web respeta (o debe respetar) en su implementación, las especificaciones recomendadas según el World Wide Web Consortium, y las herramientas de desarrollo del software contienen implementaciones de lenguajes de programación.


6.5 Llamadas al Sistema System Calls

En informática, llamada al sistema (en inglés system call) es el mecanismo usado por una aplicación para solicitar un servicio al sistema operativo.
Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que causa que el procesador transfiera el control a un código privilegiado, previamente especificado por el mismo código. Esto permite al código privilegiado especificar donde va a ser conectado así como el estado del procesador.
Cuando una llamada al sistema es invocada, la ejecución del programa que invoca es interrumpida y sus datos son guardados, normalmente en su PCB (Bloque de Control de Proceso del inglés Process Control Block), para poder continuar ejecutándose luego. El procesador entonces comienza a ejecutar las instrucciones de código de alto nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza, se retorna al proceso original, y continúa su ejecución. El retorno al proceso demandante no obligatoriamente es inmediato, depende del tiempo de ejecución de la llamada al sistema y del algoritmo de planificación de CPU.

6.6 Tipos de Interfaz

Al iniciar cualquier sistema operativo, el usuario ve e interactúa con un conjunto de elementos en la pantalla que constituyen lo que se denomina la interfaz del usuario. La interfaz de usuario constituye la manera en que el usuario interactúa con la computadora. 
En los sistemas operativos actuales es común el uso de una interfaz gráfica de usuario: una colección de objetos sobre un fondo coloreado (basada en la metáfora del escritorio) con iconos, ventanas redimensionables, menús y cuadros de diálogo.



Tipos de Interfaz:

Interfaz de línea
 de comando. Requiere que el usuario introduzca la instrucción o comando por medio del teclado. El usuario teclea o escribe los comandos, carácter a carácter ante un indicador, usando la sintaxis y nomenclatura correctas y luego oprime “Enter” para ejecutarlo. Los usuarios experimentados en esta interfaz afirman que es más simple, más rápida y que proporcionan mejor información que las interfaces gráficas.


Interfaz controlado por menús. Esta interfaz proporciona menús para seleccionar opciones del programa, así el usuario no tiene que memorizar comandos. En lugar de esto los comandos son seleccionados del menú presentado en pantalla, como cuando se escoge algún plato en un restaurante.

Interfaz gráfica del usuario (GUI - Graphical User Interfaz). En este tipo de interfaz, los usuarios controlan el sistema señalando y haciendo clic en gráficos o iconos de la pantalla que representan las características del programa. Se basa en el hecho de que la gente reconoce con más rapidez y facilidad las representaciones gráficas que las palabras o frases que lee. Se le asocia generalmente a otras características, como el uso de una interfaz de ratón activo con menús de despliegue descendente, cajas de diálogo, cajas de verificación, botones de radio y elementos semejantes.


6.7 Lenguaje de Comunicación (comandos de control) y pipelines o conductos

Secuencia de comandos de control

· Comprobar si alguien está utilizando activamente el producto y, si es así, impedir la reinstalación, la actualización o la eliminación.
· Asegurarse de que el sistema host local es compatible con el software (las secuencias de comandos pueden realizar comprobaciones de compatibilidad más a fondo que las aplicadas por los atributos úname del producto).
· Eliminar archivos anticuados o versiones del producto instaladas con anterioridad.
· Crear enlaces con los archivos o copias adicionales de los mismos después de instalarlos.
·  Copiar los archivos configurables en su lugar durante la primera instalación.

UNIDAD 5

"ADMINISTRACIÓN DE DISPOSITIVOS DE E/S"


La administración de dispositivos comprende 4 funciones básicas:
·         Controlar el estado de cada dispositivo (como unidades de cinta, unidades de disco, impresoras, graficadores y terminales).
·       *   Utilizar políticas preestablecidas para determinar qué proceso obtendrá un dispositivo y durante cuánto tiempo.
·       *   Asignar los dispositivos.
·        *  Desasignarlos en dos niveles: en el nivel de procesos cuando se ejecute un comando de entrada/salida y el dispositivo se libera de manera permanente.

5.1 PRINCIPIOS DE HARDWARE DE I/O
Los usuarios deben poder crear, modificar y borrar archivos.
Se deben poder compartir los archivos de una manera cuidadosamente controlada.
El mecanismo encargado de compartir los archivos debe proporcionar varios tipos de acceso controlado, como lo son  “Acceso de Lectura”, “Acceso de Escritura”, “Acceso de Ejecución”, varias combinaciones de estos, etc. Se debe poder estructurar los archivos de la manera más apropiada a cada aplicación. Los usuarios deben poder ordenar la transferencia de información entre archivos.
Se deben proporcionar posibilidades de “respaldo” y “recuperación” para prevenirse contra la pérdida accidental de información, la destrucción maliciosa de información.
Se debe poder referenciar a los archivos mediante “Nombres Simbólicos”, brindando “Independencia de Dispositivos”. En ambientes sensibles, el sistema de archivos debe proporcionar posibilidades de “Cifrado” y “Descifrado”.
Es necesario proteger la información alojada en el sistema de archivos, efectuando los resguardos correspondientes.
De esta manera se evitan las consecuencias catastróficas de la perdida de los sistemas de archivos.
Las pérdidas se pueden deber a problemas de hardware. Software, hechos externos, etc.

5.1.1 DISPOSITIVOS DE I/O
Los dispositivos de periféricos del sistema generalmente entran en una de tres clases:
*Dedicados
*Compartidos
* Virtuales


Los dispositivos dedicados: se asignan sólo a un trabajo a la vez y le sirven todo el tiempo que está activo. La desventaja de los dispositivos dedicados es que se asignan a un usuario durante todo el tiempo que dure el trabajo que realiza, esto podría resultar ineficiente y es aun más ineficiente si el dispositivo no se utiliza el 100% del tiempo.

Los dispositivos compartidos: estos se puede asignar a más de un proceso. Se puede compartir cualquier dispositivo de almacenamiento de acceso directo al entrelazar sus solicitudes, en estos casos el administrador de dispositivos tiene que controlar esta acción con bastante cuidado.

Los dispositivos virtuales: son una combinación de los dispositivos dedicados y los compartidos; son dispositivos dedicados transformados en dispositivos compartidos.

Los medios de almacenamiento se dividen en dos grupos:
* Medios de almacenamiento de acceso secuencial
* Dispositivos de almacenamiento de acceso directo

Medios de almacenamiento de acceso secuencial.
El primer medio de almacenamiento fue el papel, pero su volumen y su precio hicieron que este medio resultara inaceptable para sistemas grandes. La cinta magnética se desarrollo para los primeros sistemas de cómputo de almacenamiento secundario rutinario. Estos almacenan los registros en secuencia, uno después del otro. 

Dispositivos de almacenamiento de acceso directo (DASD).
Estos son los dispositivos que pueden leer o escribir en un lugar específico en un disco (también se conocen como dispositivos de almacenamiento de acceso aleatorio). Por lo general se agrupan en dos categorías principales:
a)    Con cabezas de lectura y escritura fijas.
b)    Con cabezas de lectura y escritura móviles

DASD de cabeza fija.
Los primeros DASD eran tambores registrables magnéticamente. Estos eran en forma de una lata de café gigante, cubierta con película magnética y formato, de manera que las pistas corren a su alrededor. Los tambores de cabeza fija eran muy rápidos ya que utilizaban una cabeza de lectura/escritura para cada pista, pero también su valor era muy costoso y no contenían tantos datos como otros DASD, lo cual hizo que su popularidad descendiera.

DASD de cabeza móvil.
Los tambores de cabeza móvil sólo tienen unas cuantas cabezas de lectura/escritura que se mueven de una pista a otra para cubrir la superficie del tambor. Mientras menos cabezas móviles tengan el tambor, menos es su valor.

Almacenamiento óptico en disco.
Las unidades de disco óptico utilizan un rayo láser para leer y escribir los discos de varias capas. El rayo láser que utiliza es de alta intensidad para quemar perforaciones (indentaciones) y pistas (áreas planas) en el disco que representan unos y ceros, respectivamente.

5.1.2 CONTROLADORES DE DISPOSITIVOS

Un controlador de dispositivo (llamado normalmente controlador, o, en inglés, 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.


5.2 PRINCIPIOS DE SOFTWARE DE I/O
Los principios de software en la entrada - salida se resumen en cuatro puntos,  el software debe ofrecer:
·         manejadores de interrupciones,
·         manejadores de dispositivos,
·         software que sea independiente de los dispositivos y
·         software para usuarios.
5.2.1 OBJETIVOS DEL SOFTWARE DE I/O

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.

5.2.2. MANEJADORES DE INTERRUPCIONES
El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el sistema simplemente se tardó más o menos en responder a su petición.
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.

5.2.3 MANEJADOR DE DISPOSITIVOS
El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos, así como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la información, los medios mecánicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos.
Todo el código que depende de los dispositivos aparece en los manejadores de dispositivos. La solicitud de e / s, por ej. Para un disco, se debe traducir de términos abstractos a términos concretos. Cada controlador posee uno o más registros de dispositivos:
• Se utilizan para darle los comandos.
• Los manejadores de dispositivos proveen estos comandos y verifican su ejecución adecuada. La labor de un manejador de dispositivos es la de:
• Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo.
• Verificar la ejecución de dichas solicitudes. Si al recibir una solicitud el manejador está ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes.

5.2.4 SOFTWARE DE I/O INDEPENDIENTE DE DISPOSITIVOS
Este es un nivel superior de independencia que el ofrecido por los manejadores de dispositivos. Aquí el sistema operativo debe ser capaz, en lo más posible, de ofrecer un conjunto de utilerías para accesar periféricos o programarlos de una manera consistente. Por ejemplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar 'buffers' o no, o para posicionarse en ellos.

5.2.5 ESPACIO DEL USUARIO PARA SOFTWARE DE I/O
La mayoría de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la apariencia de los datos. Existen otras librerías en donde el usuario si tiene poder de decisión (por ejemplo la llamada a "printf" en el lenguaje  "C"). Otra facilidad ofrecida son las áreas de trabajos encolados (spooling areas), tales como las de impresión y correo electrónico.


5.3 DISCOS RAM
El disco RAM o unidad RAM es una unidad de disco que usa una zona de memoria RAM del sistema como almacenamiento secundario en lugar de un medio magnético (como los discos duros y las disqueteras) o memoria flash, implementada como un controlador de dispositivo más. El tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales. Sin embargo, la volatilidad de la memoria RAM implica que los datos almacenados en un disco RAM se perderán si falla la alimentación (por ejemplo, cuando el ordenador se apaga). Los discos RAM suelen usarse para almacenar datos temporales o para guardar programas descomprimidos durante cortos periodos.
La adecuada implementación de un caché de disco suele obviar las motivaciones relacionadas con el rendimiento que impulsan a usar un disco RAM, adoptando un papel parecido (acceso rápido a los datos que en realidad residen en un disco) sin sus varias desventajas (pérdida de datos en caso de apagado, particionado estático, etcétera).
Otra forma de usar memoria RAM para almacenar ficheros es el sistema de ficheros temporal. La diferencia entre éste y un disco RAM es que el segundo es de tamaño fijo y funciona como una partición más, mientras el sistema de ficheros temporal cambia su tamaño bajo demanda para ajustarse al espacio necesario para albergar los ficheros guardados en él.

5.4 DISCOS DUROS

El disco duro 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.4.1 HARDWARE DE DISCOS
Estructura física: cabezas, cilindros y sectores
Cada una de las dos superficies magnéticas de cada plato se denomina cara. El número total de caras de un disco duro coincide con su número de cabezas. Cada una de estas caras se divide en anillos concéntricos llamados pistas.
En los discos duros se suele utilizar el término cilindro para referirse a la misma pista de todos los discos de la pila. Finalmente, cada pista se divide en sectores.
Los sectores son las unidades mínimas de información que puede leer o escribir un disco duro. Generalmente, cada sector almacena 512 bytes de información.
El número total de sectores de un disco duro se puede calcular: nº sectores = nº caras * nº pistas/cara * nº sectores/pista. Por tanto, cada sector queda unívocamente determinado si conocemos los siguientes valores: cabeza, cilindro y sector.
Las cabezas y cilindros comienzan a numerarse desde el cero y los sectores desde el uno. En consecuencia, el primer sector de un disco duro será el correspondiente a la cabeza 0, cilindro 0 y sector 1.

5.4.2 SOFTWARE PARA DISCOS
Muchos de los problemas comunes que existen con los discos duros son solucionables mediante las utilidades o programas que cada fabricante pone al alcance de sus usuarios. De igual modo, todos los fabricantes ponen a disposición una utilidad de diagnóstico para comprobar la integridad del disco y si tiene algún fallo irreparable, con lo que certifica su defunción o el momento de tirar de garantía.

Existen programas o utilidades más comunes por los diferentes fabricantes, así como programas de recuperación de datos tras la pérdida de una de tablas de partición, o borrado accidental de datos.

5.5 RELOJES
Los 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.
El reloj físicamente es un circuito integrado que emite una cantidad de pulsos por segundo, de manera constante. Al número de pulsos que emite el reloj cada segundo se llama Frecuencia del Reloj.
La frecuencia del reloj se mide en Ciclos por Segundo, también llamados Hertzios, siendo cada ciclo un pulso del reloj. Como la frecuencia del reloj es de varios millones de pulsos por segundo se expresa habitualmente en Megaherzios.
El reloj marca la velocidad de proceso de la computadora generando una señal periódica que es utilizada por todos los componentes del sistema informático para sincronizar y coordinar las actividades operativas, evitando el que un componente maneje unos datos incorrectamente o que la velocidad de transmisión de datos entre dos componentes sea distinta.
Cuanto mayor sea la frecuencia del reloj mayor será la velocidad de proceso de la computadora y podrá realizar mayor cantidad de instrucciones elementales en un segundo.
El rango de frecuencia de los microprocesadores oscila entre los 4,77 megaherzios del primer PC diseñado por IBM y los 200 megaherzios de las actuales computadoras basadas en los chips Intel Pentium.

5.5.1 HARDWARE DE 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 reloj de hardware puede estar en formato de hora local u hora universal. Usualmente es mejor que el reloj de hardware mantenga la hora universal, porque de esta manera no será necesario modificar la hora del reloj cuando el "horario de verano" (daylight savings time) empiece o finalice (UTC no tiene DST). Desafortunadamente, algunos sistemas operativos de PC (incluyendo a MS-DOS, Windows y OS/2) asumen que el reloj de hardware muestra la hora local.



5.5.2 SOFTWARE DE RELOJ
El software para reloj toma generalmente la forma de un manejador de dispositivo, aunque no es un dispositivo de bloque ni de carácter. Los relojes más sencillos 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:
·         Genera una señal periódica de muy alta precisión, generalmente entre 5 y 100 mhz.
La señal se alimenta en el contador para que cuente en forma descendente hasta cero. 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:
·         Cuando el reloj se inicializa, copia el valor del registro en el contador.
·         Decrementa el contador en cada pulso del cristal.
·         Cuando el contador llega a cero provoca una interrupción y se detiene hasta ser nuevamente inicializado por el software.

Modo de onda cuadrada:
Luego de llegar a cero y provocar la interrupción, el registro se copia de manera automática en el contador. Todo el programa se repite en forma indefinida. 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.

5.5.3 MANEJADOR DEL 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 más tiempo del permitido
·         Mantener un registro del uso de la CPU
·         Controlar llamadas al sistema tipo “alarma” 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 función es mostrar y recibir datos con capacidad significativa del procesador de datos, puede ser llamado “Terminal inteligente o cliente ligero”.
Una computadora puede ejecutar software que envié la función de un terminal en ocasiones permitiendo el uso simultaneo de programas locales y acceso a un servidor.
La función de un terminal está confinada a la exhibición y entrada de datos; un dispositivo con una significativa capacidad local programable de procesamiento de datos puede ser llamado un "terminal inteligente". Un terminal que depende del computador huésped para su capacidad de procesamiento es llamado cliente ligero personal" computador personal puede correr un software la función de un terminal, permitiendo a veces el uso concurrente de programas locales y el acceso a un distante sistema huésped de terminal

5.6.1 HARDWARE DE TERMINALES

Un terminal IP suele ser un dispositivo hardware con forma de teléfono, aunque con la diferencia de que utiliza una conexión de red de datos, en lugar de una conexión de red telefónica.
Suelen tener más opciones y ventajas que un teléfono convencional. Al ser un sistema completamente digital y programable, suelen tener teclas especiales perfectamente configurables mediante un sistema de administración que puede ser accedido mediante telnet.

Algunos incluyen cámara de vídeo para poder realizar videoconferencias. Disponen de una dirección IP a la que se puede acceder y mediante la que se puede configurar como si fuese un ordenador más. Por lo que, al considerarse un sistema más dentro de la red, suelen aplicárseles las características típicas de grandes redes. Los ATA son pequeños dispositivos que permiten conectar un teléfono analógico/ a una red de .

Disponen de un sistema de administración y gestión similar a los teléfonos IP por lo que disponen también de una dirección IP, y las mismas ventajas que cualquier terminal IP.
Son similares a los teléfonos móviles (o celulares) y permiten utilizar redes inalámbricas para conectarse al servidor de. Estos últimos aun no están muy desarrollados, pero pronto empezaremos a ver una gran expansión de los teléfonos móviles habituales con soporte WI-FI que permitirán utilizarla para realizar llamadas en lugar de las operadoras telefónicas.

5.6.2 MANEJADORES
Frecuentemente los manejadores de terminales soportan operaciones tales como:
  • Mover el cursor hacia arriba, abajo, a la izquierda o a la derecha una posición.
  • Mover el cursor a x,y.
  • Insertar un carácter o una línea en el cursor.
  • Eliminar un carácter o una línea en el cursor.
  • Recorrer la pantalla hacia arriba o hacia abajo “n” líneas.
  • Limpiar la pantalla desde el cursor hacia el final de la línea o hasta el final de la pantalla.
  • Trabajar en modo de video inverso, subrayado, parpadeo o normal.
  • Crear, construir, mover o controlar las ventanas.
El manejador de la terminal es el archivo más grande de MINIX. Este acepta cinco mensajes:
1. Lectura de caracteres desde la terminal (del sistema de archivo a la mitad de un proceso de usuario).
2. Escritura de caracteres en la terminal (del sistema de archivo a la mitad de un proceso de usuario).
3. Fijación de los parámetros de la terminal para ioctl (del sistema de archivo a la mitad de un proceso de usuario).
4. Carácter disponible (del proceso de interrupción).
5. Cancelación de la solicitud de lectura anterior (del sistema de archivo cuando ocurra una señal).