Cuadro de texto: Computación V

Sistema Operativo UNIX


Sistema de Archivos 
Y
Entrada/Salida

Integrantes:
               Almirón, Juan
		Moringa, Hernando
		Ortíz Romero, Diego
		Ramírez, Graciela
		Ramos, José
		Salinas, Aníbal
		Torres, Patricia
		Zacarías, Gustavo
		Zambrino, Julio
                                                                                                                     Grupo Nº 16                                                                     


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


SISTEMA OPERATIVO UNIX

 

Características Generales:

Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina.

Posee las siguientes características:

- Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.

- Está escrito en un lenguaje de alto nivel:  C”.

- Dispone de un lenguaje de control programable llamado SHELL.

- Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software.

- Emplea manejo dinámico de memoria por intercambio o paginación.

- Tiene capacidad de interconexión de procesos.

- Permite comunicación entre procesos.

- Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos.

- Tiene facilidad para redireccionamiento de Entradas/Salidas.

- Garantiza un alto grado de portabilidad.

            El sistema se basa en un Núcleo llamado Kernel, que reside permanentemente en la memoria, y que atiende a todas las llamadas del sistema, administra el acceso a los archivos y el inicio o la suspención de las tareas de los usuarios.

La comunicación con el sistema UNIX se da mediante un programa de control llamado SHELL. Este es un lenguaje de control, un intérprete, y un lenguaje de programación, cuyas características lo hacen sumamente flexible para las tareas de un centro de cómputo. Como lenguaje de programación abarca los siguientes aspectos:

- Ofrece las estructuras de control normales: secuenciación, iteración condicional, selección y otras.

- Paso de parámetros.

- Sustitución textual de variables y Cadenas.

- Comunicación bidireccional entre órdenes de shell.

El shell permite modificar en forma dinámica las características con que se ejecutan los programas en UNIX:

Las entradas y salidas pueden ser redireccionadas o redirigidas hacia archivos, procesos y dispositivos;

Es posible interconectar procesos entre sí.

Diferentes usuarios pueden "ver" versiones distintas del sistema operativo debido a la capacidad del shell para configurar diversos ambientes de ejecución. Por ejemplo, se puede hacer que un usuario entre directamente a su sección, ejecute un programa en particular y salga automáticamente del sistema al terminar de usarlo.

 

 

Arquitectura que Procesa UNIX:

 

            UNIX necesita un mínimo de material. El breve inventario de un sistema tipo comprende:

·      Un procesador de alto rendimiento(de al menos 16 bits) ya que UNIX es multiusuario.

·      Un sistema de protección de memoria para proteger a cada uno de los usuarios de la corrupción de su memoria por parte de un tercero.

·      Una memoria primaria de tamaño suficiente. Cuanto mayor sea esta, menos frecuente serán los intercambios con la memoria secundaria a fin de permitir a cada proceso utilizar una fracción del tiempo de la máquina.

·      Una memoria secundaria importante y de alto rendimiento.

·      Una salida para una consola operadora puede permitir al SuperUsuario efectuar diversas operaciones de administración (puesta en marcha, paradas, mantenimiento etc.).

·      Una salida para impresora.

·      Varias salidas para terminales de usuario, si el sistema se usa en modo multiusuario. Las licencia de explotación UNIX especifica un número máximo de terminales en el sistema fijado en: 8, 16, 32 o más (según las licencias).

 

 

Estructura General:

           

En UNIX se distinguen esencialmente tres capas: la de los procesos de usuarios, la del núcleo y la de los controladores de periféricos; constituyen dominios a través de los cuales las peticiones de las aplicaciones experimentan diferentes tratamientos antes de llegar a su destino.

            Un usuario puede crear directamente procesos a todos los niveles, excepto en el núcleo.

            Para establecer relaciones entre las diferentes capas se dispone de cuatro posibilidades:

1.      Llamadas al sistema.

2.      procedimientos estándar característicos de lenguaje C.

3.      Utilidades suministradas con el sistema.

4.      controladores de E/S suministrados con el sistema, variables de una instalación a otra.

