Monografias | Redes de datos

Redes de datos

Resumen: El núcleo del sistema operativo Unix (llamado Kernel) es un programa escrito casi en su totalidad en lenguaje C, con excepción de una parte del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el que opera. Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado óptimo la atención individual. El Kernel opera como asignador de recursos para cualquier proceso que necesite hacer uso de las facilidades de cómputo. Es el componente central de Unix y tiene las siguientes funciones.

Publicación enviada por Javier Perez Lindo


 


 

Microcomputadoras

 

Redes de datos

SISTEMA OPERATIVO UNIX

 

Introducción:

El sistema operativo UNIX surgió en los laboratorios de
AT&T Bell como un proyecto de algunos programadores de SO personal. AT&T
ofreció el código fuente a universidades para su investigación y su uso se
extendió en ese ambiente y en el empresario.

Aunque nunca se haya usado UNIX, casi todos los SO actuales
tienen muchos conceptos tomados de el, incluyendo al DOS, OS/2, NT, etc. Claro
que en UNIX estos conceptos están en su estado mas puro e ideal. En DOS se
puede manejar un port de comunicaciones abriéndolo como un archivo pero no
funciona. En UNIX es la única manera y funciona. UNIX es algo así como el latín
de los sistemas operativos.

La palabra UNIX es marca registrada y actualmente esta en
poder de Novell. Aun así, muchas empresas diseñaron sistemas UNIX compatibles
(el desarrollo a través del código fuente así lo permitía), o sea que que se
puede tomar un programa escrito en C para una plataforma, compilarlo y usarlo en
otra, lo que significa que si uno instala UNIX en su modesta PC, tiene un
ambiente muy similar al de "workstations" profesionales.

Actualmente los SO así orientados son SCO UNIX, BSD UNIX,
AIX de IBM, Unixware de Novelll (de uso publico).

UNIX tiene variada aplicación, pero especialmente se destaca
en redes, lo que implica Internet. (primariamente fue la plataforma elegida como
todo proceso de investigación, por eso su relación conceptual, protocolar, en
servicios, etc. En cualquier versión UNIX se encontraran herramientas para usar
internet, aunque mas de tipo científicas que las populares Windows u OS/2.).

Aun siendo autosuficiente, ayuda a su popularización la
aparición del Linux, un clon de UNIX Freeware (distribución gratuita)
tan potente como los mejores SO aplicables en PC.

El desarrollo del Linux

UNIX fue tradicionalmente un SO caro, pero eso dejo de ser un
problema ya que un grupo de programadores distribuidos a lo largo de internet y
encabezados por un estudiante finlandés llamado Linus Torvalds tomo la
iniciativa de generar un UNIX totalmente gratuito.

La característica de Linux hace que no tenga nada que
envidiarle a los sistemas comerciales. Tiene algunas desventajas. No hay
soporte. Solo los foros de discusión en internet y en sistemas como MP Online!
(foros/sist/unix), aunque esto suele ser suficiente la mayoría de los casos.
Tampoco hay manuales impresos, pero esto no es demasiado problema porque existen
libros y mucha documentación en archivos. También esta el problema de que
Linux es solamente el kernel (el núcleo del sistema operativo). Cada
comando aparte, cada función, es un proyecto independiente y son paquetes que
se instalan por separado. También sucede que hay distintas versiones de lo
mismo pero este problema también encontró su solución. Diferentes personas en
el mundo se han encargado de armar en instalar un sistema Unix mas o menos
coherente, a esos sistemas ya armados y configurados se los llama
"distribuciones". La mas conocida actualmente es la distribución Slackware.

La interfaz gráfica que se usa en el ambiente UNIX se llama Xwindows
(también gratuito: Xfree para Linux en las distribuciones), y es muy
flexible y poderosa. Esta diseñada para trabajar en cualquier SO, red y
computadora.

Para correr Linux no es necesario una gran maquina. Basta con
una 386 con 4MB (8MB para Xwindows, mas una buena placa de video), y su
instalación demanda alrededor de 100MB. Soporta bus ISA, PCI y local bus (no
Micro Channel). Respecto al hard, el soporte es muy completo, soporta casi todas
las placas de sonido, todos los CD ROM, placas SCSI, de red, etc. X permite ser
configurado para una gran variedad de placas de video. Además linux fue portado
a otras plataformas, o sea que también su puede usar sobre Alpha, MIPS, Sparc,
68000 y PowerPC.

Características básicas

Multitarea: Permite la ejecución de varias tareas a la
vez, con muy buen rendimiento.

32 bits: Aprovecha el procesador 386 y superiores por
completo.

Estable: se caen las aplicaciones pero no el sistema.
Cada aplicación corre completamente aislada de las demás (evita la proliferación
de virus, de hecho no existen por ahora).

Memoria virtual: Permite que las aplicaciones trabajen
sobre un espacio de memoria virtual que es mayor que la memoria disponible.
Logra esto intercambiando paginas de 4 KB entre la memoria y el disco.

Librerías dinámicas: Varias aplicaciones pueden
compartir código, ahorrando memoria y espacio en disco.

Multiusuario: permite que varias personas usen la
computadora a la vez, manteniendo para esto un sitema de seguridad.

Funcionamiento

Linux le pregunta al usuario un nombre y una clave. Esto es
así porque UNIX esta pensado multiusuario. Se puede lograr compartir la misma
computadora entre muchisimas personas que entran por una red o por módem.
Existe un nombre de usuario especial que es el que tiene derecho sobre todo el
sistema, su nombre: Root.

La forma de moverse dentro de UNIX es parecida a DOS:

Comandos:

pwd.....para averiguar cual es el directorio actual

ls.........pedir un listado del directorio actual

cd........cambia un directorio

mkdir...crea un directorio

cat.......para ver un archivo

echo....imprime una cadena de caracteres

cp........copia un archivo

mv.......mueve o renombra un archivo.

Ejemplo:

newton:/test# echo Hola > "Esto es un archivo"

newton:/test# ls -ltotal 1

-rw-r-r- 1 root root 5 Jan 13 12:01 Esto es un archivo

newton:/test# mkdir direc

newton:/test# cd direc

newton:/test/direc# ls -l

total 0

newton:/test/direc# mv ".../Esto es un archivo" .

newton:/test/direc# ls -ltotal 1

-rw-r-r- 1 root root 5 Jan 13 12:01 Esto es un archivo

newton:/test/direc#

En el prompt podemos ver el nombre de la computadora (newton)
seguido del directorio actual.

Al pedir un listado de archivos con ls (-l pide mas
información), el sistema muestra quien es el dueño del archivo, en este caso
root.

A la izquierda muestra quienes pueden usarlo.

Los significados de las letras: r=lectura, w=escritura,
x=ejecutable
.

Hay permisos para el dueño, el grupo al que pertenece y el
resto. O sea que un archivo ejecutable legible para el dueño y para el grupo
pero no para los demás informaría: rwxrwx-- .

UNIX en el mundo

A medida que los servidores departamentales se abren paso
hacia el centro de datos, los servidores Unix se han ido incorporando con mayor
presteza, ya que son mas escalables que los servidores PC bajo NT Windows. Los
sistemas Cray Origin2000 de Silicon grafics pueden funcionar con hasta 128
procesadores conectados mediante redes de malla CrayLink Interconnect (NT
soporta hasta 28).


 

Los sistemas UNIX tienen un rendimiento mayor que sus colegas
de arquitectura PC. Así lo afirma el Transaction Processing Council (TCP)
-California, EEUU- quien asegura que los sistemas Unix ocupan los 10 primeros
lugares en el ranking de performance. Con una versión de DBMS Oracle corriendo
sobre un sistema Alpha de Digital Equipment, se completan 102.541
transacciones por minuto.

Entre las grandes organizaciones, el International Technology
Group descubrió que la mayor parte de los presupuestos de Informática y
Telecomunicaciones se gasta en servidores Unix (43%). El gasto de los servidores
PC ocupa el segundo puesto (32,1%), mientras que los mainframe son los que
generan el menor gasto (24,4%).

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 comunació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.

