Grupo n°12 - tema n°7-                    UNIX Sistema de Archivos y Sistema de Entrada/Salida

 

 


Introducción

 

 

    El sistema UNIX se ha vuelto bastante popular desde su estreno en 1969, funcionando en máquinas de procesamiento variable desde microprocesadores hasta mainframes y suministrando un entorno de ejecución común a través de él.

 

El sistema está dividido en dos partes:

 

    La primera parte  está formado por programas y servicios que ha hecho del sistema UNIX un entorno muy popular (es la parte visible para el usuario).

    La segunda parte está formada por el S.O. Que soporta estos programas. 

 

Objetivos del UNIX

 

    UNIX fue diseñado teniendo en mente los siguientes objetivos:

·        Crear un sistema interactivo de tiempo compartido diseñados por programadores y para programadores, destinados a usuarios calificados.

·        Que fuera sencillo, elegante y consistente.

·        Que permitiera resolver problemas complejos combinando un número reducidos de comandos básicos.

 

 

   

 

 

 

 

 

 

 

 

 

 

 

Grupo n°12 - tema n°7                      UNIX Sistema de Archivo y Sistema de Entrada/Salida

 

 

 


UNIX Sistema de Archivo y Sistema de E/S

 


Que es Unix

   

    UNIX designa el núcleo de un S.O. multiusuario y multitarea. En un sentido más amplio, comprende el núcleo del S.O. más un conjunto de programas que permiten compilar lenguajes de programación, editar texto, interpretar coman- dos, manejar archivos y discos, acceder a otras máquinas, establecer comunicaciones telefónicas, enviar y recibir correo electrónicos, manejar las colas de impresión y un sinfín de tareas más. Algunos de estos programas pueden haber sido desarrollados por los propios usuarios.

 

    UNIX está escrito en C, el cual puede estar compilado en muchos lenguajes diferentes de máquina, esto hace que  UNIX corra en mayor cantidad de hardware que cualquier otro programa de control.                      

 

    Es un sistema operativo multiusuario que incorpora multitarea. Fue desarrollado originalmente por Ken Thompson y Dennis Ritchie en los laboratorios de AT&T Bell en 1969 para su uso en minicomputadoras. El sistema operativo UNIX tiene diversas variantes y se considera potente, más transportable e independiente de equipos concretos que otros sistemas operativos porque esta escrito en lenguaje C. El UNIX esta disponible en varias formas, entre las que se cuenta AIX, una versión de UNIX adaptada por IBM (para su uso en estaciones de trabajo basadas en RISC), A/ux (versión gráfica para equipos Apple Macintosh) y Mach (un sistema operativo reescrito, pero esencialmente compatible con UNIX, para las computadoras NeXT).

 

    El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Su sistema de archivos proporciona un método sencillo de organizar archivos y permite la protección de archivos. Sin embargo, las instrucciones del UNIX no son intuitivas.

 

   Este sistema ofrece una serie de utilidades muy interesantes, como las siguientes:

° Inclusión de compiladores e interpretes de lenguaje.

° Existencia de programas de interfase con el usuario, como ventanas, menús, etc.

° Muchas facilidades a la hora de organización de ficheros.

° Inclusión de lenguajes de interrogación.

° Facilidades gráficas.

° Programas de edición de textos.

 

 

 

 

 

 

 

 

 

UNIX Sistema de Archivo y Sistema de E/S

 

 

 


Sistema de Entrada/Salida

 

 