Sistemas de Archivos

 

 Los Sistemas de archivos  se componen de archivos y directorios.

            El sistemas de archivos se maneja mediante bloques de datos, que se almacenan en el disco de la siguiente manera: se utilizan dos tamaños de bloques, bloque grande (8192 bytes), todos los bloques del archivos son de este tipo, el único que no es de este tipo es el último que es de 1024 bytes.

            Los tamaños de bloques y fragmentos se fijan durante la creación del Sistema de Archivos, y depende del uso que se les dará (archivos pequeños, fragmentos pequeños, grandes archivos, bloques grandes).

            El sistema operativo gestiona los tres recursos  principales: los medios de tratamiento, el sistema de Entrada/ Salida y los medios de memorización. La explotación de la memoria secundaria precisa de la modelización de los datos que almacenamos en ella. Este modelo se denomina  sistema de archivos. Su función es muy importante, pues de él depende el rendimiento del conjunto del sistema. Los creadores de UNIX han adoptado por un modelo jerárquico, un directorio de mayor jerarquía puede agrupar un conjunto de directorios y éstos a su vez archivos u otros subdirectorios.

            El sistema operativo mantiene varios directorios para su operación normal y existe uno de máxima jerarquía denominado raíz o “root”.

Existen tres tipos de archivos:

·      Los archivos directorios: que sirven para unir los diferentes archivos al sistema de archivos. No pueden ser leídos por el usuario. Quedan constantemente bajo el control del Sistema Operativo que se encarga de su puesta al día.

·      Los archivos ordinarios: que sirven para memorizar los programas y los datos de los usuarios y del sistema.

·      Los archivos especiales: que permiten unir el sistema de E/S al sistema de archivo; facilitando las transferencias de datos entre las aplicaciones y los periféricos.

Esta integración del sistema de E/S con la utilización de archivos especiales permite a una E/S comportarse como cualquier archivo ordinario. Un usuario puede así dirigir indistintamente el flujo de los datos utilizados (o producidos) por  su aplicación, desde (o hacia) un archivo o una E/S. Esta integración de acceso a los órganos periféricos en un programa o en un comando se efectúa sin conocimientos especiales; el sistema se encarga de ello. Este desencadena automáticamente, en cada acceso a uno de estos archivos especiales (integrando al sistema de archivo) las llamadas necesarias a las E/S implicadas. Todos los archivos especiales se reagrupan en el directorio “/dev”.

            La estructura del archivo escogida impone un archivo directorio en la bifurcación de cada rama. Los otros tipos de archivo no pueden servir de unión interarchivo y son forzosamente las hojas del árbol.

 

Administración de Archivos y Directorios

El Sistema de Archivos de Unix; esta basado en un modelo arborescente y recursivo, en el cual los nodos pueden ser tanto archivos como directorios, y estos últimos pueden contener a su vez directorios o subdirectorios. Debido a esta filosofía, se maneja al sistema con muy pocas órdenes, que permiten una gran gama de posibilidades. Todo archivo de Unix está controlado por múltiples niveles de protección, que especifican los permisos de acceso al mismo. La diferencia que existe entre un archivo de datos, un programa, un manejador de entrada / salida o una instrucción ejecutable se refleja en estos parámetros, de modo que el sistema operativo adquiere características de coherencia y elegancia que lo distinguen.

La raíz del sistema de archivos (conocida como root ) se denota con el símbolo "/", y de ahí se desprende un conjunto de directorios que contienen todos los archivos del sistema de cómputo. Cada directorio, a su vez, funciona como la subraíz de un nuevo árbol que depende de él y que también puede estar formado por directorios o subdirectorios y archivos. Un archivo siempre ocupará el nivel más bajo dentro del árbol, porque de un archivo no pueden depender otros; si así fuera, sería un directorio. Es decir, los archivos son como las hojas del árbol.

Sintácticamente consta de  los elementos del nombre del archivo separado por una barra inclinada por ejemplo: /sur/local/font’’

Donde:

            a-Sur es un subdirectorio de la raíz,

            b-local es un subdirectorio de sur

            c-font es un archivo o directorio en el directorio local.

UNIX dispone tanto de nombre de camino absoluto como  de nombres de caminos relativos.