El núcleo del Sistema Operativo

El núcleo del sistema operativo Unix (llamado Kernel)
es un programa escrito casi en su totalidad en lenguaje C, con excepción de una
parte del manejo de interrupciones, expresada en el lenguaje ensamblador del
procesador en el que opera.

Las funciones del núcleo son permitir la existencia de un
ambiente en el que sea posible atender a varios usuarios y múltiples tareas en
forma concurrente, repartiendo al procesador entre todos ellos, e intentando
mantener en grado óptimo la atención individual.

 

El Kernel opera como asignador de recursos para
cualquier proceso que necesite hacer uso de las facilidades de cómputo. Es el
componente central de Unix y tiene las siguientes funciones:

- Creación de procesos, asignación de tiempos de atención
y sincronización.

- Asignación de la atención del procesador a los procesos
que lo requieren.

- Administración de espacio en el sistema de archivos, que
incluye: acceso, protección y administración de usuarios; comunicación entre
usuarios v entre procesos, y manipulación de E/S y administración de periféricos.

- Supervisión de la transmisión de datos entre la memoria
principal y los dispositivos periféricos.

El Kernel reside siempre en la memoria central y tiene
el control sobre la computadora, por lo que ningún otro proceso puede
interrumpirlo; sólo pueden llamarlo para que proporcione algún servicio de los
ya mencionados. Un proceso llama al Kernel mediante módulos especiales
conocidos como llamadas al sistema.

El Kernel consta de dos artes principales: la sección
de control de procesos y la de control de dispositivos. La primera asigna
recursos, programas, procesos y atiende sus requerimientos de servicio; la
segunda, supervisa la transferencia de datos entre la memoria principal y los
dispositivos periféricos. En términos generales, cada vez que algún usuario
oprime una tecla de una terminal, o que se debe leer o escribir información del
disco magnético, se interrumpe al procesador central y el núcleo se encarga de
efectuar la operación de transferencia.

Cuando se inicia la operación de la computadora, debe
cargarse en la memoria una copia del núcleo, que reside en e] disco magnético
(operación denominada bootstrap). Para ello, se deben inicializar
algunas interfaces básicas de hardware; entre ellas, el reloj que proporciona
interrupciones periódicas. El Kernel también prepara algunas
estructuras de datos que abarcan una sección de almacenamiento temporal para
transferencia de información entre terminales y procesos, una sección para
almacenamiento de descriptores de archivos y una variable que indica la cantidad
de memoria principal.

A continuación, el Kernel inicializa un proceso
especial, llamado proceso 0. En general, los procesos se crean mediante
una llamada a una rutina del sistema (fork), que funciona por un
mecanismo de duplicación de procesos. Sin embargo, esto no es suficiente para
crear el primero de ellos, por lo que el Kernel asigna una estructura de datos y
establece apuntadores a una sección especial de la memoria, llamada tabla de
procesos, que contendrá los descriptores de cada uno de los procesos existentes
en el sistema.

Después de haber creado el proceso 0, se hace una
copia del mismo, con lo que se crea el proceso 1; éste muy pronto se
encargará de "dar vida" al sistema completo, mediante la activación
de otros procesos que también forman parte del núcleo. Es decir, se inicia una
cadena de activaciones de procesos, entre los cuales destaca el conocido como
despachador, o scheduler, que es el responsable de decidir cuál proceso se
ejecutará y cuáles van a entrar o salir de la memoria central. A partir de ese
momento se conoce el número 1 como proceso de inicialización del
sistema, init.

El proceso init es el responsable de establecer la
estructura de procesos en Unix. Normalmente, es capaz de crear al menos dos
estructuras distintas de procesos: el modo monousuario y el multiusuario.
Comienza activando el intérprete del lenguaje de control (Shell) en la terminal
principal, o consola, del sistema y proporcionándole privilegios de
"superusuario". En la modalidad de un solo usuario la consola permite
iniciar una primera sesión, con privilegios especiales, e impide que las otras
líneas de comunicación acepten iniciar sesiones nuevas. Esta modalidad se usa
con frecuencia para revisar y reparar sistemas de archivos, realizar pruebas de
funciones básicas del sistema y para otras actividades que requieren uso
exclusivo de la computadora.

Init crea otro proceso, que espera pacientemente a que
alguien entre en sesión en alguna línea de comunicación. Cuando esto sucede,
realiza ajustes en el protocolo de la línea y ejecuta el programa login, que se
encarga de atender inicialmente a los nuevos usuarios. Si la clave del usuario,
y la contraseña proporcionadas son las correctas, entonces entra en operación
el programa Shell, que en lo sucesivo se encargará de la atención normal del
usuario que se dio de alta en esa terminal.

A partir de ese momento el responsable de atender al usuario
en esa terminal es el intérprete Shell.

Cuando se desea terminar la sesión hay que desconectarse de
Shell (y, por lo tanto, de Unix), mediante una secuencia especial de teclas
(usualmente. < CTL > - D). A partir de ese momento la terminal
queda disponible para atender a un nuevo usuario.

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.

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 ofece medios muy sencillos para colocarse en diferentes puntos del árbol
que forma el sistema de archivos, que para el ejemplo anterior podría ser el
siguiente:

Como se dijo antes, 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.

Las ventajas de tratar a los dispositivos de E/S en forma
similar a los archivos normales son múltiples: un archivo y un dispositivo de
E/S se tornan muy parecidos; los nombres de los archivos y de los dispositivos
tienen la misma sintaxis y significado, así que a un programa que espera un
nombre de archivo como parámetro puede dársele un nombre de dispositivo (con
esto se logra interacción rápida y fácil entre procesos de alto nivel).

El sistema Unix ofrece varios niveles de protección para el
sistema de archivos, que consisten en asignar a cada archivo el número único
de identificación de su dueño, junto con nueve bits de protección, que
especifican permisos de lectura, escritura y ejecución para el propietario,
para otros miembros de su grupo (definido por el administrador del sistema) y
para el resto de los usuarios. Antes de cualquier acceso se verifica su validez
consultando estos bits, que residen en el nodo-i de todo archivo. Además,
existen otros tres bits que se emplean para manejos especiales, relacionados con
la clave del superusuario.

Otra característica de Unix es que no requiere que el
conjunto de sistemas de archivos resida en un mismo dispositivo.

Es posible definir uno o varios sistemas
"desmontables", que residen físicamente en diversas unidades de
disco. Existe una orden (mkfs) que permite crear un sistema de archivos
adicional, y una llamada al sistema (mount) con la que se añade (y otra
con la que se desmonta) uno de ellos al sistema de archivos global.

EI control de las impresoras de una computadora que funciona
con el sistema operativo Unix consiste en un subsistema (SPOOL) que se
encarga de coordinar los pedidos de impresión de múltiples usuarios. Existe un
proceso de Kernel que en forma periódica revise las colas de servicio de las
impresoras para detectar la existencia de pedidos e iniciar entonces las tareas
de impresión. Este tipo de procesos, que son activados en forma periódica por
el núcleo del sistema operativo, reciben en Unix el nombre de daemons
(duendes), tal vez porque se despiertan y aparecen sin previo aviso. Otros se
encargan de activar procesos en tiempos previamente determinados por el usuario,
o de escribir periódicamente los contenidos de los buffers de memoria en el
disco magnético.

Procesos. Manejo del Procesador

En Unix se ejecutan programas en un medio llamado
"proceso de usuario". Cuando se requiere una función del Kernel, el
proceso de usuario hace una llamada especial al sistema y entonces el control
pasa temporalmente al núcleo. Para esto se requiere de un conjunto de elementos
de uso interno, que se mencionan a continuación.

 

Se conoce como imagen a una especie de fotografía del
ambiente de ejecución de un proceso, que incluye una descripción de la
memoria, valores de registros generales, status de archivos abiertos, el
directorio actual, etcétera. Una imagen es el estado actual de una computadora
virtual, dedicada a un proceso en particular.