MANEJO DE ENTRADA/SALIDA

 

    El sistema de entrada/salida se divide en dos sistemas complementarios: el estructurado por bloques y el estructurado por caracteres. El primero se usa para manejar cintas y discos magnéticos, y emplea bloques de tamaño fijo (512 o 1024 bytes) para leer o escribir. El segundo se utiliza para atender a las terminales, líneas de comunicación e impresoras, y funciona byte por byte.

 

    En general, el sistema Unix emplea programas especiales (escritos en C) conocidos como manejadores (drivers) para atender a cada familia de dispositivos de E/S. Los procesos se comunican con los dispositivos mediante llamadas a su manejador. Además, desde el punto de vista de los procesos, los manejadores aparecen como si fueran archivos en los que se lee o escribe; con esto se logra gran homogeneidad y elegancia en el diseño.

 

    Cada dispositivo se estructura internamente mediante descriptores llamados número mayor, número menor y clase (de bloque o de caracteres). Para cada clase hay un conjunto de entradas, en una tabla, que aporta a los manejadores de los dispositivos. El número mayor se usa para asignar manejador, correspondiente a una familia de dispositivos; el menor pasa al manejador como un argumento, y éste lo emplea para tener acceso a uno de varios dispositivos físicos semejantes.

 

    Las rutinas que el sistema emplea para ejecutar operaciones de E/S están diseñadas para eliminar las diferencias entre los dispositivos y los tipos de acceso. No existe distinción entre acceso aleatorio y secuencial, ni hay un tamaño de registro lógico impuesto por el sistema. El tamaño de un archivo ordinario está determinado por el número de bytes escritos en él; no es necesario predeterminar el tamaño de un archivo.

 

    El sistema mantiene una lista de áreas de almacenamiento temporal (buffers), asignadas a los dispositivos de bloques. El Kernel usa estos buffers con el objeto de reducir el tráfico de E/S. Cuando un programa solicita una transferencia, se busca primero en los buffers internos para ver si el bloque que se requiere ya se encuentra en la memoria principal (como resultado de una operación de lectura anterior). Si es así, entonces no será necesario realizar la operación física de entrada o salida.

 

    Existe todo un mecanismo de manipulación interna de buffers (y otro de manejo de listas de bytes), necesario para controlar el flujo de datos entre los dispositivos de bloques (y de caracteres) y los programas que los requieren.

 

 

UNIX Sistema de Archivo y Sistema de E/S

 

 


 

     Por último, y debido a que los manejadores de los dispositivos son programas escritos en lenguaje C, es relativamente fácil reconfigurar el sistema para ampliar o eliminar dispositivos de E/S en la computadora, así como para incluir tipos nuevos.

 

ADMINISTRACION DE DISPOSITIVOS

Introducción:

    El administrador del sistema es responsable de la administración de dispositivos y demás recursos del mismo. Una de las categorías de recursos a tener en cuenta son los dispositivos utilizados para almacenar datos: discos, disquetes y cintas.


Archivos especiales:

    Durante el proceso de carga, el sistema identifica automáticamente los dispositivos instalados.

 

   En el directorio /dev existe un archivo especial, tipo bloque y/o carácter, asociado a cada

dispositivo y, en el caso de los discos, a cada una de las particiones realizados.

 

    Se puede observar haciendo un listado del directorio /dev que en los archivos especiales, donde debe aparecer la longitud del archivo, aparecen dos cifras que corresponden al numero principal y secundario.


Tabla de dispositivos:

 

    SVR4 almacena información relativa a cada dispositivo, en un archivo (/etc/device.tab) que representa una base de datos de aquellos comandos, y otra información específica, utilizable por cada dispositivo.

 

     Esta información y los comandos tienen asignados unos nombres que pueden ser utilizados por aplicaciones, lo que permite que éstas puedan efectuar una función general sin necesidad de conocer el comando específico requerido.

    Para identificar cada dispositivo, se utiliza un "alias" que debe ser único.

    El formato para cada entrada en el archivo /etc/device.tab consiste en 5 campos separados por ":" de la siguiente forma:

             alias:cdevide:bdevice:path:atributos

Donde cada campo significa:

alias

Nombre único por el que será conocido el dispositivo. Su tamaño máximo es de catorce caracteres.

cdevice

Archivo especial, tipo carácter, asociado a ese dispositivo.

 

 

 

 

 

 

path

UNIX Sistema de Archivo y Sistema de E/S

 

 

 

 

Nombre completo de archivo, para identificar el i-nodo del dispositivo. Sólo se utiliza cuando no es ni de tipo carácter ni bloque.

 

 