Se define en forma unívoca el nombre de todo archivo (o directorio) mediante lo que se conoce como su trayectoria (path name): es decir, el conjunto completo de directorios, a partir de root (/), por los que hay que pasar para poder llegar al directorio o archivo deseado. Cada nombre se separa de los otros con el símbolo “/”, aunque tan sólo el primero de ellos se refiere a la raíz.

Por ejemplo, el archivo “u/gerencia/abril94l/carta2”

 tiene toda esta trayectoria como nombre absoluto, pero se llama “gerencia/abril94l/carta2”, sin 1ra diagonal inicial, si se observa desde el directorio “/u”. Para los usuarios que están normalmente en el directorio “/u/gerencia”, el archivo se llama “abril94l/carta2”. Así, también puede existir otro archivo llamado “carta2”, pero dentro de algún otro directorio y en caso de ser necesario se emplearía el nombre de la trayectoria (completa o en partes, de derecha a izquierda) para distinguirlos. UNIX ofrece medios muy sencillos para colocarse en diferentes puntos del árbol que forma el sistema de archivos.

            Desde el punto de vista del directorio “abril94”, que a su vez pertenece al directorio “gerencia” del directorio “/u”, basta con el nombre “carta2” para apuntar al archivo en cuestión.

En esta forma se maneja el sistema completo de archivos y se dispone de un conjunto de órdenes de Shell (además de múltiples variantes) para hacer diversas manipulaciones, como crear directorios, moverse dentro del sistema de archivos, copiarlos, etcétera.

UNIX incluye, además, múltiples esquemas para crear, editar y procesar documentos. Existen varios tipos de editores, formadores de textos, macroprocesadores para textos, formadores de tablas, preprocesadores de expresiones matemáticas y un gran número de ayudas y utilerías diversas, que se mencionan más adelante.

A continuación se describe el modo de funcionamiento de UNIX, con base en un modelo de estudio de sistemas operativos que lo divide en "capas" jerárquicas para su mejor comprensión.

Manejo de archivos y de información

Como ya se describió, la estructura básica del sistema de archivos es jerárquica, lo que significa que los archivos están almacenados en varios niveles.

Se puede tener acceso a cualquier archivo mediante su trayectoria, que especifica su posición absoluta en la jerarquía, y los usuarios pueden cambiar su directorio actual a la posición deseada. Existe también un mecanismo de protección para evitar accesos no autorizados. Los directorios contienen información para cada archivo, que consiste en su nombre y en un número que el Kernel utiliza para manejar la estructura interna del sistema de archivos, conocido como el nodo-i. Hay un nodo-i para cada archivo, que contiene información de su directorio en el disco, su longitud, los modos y las fechas de acceso, el autor, etc. Existe, además, una tabla de descriptores de archivo, que es una estructura de datos residente en el disco magnético, a la que se tiene acceso mediante el sistema mencionado de E/S por bloques.

El control del espacio libre en el disco se mantiene mediante una lista ligada de bloques disponibles. Cada bloque contiene la dirección en disco del siguiente bloque en la cadena. El espacio restante contiene las direcciones de grupos de bloques del disco que se encuentren libres. De esta forma, con una operación de E/S, el sistema obtiene un conjunto de bloques libres y un apuntador para conseguir más.

Las operaciones de E/S en archivos se llevan a cabo con la ayuda de la correspondiente entrada del nodo-i en la tabla de archivos del sistema. El usuario normalmente desconoce los nodos-i porque las referencias se hacen por el nombre simbólico de la trayectoria. Los procesos emplean internamente funciones primitivas (llamadas al sistema) para tener acceso a los archivos; las más comunes son open, creat, read, write, seek, close y unlink, aunque sólo son empleadas por los programadores, no por los usuarios finales del sistema.

Toda esta estructura física se maneja "desde afuera" mediante la filosofía jerárquica de archivos y directorios ya mencionada, y en forma totalmente transparente para el usuario. Además, desde el punto de vista del sistema operativo, un archivo es muy parecido a un dispositivo.

 

 

Indices

            Es la representación de un archivo. Es un registro que almacena información sobre el archivo determinado y contiene:

1.      Identificación del usuario y del grupo de archivos.

2.      Instante del último acceso y de la última modificación

3.      Contador con el número de ‘Hord-Links’ al archivo