Un proceso se define como la ejecución de una imagen.
Mientras el procesador ejecuta un proceso, la imagen debe residir en la memoria
principal; durante la ejecución de otros procesos permanece primera en la
memoria principal a menos que la aparición de un proceso activo de mayor
prioridad la obligue a ser copiada al disco, como ya se dijo.

Un proceso puede encontrarse en uno de varios estados: en
ejecución; listo para ejecutar, o en espera.

Cuando se invoca una función del sistema, el proceso de
usuario llama al Kernel como subrutina. Hay un cambio de ambientes y, como
resultado, se tiene un proceso del sistema. Estos dos procesos son dos fases del
mismo original, que nunca se ejecutan en forma simultánea.

Existe una tabla de procesos que contiene una entrada por
cada uno de ellos con los datos que requiere el sistema: identificación,
direcciones de los segmentos que emplea en la memoria, información que necesita
el scheduler y otros. La entrada de la tabla de procesos se asigna cuando se
crea el proceso y se libera cuando éste termina.

Para crear un proceso se requiere la inicialización de una
entrada en la tabla, así como la creación de segmentos de texto y de datos.
Además, es necesario modificar la tabla cuando cambia el estado del proceso o
cuando recibe un mensaje de otro (para sincronización, por ejemplo). Cuando un
proceso termina, su entrada en la tabla se libera y queda otro disponible para
que otro nuevo la utilice.

En el sistema operativo Unix los procesos pueden comunicarse
internamente entre sí, mediante el envío de mensajes o señales. El mecanismo
conocido como interconexión (pipe) crea un canal entre dos procesos mediante
una llamada a una rutina del Kernel, y se emplea tanto para pasar datos
unidireccionalmente entre las imágenes de ambos, como para sincronizarlos, ya
que si un proceso intenta escribir en un pipe ocupado, debe esperar a que el
receptor lea los datos pendientes. Lo mismo ocurre en el caso de una lectura de
datos inexistentes: el proceso que intenta leer debe esperar a que el proceso
productor deposite los datos en el canal de intercomunicación.

Entre las diferentes llamadas al sistema para el manejo de
procesos que existen en Unix están las siguientes, algunas de las cuales ya han
sido mencionadas: fork (sacar una copia a un proceso); exec (cambiar la
identidad de un proceso); kill (enviar una señal a un proceso); signal
(especificar la acción por ejecutar cuando se recibe una señal de otro
proceso), y exit (terminar un proceso).

Dentro de las tareas del manejo del procesador destaca la
asignación dinámica (scheduling), que en Unix resuelve el scheduler mediante
un mecanismo de prioridades. Cada proceso tiene asignada una prioridad; las
prioridades de los procesos de usuario son menores que la más pequeña de un
proceso del sistema.

El "motor" que mantiene en movimiento un esquema de
multiprogramación es, por un lado, el conjunto de interrupciones que genera el
desempeño de los procesos y, por otro, los constantes recordatorios que hace el
reloj del procesador para indicar que se terminó la fracción de tiempo
dedicada a cada proceso.

En el sistema Unix, las interrupciones son causadas por lo
que se conoce como eventos, entre los cuales se consideran: la ejecución de una
tarea de entrada/salida; la terminación de los procesos dependientes de otro;
la terminación de la fracción de tiempo asignada a un proceso, y la recepción
de una señal desde otro proceso.

En un sistema de tiempo compartido se divide el tiempo en un
determinado número de intervalos o fracciones y se asigna cada una de ellas a
un proceso. Además Unix toma en consideración que hay procesos en espera de
una operación de E/S y que ya no pueden aprovechar su fracción. Para asegurar
una distribución adecuada del procesador entre los procesos se calculan dinámicamente
las prioridades de estos últimos, con el fin de determinar cuál será el
proceso que se ejecutará cuando se suspenda el proceso activo actual.

Manejo De Memoria

Dependiendo de la computadora en la que se ejecute, Unix
utiliza dos técnicas de manejo de memoria: swapping y memoria virtual.

Lo estándar en Unix es un sistema de intercambio de
segmentos de un proceso entre memoria principal y memoria secundaria, llamado
swapping lo que significa que se debe mover la imagen de un proceso al disco si
éste excede la capacidad de la memoria principal, y copiar el proceso completo
a memoria secundaria. Es decir, durante su ejecución, los procesos son
cambiados de y hacia memoria secundaria conforme se requiera.

Si un proceso necesita crecer, pide más memoria al sistema
operativo y se le da una nueva sección, lo suficientemente grande para
acomodarlo. Entonces, se copia el contenido de la sección usada al área nueva,
se libera la sección antigua y se actualizan las tablas de descriptores de
procesos. Si no hay suficiente memoria en el momento de la expansión, el
proceso se bloquea temporalmente y se le asigna espacio en memoria secundaria.
Se copia a disco y, posteriormente, cuando se tiene el espacio adecuado - lo
cual sucede normalmente en algunos segundos - se devuelve a memoria principal.

Está claro que el proceso que se encarga de los intercambios
entre memoria y disco (llamado swapper) debe ser especial y jamás podrá
perder su posición privilegiada en la memoria central. El Kernel se encarga de
que nadie intente siquiera interrumpir este proceso, del cual dependen todos los
demás. Este es el proceso 0 mencionado antes. Cuando se decide traer a la
memoria principal un proceso en estado de "listo para ejecutar", se le
asigna memoria y se copian allí sus segmentos. Entonces, el proceso cargado
compite por el procesador con todos los demás procesos cargados. Si no hay
suficiente memoria, el proceso de intercambio examine la tabla de procesos para
determinar cuál puede ser interrumpido y llevado al disco.

Hay una pregunta que surge entonces es ¿cuál de los
posibles procesos que están cargados será desactivado y cambiado a memoria
secundaria? Los procesos que se eligen primero son aquellos que están esperando
operaciones lentas (E/S), o que llevan cierto tiempo sin haberse movido al
disco. La idea es tratar de repartir en forma equitativa las oportunidades de
ejecución entre todos los procesos, tomando en cuenta sus historias recientes y
sus patrones de ejecución.

Otra pregunta es ¿cuál de todos los procesos que están en
el disco será traído a memoria principal?. La decisión se toma con base en el
tiempo de residencia en memoria secundaria. El proceso más antiguo es el que se
llama primero, con una pequeña penalización para los grandes.

Cuando Unix opera en máquinas más grandes, suele disponer
de manejo de memoria de paginación por demanda. En algunos sistemas el tamaño
de la página en Unix es de 512 bytes; en otros, de 1024. Para reemplazo se usa
un algoritmo que mantiene en memoria las páginas empleadas más recientemente.

Un sistema de paginación por demanda ofrece muchas ventajas
en cuanto a flexibilidad y agilidad en la atención concurrente de múltiples
procesos y proporciona, además, memoria virtual, es decir, la capacidad de
trabajar con procesos mayores que el de la memoria central. Estos esquemas son
bastante complejos y requieren del apoyo de hardware especializado.

Manejo de entradas y salidas

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.

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.

Lenguaje de control del sistema operativo

Entre los rasgos distintivos de Unix está el lenguaje de
control que emplea, llamado Shell. Es importante analizar dos funciones más de
Shell, llamadas redireccionamiento e Interconexión.

Asociado con cada proceso hay un conjunto de descriptores de
archivo numerados 0, I y 2, que se utilizan para todas las transacciones
entre los procesos y el sistema operativo. El descriptor de archivo 0 se
conoce como la entrada estándar; el descriptor de archivo 1, como la
salida estándar, y el descriptor 2, como el error estándar. En general,
todos están asociados con la terminal de vídeo, pero, debido a que
inicialmente son establecidos por Shell, es posible reasignarlos.

Una parte de la orden que comience con el símbolo ? se
considera como el nombre del archivo que será abierto por Shell y que se
asociará con la entrada estándar; en su ausencia, la entrada estándar se
asigna a la terminal. En forma similar, un archivo cuyo nombre está precedido
por el símbolo > recibe la salida estándar de las operaciones.

Cuando Shell interpreta la orden

califica < examen > resulta