Tabla de grupos de dispositivos

 

    Otra posibilidad suministrada por SVR4 es la de manejar los dispositivos no individualmente, sino como grupos. Esta característica permite al administrador realizar tareas sobre todos los dispositivos de un grupo dado.

 

    Para almacenar la información relativa a los grupos de dispositivos, se utiliza el archivo /etc/dgroup.tab.

 

    Cada entrada de este archivo consta de dos campos separados por ":". El primer campo de los registros de este archivo es el nombre asignado al grupo de dispositivos (máximo 14 caracteres). El segundo campo incluye los nombres de los miembros del grupo separados por comas.

 

SPOOOL DE IMPRESION

 

    Para enviar un archivo a una impresora física se podría utilizar la técnica de redireccionamiento sobre el archivo especial asociado a la misma, pero esto tiene el inconveniente de que el usuario que lo haga toma ese archivo en uso exclusivo y nadie más puede enviar algo a la impresora hasta que finaliza el listado.

 

    Este problema es solucionado en UNIX por un sistema (spool) que permite a diferentes usuarios enviar archivos a la impresora simultáneamente. Un conjunto de procesos, que se activan automáticamente durante la carga del sistema y el paso a multiusuario, se encarga de planificar las solicitudes creando una cola de impresión.

 

    Cuando un usuario hace una solicitud de impresión, el planificador del sistema spool le contesta suministrando el número asignado a esa solicitud, e inmediatamente le devuelve el prompt, con lo que puede continuar con su trabajo aunque no se haya terminado de imprimir.

 

 

 

 

 

 

 

 

UNIX Sistema de Archivo y Sistema de E/S

 

 


Sistema de Archivos

 

ORGANIZACIÓN DE LA INFORMACION

 

    Un pilar básico del Sistema UNIX es el sistema jerárquico de archivos. El sistema de archivos proporciona una forma poderosa y flexible de organizar la información contenida en la computadora.

 

    UNIX es un S.O., al igual que DOS, en el que la organización de los archivos es jerárquica, organizada en directorios, presentando una estructura en forma de árbol, en donde los directorios son ramas y los archivos hojas.

 

    Existe un concepto de archivo, que es sólo un conjunto de información (Ej.: podría ser un examen final, un mensaje de correo electrónico, un programa que pueda ejecutarse, etc.).

 

 

CONCEPTOS DE ARCHIVOS

 

    El sistema UNIX funciona totalmente en base a archivos. Los programas, los datos, los directorios, y aún los controladores de dispositivos tales como discos, modems e impresoras, son archivos.

 

    El sistema de archivos de  UNIX se organiza en una jerarquía de directorios que resulta en una estructura arborescente.

 

    Cada archivo tiene asociado un nombre, un contenido, un lugar de ubicación e información de tipo administrativo, tal como dueño y tamaño. El contenido de un archivo puede ser texto, programas fuente, programas ejecutables, imágenes, sonidos y otros.

 

    Estructuralmente un archivo es una secuencia de bytes de datos que residen en forma semipermanente en algún medio estable, como ser una cinta magnética o un disco.  

Conceptualmente un archivo es similar a un documento escrito en un papel.

 

    En UNIX cualquier dispositivo se trata como un archivo. Una terminal tiene asociado un archivo, y por lo tanto si se escribe algo en ese archivo, aparecerá en la terminal. Lo mismo sucede con las impresoras, módem, etc.

 

    El núcleo del sistema UNIX se mantiene al tanto del tamaño

de los archivos sin introducir ningún carácter especial (no hay carácter de fin de archivo).

 

 

 

UNIX Sistema de Archivo y Sistema de E/S

 

 


  

     El carácter nueva línea es interpretado por las terminales como nueva línea y retorno de carro.

 

    Cada usuario es dueño de  los archivos creados por él, hasta que los borre o los ceda a otro usuario. Cada usuario pertenece a un grupo, y puede compartir archivos con los usuarios de ese grupo.

 

    Un sistema de archivo en UNIX puede contener miles de  archivos, cientos de directorios y de enlaces simbólicos, dependiendo de la distribución y de lo que se haya instalado.

 

 