4.      El tipo de archivo

5.      15 apuntadores a bloques de disco.

Los primeros doce bloques apuntan a bloques directos, o sea que puede referenciar inmediatamente a 12 direcciones de bloques de datos de archivos (ya que existe una copia del nodo índice.  En memoria principal mientras el archivo este abierto).

            Los siguientes 3 apuntan a bloques indirectos (del tamaño de bloque grande).

El primero es  la dirección de un bloque indirecto simple (Bloques de direcciones de bloques de datos).

            El segundo apunta a un bloque indirecto doble (bloque de direcciones  de bloques que apuntan a bloques de datos).

            El tercero apunta a un bloque indirecto triple (no se lo necesita).

 

Directorios

            El contenido de directorios se almacenan en bloques de datos. Los directorios se representan por un nodo índice igual que los archivos normales.

            En el 4.2 BSD (actualizado), los nombres de los archivos son de longitud variable (hasta 255 byte) y  también las entradas a los directorios. Cada entrada esta formada por la longitud de entrada, nombre del archivo y su número.

            Las nuevas entradas se añaden a los archivos existentes, se utiliza una búsqueda  lineal.

 

Accesos.

            Si el primer carácter del nombre del camino es ‘/’ es el directorio raíz, sino el directorio de partida es el proceso actual. El final es el nombre de un archivo, se realiza el proceso en busca de este nombre y sino se lo encuentra, se emite un error.

 

Mapeado.

            Se utiliza para indexar en una tabla de archivos abiertos del proceso actual.

            Cada  entrada  en la tabla contiene un apuntador a una de archivo, que a su vez apunta  al nodo índice.

La estructura del nodo índice es una copia en memoria del nodo índice  que hay en disco, con campos extras.

 

Estructura de disco.

            El usuario esta con contacto con el único  sistema de archivos lógicos, que puede consistir en varios sistemas  de archivos físicos.

            La partición de un dispositivo físico en dispositivos lógicos que definen un sistema de archivos físicos, presenta las siguientes ventajas:

1.      Distintos sistemas de archivos pueden soportar usos distintos.

2.      Si ocurre un error  de sotfware, este queda limitado a un sistema de archivos.

3.      Evita que un programa utilice todo espacio para un archivo grande.

  El dispositivo lógico tiene 2 sectores:

1.      Bloque de inicialización: Contiene un programa primario de inicio  que puede                                                                                                                                           llamar a otro programa de inicialización.

2.      El superbloque: contiene parámetros estáticos del sistema de archivos (tamaño total, tamaños de bloques y de fragmento de bloque de datos que afectan a las políticas de asignación).

 