llama a ejecución al programa califica (que ya debe estar
compilado y listo para ejecutar) y detecta la existencia de un archivo que toma
el lugar de la entrada estándar y de otro que reemplaza a la salida estándar.
Después, pasa como datos de lectura los contenidos del archivo examen recién
abierto (que debe existir previamente) al programa ejecutable. Conforme el
programa produce datos como salida, éstos se guardan en el archivo resulta que
Shell crea en ese momento.

 

En la teoría de lenguajes formales desempeñan un importante
papel las gramáticas llamadas de tipo 3 (también conocidas como regulares),
que tienen múltiples aplicaciones en el manejo de lenguajes. Existen unas
construcciones gramaticales conocidas como expresiones regulares, con las que se
puede hacer referencia a un conjunto ilimitado de nombres con estructura
lexicográfica similar; esto lo aprovecha Shell para dar al usuario facilidades
expresivas adicionales en el manejo de los nombres de los archivos. Así, por
ejemplo, el nombre carta * se refiere a todos los archivos que comiencen
con el prefijo carta* y que sean seguidos por cualquier subcadena,
incluyendo la cadena vacía; por ello, si se incluye el nombre carta* en
alguna orden, Shell la aplicará a los archivos carta, carta1, carta2 y
cualquier otro que cumpla con esa especificación abreviada. En general, en
lugares donde se emplea un nombre o una trayectoria, Shell permite utilizar una
expresión regular que sirve como abreviatura para toda una familia de ellos, y
automáticamente repite el pedido de atención para los componentes. Existen
además otros caracteres especiales que Shell reconoce y emplea para el manejo
de expresiones regulares, lo que proporciona al lenguaje de control de Unix
mayor potencia y capacidad expresiva.


 

En Unix existe también la posibilidad de ejecutar programas
sin tener que atenderlos en forma interactiva, sino simulando paralelismo (es
decir, atender de manera concurrente varios procesos de un mismo usuario). Esto
se logra agregando el símbolo & al final de la línea en la que se escribe
la orden de ejecución. Como resultado, Shell no espera que el proceso
"hijo'' termine de ejecutar (como haría normalmente), sino que regresa a
atender al usuario inmediatamente después de haber creado el proceso asincrónico,
simulando en esta forma el procesamiento por lotes ( batch ) Para cada uno de
estos procesos Shell proporciona, además, el número de identificación, por lo
que si fuera necesario el usuario podría cancelarlo posteriormente, o averiguar
el avance de la ejecución.


 

La comunicación interna entre procesos (es decir, el envío
de mensajes con los que los diversos procesos se sincronizan y coordinan) ocurre
mediante el mecanismo de interconexiones (pipes) ya mencionado, que
conecta la salida estándar de un programa a la entrada estándar de otro, como
si fuera un conducto con dos extremos, cada uno de los cuales está conectado a
su vez a un proceso distinto. Desde Shell puede emplearse este mecanismo con el
símbolo | en la línea donde se escribe la orden de ejecución.


 

Así en el ejemplo:

(califica < tarea | sorte > lista) &

se emplean las características de interconexión,
redireccionamiento y asincronía de procesos para lograr resultados difíciles
de obtener en otros sistemas operativos. Aquí se pide que, en forma asincrónica
(es decir, dejando que la terminal siga disponible para atender otras tareas del
mismo usuario), se ejecute el programa califica para que lea los datos que
requiere del archivo tareas; al terminar, se conectará con el proceso sort (es
decir, pasará los resultados intermedios) para que continúe el procesamiento y
se arreglen los resultados en orden alfabético; al final de todo esto, los
resultados quedarán en el archivo lista.

Con esta otra orden, por ejemplo, se busca obtener todos los
renglones que contengan las palabras "contrato" o "empleado"
en los archivos en disco cuyos nombres comiencen con la letra "E" (lo
cual se denota mediante una expresión regular). Para lograrlo, se hace uso de
una función llamada egrep, especial para el manejo de patrones y combinaciones
de expresiones regulares dentro de los archivos:

egrep-n 'contrato' 'empleado' E *

Los resultados aparecen así:

Emple1: 5: en caso de que un empleado decide hacer uso de la
facilidad,

Emple1:7: y el contrato así lo considere las obligaciones de
la

Emple2:9: Cláusula II: El contrato colectivo de trabajo

 

Emple2:15: Fracción llI: El empleado tendrá derecho, de
acuerdo con lo

El tercer renglón, por ejemplo, muestra el noveno renglón
del archivo Emple2, que contiene una de las palabras buscadas.

 

Como Unix fue diseñado para servir de entorno en las labores
de diseño y producción de programas, ofrece - además de su filosofía misma -
un rico conjunto de herramientas para la creación de sistemas complejos, entre
las que destaca el subsistema make. Este último ofrece una especie de lenguaje
muy sencillo, con el cual el programador describe las relaciones estructurales
entre los módulos que configuran un sistema completo, para que de ahí en
adelante make se encargue de mantener el sistema siempre al día. Es decir, si
se modifica algún módulo, se reemplaza o se añade otro, las compilaciones
individuales, así como las cargas y ligas a que haya lugar, serán realizadas
en forma automática, por esta herramienta. Con una sola orden, entonces, es
posible efectuar decenas de compilaciones y ligas predefinidas entre módulos, y
asegurarse de que en todo momento se tiene la última versión de un sistema, ya
que también se lleva cuenta automática de las fechas de creación, modificación
y compilación de los diversos módulos. De esta manera, se convierte en una
herramienta casi indispensable al desarrollar aplicaciones que requieren decenas
de programas que interactúan entre sí o que mantienen relaciones jerárquicas.


 

Otras herramientas interesantes son ar, diseñado para
crear y mantener bibliotecas de programas (que serán luego utilizadas por otros
programas para efectuar las funciones ya definidas sin tener que duplicar el código);
awk, un lenguaje para reconocimiento de patrones y expresiones regulares
(es decir, generadas por una gramática regular o de tipo 3), útil para extraer
información de archivos en forma selectiva; lex, un generador de
analizadores lexicográfico, y yacc, un compilador de compiladores. Estos
dos últimos se emplean como herramientas en la creación de compiladores y
procesadores de lenguajes.


 

La lista completa de funciones, órdenes de subsistemas que
forman parte de las utilerías del sistema operativo Unix es realmente grande, e
incluye más de un centenar, que se pueden agrupar en los siguientes rubros:

  • Compiladores de compiladores.
     
  • Ejecución de programas.
     
  • Facilidades de comunicaciones.
     
  • Funciones para control de status.
     
  • Funciones para control de usuarios.
     
  • Funciones para impresión.
     
  • Herramientas de desarrollo de programación.
     
  • Lenguaje C, funciones y bibliotecas asociados.
     
  • Macroprocesamiento.
     
  • Manejo de directorios y archivos.
     
  • Manejo de gráficas.
     
  • Manejo de información.
     
  • Manejo de terminales.
     
  • Mantenimiento y respaldos.
     
  • Otros lenguajes algorítmicos integrados.
     
  • Preparación de documentos.
     

NTERNETWORKING

Introducción

Uno de los factores más importantes que ha producido que la
tecnología de redes se incorpore definitivamente al tronco principal de
procesamiento, es la habilidad de conectar sistemas LAN y no LAN entre sí.


 

Esta habilidad deriva de la aceptación de estándares de
comunicación que aceleró la conexión de estaciones de trabajo a la red. La
interconectividad creó un nuevo paradigma en el cual el poder de cómputo pasa
de ser centralizado a ser distribuido.


 

Los equipos de interconexión, (bridge, router, gateway,
switchs, entre otros), han facilitado este proceso al conectar equipos, sistemas
y/o redes no sólo de un único proveedor, sino de múltiples proveedores entre
sí.


 

Este texto trata de introducir en los fundamentos operativos
de dichos equipos.

Objetivos de la tecnología de INTERNETWORKING

  • Unión de redes entre sí.
     
  • Superar limitaciones físicas.
     
  • Para efectuar un cambio de medio de transmisión.
     
  • Cuando se requiere un cambio de topologia física o lógica.
     
  • Cuando se requiere aislar tráfico.
     
  • Para integrar plataformas de comunicación disímiles.