NOMBRE DE ARCHIVOS

 

    Los archivos son identificados por su nombre (de hasta 14 caracteres), no existe un    formato estándar para los nombres de archivos, como existe en MS-DOS y otros S.O., en general el nombre de un archivo puede contener cualquier carácter, incluso caracteres no visibles, excepto el carácter   (-), puede utilizar los llamados Caracteres Comodín, en lugar de un nombre de archivo exacto. Es limitado en su extensión a 256 caracteres, se aconseja usar solamente letras, números, punto, y subraya (también  se usan espacios, comas, etc.).

 

    A diferencia de MS-DOS los nombres de archivos en UNIX

son sensibles a mayúsculas o minúsculas.

   

    Los archivos y directorios cuyos nombres comienzan con un punto (.), son normalmente archivos de configuración.

 

    Los archivos cuyos nombres terminan con (~), por lo general son archivos de soporte (copias de seguridad).

 

TIPOS DE ARCHIVOS

 

Hay cuatro (4) tipos diferentes de archivos:

 

1-Archivos Odinarios

Como usuario la información con que se trabaja, generalmente será almacenada como archivo ordinario. El archivo puede contener caracteres ASCII o programas. Los archivos pueden cambiarse, crearse o borrarse cuando sea pertinente

 

 

 

 

 

UNIX Sistema de Archivo y Sistema de E/S

 

 


2-Vinculos o Ligas (Simples o Simbólicos)

Simples: No es una clase de archivo, sólo un segundo nombre. Si dos usuarios necesitan compartir la información de un archivo de forma consistente, un vínculo es la solución a este problema. Además el usar vínculos ahorra espacio en disco.

Simbólicos: También se conocen como HARD LINKS. Eliminan las limitaciones de los vínculos simples. Un vínculo simbólico es un archivo que sólo contiene el nombre de otro archivo. De tal modo que pueden emplearse para asignar mas de un  nombre a un archivo o directorio

 

3-Directorios

Este tema se desarrollará más adelante

 

4-Archivos Especiales

Constituyen una característica no usual del sistema de archivos UNIX. Los nombres de estos archivos identifican los dispositivos físicos (hardware) del equipo:

Discos magnéticos

Cintas magnéticas

Terminales, etc.

 

 

DIRECTORIOS

 

    Un directorio es una colección de archivos (e información acerca de los mismos). Dentro del sistema de archivos, un directorio es una localización capaz de contener otros directorios o archivos. Dos archivos que se encuentren en distintos directorios pueden tener el mismo nombre sin confundirse.

 

    Al ingresar al sistema cada usuario entra en su DIRECTO- RIO PROPIO, un directorio privado que no es tocado por el sistema ni  por los otros usuarios. El directorio en el cual se

encuentra posicionado el usuario en un momento dado se denomina DIRECTORIO ACTUAL.

 

    Un directorio puede contener otros directorios así como archivos ordinarios, lo que genera una jerarquía o árbol de directorios, el de más nivel es llamado “DIRECTORIO RAIZ”.

 

 

 

 

 

 

 

 

 

UNIX Sistema de Archivo y Sistema de E/S

 

 


   

 JERARQUIA DEL SISTEMA DE ARCHIVOS

 

    El sistema de archivos está organizado en una estructura jerárquica. Este sistema jerárquico permite agrupar la información de una forma lógica y manipular un grupo de archivo como una unidad.

 

    No tiene ninguna limitación en su desarrollo, permitiendo un crecimiento dinámico tanto en su número como en su tamaño.

 

    Los usuarios deberán “caminar“ a través del árbol hasta encontrar el archivo deseado.                                                                                   Por lo tanto resulta muy útil saber la disposición del árbol directorio para poder localizar archivos y directorios particulares.

UNIX permite crear archivos y directorios arbitrariamente.

 

 

PERMISOS DE ARCHIVOS

 

   Cada archivo tiene un conjunto de permisos asociados con el que determinan que puede hacerse con el archivo y quien puede hacerlo.

 

    Los permisos de un archivo se indican con 10 caracteres:

               1 Carácter para tipo de archivo.

               3 Caracteres (rwx) para permisos del grupo,

               3 Caracteres (rwx) para permisos del grupo.

               3 Caracteres (rwx) para permisos de otros.