Ruta relativa de acceso.

            Existen dos formas de especificar los nombres de archivos en UNIX, tanto por SHELL como para llamadas al sistema OPEN. La primera utiliza una ruta absoluta de acceso, que indica la forma de llegar al archivo desde el directorio raíz. Un ejemplo de ruta absoluta es: /usr/ast/book/chl.

 

            Estos nombres son con frecuencia largos e inconvenientes. Por esta razón UNIX permite que se designe el directorio en el que trabajamos en un momento dado como el Directorio de trabajo. Los nombres de las rutas de acceso se pueden determinar entonces en forma relativa  al directorio de trabajo. Tal nombre  se llama ruta relativa de acceso.

            Por ejemplo si */usr/ast/book/* es el directorio de trabajo, entonces el comando SHELL:

              *cp shl backup*

tiene el mismo efecto que el comando más largo:

   *cp  /usr/ast/book/chl    /usr/ast/book/*

 

Enlace

            A menudo ocurre que un usuario necesita hacer referencia a un archivo que pertenece a otros usuarios o que al menos se localizan en un lugar distinto en el árbol de archivos. Si este es lo bastante largo, podría resultar irritante seguir escribiéndolo. UNIX permite que los usuarios hagan una entrada en el directorio que apunte a un archivo existente. Tal entrada se conoce como ENLACE.

            Luego de haber encontrado el enlace el usuario podrá acceder con el dato creado por su directorio a cualquier archivo del sistema con solo escribir su nombre.

 

Manejo de unidades de disco

            Cuando existen varias unidades de discos surge la cuestión de controlarlas, incluso las computadoras grandes tienen, por lo general,  dos discos: un disco duro y una unidad de disco flexibles.

            Al estar trabajando con archivos que se encuentran en unidades distintas sabemos que resulta molesto el estar cambiando de unidad en cada momento.

La solución de UNIX permite que un disco se monte en el árbol de directorios de otro disco duro, lo que produce un solo sistema de archivos.

            El usuario ve entonces un único árbol de directorios y no tiene que preocuparse por el lugar en donde reside un archivo en un dispositivo.

 

Cerraduras

            Otra interesante propiedad del sistema de archivos de Unix es la cerradura (locking).

POSIX proporciona un mecanismo para que los procesos se cierren desde un solo byte, y hasta todo un archivo. El mecanismo de cerradura (locking),requiere de quien haga la llamada determine el archivo por cerrar, el byte de inicio, y el numero de bytes. Si la operación tiene éxito, el sistema crea un dato de una tabla para observar que los bytes en cuestión (por ejemplo un registro), están cerrados.

            Se proporcionan dos tipos de cerraduras: compartidas y exclusiva. Si una porción de cierto archivo contiene una cerradura compartida, se permite un segundo intento de colocar una cerradura compartida en él, pero fracasaría por colocar una cerradura exclusiva en el punto si una parte de un archivo tiene una cerradura exclusiva todos los intentos por cerrar cualquier parte de él fracasarían.

            Para poder colocar una cerradura, cada byte de a región por cerrar debe estar disponible.

            Al colocar una cerradura, un proceso debe especificar si desea quedar o no bloqueado en caso de que no pueda colocar la cerradura. Si se opta por el bloqueo, al eliminar la cerradura existente el proceso se desbloquea, la llamada al sistema regresa de manera inmediata, con un código de estado que indicara si se logro establecer la cerradura.

            Las regiones cerradas se pueden trasladar.

 

EL SISTEMA DE ARCHIVO RAPIDO DE BERKELEY (FAST FILLE SYSTEM)

 

Mejoras hechas en Berkeley.

1-Se reorganiza los directorios, es decir, ya no funcionaría los programas que leía los directorios. POSIX proporcionó la llamada al sistema OPENDIR, READDIR Y CLOSEDIR para que los programas leyeran directorios sin tener que conocer su estructura interna. El límite de los nombres de los archivos es de 255 caracteres.

2-División del disco en GRUPO DE CILINDRO, cada uno de los cuales tienen su súper bloque , nodos-i  y bloque de dato. Siempre que sea posible se asignan los bloques en el grupo de cilindro que contenga al nodo-i.

3-Dos tamaños de bloques en ves de uno solo. Para el almacenamiento de bloques grandes, es más eficiente tener un número reducido de bloques grandes en vez de muchos pequeños.

 

 

 

 

Arbol de directorios

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Sistema de Entrada/Salida

 

            Para facilitar la tarea de los usuarios de UNIX, sus diseñadores han adoptado el principio de archivos de Entrada/Salida, a costa de un núcleo del Sistema Operativo un poco más complejo.

            En la estructura del Sistema de E/S de UNIX distinguimos dos aspectos:

1.      Los programas de gestión de las E/S, comprendidos los programas de interrupción.

2.      las relación, mediante archivos especiales, de estos programas de E/S con procesos de usuarios y el núcleo.

En un sistema de archivos UNIX aparecen archivos especiales en un directorio “/dev”. Los nodos de índice de estos archivos contienen dos números, el número de dispositivo mayor o principal y el número de dispositivo menor o secundario, así como el tipo de gestión de E/S asociado (tipo bloque o carácter). Estos datos permiten al núcleo volver a encontrar las tablas y en ellas las direcciones de los programas de E/S.

 

 

Concesión del sistema de E/S:

 

            El acceso a un programa de E/S comienza, como el acceso a un archivo, por la búsqueda del nodo índice correspondiente al nombre del periférico, por ejemplo: “/dev/ttya0”. El sistema determina que se trata de un acceso periférico y no de un acceso a un archivo. Lee el tipo de gestión de E/S involucrado y sabe en que tabla de los circuitos de E/S se encuentra la dirección del programa de gestión de E/S. También lee en el nodo índice el valor del número mayor que termina la entrada en la tabla de los circuitos de E/S. Entonces el sistema puede ejecutar la secuencia de subprogramas que se encuentra en la tabla de circuitos. Estos programas se ejecutan hasta su término como si se tratase de programas integrados a los del proceso del demandante, aunque con una pequeña diferencia: están integrados en el núcleo y se ejecutan con ciertos privilegios.

 

Programas de Gestión de E/S

 

            Estos constituyen dos familias diferentes, las de E/S Caracter y las de E/S Bloque. En le primer caso las transferencias son directas y la gestión de la transferencia, así como la sincronización corren totalmente a cargo del programa de gestión de E/S, realizándose las transferencias sin “bufferings”; entre los dispositivos de caracteres se incluyen terminales e impresoras de línea y también, casi cualquier cosa que no utilice el caché de los buffers de bloques. Para  la E/S de tipo Bloque el sistema se encarga de un cierto número de acciones y ejecuta las transferencias de datos indirectamente mediante buffers. Estos se asocian al programa de gestión de E/S bloque en el momento de la inicialización de una petición de E/S. Las transferencias se amortiguan a través del caché de buffers de bloques (los dispositivos de bloques incluyen discos y cintas).

            Debemos tener en cuenta que sea cual sea el tipo de gestión de E/S empleado, el usuario no debe notar ninguna diferencia de uso.

 

Entrada salida de tipo carácter:

 

El programa de gestión de E/S carácter utiliza los siguientes procedimientos :

·                    Open: abre la transacción preparando el órgano periférico.

·                    Close: termina la transacción.

·                    Read: transfiere los datos en el sentido periférico hacia el S.O.

·                    Write: mismo uso en sentido contrario.

·                    Ioctl: realiza operaciones específicas del tipo desbloqueo de un órgano.

·                    Stop: detiene una salida en curso. Se utiliza en los programas de gestión de E/S de los terminales de consulta.

·                     Interrupt: controla las interrupciones.

 

            La política de transferencia de datos está totalmente a cargo del realizador del programa de gestión de E/E. sin embargo puede disponer de un sistema buffering elemental, las C-List,o escribir directamente en la zona de datos del usuario.

            Ciertos periféricos, especialmente rápidos, pueden ser asociados a un programa de gestión de E/S un poco particular, el programa de gestión  de E/S físico (Physical I/O). En este caso el programa debe bloquear en memoria el proceso demandante, ya sea que las transferencias se hagan directamente entre la zona de memoria del proceso y el órgano periférico, sin que se admita ningún buffering. Puede ser necesario compactar el proceso en memoria antes de empezar las transferencias.

 

C-List:

            Los controladores de terminal utilizan un sistema de buffering por caracteres. Esto supone pequeños bloques de caracteres  (usualmente 28 bytes) que se mantienen en una lista  enlazada. Existen rutinas para poner y quitar caracteres de tales lista. Aunque todo los buffers de caracteres libres se mantienen en una única lista, la mayoría de los controladores de dispositivos que los utilizan limita el número de caracteres que pueden ser puestos en la cola simultáneamente para una línea de terminal.

            Una llamada al sistema para escritura en una terminal sitúa los caracteres en una lista para ese dispositivo. Se inicia una transferencia inicial, y mediante las interrupciones se extraen caracteres de la cola y se realizan más transferencias.

 

 

Entrada /Salida de tipo Bolque:           

 

            Las E/S de tipo bloque son algo distintas a las de caracteres, ya que los datos transitan por un sistema de memoria intermedia evolucionado, los “buffers”. El Sistema Operativo se encarga de un cierto número de funciones referentes a la sincronización, el bloqueo y el desbloqueo de los demandantes. Los buffers tienen, cada uno, una longitud de 1 Kbyte. Este buffering posee dos propiedades principales:

·      Gestión asíncrona de los periféricos. Los datos que vienen del proceso que llama se almacenan en estos buffers, antes de que los órganos periféricos inicien las acciones para almacenarlas .

·      Limitación de acceso periféricos, principalmente en lectura. Si los datos ya están en un buffer, se restituyen sin otra acción hardware.

 

Los buffers se van reservando en función de las necesidades, a partir de una reserva (pool) cuyo tamaño es uno de los parámetros ajustables en el momento de la generación del núcleo. Este método no carece de inconvenientes. Debido al asincronismo de la escritura, un incidente hardware antes de la transferencia hacia el periférico puede conducir a un sistema de archivos no consistente, con nodos índice que no estén actualizados o no sean conformes. Para el proceso demandante los datos se consideran como transferidos (lógicamente) a pesar de que el periférico destinatario no lo haya recibido.

Los procedimientos que componen el programa de gestión de una E/S  de bloque son los siguientes:

·                    Open: prepara el periférico.

·                    Close: termina la transacción poniendo en orden diversos factores.

·                    Start: transmite ciertos comandos al periférico.

·                    Strategy: efectúa una lectura/escritura con optimización de los accesos.

·                    Interrupt: controla las interrupciones.

 

            Estas E/S de tipo bloque son mucho más fáciles de escribir, para un mismo periférico, en la medida en que el sistema realiza un cierto número de tareas esenciales sin que sea necesario preocuparse de ello. Sin embargo, tienen el inconveniente de ser mucho más lentas, puesto que utilizan un buffering complementario compuesto por memorias de 1 Kbyte cada una.

            Hay que destacar que todo órgano periférico que manipula datos en forma de archivo debe utilizar obligatoriamente E/S de tipo bloque. Esta última exigencia compete a la organización de los datos y no al periférico que los arbitra. A título de ejemplo, para los discos duros existen dos programas de gestión de E/S: el de tipo bloque y el de tipo carácter el cual permite cargar directamente la zona de memoria del usuario con los datos del disco.

 

Seguridad:

 

            Los archivos especiales pueden tener un acceso igual al de otros archivos. Los programas pueden abrir, leer y escribir los archivos especiales, de la misma forma que los archivos regulares.

            Una ventaja adicional es que las reglas generales de protección de archivos se aplican de manera automática a los dispositivos en E/S. Si los bits de protección de “/dev” se configuran de forma que solo el superusuario tenga acceso directo a los archivos, entonces los usuarios no podrán realizar la E/S por sí mismos. El acceso restringido a los dispositivos seleccionados de E/S se puede otorgar mediante la instalación de programas con permiso para leer y escribir en los archivos de “/dev”, pero que hagan esto de manera limitada.

            Por ejemplo, una forma común para el manejo del acceso a la impresora es no permitir a nadie la lectura de “/dev/lp” y permitir la escritura solo al superusuario. Se ofrece un programa “lpr” para permitir a los usuarios que impriman sus archivos. Lo que hace “lpr”es copiar los archivos especificados en sus argumentos a un directorio spooling, de donde un demonio de acceso a “/dev/lp” los toma e imprime en orden.

 

Llamada al Sistema relacionadas con E/S en UNIX:

 

            Antes de la existencia del sistema POSIX, la mayoría de los sistemas UNIX tenían una llamada al sistema IOCTL que desarrollaba un gran número de acciones específicas de ciertos dispositivos en archivos particulares. En el curso de los años esto se volvió un poco confuso. POSIX mejoró esto al separar sus funciones en varias llamadas al sistema. Las primeras cuatro llamadas al sistema que aparecen en la tabla se utilizan para establecer y recuperar la velocidad de la terminal. Se tienen llamadas diferentes para la entrada y a salida, puesto que ciertos módem operan con velocidades diferentes. Por ejemplo, muchos sistemas videotex permiten a las personas con computadoras personales tener accesos a las bases de datos públicas en donde las solicitudes (cortas por lo general) de la casa a la computadora se transmiten a 75 bits/seg y las respuestas  (largas por lo general) regresan a 1200 bits/seg. Este estándar  se adoptó en una época en que la transmisión en ambos sentidos a 1200 bits/seg era demasiado cara para el uso casero.

            Las últimas dos llamadas de la lista establecen y recuperan todos los caracteres especiales que se utilizan para eliminar caracteres y renglones, interrumpir procesos, etc.

            Además activan y desactivan el eco, manejan el control del flujo y realizan otras funciones.         

 

 

                     

   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