El modelo OSI como referencia

Este modelo fue desarrollado por la ISO,(International
Standards Organization), en 1977 para elaborar estándares de comunicación para
la interoperabilidad multi proveedor.


 

OSI, (Open Systems Interconection), define como los
fabricantes pueden crear productos que funcionen con los productos de terceros
sin la necesidad de controladores especiales o equipamiento opcional.


 

El único problema para implantar el modelo OSI fue que
muchas compañías ya habían desarrollado métodos para interconectar su
hardware y software con otros sistemas. Aunque los vendedores pidieron un
soporte futuro para los estándares OSI, sus propios métodos estaban a menudo
tan atrincherados que el acercamiento hacia OSI era lento o inexistente.


 

Varias compañías de redes expandieron sus propios estándares
para ofrecer soporte a otros sistemas, y relegaron los sistemas abiertos a un
segundo plano.


 

Sin embargo, los estándares OSI ofrecen un modo útil para
comparar la interconexión de redes y la interoperabilidad entre varios
fabricantes.


 

En el modelo OSI, hay varios niveles de protocolos en una
jerarquía de protocolos, trabajando cada uno en diferentes niveles del hardware
y el software.


 

En la siguiente tabla vemos un breve resumen de este modelo:


 

 

 

 

 


 

 

 

Capa


 

 

 

Función de los protocolos de esta capa


 

 

 

REPET HUB


 

 

 

BRDG


 

 

 

ROUT


 

 

 

GTWA


 

 

 

 

 

7


 

 

 

Aplicación


 

 

 

Funciones y tópicos específicos


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 

 

6


 

 

 

Presentación


 

 

 

Transforma los datos en un formato que todos puedan entender


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 

 

5


 

 

 

Sesión


 

 

 

Facilita las comunicaciones entre los solicitantes y proveedores de
servicios.


 

Asiste a las capas superiores a detectar los proveedores de
servicios.


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 

 

4


 

 

 

Transporte


 

 

 

Evita que las dificultades de la red se transmitan a las capas
superiores.


 

Organiza los mensajes en segmentos y los entrega en forma confiable a
la capa de sesión.


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 

 

3


 

 

 

Red


 

 

 

Transportan los datos a ubicaciones especificas dentro de la red o
entre múltiples redes independientes.


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 

 

2


 

 

 

Enlace de datos


 

 

 

Organizan los bits en frames, detectan errores, controlan el flujo de
datos e identifican las computadoras en la red.


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 

 

1


 

 

 

Física


 

 

 

Coordinan la transmisión de bits.


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 

 

 


 

 


 

Un protocolo es el conjunto de reglas y estándares
requeridos para que las entidades se comuniquen o entiendan entre sí.


 

La tabla anterior especifica la coordinación de señales y
la estructura de los datos comunicados.


 

Los niveles más bajos de la jerarquía de protocolos definen
las reglas que los vendedores pueden seguir para hacer que sus equipos puedan
interconectarse con los de otros fabricantes. Los niveles más altos definen
como interopera el software.


 

Cuanto más subimos dentro de la jerarquía, las
comunicaciones entre el software ejecutado en diferentes sistemas se vuelven más
sofisticadas.

Cada nivel de la jerarquía de protocolos OSI, tiene una
función específica y definen un nivel de comunicaciones entre sistemas.


 

Cuando se define un proceso de red, como la petición de un
archivo por un servidor, se empieza en el punto desde el que el servidor hizo la
petición. Entonces, la petición va bajando a través de la jerarquía y es
convertida en cada nivel para poder ser enviada por la red. Cada nivel añade a
los paquetes su propia información de seguimiento.


 

Los niveles definen simplemente las reglas que son las
aplicaciones, los controladores de red y el hardware de red para comunicarse.


 

Del mismo modo, una jerarquía de protocolos define reglas
que los programadores usan para crear aplicaciones conscientes de la red. En el
fondo son reglas básicas que definen las comunicaciones entre tipos.

Descripción de dispositivos utilizados en la interconexión

Hub

Un hub es un dispositivo utilizado para concentrar y organizar el cableado en
una red de área local, existen de dos tipos: Activos, y Pasivos.


 

Un hub pasivo es aquel que simplemente permite la interconexión del cableado
en una forma ordenada. No requiere alimentación y no procesa o regenera el tráfico
que en el ingresa.


 

Los más comúnmente utilizados son los hub's activos, los cuales requieren
de alimentación y contienen un circuito electrónico que puede filtrar,
amplificar y controlar el tráfico. Poseen también funcionalidades adicionales,
tales como el bridging , que actúa separando el tráfico local del hub
del backbone,(tronco principal), de la red.


 

Estos dispositivos pueden ser administrados y monitoreados en forma remota.


 

Los hub's son utilizados en el diseño e implementación de una red alambrica
coherente y fácilmente administrable.


 

En un diseño típico los hub's son instalados en rack's o armarios
especiales a los que llega todo el cableado de un piso del edificio de la
empresa, encontrándose uno, (o más), de estos armarios por cada piso a
interconectar. Estos cables se conectan a cada puerto del hub; el cual a su vez
lo hace al backbone de la red, que corre de piso en piso interconectando cada
armario.


 

Esto divide a la red en agrupamientos lógicos y físicos, lo que simplifica
la resolución de problemas y el facilita el futuro crecimiento.

Repeater

A medida que las señales eléctricas se transmiten por un cable, tienden a
degenerarse proporcionalmente a la longitud del cable. Este fenómeno se conoce
como atenuación.


 

Un repeater, (repetidor), es un dispositivo sencillo que se instala para
amplificar la señal del cable, de forma que se pueda extender la longitud de la
red.


 

El repetidor normalmente no modifica la señal, excepto en que la amplifica
para poder retransmitirla por el segmento de cable extendido. Algunos
repetidores también filtran el ruido.



 

Características

  • Regenera las señales de la red para qué llegan más lejos.
     
  • Se utilizan sobre todo en los sistemas de cableado lineales como Ethernet.
     
  • Los repetidores funcionan sobre el nivel más bajo de la jerarquía de
    protocolos, el físico. No utilizan los protocolos de niveles superiores.
     
  • Los segmentos conectados deben utilizar el mismo método de acceso al medio
    de transmisión.
     
  • Repetidores se utilizan normalmente dentro de un mismo edificio.
     
  • Los segmentos conectados con un repetidor forman parte de la misma red, y
    tendrán la misma dirección de red.
     
  • Cada nodo de un segmento de red tiene su propia dirección. Los nodos de
    segmentos extendidos no pueden tener las mismas direcciones que los nodos de
    los segmentos existentes, debido a que se convierten en partes del mismo
    segmento de red.
     

Bridge



 

Un bridge, (puente), añade un nivel de inteligencia a una conexión entre
redes. Conecta dos segmentos de redes iguales o distintos. Podemos ver un puente
como un clasificador de correo que mira las direcciones de los paquetes y los
coloca en la red adecuada.


 

Se puede crear un puente para dividir una red amplia en dos o más pequeñas.
Esto mejora el rendimiento al reducir el tráfico, ya que los paquetes para
estaciones concretas no tienen que viajar por toda la red.


 

También se usan para conectar distintos tipos de redes, como Ethernet y
Token Ring.


 

Los puentes trabajan en el nivel de enlace de datos.


 

Con un puente podemos conectar dispositivos que utilicen protocolos
diferentes, pero el nivel de enlace de datos no sabe nada sobre el mejor camino
hacia un cierto destino; no existe ninguna forma de enviar paquetes a un
segmento de red de modo que alcancen su destino de la forma más rápida o
eficiente, (Esa es la función de un router), no obstante los puentes ofrecen
filtrado; éste evita que los paquetes de un segmento de red local pasen por el
puente y lleguen a segmentos de red donde no sirven para nada.


 

Esto ayuda a reducir el tráfico entre redes e incrementar el rendimiento,
sin filtrado los paquetes son enviados a todos los puntos de la red.


 