Caracteres de permisos:

              R Acceso de lectura (read).

             W Acceso de escritura (write).

             X Acceso de ejecución (execute).

 

Permisos

Archivos

Directorios

R

Leer archivos

Ver contenido de directorios

W

Grabar un archivo

Crear y borrar un archivo

X

Ejecutar como un programa

Ingresar a un directorio

 

 

 

CARACTERÍSTICAS DEL SISTEMA OPERATIVO

 

·        Un sistema de ficheros jerárquico en el que todo se encuentra anclado en la raíz. La mayoría de la literatura sobre el tema dice que el sistema de ficheros UNIX es un grafo acíclico, sin embargo, la realidad es que se trata de un grafo

UNIX Sistema de Archivo y Sistema de E/S

 

 

 


todas las actividades: el root, todopoderoso, para el que no hay barreras; y el resto de los usuarios, controlados por el S.O. según las directivas del root.

·        Una de las grandes ideas de UNIX es la unificación y compatibilidad de todos los procesos de entrada y salida. Para UNIX, el universo es un sistema de ficheros. De esta forma existe compatibilidad entre ficheros, dispositivos, procesos, pipes y sockets.

·        El núcleo de UNIX es relativamente compacto en comparación con otros sistemas de tiempo compartido. Introduce la idea de reducir el tamaño del kernel y ceder ciertas funciones a programas externos al núcleo llamados demonios. Esto ha sido muy desarrollado y en la actualidad, la tendencia es el desarrollo de micro-kernels, sin embargo UNIX, aunque pionero, es anterior a estos desarrollos.

·        El sistema presenta comandos de usuario (es decir, a nivel de shell) para iniciar y manipular procesos concurrentes asíncronos. Un usuario puede ejecutar varios procesos, intercambiarlos e interconectarlos a través de pipes o tuberías, simbolizados por el carácter ¦ (ASCII 124). En DOS, también existe la idea del pipe, sin embargo, al no existir concurrencia de procesos, no se trata de una comunicación en "tiempo real", sino de un paso de información a través de ficheros temporales.

·        UNIX es un S.O. de red, algo que muchos confunden con un S.O. distribuido, lo que se discutirá en los capítulos de internetworking. Por ello, se ha incluído en su núcleo la arquitectura de protocolos de Internet, TCP/IP.

UNIX, como la mayoría de los S.O. actuales es un sistema multiusuario y multitarea. Esto influye en la gestión de la protección del sistema que soluciona de la siguiente forma:

·        Todas las operaciones de ENTRADA/SALIDA son realizadas por UNIX en el llamado modo supervisor, modo de ejecución en el que el S.O. toma control total del ordenador arrebatándoselo al programa de usuario. El usuario, sin embargo, tiene la impresión de ser él quien realiza la operación invocando una system call o llamada al sistema desde programa. La forma de una system call es la de una función C cualquiera y es la forma que tiene el usuario de interactuar con el sistema.

·        UNIX tiene un absoluto control de la memoria, gestionando límites de zona para usuarios y para sí mismo y proporcionando llamadas para petición y liberación. Podría compararse con el modo protegido de un extender de DOS.

·        Al ser un S.O. multiusuario y multitarea pero monoprocesador, debe realizar la gestión de la CPU asignándosela o arrebatándosela a los programas de usuario (sistema de tiempo compartido).

 

 

                     

   Anterior          Índice          Siguiente

Para mayor información, seleccione una opción:

Número de visitas efectuadas desde el 17/12/2001: 
 
Estadísticas diarias desde el 10/07/2002:    

Número de visitantes actuales disponible desde el 14/07/2002:

 

AddFreeStats.com Free Web Stats in real-time !  

 

 

 

Autor: lrmdavid@exa.unne.edu.ar

Ó FACENA - http://exa.unne.edu.ar

Servicios WEB: webmaster@exa.unne.edu.ar