
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.
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.
Otra interesante
propiedad del sistema de archivos de Unix es la
cerradura (locking).
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.

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.
![]()
Número de visitantes actuales disponible desde el 14/07/2002:
Autor: lrmdavid@exa.unne.edu.ar
Ó FACENA - http://exa.unne.edu.ar
Servicios WEB: webmaster@exa.unne.edu.ar