Un puente se instala por la siguientes razones:

  • Para extender una red existente cuando se ha alcanzado su máxima extensión.
     
  • Para eliminar los cuellos de botella que se generan cuando hay demasiadas
    estaciones de trabajo conectadas a un único segmento de la red.
     
  • Para conectar entre sí distintos tipos de redes, como Token Ring y
    Ethernet.
     

Tipos de puentes



 

Puentes con aprendizaje



 

Los puentes con aprendizaje, o adaptativos, se "aprenden" las
direcciones de las otras estaciones de la red, por lo que no será necesario que
el instalador del puente o el responsable cree una tabla con estas direcciones
en el puente. Las estaciones de trabajo difunden continuamente sus señales de
identificación, y los puentes pueden construir sus tablas a partir de estas
direcciones. En la actualidad, la mayor parte de los puentes del mercado poseen
aprendizaje.



 

Puentes en tándem



 

Cuando una conexión con un puente es crítica, puede ser necesario crear
puentes redundantes tolerantes a fallos. Si una falla, el otro puede continuar
con el tráfico. Sin embargo cuando hay dos enlaces existe la posibilidad de que
el tráfico pase por uno y vuelva por el otro de nuevo creándose un esquema
circular del movimiento de paquetes que continuaría sin fin.


 

Los puentes en tándem detectan y rompen los bucles anulando ciertas
conexiones.



 

Puentes con distribución de carga



 

El puente con distribución de carga es la forma más eficiente de puente.
Utiliza un algoritmo de emparejamiento, pero también una conexión doble para
transferir los paquetes, mejorando de esta forma el rendimiento global de la
red.

Ventajas de los bridges

  • Simple instalación y configuración.
     
  • Capacidad de auto aprendizaje.
     
  • Maneja todos los protocolos.
     
  • Utiliza optimización de sendero.
     
  • Menores costos totales.
     

Switch

Los switchs son otro tipo de dispositivo utilizados para
enlazar LAN's separadas y proveer un filtrado de paquetes entre ellas.


 

Un LAN switch es un dispositivo con múltiples puertos, cada
uno de los cuales puede soportar una simple estación de trabajo o bien toda una
red Ethernet o Token Ring.


 

Con una LAN diferente conectada a cada uno de los puertos del
switch, este puede conmutar los paquetes entre ellas, como sea necesario.


 

En efecto, actúa como un bridge multi-puerto, los paquetes
son filtrados por el switch basándose en su dirección de destino.


 

Los switchs son utilizados para aumentar la performance en
las redes de las organizaciones, segmentando redes grandes en varias más pequeñas.
Lo cuál disminuye la congestión a la vez que continúa proveyendo la
interconectividad necesaria.


 

Los switchs aumentan la performance de las redes ya que cada
puerto posee un ancho de banda dedicado, sin requerir de los usuarios el cambio
alguno de equipamiento, tales como NIC's, (Network interface Card), Hubs,
cableado o cualquier router o bridge ya instalado.


 

Estos dispositivos pueden soportar numerosas comunicaciones
simultáneas.

Router

Los routers, (enrutadores), son críticos para las redes de
gran alcance que utilizan enlaces de comunicaciones remotas. Mantienen el tráfico
fluyendo eficientemente sobre caminos predefinidos en una interconexión de
redes compleja.


 

Si se utilizan líneas alquiladas de baja de velocidad, es
importante filtrar los paquetes que no deban entrar en la línea. Además, las
grandes redes que se extienden por todo el mundo pueden contener muchas
conexiones remotas redundantes. En ese caso, resulta importante encontrar el
mejor camino entre el origen y el destino. Este es el objeto de los routers.


 

Pueden inspeccionar la información en el nivel de red para
determinar la información de la mejor ruta. Muchos productos de encaminamiento,
(routing), ofrecen soporte para varios métodos de comunicaciones, como T1 y
X.25.


 

Las siguientes son algunas razones para utilizar routers en
lugar de bridges:

  • Ofrecen con filtrado de paquetes avanzado.
     
  • Son necesarios cuando hay diversos protocolos en una interconexión de
    redes, y los paquetes de ciertos protocolos tienen que confinarse en una
    cierta área.
     
  • Ofrecen un encaminamiento inteligente, el cuál mejora el rendimiento. Un
    router inteligente conoce la estructura de la red y puede encontrar con
    facilidad el mejor camino para un paquete.
     

Funcionamiento de los routers



 

Un router examina la información de encaminamiento de los
paquetes y los dirige al segmento de red adecuado. Un router procesa los
paquetes que van dirigidos a el, lo que incluye los paquetes enviados a otros
routers con los que esté conectado.


 

Los enrutadores envian los paquetes por la mejor ruta hacia
su destino, mantienen tablas de redes locales y routers adyacentes en la red.


 

Cuando uno de estos dispositivos recibe un paquete, consulta
estas tablas para ver si puede enviar directamente el paquete a su destino. Si
no es así, determina la posición de otro enrutador que lo pueda hacer.


 

Estos dispositivos pueden ser específicos para un protocolo
o bien manejar diversos protocolos.


 

Los routers permiten dividir una red en redes lógicas,
siendo estas más sencillas de manejar. Cada segmento de la red tiene su propio
número de red local, y cada estación de dicho segmento tiene su propia dirección.
Esta es la información contenida en el nivel de red al que acceden los routers.
La segmentación de las redes permite evitar las "tormentas de difusión".
Estas ocurren cuando los nodos no se conectan de forma adecuada y la red se
satura con la difusión de mensajes intentando localizar los destinos.


 

Los métodos de filtrado y selección del mejor camino
utilizados al segmentar ayudan a reducir este efecto.


 

 

 

Protocolos


 

 

 

Redes


 

 

 

 

 

IPX/SPX


 

 

 

SNA


 

 

 

 

 

TCP/IP


 

 

 

X.25


 

 

 

 

 

SLIP


 

 

 

IS-IS


 

 

 

 

 

PPP


 

 

 

SNAP


 

 

 

 

 

Algunos protocolos como NetBios, no permiten el
encaminamiento; ya que no incluyen información sobre la dirección de red en
sus paquetes. Sin embargo, los paquetes NetBios pueden ser encapsulados
en paquetes IPX o TCP/IP para su transferencia en grandes redes.

 

Del mismo modo, los paquetes IPX pueden encapsularse en
paquetes TCP/IP para su transferencia en segmentos de red TCP/IP.


 

La determinación de la mejor ruta para un paquete se realiza
en base a información disponible en la tabla de ruteo, la topología de la red
y algoritmos de ruteo.


 

De estos últimos podemos nombrar los siguientes:

DISTANCE VECTOR, (DVA).

Cada router le comunica a sus vecinos informes del resto de
la red, a intervalos regulares.



 

LINK STATE, (LSA).



 

Cada router le comunica al resto de la red conexiones, sólo
cuando hay cambios en las mismas.


 

Conceptos AppleTalk



 

 Definiciones
de términos

Antes de empezar a configurar el software de AppleTalk para NetWare debería
conocer los siguientes términos:

  • AppleTalk es el conjunto de protocolos Apple* Computer que permite al
    hardware y al software interactuar en una interred AppleTalk e intercambiar
    datos.
     
  • Una red AppleTalk es un conjunto de computadores, impresoras y
    otros dispositivos conectados y controlados de manera individual con el
    hardware y el software AppleTalk utilizados para enlazarlos. Todos los
    dispositivos de una red tienen direcciones dentro del rango asignado para la
    red.
     
  • Una interred AppleTalk es un grupo de redes AppleTalk conectadas
    mediante uno o más routers AppleTalk. Los usuarios de una interred pueden
    compartir información y dispositivos de red.
     
  • Un nodo AppleTalk es una entidad direccionable de una red. Este término
    hace a veces referencia a un dispositivo. Algunos ejemplos de nodos podrían
    ser computadores Macintosh, impresoras y servidores de archivos.
     
  • Un paquete AppleTalk es un grupo de bits transmitidos como una
    unidad de información. Estos bits incluyen datos y elementos de control.
    Los elementos de control incluyen las direcciones del origen y el destino
    del paquete y, en ocasiones, la información del control de errores.
     
  • El stack AppleTalk es el conjunto de protocolos AppleTalk
    utilizado para proporcionar soporte a aplicaciones AppleTalk tales como los
    servidores de impresión y de archivos.
     
  • Un router AppleTalk conecta las redes AppleTalk de una interred
    para que todos los nodos de cada red puedan acceder a los servicios y a los
    nodos de cualquier red conectada. Recibe y reenvía los paquetes AppleTalk
    de las redes a las que está conectado directamente.
     
  • Una zona AppleTalk es un grupo lógico de servicios, tales como
    las colas de impresión, los servidores de archivos y sistemas de
    calendario. Al asociar una zona con determinados dispositivos, se habilita a
    los usuarios de Macintosh para localizar más fácilmente los servicios que
    necesitan. Por ejemplo, un usuario Macintosh que necesite ubicar una
    impresora utilizada para fines administrativos deberá mirar en la zona de
    Administración.
     
  • AppleTalk Fase 2 es la última versión de los protocolos
    AppleTalk. En 1989, Apple introdujo AppleTalk Fase 2 para proporcionar
    soporte a las redes AppleTalk con miles de nodos, a varias zonas AppleTalk
    de una red y a token ring. Aplica técnicas de encaminamiento más eficaces
    que mejoran el funcionamiento y utilizan una banda ancha más pequeña.
     
  • Una red extendida AppleTalk es una red AppleTalk que da soporte a
    extensiones de la Fase 2 como, por ejemplo, listas de zonas y rangos de red.
    (Esta guía a menudo denomina una red AppleTalk extendida como una "red
    extendida").
     
  • Una red AppleTalk no extendida es una red AppleTalk que no da
    soporte a extensiones de la Fase 2, como listas de zonas y rangos de red.
    (Esta guía a menudo denomina las redes AppleTalk no extendidas como
    "redes no extendidas").
     

Protocolos

Los protocolos AppleTalk proporcionan la conectividad y el encaminamiento a
redes de NetWare. Dichos protocolos funcionan de manera conjunta con el NetWare
para Macintosh para proporcionar las funciones del servicio de archivos e
impresión del servidor NetWare, así como la comunicación entre los nodos de
la red.


 

La siguiente figura representa los protocolos AppleTalk estándares y las
respectivas capas ISO, tal y como se describen en Inside AppleTalk, second
edition
.


 

 

 

 

Protocolo

 


 

 

 

Descripción

 


 

 

 

 

 

AARP

 


 

 

 

Protocolo de resolución de direcciones AppleTalk. AARP asigna las
direcciones AppleTalk (números de red y de nodo) a las direcciones de
hardware de la LAN (por ejemplo, direcciones Ethernet o Token ring) y
gestiona el proceso de cada nodo AppleTalk adquiriendo la única dirección
de AppleTalk en estos medios.

 


 

 

 

 

 

ADSP

 


 

 

 

Protocolo de flujo de datos AppleTalk. ADSP permite que dos programas
se comuniquen a través de una conexión de flujo de datos de duplicación
completa en la que cada programa pueda leer o escribir bytes de datos
con entrega fiable.

 


 

 

 

 

 

AEP

 


 

 

 

Protocolo de eco AppleTalk. AEP es un protocolo de soporte que
facilita que un nodo "bote" un paquete de otro nodo. En el ,
tanto el router como el stack dan soporte al Protocolo de eco.

 


 

 

 

 

 

 

 

 

 

AFP

 


 

 

 

Protocolo de control de archivos AppleTalk. AFP es un protocolo de
soporte a un nivel de aplicación que permite a los usuarios de
Macintosh compartir archivos. NetWare para Macintosh incluye un archivo
NLM(tm) de AFP que proporciona soporte AFP en un servidor de NetWare.

 


 

 

 

 

 

ASP

 


 

 

 

Protocolo de sesión AppleTalk. ASP añade la función de sesión al
ATP (descrito a continuación) y trabaja con éste facilitando que dos
procesos intercambien de manera fiable una secuencia de transacciones.

 


 

 

 

 

 

ATP

 


 

 

 

Protocolo de transacción AppleTalk. ATP proporciona servicios de
transacción de peticiones y respuestas fiables. EL ATP detecta errores
y tiempos límite proporcionando un intercambio de paquetes fiable.

 


 

 

 

 

 

AURP

 


 

 

 

Protocolo de encaminamiento basado en la actualización. AURP
facilita sólo dos funciones: el intercambio de información de
encaminamiento sólo cuando tiene lugar un cambio en la interred (en
contraposición al intercambio de información en una programación
definida) después del intercambio inicial de información de
encaminamiento, y el proceso de túnel IP. Protocolo de encaminamiento
basado en actualización AppleTalk" si desea obtener información
complementaria.

 


 

 

 

 

 

DDP

 


 

 

 

Protocolo de entrega de datagramas. DDP define zócalos en los nodos
AppleTalk y define la entrega de datagramas (un paquete) entre zócalos.
Proporciona un mecanismo para direccionar cualquier nodo en sólo una
interred AppleTalk.

 


 

 

 

 

 

LAP

 


 

 

 

Protocolo de acceso al enlace. LAP incluye protocolos de nivel de
enlace de datos para Ethernet (ELAP), LocalTalk* (LLAP), y token ring
(TLAP). El LAP oculta la información específica de medios a otros
niveles de AppleTalk y envía paquetes a un enlace de hardware específico.

 


 

 

 

 

 

NBP

 


 

 

 

Protocolo de enlace de nombre. NBP proporciona a un usuario listas de
nombres de servicios y encuentra las direcciones de la red de esos
nombres. Cuando los usuarios solicitan un servicio AppleTalk en la
aplicación Selector de Macintosh, el NBP se encarga de difundir la
petición en la zona seleccionada y visualiza los nombres de los
servicios correspondientes en el Selector. Consulte
"Protocolo
de enlace de nombre"
"Protocolo
de enlace de nombre" si desea obtener más información sobre el
funcionamiento de NBP.

 


 

 

 

 

 

PAP

 


 

 

 

Protocolo de acceso a la impresora. PAP permite a los usuarios de
Macintosh acceder a las colas de impresión de la red AppleTalk.

 


 

 

 

 

 

RTMP

 


 

 

 

Protocolo de mantenimiento de la tabla de rutas. Los routers usan el
RTMP para intercambiar la información necesaria para construir y
mantener cada una de las tablas de rutas del router. Esto permite que
los routers se detecten entre sí y permite desplazar paquetes desde un
punto de la interred a otro. Los routers AppleTalk de la interred que
utilizan el RTMP de forma continua mantienen las tablas de
encaminamiento mediante el intercambio de paquetes RTMP. Consulte el
"Protocolo
de mantenimiento de la tabla de rutas"
"Protocolo
de mantenimiento de la tabla de rutas" si desea obtener más
información.

 


 

 

 

 

 

ZIP

 


 

 

 

Protocolo de información de zonas. ZIP asocia nombres de zona con números
de red y utiliza las consultas para mantener esta asignación cuando se
añaden nuevas zonas a una interred. AppleTalk utiliza zonas para
subdividir la interred de manera lógica para que los usuarios
encuentren los servicios más fácilmente. Los routers usan el ZIP para
solicitar y proporcionar información de la zona cuando un router
aparece con una nueva configuración de red. El ZIP también permite a
los nodos consultar y tratar con zonas de una interred. Si desea obtener
más información, consulte
"Conservación
de la información de zonas en una interred"
"Conservación
de la información de zonas en una interred"

 


 

 

 

 

 

Direccionamiento

Las direcciones identifican las ubicaciones exactas de redes, nodos y
servicios. En AppleTalk, las direcciones de nodo consisten en una parte del número
de red y una parte del número del nodo (en el formato de red#.) nodo#,
donde un número de red es un valor de dos bytes (dieciséis bits) y un número
de red, un valor de un byte (ocho bits) .


 

Cada nodo adquiere de manera dinámica un número de nodo de 8 bits al
conectarse a la red. Intentará utilizar de nuevo la dirección y el número del
nodo la próxima vez que se conecte a la red. Si el nodo ve que su número
anterior ya se utiliza, seguirá intentando hasta encontrar una dirección de
nodo exclusiva.


 

La parte de la red de una dirección AppleTalk puede ser una de las dos
siguientes: Fase 1 ó Fase 2.


 

El direccionamiento Fase 1 es el formato de dirección utilizado por las
redes AppleTalk originales, es decir, por las redes no extendidas. AppleTalk
Fase 2 introdujo rangos en la programación de direcciones de redes,
incrementando significativamente el número de dispositivos que podrían existir
en una red. Las redes que proporcionan soporte al direccionamiento Fase 2 se
denominan redes extendidas.


 

Encontrará más información sobre direccionamientos en las siguientes
secciones:


 

Direccionamiento para redes extendidas

Una red que puede dar soporte a direccionamientos de red de Fase 2 se
considerará como una red extendida. Las redes AppleTalk que dan soporte a
direccionamientos de red de Fase 2 incluyen EtherTalk* 2.0 y TokenTalk*.


 

En una red de Fase 2 extendida como EtherTalk 2.0, puede asignar a cada
segmento de la red un rango consecutivo de números de redes de 16 bits
exclusivos, como, por ejemplo, el rango 1 -10. Asimismo, puede asignar hasta 255
nombres a cada red extendida. Cada número de red puede proporcionar soporte a
hasta 253 nodos (los números de nodo 0, 254 y 255 se reservan para AppleTalk).
Cada nodo de una red extendida utiliza una combinación completa de 24 bits de número
de red y de nodo como única identificación. Esta programación aumenta el límite
teórico del número de nodos por red hasta un número superior a 16 millones.


 

En redes extendidas, cada nodo adquiere un número de inicio seleccionando en
primer lugar un número de red de un "rango de inicio" reservado
(65.280 de 65.534) y luego encontrando un número de nodo no utilizado en la
red. Con estos números de inicio el nodo puede comunicarse con el router y
puede adquirir un número de red válido de un rango configurado para la red.
Igual que en las redes no extendidas, el nodo utiliza la misma dirección al
volverse a conectar a la red después de haberse desactivado, a menos que otro
nodo ya tenga dicha dirección.


 

Las redes extendidas requieren un rango de red y una lista de
zonas
. A continuación le ofrecemos información detallada sobre rangos de
red y listas de zonas:

Un rango de red es un rango consecutivo de números de red válidos. El
tamaño del rango de la red que se asigna determinará el número máximo de
dispositivos AppleTalk de esa red; por ejemplo, una red extendida con rango
1-10 podría dar soporte a hasta 10 x 253 ó 2.530 nodos. No existe ningún límite
codificado por el hardware para el tamaño de un rango de redes, no obstante,
para un funcionamiento óptimo, debería especificar un rango que se adapte a
sus necesidades. Un rango ancho utiliza números de red. Si existen routers de
Fase 1 en la interred se requiere un rango de uno (como 10-10).

NOTA: Una red no extendida
puede comunicarse con una red extendida a través de un router AppleTalk. Para
obtener más información, consulte
"Direccionamiento
para redes no extendidas"
.

Todos los routers AppleTalk conectados a una red utilizan el mismo rango
para esa red, y ninguna otra red podrá utilizar ese rango o cualquier número
incluido en él.

  • Una lista de zonas contiene hasta 255 nombres de zona; se configura una
    zona como la zona por defecto. Todos los routers AppleTalk de una
    red deben tener la misma lista de zonas.
     

Direccionamiento para redes no extendidas

Algunas de las redes AppleTalk no dan soporte ni tampoco pueden utilizar el
direccionamiento de redes de Fase 2. Estas redes incluyen LocalTalk, ARCNET* y
EtherTalk 1.0.


 

En redes no extendidas, puede asignar a cada red sólo un número de red de
16 bits (un entero entre 1 y l 65.279) y sólo un nombre de zona. Se identifica
cada nodo AppleTalk mediante un número del nodo de 8 bits. Esto limita el número
total de nodos por red a 254. (El número máximo que puede representarse en
ocho bits es 255 y los números de nodo 0 y 255 se reservan para AppleTalk.)


 

Un nodo en una red no extendida puede comunicarse con un nodo de una red
extendida siempre que las dos redes estén conectadas por un router.

Protocolo de enlace de nombre



 

Los nodos y las aplicaciones utilizan el NBP para encontrar las direcciones
de nodos y de servicios tales como servidores de archivos e impresora. El NBP
asigna nombres de entidades de red a direcciones AppleTalk. Como por lo general
los usuarios consideran más sencillo recordar nombres que direcciones numéricas,
éste les permite especificar nombres descriptivos o simbólicos para las
entidades a las que hacen referencia las aplicaciones mediante direcciones numéricas.


 

La aplicación Selector constituye un ejemplo de cómo AppleTalk utiliza el
NBP. Los usuarios o las aplicaciones crean una consulta NBP seleccionando una
zona y el tipo de dispositivo o servicio en el que están interesados. Estos dos
bloques de información constituyen una consulta NBP que equivale a lo
siguiente:


 

"Deseo que todos los dispositivos del tipo seleccionado (por ejemplo, un
servidor de archivos, un servidor de correo o una impresora) en la zona
seleccionada (ubicación del servicio) me respondan (ubicación del usuario) con
sus respectivos direccionamientos de red.


 

A continuación se enviará la consulta a la zona adecuada. Todos los
servicios o dispositivos del tipo seleccionado de la zona seleccionada contestarán
con una respuesta NBP. Una respuesta NBP, según el contenido de la consulta,
incluye el nombre, tipo y dirección de la red (dirección AppleTalk) del
servicio proporcionado por un nodo.De este modo, las aplicaciones podrán
comunicarse con el dispositivo basado en la dirección, mientras que los
usuarios sólo tendrán que referirse al servicio por su nombre. La respuesta
NBP contiene información equivalente a lo siguiente:


 

"Los nombres y tipos de servicios disponibles en esta zona y dirección
de la red (ubicación del servicio) se devolverán a la estación de petición
(la ubicación del usuario)".


 

Si se han configurado los filtros mediante el router receptor, este router
utilizará dichos filtros para determinar el abandono o el reenvío de cada una
de las repuestas NBP.

Tipos de trama de paquetes

La información gobernada mediante protocolos se agrupa en una serie de bits
que incluye elementos de control y de datos denominada paquete.La
información del paquete se transmite como un todo dentro de una trama de
paquete
. Un controlador LAN adapta los diferentes tipos de trama
de paquete utilizados por cada tipo de red específica a un formato que el
AppleTalk pueda procesar. Si desea obtener más información sobre tipos de
trama de paquetes, consulte Inside AppleTalk, second edition .

El AppleTalk para NetWare proporciona soporte a los tipos de trama de
paquetes LANde AppleTalk siguientes:

  • ARCNET (es el tipo de trama real NOVELL_RX_NET)
     
  • Ethernet_SNAP
     
  • Ethernet II
     
  • FDDI_SNAP
     
  • LocalTalk
     
  • Token_Ring_SNAP
     

Trabajo enviado por:

 

Javier Perez Lindo

jplindo_bwarg@infovia.com.ar

Compartir Enviar a menéame  Añadir a tus marcadores de Google  Enviar a noticias Top    Añadir a del.icio.us     Añadir a tus marcadores en Yahoo! 


Publicación enviada por Javier Perez Lindo
Contactar mailto:jplindo_bwarg@infovia.com.ar


Código ISPN de la Publicación EpypkpAAkuDFrJidlV
Publicado Wednesday 6 de August de 2003

Ultimas Publicaciones en ilustrados.com


ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal.


Administración y Finanzas
Agricultura y Ganadería
Anatomía
Antropología
Arqueología y Paleontología
Arquitectura
Arte y Cultura
Astronomía
Biografías
Biología
Ciencia y Tecnología
Computación e Informática
Comunicaciones
Contabilidad
Deportes y Educación Física
Derecho
Derechos Humanos
Ecología
Economía
Educación
Enfermedades