Você está na página 1de 258

Sistemas Operativos II

Ing. Daniel De Santiago M.

   
Eres Libre de:

Copiar, distribuir, y comunicar 
públicamente la obra Hacer obras derivadas

Bajo las Condiciones Siguientes:

Atribución. Debes reconocer la autoría de la obra en los términos
especificados por el propio autor o licenciante.

No comercial. No puedes utilizar esta obra para fines comerciales.

Licenciamiento Recíproco. Si alteras, transformas o creas una obra a partir de 
esta obra, solo podrás distribuir la obra resultante bajo una licencia igual a ésta.

This work is licensed under the Creative Commons Attribution­Noncommercial­Share Alike 2.5 Mexico License. To view a copy of 
  this license, visit http://creativecommons.org/licenses/by­nc­sa/2.5/mx/ or send a letter to Creative Commons, 171 Second Street, 
 
Suite 300, San Francisco, California, 94105, USA.
Sistemas Operativos II

Tema
Administración de Archivos

   
Introducción

 Cuando se desea almacenar información


para su posterior tratamiento el usuario se
encuentra cons dos problemas básicos:
 La memoria principal es volátil
 La información se pierde al apagar la computadora
 Almacenamiento es poco
 Compartir información
 La información que esta en memoria por un proceso
solo puede ser accesada por ese proceso. Para que
puede ser accesible a otros procesos la información
 
debe ser independiente
 
a cualquier proceso
Introducción

 Se necesitan tres condiciones para el


almacenamiento de la información a largo
plazo:
 La información debe de permanecer cuando el
proceso termina
 Se debe de poder almacenar una cantidad grande
de información
 Debe ser posible que varios procesos tengan
acceso concurrente a la información

   
Introducción

 La solución es el almacenamiento en un
sistema auxiliar (principalmente en discos),
en una estructura de archivos.
 Los archivos son persistentes, no desaparecen
cuando el proceso termina.
 Solo se borran cuando el usuario
explícitamente los elimina emitiendo una orden
 Para muchos usuarios el sistema de archivos
es el aspecto mas visible de un sistema
operativo
   
Introducción

 Los archivos son administrados por el sistema


operativo.
 Como son estructurados
 Nombrados
 Accesados
 Usados
 Protegidos
 Implementados
 La parte del sistema operativo que trata con archivos
se llama Administrador de Archivos (File System)
   
Introducción

 Desde el punto de vista del usuario, este le


concierne:
 La forma de nombrar los archivos
 Las operaciones permitidas en ellos
 La apariencia del árbol de directorios
 Y otros aspectos de la interface

   
Introducción

 En este tema se verán primero las interfaces


del usuario con directorios y archivos, y
posteriormente las diferentes maneras de
administrar los archivos y mecanismos de
seguridad y protección

   
Archivos

 El concepto de Archivos es abstracto. Se


considera como archivo a un conjunto de
información definida por su creador.
 Proveen un mecanismo para guardar
informacion en disco para despues ser
leida.
 Esto se tiene que hacer de tal manera que el
usuario no entre en detalle de como y donde se
almacena la informacion, ni como trabajan los
discos
   
Nombrar Archivos

 Probablemente la característica mas


importante de un archivo es como son
nombrados y referenciados por su nombre.
 La forma de nombrar un archivo cambia de
un sistema operativo a otro.
 Por regla general son cadena de caracteres
alfanumericos, aunque tambien es normal
usar algunos caracteres especiales como
puntos, guiones o incluso blancos.
   
Nombrar Archivos

 Todos los sistemas operativos actuales


permiten cadenas de caracteres de 1 a 8 letras
como nombres autorizados.
 Algunos administradores de archivos permiten:
 Nombres de hasta 255 caracteres
 Permiten distinguir entre mayúsculas y minúsculas

   
Nombrar Archivos - Ejemplos

 MS-DOS
 UNIX
 Archivo
 Archivo
 ARCHIVO
 ARCHIVO
 ArChiVo
 ArChiVo
 Se refieren al mismo
documento o
 Se refieren a 3
programa diferentes
documentos o
programas
   
Nombrar Archivos

 Muchos sistemas operativos soportan el uso de


la extension (usualmente tres caracteres
después de un punto) al nombrar el archivo, y
se utiliza para describir el tipo del archivo.
 En algunos sistemas operativos (e.i UNIX) las
extensiones no son requeridas y se usan mas
por el usuario para saber que tipo de archivo
son.

   
Ejemplos
Extensión Descripción
file.bak Archivo de respaldo
file.c Programa fuente de C
file.gif Graphical Interchange Format image
file.html HyperText Markup Language
file.iso Imagen ISO de un CD-ROM
file.jpg Foto codificada con estandard JPEG
file.mp3 Musica codificada con estandard MPEG capa 3
file.mpg Película codificada con estandar MPEG
file.o Archivo objeto compilado
file.pdf Archivo tipo Portable Document Format
file.ps Archivo tipo PostScript
file.tex Input for the TEX formatting program
file.txt Archivo de texto
   
file.zip Archivo comprimido
Nombrar Archivos

 La implementación de las extensiones son usadas


mas por programas el cual puede manipular mas
de un tipo de archivo
 El compilador de C, por ejemplo, se le puede dar
una lista de archivos para compilar y ensamblar
juntos. Pueden ser programa fuentes (foo.c),
programa en ensamblador (foo.s), o programas
objetos (foo.o). En este caso la extensiones son
importante para decirle al compilador que hacer

   
Tipos y Estructuras de
Archivos
 Dependiendo del uso, los archivos tendrá una
determinada estructura
 Tres posibilidades comunes se pueden ver en
la siguientes figuras:

   
Tipos y Estructuras de Archivos

   
Tipos y Estructuras de
Archivos
 En la figura (a) es una secuencia de bytes
no estructuradas.
 El sistema operativo no sabe ni le importa
cual es el contenido del archivo. Todo lo
que ve son bytes.
 Cualquier significado es impuesto al nivel
usuario-programa
 Tanto UNIX como Win98 usan esta
estructura
   
Tipos y Estructuras de
Archivos
 En la figura (b) se muestra el primer modelo
estructurado. El archivo es una secuencia
de registros lógicos de un tamaño
especifico, cada uno con su propia
estructura interna.
 La idea de este modelo es que al usar la
operacion “leer” se leeria un registro y al
momento de “escribir” se escribiria un
registro o se sobre escribia
   
Tipos y Estructuras de
Archivos
 Esta estructura se utilizo en los sistemas
con tarjetas perforadas, en los que los
registro lógicos eran de 80 caracteres, para
coincidir con la longitud de las tarjetas
perforadas. Tambien se utilizaban registros
de 132 caracteres para usarlos
directamente sobre impresoras.
 Ningun sistema usa este metodo en la
actualidad
   
Tipos y Estructuras de
Archivos
 El otro tipo de estructura, figura (c), cuya
utilización es también muy restringida,
prácticamente a grandes computadoras
corporativas para procesamiento de datos,
esta basada a estructuras arborescentes.
 Los registro tiene una clave y la operacion
basica no es obtener el siguiente registro,
sino obtener el registro con la clave
especificada
   
Tipos y Estructuras de
Archivos
 La estructura del árbol se ordena de acuerdo a
la clave la cual hace la búsqueda de un archivo
muy eficiente
 Nuevos registros se pueden añadir al archivo,
el cual el sistema operativo decide donde
localizarlos y no el usuario

   
Tipos y Estructuras de
Archivos
 Muchos sistemas operativos soportan varios
tipos de archivos. Por ejemplo:
 UNIX y Windows soportan archivos regulares y
directorios.
 UNIX también tiene archivos especiales de
caracteres y bloques
 Windows XP usa archivos llamados Metadata

   
Tipos y Estructuras de
Archivos
 Los Archivos Regulares son los que contienen la
información del usuario
 Los Directorios son tablas simbolicas de archivos
y son usadas por el administrador de archivos del
sistema operativo
 Archivos de Caracteres Especiales estan
relacionados con los procesos I/O y modelados a
equipos como impresoras, terminales y redes
 Archivos Especiales de Bloques son usados en
los discos
   
Tipos y Estructuras de
Archivos
 Archivos Regulares pueden ser:
 Archivos ASCII.- son lineas de texto el cual el
contenido se puede leer, imprimir y editar con
cualquier editor de texto
 Archivos Binarios.- simplemente son archivos
NO ASCII. Al tratar de leer o imprimir el
contenido dará una lista incomprensible de
caracteres aleatorios. Tiene una estructura
internal conocida por el programa que los utiliza

   
Tipos y Estructuras de
Archivos

  (a) Archivo ejecutable   (b) Archivo compilado
Tipos y Estructuras de
Archivos
 El archivo ejecutable tiene 5 secciones:
 Encabezado (header)
 Numero Mágico: identifica al archivo como
ejecutable
 Texto (text)
 Datos (data)
 Bits de relocalizacion (relocation bits)
 Tabla de simbolos (symbol table)

   
Tipos y Estructuras de
Archivos
 El archivo compilado contiene 2 secciones:
 Encabezado
 Nombre
 Día que fue creado
 Dueño
 Código de Protección
 Tamaño
 Modulo Objeto o Libreria de Procedimientos

   
Acceso a Archivos

 Durante los primeros sistemas operativos había


solo una forma de accesar archivos, era el acceso
secuencial
 Una operacion de lectura leia el registro actual y
automaticamente avanzaba al siguiente registro
del archivo
 De forma similar, la operacion de escritura añadia
el registro al final y avanzaba al nuevo final del
archivo
 Tales archivos se podian rebobinar para situarse
 
de nuevo al principio
 
Acceso a Archivos

 Con la aparición de los discos se pudo


accesar directamente a cualquier registro
del archivo, dando lugar a los denominados
archivos de acceso arbitrario.
 En ellos las operaciones de lectura y
escritura deben de incluir el numero de
registro como parametro.
 Ahora no se lee proximo registro, sino que
se especifica leer el registro n
   
Acceso a Archivos

 Archivos de acceso arbitrario son


esenciales para varias aplicaciones, como
por ejemplo, sistema de base de datos.

 En los sistemas operativos actuales esta


clasificación de archivos de acceso
secuencial o de acceso arbitrario ha
desaparecido. En la actualidad todos los
archivos se consideran de acceso arbitrario
   
Operaciones con Archivos

 Los archivos existen para guardar y recuperar


información Diferente sistemas proveen
diferente operaciones para almacenar y
recuperar archivos.
 A continuacion se exponen las principales
operaciones que suelen tener la mayoria de los
sistemas operativos

   
Operaciones con Archivos

 CREATE (crear)
 El archivo es creado sin datos. El propósito de esta
operación es de avisar que un archivo va hacer
creado y asignar algunos atributos.
 La especificacion funcional de como desarollar la
funcion CREATE en un sistema operativo es la
siguiente:

   
Operación CREATE

Llamada CREATE(nombre_archivo, atributos)

/* buscar nombre del archivo en el directorio */

/* si se localiza, enviar un mensaje de duplicado, o crear nueva 
version y sobre grabar */

/* localizar una entrada libre del directorio */

/* si no hay ninguna asignarla */

/* asignar espacio para el archivo */

/* registrar bloques asignados en el directorio */
   
/* registrar los atributos del archivo en el directorio */
Operaciones con Archivos

 OPEN (abrir)
 El propósito de OPEN es establecer un enlace
entre el programa y el archivo, para ello se
trasladan los atributos y la lista de direcciones del
archivo, que están en el disco, a la memoria
principal, para permitir un rápido acceso a futuras
llamadas

   
Operación OPEN
Llamada: ID_conexión = OPEN(nombre_archivo, modo_acceso)

/* buscar el nombre del archivo en el directorio */

/* si no se localiza, enviar mensaje de error y volver */

/* verificar permiso de acceso al archivo, si no hay permiso, 
indicar error */

/* crear un bloque de control de archivo copiando a la memoria 
principal la lista de atributos y direcciones */

/* crear identificador ID_conexion */

/* inicializar el indice del archivo */
   

/* devolver el identificador de conexion ID_conexion */
Operaciones con Archivos

 SEEK (buscar)
 Con esta función se cambia la posición del
apuntador para señalar el byte o registro cuya
dirección lógica se suministra en la llamada

   
Operación Seek

Llamada: SEEK (ID_conexión, posición_lógica)

/* verificar identificador de conexion ID_conexion */

/* calcular posicion adecuada */

/* actualizar el marcador del archivo */

   
Operaciones con Archivos

 READ (leer)
 La lectura se hace en la posición actual (si no
fuera así, previamente se debería hacer una
llamada a la función SEEK especificándole el
lugar en el que se quiere hacer dicha operación
de lectura), y en la llamada se tiene que
especificar la cantidad de datos necesarios y
proporcionar un buffer para su transmisión
 Como se pueden producir diferentes tipos de
errores en la lectura, la funcion READ indica el
resultado de la operacion mediante el resultado
 
que devuelve en  estatus
Operación Seek

Llamada: estatus = READ(ID_conexión, num_byte, in_buffer

/* verificar ID_conexion */

/* verificar archivo abierto para lectura: autorizacion de acceso */

/* sincronizar con otros usuarios activos, si hace falta: compartimiento */

/* calcular numero y direcciones de los sectores a leer: correlacion */

/* emitir orden de lectura al contralador del dispositivo */

/* verificar resultado de lectura del dispositivo */

/* copiar num_byte de datos desde el almacenamiento intermedio al in_buffer */

/* actualizar marcador del archivo */
   
/* devolver estatus */
Operaciones con Archivos

 WRITE (escribir)
 La única diferencia importante con READ
(aparte de que READ lee información y WRITE
la registra), es que sirve también para ampliar
el archivo.
 Si la posicion actual esta la final del archivo, el
tamaño del archivo se incrementa.
 Si la posicion esta en medio del archivo, los
datos se sobre escriben y se pierden

   
Operación Write

 Algunos sistema tiene una forma restringida de


WRITE, con la que solo se puede añadir datos
al final del archivo (APPEND)
 Los sistemas con la funciones OPEN y CLOSE
generalmente requieren que los archivos sean
abiertos antes de poderlos leer o escribir. Pero
muchos sistemas, abren implícitamente el
archivo cuando se realiza cualquier referencia a
ellos. En estos casos, las propias funciones de
escritura y lectura llevan incluida una llamada a
OPEN
   
Operación Write
Llamada: estatus = WRITE(ID_conexión, num_byte, in_buffer)

/* verificar ID_conexion */

/* verificar archivo abierto para escritura: autorizacion de acceso */

/* sincronizar con otros usuarios activos, si hace falta: compartimiento */

/* si se amplia el archivo, asignar los bloques requeridos: asignacion de espacio */

/* actualizar directorio si se añaden nuevos bloques */

/* calcular numero y direcciones de los sectores a escribir: correlacion */

/* copiar num_byte de datos desde out_buffer al almacenamiento intermedio */

/* emitir orden de escritura al controlador del dispositivo */

/* verificar resultado de escritura del dispositivo */

/* actualizar marcador del archivo */
   
/* devolver estatus */
Operaciones con Archivos

 CLOSE (cerrar)
 Cuando un archivo no se va a usar mas es
necesario cerrarlo, de forma que se libere la tabla
con la lista de atributos y direcciones que se
mantenía en la memoria principal y ya no es
necesaria
 En muchos sistemas, la terminacion obligada o
voluntaria de procesos incluye el cierre de todos los
archivos abiertos

   
Operación Close

Llamada: CLOSE(ID_conexión)

/* verificar ID_conexion */

/* si no se localiza, enviar mensaje de error y volver */

/* verificar permiso de acceso al archivo, si no hay permiso, 
indicar error */

/* si la copia de la entrada del directorio guardada en el bloque 
de control del archivo ha sido actualizada, entonces reescribirla 
en el disco */

/* liberar el bloque de control de archivos */
   
/* borrar identificador */
Operaciones con Archivos

 DELETE (borrar)
 Cuando se quiere eliminar un archivo y liberar
el espacio que ocupa se hace una llamada a
borrar
 Seria el proceso contrario al de CREATE,
borrando del directorio la entrada al archivo y
liberando el espacio del disco asignado al
mismo
 Hay sistema operativos que como medida de
seguridad guardan una copia hasta que reciben
 
la orden de liberar
 
el espacio
Operación Delete

Llamada: DELETE(nombre_archivo)

/* buscar nombre del archivo en el directorio */

/* si no se localiza, enviar mensaje de archivo no encontrado */

/* verificar permisos, si no hay permiso de acceso,indicar error */

/* verificar si se esta utilizando, si esta abierto enviar mensaje de 
archivo abierto */

/* liberar la entrada en el directorio */

/* liberar espacio asignado al archivo */
   
Operaciones con Archivos

 COPYFILE (copiar)
 La función de copiar lleva implícita la creación de
un nuevo archivo, aunque en algunas versiones se
permite copiar en un archivo ya existente grabando
sobre la información del mismo
 En la siguiente diapositiva se muestra el esquema
de esta operacion

   
Operación Copyfile

Llamada: COPYFILE(nombre_archivo_origen, nombre_archivo_destino)

/* abrir el archivo origen nombre_archivo_origen */

/* si no se localiza, enviar mensaje de archivo no existente */

/* crear archivo destino nombre_archivo_destino, con permiso de escritura */

/* si no se puede crear, ya existe, enviar mensaje de archivo ya existente */

/* abrir archivo destino */

/* realizar la copia. Leer bloques del archivo origen nombre_archivo_origen y 
copiarlos en el archivo destino nombre_archivo_destino */

/* cerrar el archivo origen nombre_archivo_origen */

/* cerrar el archivo destino nombre_archivo_destino */
   
Directorios de Archivos

 Los directorios son básicamente tablas


simbólicas de archivos
 Una entrada tipica del directorio puede
contener la siguiente informacion:
 Nombre, tipo y numero de version del archivo
 Puntero de acceso al archivo, direccion de
comienzo en el disco
 Lista de atributos

   
Directorios de Archivos

Nombre Tipo Version Puntero Tamaño Permisos Fechas


libro txt 3 30125 50 ­rw­r­­r­­ 12/12/94 10/01/95
ordena obj 1 25432 120 ­rw­rw­rw­ 05/11/94 22/01/95
ordena exe 1 10125 30 ­rwxrw­rw­ 01/01/95 01/10/95
lista txt 2 65390 40 ­rw­r­­r­­ 10/10/94 05/12/94
libmat lib 4 192 90 ­rw­rw­rw­ 01/03/94 05/08/94

Ejemplo de una Tabla de Directorio

   
Directorios de Archivos

 En muchos sistemas, la tabla esta divida en


dos
 En una sola se mantienen los nombres de los
archivos con un numero de identificación
 Y en la otra se tiene el puntero de acceso al
archivo y la lista de atributos
 La separacion de la tabla de nombres de
los archivos de la descripcion agiliza la
gestion de los enlaces, la generacion de
alias y los homonimos
   
Directorios de Archivos

Nombre ID ID Tipo Version Puntero Tamaño Permisos Fechas


libro 1 1 txt 3 30125 50 ­rw­r­­r­­ 12/12/94 10/01/95
ordena 2 2 obj 1 25432 120 ­rw­rw­rw­ 05/11/94 22/01/95
ordena 3 3 exe 1 10125 30 ­rwxrw­rw­ 01/01/95 01/10/95
lista 4 4 txt 2 65390 40 ­rw­r­­r­­ 10/10/94 05/12/94
libmat 5 5 lib 4 192 90 ­rw­rw­rw­ 01/03/94 05/08/94

Ejemplo de Tabla de Directorio divida en dos

   
Diseño de Directorios

 Uno de los diseños mas sencillos es el


directorio de nivel único
 Un unico directorio contiene todos los archivos del
sistema o volumen
 Esta estructura eran muy comun en las primeras
computadoras personales, por tener a un solo
usuario

   
Directorio de Nivel Único

  Tres diseños de administradores de archivos
 
Directorio de Nivel Único

 La figura (a) es un directorio único


compartido por todos los usuarios
 El problema en tener un solo directorio en un
sistema con usuarios multiples es que
diferentes usuarios pueden duplicar los
nombres de los archivos
 Por ejemplo: Si el usuarios “A” crea un archivo
llamado mailbox, y despues el usuario “B” tambien
crea un archivo llamado mailbox, el archivo de “B”
sobre escribe al archivo de “A”
 Ademas se presentan problemas para asignar
proteccion a los archivos
   
Directorio de Nivel Único

 La figura (b) es un directorio por usuario


 De esta forma se elimina el conflicto entre los
usuarios. Los nombres de los archivos asignados
por un usuario no interfieren con los nombres
asignados por otro usuario, aun cuando el nombre
del archivo sea igual, ya que los archivos se
encuentran en diferentes directorios

   
Directorio de Nivel Único

 Este diseño se puede usar por ejemplo, en una


computadora multiusuarios, o una red simple de
computadoras personales la cuales comparten un
servidor de archivos en común
 Implicito en este diseño, el sistema operativo
requiere saber que usuario manipula el archivo, lo
cual hace necesario una forma de identificar al
usuario. En directorio de nivel unico no es
necesario identificar al usuario

   
Directorio de Nivel Único

 En su implementación mas básica, los usuarios


solo pueden accesar archivos dentro de su
directorio
 Ademas los usuarios que tienen muchos archivos
siguen teniendo el problema organizacion de los
mismos.
 La solucion para esto es una jerarquizacion
total, como se muestra en la fig (c)

   
Directorio de Nivel Unico

 El arbol de directorios, fig(c), cada usuario


dispone de su propia estructura jerarquica con
tantos subdirectorios como necesite
 Aqui los directorios A,B, y C contenidos en la
raiz del directorio pertencen a diferentes
usuarios, los cuales dos de ellos crearon
subdirectorios para sus proyectos

   
Directorio de Nivel Unico

 La abilidad de poder crear un numero arbitrario


de directorios provee una poderosa
herramienta estructural para que los usuarios
puedan organizar su informacion
 Por esta razon todas las PC y Servidores de
Archivos modernos estan organizadas de este
modo

   
Nombre del Path (camino)

 Cuando el sistema de archivos esta organizado


en arbol de directorios (directory tree) de
alguna manera hay especificar los nombres de
los archivos
 Dos metodos son usados comunmente
 Path Completo
 Path Relativo

   
Nombre del Path (camino)

 Path Completo
 Por este metodo se comienza por el directorio
raiz y sigue hacia abajo en el arbol de directorio
hasta el archivo indicado
 Por ejemplo un path completo es
 /aplic/mail/seb/lista
 Que indica que partiendo del directorio raiz, hay
un directorio aplic, el cual tiene un subdirectorio
mail y este a su vez un subdirectorio seb que
es en el que se encuentra el archivo lista
   
Nombre del Path (camino)

 Los path completos siempre comienzan en el


directorio raiz y son unicos
 En UNIX los componentes del path estan
separados por /
 Windows utiliza el \
 Windows -> \usr\ast\mailbox
 UNIX -> usr/ast/mailbox

   
Nombre del Path (camino)

 Path Relativo
 Este metodo se usa en conjunto con el concepto de
directorio actual o directorio de trabajo.
 El usuario puede designar un directorio como su
directorio actual, de tal manera que los nombres de
los path que no empiezan en la raiz directorio son
relativos al directorio actual

   
Nombre del Path (camino)

 Por ejemplo si el directorio actual es


/usr/ast, entonces el archivo el cual su path
completo es /usr/ast/mailbox se puede
referenciar simplimente como mailbox. En
otras palabras, el comando UNIX
cp /usr/ast/mailbox /usr/ast/mailbox.bak
y el comando
cp mailbox mailbox.bak
Hacen exactamente lo mismo
   
Nombre del Path (camino)

 En windows los comandos serian de esta


forma:
copy c:\usr\ast\mailbox c:\usr\ast\mailbox.bak
copy mailbox mailbox.bak

   
Nombre del Path (camino)

 Casi todos los sistemas operativos que


usan un directorio jerarquico tiene dos
simbolos dos entradas especiales para
cada directorio:
 “.” (punto): es una entrada para el propio
directorio (con un puntero a si mismo)
 “..” (punto-punto): es una entrada para el
directorio padre (el que esta por encima de la
jerarquia)
 Para ver como esto se utiliza ver la
siguiente figura
   
Nombre del Path (camino)

   
Nombre del Path (camino)

 Cierto proceso en UNIX tiene a /usr/ast como


su directorio de trabajo o actual y quiere copiar
el archivo dictionary a su directorio. El proceso
puede usar los siguientes comandos:
 cp ../lib/dictionary .
 cp /usr/lib/dictionary .

   
Nombre del Path (camino)

 Tambien se podrian usar los siguientes


comandos:
 cp /usr/lib/dictionary dictionary
 cp /usr/lib/dictionary /usr/ast/dictionary
 Todos los comandos hacen exactamente los
mismo

   
Nombre del Path (camino)

   
Operaciones con Directorios

 Las operaciones con directorios varian


grandemente entre sistemas operativos, que
las operaciones con archivos.
 Como ejemplos se listan las siguientes
llamadas usando UNIX (hay que tener en
cuenta que UNIX considera a los directorios
como archivos que, en todo caso, presentan
unas caracteristicas especiales):

   
Operaciones con Directorios
 MAKEDIR (crear directorio)
 En el directorio actual se crea una entrada para
un nuevo subdirectorio. Este nuevo
subdirectorio estara vacio salvo las entradas
relativas a el mismo, “,”, y al directoio padre, “..”
 REMOVEDIR (borrar directorio)
 En el principio eliminar un directorio supone
que esta vacio, es decir que las unicas
entradas que tiene son “.” y son “..”. Si el
directorio no esta vacio, contiene entradas de
archivos o subdirectorios, se pueden hacer 2
cosas:
   
Operaciones con Directorios

 La primera es no permitir borrar el directorio que no


este vacio, por lo cual hay que borrar previamente
todos los archivos. Si existen subdirectorio hay que
hacer los mismo
 Permitir que eliminar el directorio, borrando todos
los archivos que se encuentren en el, incluyendo
los subdirectorio y su contenido

   
Operaciones con Directorios

 OPENDIR (abrir directorio) y CLOSEDIR


(cerrar directorio)
 Al igual que como se produce con los archivos,
cuando se quiere operar con los directorios hay que
abrirlos. Cuando se termina de utilizar el directorio
se cierra, actualizando en el disco las tablas del
mismo

   
Operaciones con Directorios

 READDIR (leer directorio)


 En un principio esta llamada era igual que para los
archivos (READ), pero se suponia que el
programador o usuario debia de conocer la
estructura de los archivos. Por eso se hace una
llamada diferente que devuelve en un formato
estandar la entrada actual del directorio

   
Operaciones con Directorios

 RENAMEDIR (cambiar de nombre)


 Al igual que como ocurre con los archivos, los
directorios se pueden cambiar de nombre con
una llamada al sistema
 LINK (enlazar)
 Es un forma de hacer que un archivo o
subdirectorio aparezca en varios directorios
 En la llamada a esta funcion se especifica el
nombre del archivo y el camino de acceso
(path), creando un enlace entre este camino y
 
el archivo  
Operaciones con Directorios

 UNLINK (desenlazar)
 Corresponde a las operaciones contrarias al LINK,
por lo que la funcion es la eliminacion del enlace y
borrado de las correspondiente entrada en el
directorio.
 En UNIX la llamada al sistema REMOVEDIR es de
hecho un UNLINK

   
Implementacion del Sistema de
Archivos
 En los proximos temas dejamos la
perspectiva del usuario, y en en su lugar
veremos la perspectiva del diseñador
 Para el usuario lo que le concierne es:
 Como nombrar a los archivos
 Que tipo de operaciones se pueden realizar
 Como es la estructura de un directorio
 Y operaciones que se pueden hacer en el
directorio
   
Implementacion del Sistema de
Archivos
 Para el diseñador, lo que le concierne es:
 Como los archivos y directorios son
almacenados
 Como se administra el espacio del disco
 Y como hacerle para que todo funciones
trabajen eficientemente y confiable
 Esto supone eligir un metodo de asignacion
de espacio a los archivos y de gestion de
espacio libre del disco
   
Implementacion del Sistema de
Archivos
 En la asignacion del espacio del disco hay 3
metodos mas usados son:
 Asignacion continua
 Asignacion ligadas
 Asignacion indexada

   
Implementacion del Sistema de
Archivos
 Metodo de asignacion continua
 Este metodo requiere que cada archivo ocupe un
conjunto de direcciones contiguas en el disco.
 Por ejemplo, en un disco con bloques de 1Kb, un
archivo de 100Kb ocupara 100 bloques
consecutivos.
 Este metodo tiene dos ventajas:

   
Implementacion del Sistema de
Archivos
 Este metodo tiene dos ventajas:
 Es facil de implementar, ya que el registro de donde se
localizan los bloques del archivo son reducidos en solo
saber 2 numeros: la direccion del disco duro en el cual
se localiza el primer bloque, y el numero de bloques en
el archivo
 Ejemplo: Si un archivo ocupa n bloques y comienza en
el bloque b, ocupara los bloques b, b+1, b+2,
b+3...b+n-1. Si se quiere accesar al bloque i de un
archivo que comienza en el bloque b, se accesa
directamente al bloque b+i

   
Implementacion del Sistema de
Archivos
 La segunda ventaja es que la lectura de un archivo es
muy rapida ya que se hace en una sola operacion. Solo
se necesita hacer un SEEK (al primer bloque). Despues
de esto no es necesario hacer otro SEEK o esperar al
que el disco haga rotaciones adicionales para
posicionarse en otro sector del disco

   
Implementacion del Sistema de
Archivos
 Cuales serian las desventajas del metodo de
asignacion continua????

   
Implementacion del Sistema de
Archivos
 Metodo de asignacion ligada
 Una solucion a los problemas con el metodo de
asignacion continua es mantener los archivos como
una lista de bloques en el disco
 En la siguiente figura muestra este esquema

   
Implementacion del Sistema de
Archivos

   
Implementacion del Sistema de
Archivos
 Unos pocos bytes del comienzo de los bloques
se usan como puntero al siguiente bloque, el
resto del bloque contiene los datos del archivo
 Con este metodo, las entradas en el directorio
solo tiene que guardar un puntero al primer
bloque del disco asignado al archivo
 Escribir en el archivo supone coger uno de los
bloques libres y añadirlo al final de la lista.
 Para leer un archivo solo hay que seguir los
punteros de bloque a bloque
   
Implementacion del Sistema de
Archivos
 Esta tecnica no causa fragmentacion externa ya
que se puede utilizar todos los bloques del disco.
 Tampoco se tiene que declarar el tamaño del
archivo cuando se crea
 Los archivos pueden crecer sin ningun problema
mientras haya bloques libres

   
Implementacion del Sistema de
Archivos
 El principal problema es el acceso aleatorio a
un archivo que es extremadamente lento
 Para encontrar el bloque i de un archivo hay
que empezar por el primer e ir siguiente los
punteros hasta llegar al i-esimo bloque

   
Implementacion del Sistema de
Archivos
 Metodo de asignacion indexada
 La asignacion mediante listas ligadas evita la
fragmentacion externa y la declracion del
tamaño que presentaba la asignacion continua.
Pero es una mala solucion para el acceso
aleatorio a los archivos
 Una alternativa es colocar los indices a los
bloques de los archivos en una tabla de
indices, es decir, usar un metodo de asignacion
mediante indexacion, tal como se indica en la
siguiente figura
   
Implementacion del Sistema de
Archivos

   
Implementacion del Sistema de
Archivos
 En este caso, el directorio contiene la direccion
del bloque (el numero 11 es el ejemplo) donde
estan los indices a los bloques de datos del
archivo
 Con esta organizacion, todo bloque esta
disponible para los datos. Ademas se soporta
con la misma eficacia el acceso aleatorio como
el secuencial, sin sufrir de fragmentacion
externa

   
Sistemas Operativos II

Tema
Administracion de Dispositivos Perifericos

   
Entrada/Salida (I/O)

 Una computadora basa gran parte de su


utilidad en la capacidad de recibir y
transmitir informacion desde o hacia el
exterior
 Se puede ver la Entrada/Salida (E/S) como
un conjunto de controladores de E/S
 Cada controlador se conecta al bus del
sistema o a un conmutador centralizado y
supervisa uno o mas dispositivos perifericos
   
Entrada/Salida (I/O)

 Un contralador de E/S no es simplemente una


conexion fisica entre un dispositivo externo o el
bus del sistema, sino que contiene cierta
“inteligencia”, es decir dispone de la logica
necesaria para realizar una funcion de
comunicacion entre los perifericos de la
computadora y el bus

   
Entrada/Salida (I/O)

 Los motivos porque los perifericos no se


conectan directamente al bus son los sig:
 Existe una gran variedad de perifericos con
diversos metodos de operacion
 La velocidad de transferencia de datos de los
perifericos suele ser mucho menor que la de la
memoria con el CPU
 Los perifericos a menudo utilizan formatos de
datos y longitudes de palabras distintas a la de
la computadora al que estan conectados
   
Entrada/Salida (I/O)

 Estas razones justifican la existencia de los


controladores de E/S, que tienen dos grandes
funciones:
 Comunicarse con el CPU y la memoria a travez del
bus del sistema
 Comunicarse con uno o varios dispositivos
perifericos mediante enlaces de datos adaptados a
cada periferico

   
Entrada/Salida (I/O)

Linea de Direccion
Linea de Datos
Linea de Control

Controlador de
E/S

Enlaces a 
dispositivos 
perifericos

   
Entrada/Salida (I/O)

 En un sentido amplio los perifericos se pueden


clasificar en 4 categorias:
 Adaptados al Usuario: son dispositivos
apropiados para comunicar informacion al usuario
 Las consolas
 Las terminales de video
 Las impresoras

   
Entrada/Salida (I/O)

 Adaptados a la maquina: permite comunicarse


con el sistema
 Unidades de Discos
 Unidades de Respaldo
 Comunicacion: son los que permiten transmitir
informacion a dispositivos remotos. Estos
dispositivos remotos pueden ser adaptados al
usuario, a la maquina o incluso ser otra
computadora

   
Entrada/Salida (I/O)

 De Interaccion con el medio externo: se utilizan


en general para transmitir informacion a elementos
actuadores y recibir informacion de elementos
sensores en un sistema de control en que la
computadora actua como controlador
 Termo-Par
 Sensores HVAC

   
Entrada/Salida (I/O)

 Existen grandes diferencia entre los


diversos dispositivos E/S. Entre estas
diferencia se pueden citar las sig:
 Velocidad de Transferencia:Puede haber
diferencia de ordenes de magnitud en la
velocidad de transferencia de datos entre los
diferentes dispositivos
 Aplicaciones: La utilizacion a la que se destina
el periferico tiene una gran influencia sobre los
programas y las estrategias correspondientes
 
utilizadas por el sistema
 
operativo
Entrada/Salida (I/O)

 Por ejemplo, si se destina un disco para el


almacenamiento de los archivos se va a necesitar un
modulo en el sistema operativo para la administracion de
los mismo
 Unidad de Transferencia: segun en metodo que
se utilice para transferir datos los perifericos se
clasifican en dos categorias:
 Orientado a Bloques
 Orientado a Caracteres

   
Entrada/Salida (I/O)

 En los dispositivos orientados a objetos (por


ejemplo los discos), los datos son transferidos
en bloques de informacion cuyas
caracteristicas basicas son:
 Los bloques normalmente son de tamaño fijo
 Es posible leer o escribir en un bloque de forma
independiente de los demas
 Los datos se referencian o direccionan dando el
numero de bloque que se desea transferir

   
Entrada/Salida (I/O)

 En los dispositivos orientados a caracteres (por


ejemplo las terminales, las impresoras, los
puertos de comunicacion, los ratones, etc), los
datos se transfieren como una cadena de
caracteres con las caracteristicas basicas sig:
 No estan sujetos a una estructura de bloques
 No se pueden utilizar direcciones
 No es posible realizar operaciones de buscada

   
Entrada/Salida (I/O)

 Complejidad del controlador del


dispositivo: La estructura del contolador de
E/S de los dispositivos presentan grados de
dificultad muy variados
 Asi una interfaz alfanumerico requiere una
interface de control mucho mas sencillo que
de un disco
 Una de las funciones del SO, es uniformizar
estas diferencias mediante los modulos de
 
E/S que gobierna  a los distintos dispositivos
Entrada/Salida (I/O)

 Condiciones de error: Para cada dispositivo


hay un tratamiento especifico de las
condicones de error, sus consecuencias y la
respuesta que se suministra al usuario

 En la siguiente figura se muestra en terminos


generales la naturaleza de un dispositivo
externo

   
Entrada/Salida (I/O)

   
Entrada/Salida (I/O)

 La comunicacion con el controlador E/S se


efectua mediante señales de datos, de control,
y de estado del dispositivo
 Los datos estan constituidos por un conjunto de
bits que se envian o reciben desde el
controlador de E/S

   
Entrada/Salida (I/O)

 Las señales de control determinan la funcion


que realiza el dispositivo
 Enviar el dato al controlador de E/S (leer)
 Aceptar el dato del controlador E/S (escribir)
 Realizar una funcion de control particular para ese
dispositivo

   
Entrada/Salida (I/O)

 Las señales de estado indica el estado en


el que se encuentra el dispositivo
 Preparado / No Preparado
 Hay papel o no en la impresora
 Si un lector de CD tiene un disco insertado o no
 La logica de control asociada con el
periferico gobierna su funcionamiento en
respuesta a las ordenes enviadas por el
controlador E/S
   
Entrada/Salida (I/O)

 El traductor convierte las señales electricas a


otra forma de energia y a la inversa en una
operacion de entrada
 En el registro se almacena temporalmente el
dato que se transfiere entre el controlador de E/
S y el mundo exterior

   
Entrada/Salida (I/O)

 Una caracteristica que es comun a todos los


dispositivos perifericos es que su velocidad de
trabajo es muy inferior a la que posee una
computadora
 Esta limitacion viene impuesta, en la mayoria
de los casos, por la naturaleza mecanica de
algunas partes de los mismos

   
Entrada/Salida (I/O)

Dispositivo Velocidad
Teclado 10 bytes/seg
raton 100 bytes/seg
modem 56K 7 Kb/seg
Scanner 400 Kb/seg
Camara Video Digital 4 Mb/Seg
52x CD­Rom 8 Mb/seg
FireWire (IEEE 1394) 50 Mb/seg
USB 2.0 60 Mb/seg
Monitor XGA 60 Mb/seg
Red SONET OC­12 78 Mb/seg
Ethernet Gigabit 125 Mb/seg
Disco Serial ATA 200 Mb/seg
Disco SCSI UltraWide 320 Mb/seg
 
Bus PCI   528 Mb/seg
Entrada/Salida (I/O)

 El nucleo central de este tema lo constituye


el estudio de los mecanismos por los que
un controlador de E/S interaccionan con el
resto de la computadora. Se utilizan las
siguientes tecnicas:
 E/S controlada por programa
 E/S por interrupciones
 Acceso directo a memoria (DMA)
 Procesador de E/S
   
E/S controlada por programa

 En la E/S controlada por programa el CPU


ejecuta un programa que tiene el control directo
de la operacion E/S e incluye la comprobacion
del estado del dispositivo, el envio de una
orden de lectura o escritura y la transferencia
del dato

   
E/S controlada por programa

 Para ejecutar una de E/S, el CPU envia una


orden de E/S y una direccion que especifica
el controlador y el periferico en particular. El
CPU puede enviar 4 tipos de ordenes:
 Ordenes de control.- se utilizan para activar un
periferico y decirle que hacer
 Ordenes de comprobacion.- se utiliza para
verificar diferentes tipo de condiciones de
estado asociadas con un controlador E/S y sus
perifericos
   
E/S controlada por programa

 Ordenes de lectura.- originan que el controlador de


E/S obtenga un dato del periferico y lo coloque en
un registro interno (registro de datos RD). El CPU
entonces puede conseguir el dato pidiendo al
controlador E/S que lo coloque sobre el bus de
datos
 Ordenes de escritura.- realiza el proceso inverso de
las ordenes de lectura y hacen que el controlador
de E/S tome un dato del bus de datos y a
continuacion lo transmita al periferico

   
E/S controlada por programa

Leer registro de datos RE
Este loop mantiene 
ocupado al CPU sin 
que pueda hacer otra  No
cosa lo que provoca el 
bajo rendimiento de 
este estado de  Dato preparado
transferencia en periferico?
Si
Transferir dato del
registro de datos RD
al CPU

Recibir mas
Fin No
datos?
Almacenar dato
en memoria
   
E/S controlada por programa

 Despues de efectuar la transferencia de un


dato, la computadora permanece en un loop
de espera hasta que el periferico este
preperado para realizar la siguiente
transferencia.
 El periferico indica su disponibilidad
mediante los bits de su registro de estado

   
E/S controlada por programa

 El diagrama pone de manifiesto la principal


desventaja de esta tecnica: la computadora no
realiza ningun trabajo util mientras permanezca
en el loop de espera, y este hecho con
perifericos lentos puede repetirse miles de
veces

   
E/S por interrupciones

 El mecanismo de E/S controlada por programa


presenta uan serie de inconvenientes que se
puede resumir de la forma siguiente:
 Perdida de tiempo en el loop de espera
 Si existen programas que tienen que ejecutarse
necesariamente de forma periodica, esto implica
que no puede permanecer en el loop de espera por
tiempo indefinido

   
E/S por interrupciones

 Hay problemas cuando se quiere atender a


varios perifericos. Mientras la computadora
espera a que un periferico este preparado para
transmitir no puede estar atendiendo a otros
 Un planteamiento diferente que resuelve este
problema lo constituye la E/S por
interrupciones

   
E/S por interrupciones

 La idea basica consiste en eliminar el loop


de espera. El CPU envia una orden de E/S
al periferico y prosigue con la tarea que
estaba ejecutando, en lugar de quedarse
esperando a que se efectue la operacion de
E/S
 Cuando el periferico esta listo para
intercambiar informacion, fuerza una
interrupcion en la tarea que realiza la CPU
para que atienda la operacion de E/S
   
E/S por interrupciones

 En ese momento el CPU realiza la


transferencia de datos, de la misma manera
que en el caso de E/S controlada por
programa, y a continuacion sigue
ejecutando el programa que habia
interrumpido.
 El periferico advierte al CPU que esta
preparado para la transmision, activando
una linea especial del bus de control: La
linea de peticion de interrupcion (IRQ)
   
E/S por interrupciones

 El numero de IRQ puede estar limitada


 En PC clase pentium, tiene solo 15 disponibles
para todos los perifericos de E/S
 Algunos controladores lo tiene preestablecidos
en la tarjeta madre
 El teclado, video y disco duro
 En PC antiguas, los IRQ eran establecidos por
los usuarios a travez de un switch o jumper
asociados al controlador

   
E/S por interrupciones
 Poco usuarios sabian como configurar
correctamente los IRQ, por la cual se invento el
Plug 'n Play, el cual el BIOS automaticamente
asigna algun IRQ a los perifericos al tiempo de
arranca para evitar conflictos
 El CPU no siempre esta en disposicion de
aceptar peticiones de interrupcion por parte
de los perifericos, como por ejemplo:
 Cuando el CPU no precisa ninguna
transferencia de datos con el periferico
 Cuando el CPU esta atendiendo la interrupcion
de un periferico de alta prioridad
   
E/S por interrupciones

   
Acceso Directo a Memoria (DMA)

 La E/S por Interrupciones, aunque es mas


eficaz que la E/S controlada por programa,
requiere la intervencion activa del CPU para
transferir datos entre la memoria y un
periferico.
 En ambos casos, cualquier transferencia de
datos debe recorrer un camino que pasa a
travez del CPU

   
DMA

 En ambos casos estas dos formas de E/S


sufren de dos ventajas inherentes:
 La transferencia de datos esta limitada a la
velocidad con que el CPU puede comprobar y
atender a un periferico
 El CPU esta obligado a gestionar la
transferencia de E/S
 Lo cual tiene por efecto adverso en la
actividad del CPU y la velocidad de
transferencia de E/S
   
DMA

 Cuando se mueven grandes cantidades de


datos, se necesita una tecnica mas eficaz:
esta tecnica es el acceso directo a memoria
(Direct Memory Access)
 El DMA necesita un modulo adicional
conectado al bus del sistema: controlador
de DMA, que es capaz de hacer las
funciones asigndas al CPU durante la
transferencia de datos y asumir el control
del sistema, especialmente de los buses de
 
datos y de direcciones,
 
ver sig. fig
DMA

   
DMA

 La tecnica del DMA funciona de la siguiente


manera: cuando el CPU desea leer o
escribir un bloque de datos emite una orden
al controlador de DMA enviandole la
siguiente informacion:
 Si la operacion de E/S es de lectura o escritura
 La direccion del periferico
 La posicion de comienzo en memoria de donde
hay que leer o donde hay que escribir
 
 El numero de palabras
 
que se tiene que leer o
escribir
DMA

 El controlador de DMA transfiere


directamente, palabra por palabra, el bloque
completo de datos entre el periferico y la
memoria, sin pasar por el CPU.
 Cuando la transferencia finaliza, el
controlador de DMA envia una señal de
interrupcion al CPU
 De esta forma el CPU unicamente
interviene unicamente al principio y final de
 
la transferencia, ver
 
la sig. fig
DMA

   
Procesador E/S (PE/S)

 A medida que que avance la tecnologia cada


vez se realizan mas funciones de E/S sin la
intervencion directa del CPU
 El procesador de E/S tiene una memoria local y se
puede considerar como una computadora
 Con esta arquitectura se consigue controlar un gran
numero de perifericos con una intervencion minima
del CPU

   
Procesador E/S (PE/S)

   
Sistemas Operativos II

Tema
Seguridad y proteccion

   
Seguridad y Proteccion

 Uno de los mayores problema que representa


al almacenar la informacion en una
computadora es la seguridad de la misma,
teniendo que idear mecanismos que protejan
esta informacion tanto de daños fisicos como
de accesos inadecuados o mal intencionados

   
Seguridad y Proteccion

 A menudos, los conceptos de seguridad y


proteccion se utilizan de forman indistinta y
abarcan diferentes problemas.
 El termino seguridad se suele referir al
problema general
 El termino mecanismo de proteccion a los
procedimientos especificos utilizados por el
sistema operativo para asegurar la informacion
de la computadora

   
Seguridad y Proteccion

 Los origenes de los problema de seguridad


tienen diferente causas:
 Causas ajenas al sistema informatico
 Incendios
 Apagones
 Desastre naturales
 Averias a la computadora o errores de
programas
 Mal funcionamiento del CPU
 Errores en el SO o aplicaciones
   
 Errores en el disco
Seguridad y Proteccion

 Errores humanos o actos mal intensionados


 Ejecucion incorrecta de un programa
 Borrar un archivo sin querer
 Intento de acceso indebidos

   
Metas de Seguridad

 Desde una perspectiva de seguridad, los


sistemas computaciones tienen 3 metas
generales:
 Confidencialidad de Datos
 Integridad de Datos
 Disponibilidad del Sistema

   
Metas de Seguridad

 Confidencialidad de Datos
 Al tener informacion secreta que se mantenga
secreta. En especifico, si el dueño de cierta
informacion decidio que solo ciertas personas
pueden leer su contenido y otras no, el sistema
operativo debe de poder garantizar que el
acceso no autorizado a la informacion no
ocurra
 Lo minimo es que el usuario especifique quien
pueda ver la informacion, y el sistema operativo
haga cumplir estas especificaciones
   
Metas de Seguridad

 Integridad de Datos
 Significa que que usuarios no autorizados no tenga
la abilidad de poder modificar datos sin el permiso
del dueño del archivo
 Modificacion de datos no solo es alteracion de
datos, sino tambien de poder borrar datos y añadir
informacion falsa
 Usualmente la integridad de datos es mas
importante que la confidencialidad de datos

   
Metas de Seguridad

 Disponibilidad del Sistema


 El sistema operativo debe de estar siempre listo,
sin ninguna interrupcion externa que lo haga
inaccesible
 DOS (Deny Of Service)

   
Metas de Seguridad

Meta Amenaza
Confidencialidad de datos Datos expuestos
Integridad de Datos Manipulacion de datos
Disponibilidad Del Sistema Deny of Service

   
Intrusos

 Los fallos y deterioros del sistema de


archivos, causados por actos fortuitos,
errores de maquinas o humano, son
consideras amenazas internas
 Pero un problemas mas grave es el de
intrusos que intentan accesar, de forma no
autorizada, al sistema de archivos
 Estos intrusos pueden ser simples curiosos
que sin alterar el sistema de archivos,
 
quieren husmear  en el mismo, para ver que
aplicaciones y/o documentos hay
Intrusos

 Tambien pueden ser personas altamente


calificadas que como reto quieren romper la
seguridad de algun sistema
 Y otros pueden tener un caracter lucrativo, y
delictivo

   
Intrusos Famosos

 Jonathan James
 Primer menor de edad (16 años) que fue a prision por
crimenes ciberneticos
 Acceso no autorizado a Departamento de Defensa US
 Robo de la NASA software de un valor de 1.7 millones de
dolares
 Adrian Lamo
 Acceso no autorizado en el NY Times y Microsoft
 Sus actividades las hacias desde un Cyber-Cafe

   
Intrusos Famosos

 Robert Tappan Morris


 Conocido como el creador del “Morris Worm”,
el primer gusano introducido al Internet
 Fue la primera persona que se le consigno bajo
la ley de “1986 Computer Fraud and Abuse Act”
 Kevin Mitnick
 Conocido por el Departamento de Justicia de
los EU “Como el criminal informatico mas
buscado”

   
Intrusos Famosos

 Durante 2 ½ años obtuvo acceso ilegal a


computadoras, robo archivos secretos corporativos,
paralizo lineas telefonicas y penetro al servidor de
la Defensa Nacional de los EU
 Sus hazañas lo hicieron famoso las cuales se
pueden ver en dos peliculas “Freedom Downtime” y
“Takedown”

   
Penetracion en un Sistema

 La penetracion en un sistema informatico se


puede hacer de diferente formas y por
diversos medios. Entre lo mas conocidos
estan:
 La utilizacion por parte del intruso de la cuenta
de un usuario legitimo
 Para conseguirlo puede usar una terminal con una
sesion abierta
 Obtener la contraseña de un usuario, para ello
puede utilizar distintas tecnicas
   
Penetracion en un Sistema

 La ejecucion de un “Caballo de Troya”


 Programas los cuales ocultan parte de su funcionalidad,
frecuentemente destinadas a obtener datos o derechos
de acceso del usuario
 Propagacion de Gusanos o Virus informaticos
 La diferencia entre un gusano y un virus esta en que el
virus es parte del codigo de un programa, mientras que
el gusano es un programa en si mismo
 Inspeccion del Sistema de Archivos
 Poder leer los archivos de la computadora, muy comun
con conexiones P2P

   
Principios de Diseño de
Sistemas Seguros
 Saltzer y Schroeder identificaron varios
principios generales que se pueden utilizar
como guia para el diseño de sistemas seguros.
Un resumen de sus ideas son las siguientes:

   
Principios de Diseño de
Sistemas Seguros
 El diseño del sistema debe ser publico
 Los diseñadores se engañan a si mismos si confian
en la seguridad del sistema en la ignorancia de los
atacantes. Los algoritmos deben de ser conocidos
pero las claves secretas
 El estado predefinido es el de no acceso
 Los derechos de acceso deben ser adquiridos solo
con permiso previo

   
Principios de Diseño de
Sistemas Seguros
 Verificar la autorizacion actual
 Cada peticion de acceso a un objeto debe conllevar
la comprobacion de la autorizacion
 Minimos privilegios
 Cada proceso debe de utilizar el minimo grupo de
privilegios para completar su tarea. Esto delimita
los posibles daños causados por caballos de troya

   
Principios de Diseño de
Sistemas Seguros
 Mecanismos simples e integrados
 Mantener el diseño tan sencillo como sea
posible facilita la verificacion y correccion de las
implementaciones. Ademas, para que el
sistema este realmente seguro, mecanismo
debe de estar integrado hasta las capas mas
bajas del sistema
 Psicologicamente aceptable
 El mecanismo debe ser facil de usar de forma
que sea aplicado correctamente y no sea
  rechazado por los
  usuarios
Mecanismos de Proteccion

 Los mecanismo de proteccion surgieron con


la multiprogramacion, con la intension que
los programas de cada usuario estuvieran
en la particion de memoria asignada e
impidir asi que los programas traspasaran
sus limites a otras particiones y las dañaran
 Pero la necesidad de compartir objetos
tanto en memoria principal como en la
memoria secundaria motivo que los
mecanismos de control de acceso se
 
hicieran mas complejos
 
Mecanismos de Proteccion

 En algunos sistemas, la proteccion es


responsabilidad por un programa llamado
Monitor de Referencia (Reference Monitor)
 Cada vez que el acceso a un recurso
protegido se realiza, el sistema primero
pregunta al Monitor de Referencia si el
proceso es valido o autorizado. El Monitor
de Referencia revisa la tabla de politicas y
toma una decision
 
 A continuacion se  describira el ambiente de
trabajo del Monitor de Referencia
Dominios de Proteccion

 Un sistema computacional tiene varios


“objetos” los cuales se tiene que proteger.
Estos objetos pueden ser hardware (CPU,
segmentos de memoria, disk drives o
impresoras) o pueden ser software
(procesos, archivos, base de datos,
semaforos)
 Cada objeto tiene un nombre en particular
para referenciarlo, y un numero finito de
operaciones que los procesos pueden
 
ejercer  
Dominios de Proteccion

 Los comandos read y write son apropiados


para un archivo, mientras los comandos up y
down son para los semaforos
 Un proceso solo debe poder accesar a aquellos
recursos los cuales esta autorizado y que
necesita en ese momento para completar
 Este requisito se llama “principio de la
necesidad de saber”

   
Dominios de Proteccion

 Para analizar los mecanismos de proteccion


hay que definir el concepto de dominio de
proteccion. Un dominio es un conjunto de
derechos de accesos, cada uno de los
cuales esta formado por un par de la forma:
<nombre del objeto, conjunto de derechos>
 Generalmente un dominio corresponde a un
solo usuario, especificando que puedo o no
puede hacer el usuario, pero tambien el
dominio puede ser mas general que un
   
solo usuario
Dominios de Proteccion

 En la siguiente figura se muestran los derechos


de acceso para cada objeto en los tres dominio
(D1, D2, D3)

D3
<archivo3, (leer,escribir)>
<programa1,(leer, escribir)>

<archivo2, (escribir)> impresora,(escribir)>
D1
<programa1,(ejecutar)>
D2
   
Dominios de Proteccion

 Para poder leer y escribir el objeto


programa1 es necesario que un proceso se
este ejecutando en el dominio D1, pero para
poderlo ejecutar es necesario que este en
el dominio D3
 Por otra parte los dominio D2 y D3
comparten el objeto impresora con derecho
de solo escritura

 
 En cada momento  
se ejecuta un proceso en
algun dominio de proteccion
Matriz de Acceso

 Las relaciones entre dominios y objetos se


pueden representar de forma abstracta
mediante mediante una matriz denominada
Matriz de Acceso.
 Las filas de la matriz de acceso representan
dominios y las columnas objetos
 La siguiente tabla es un ejemplo de una matriz
de acceso para el mismo caso que el de
Dominio de Proteccion

   
Matriz de Acceso

 Cada elemento de la matriz consiste en un


conjunto de derechos de acceso
 En la tabla hay tres dominios y cinco objetos
(un programa, tres archivos y una impresora)

   
Matriz de Acceso

Objetos
Dominios programa1 archivo1 archivo2 archivo3 impresora
D1 leer/escribir leer
D2 escribir escribir
D3 ejecutar leer/escribir escribir

Matriz de Acceso

   
Matriz de Acceso

 En el dominio D3 se puede ejecutar


programa1 pero no se puede leer o escribir
en el, sin embargo se puede leer y escribir
en archivo3. En el dominio D2 solo se puede
escribir en el archivo2 y en la impresora
 Con esta matriz y el numero del dominio, el
sistema puede determinar que tipo de
acceso se permite a un objeto en especifico
 El problema es como realizar de una forma
 
eficaz esta matriz 
Matriz de Acceso

 En la practica, almacenar este tipo de matriz no


es usual porque es demasiado grande y sparse
 La mayoria de los dominios no tienen acceso a
casi todos los objetos, lo cual guardar una
matriz que su contenido en la mayoria son
espacios vacios es una perdida de espacio en
el disco y no se puede conservar en la
memoria principal

   
Matriz de Acceso

 Dos metodos practicas que se suelen utilizar


son:
 Almacenar la matriz por columnas (lista de
accesos)
 Almacenar la matriz por filas (lista de capacidades)

   
Lista de Acceso (ACL)

 En la primera tecnica, a cada objeto se le


asocia una lista ordenada con todos los
dominios que pueda tener acceso al objeto y la
forma de dicho objeto
 Esta lista se le denomina lista de accesos para
el objeto especificado
 Un ejemplo de la lista de accesos para los
dominios y objetos del ejemplo anterior es la
siguiente:

   
Lista de Acceso (ACL)

programa1: (D1, leer-escribir), (D3, ejecutar)


archivo1: (D1, leer)
archivo2: (D2, leer)
archivo3: (D3, leer-escribir)
impresora: (D2, escribir), (D3, escribir)

   
Lista de Acceso (ACL)

 El principal inconveniente es el retardo que


se provoca con la busqueda para verificar la
autoridad de un sujeto para accesar al
objeto solicitado
 Para evitar esto y ahorrar espacio, algunos
sistemas dividen a los usuarios en grupos y
solo almacenan los derechos de acceso de
los grupos
 Al usar grupos se introduce el concepto de
 
roles  
Lista de Acceso (ACL)

 UNIX usa este tipo de esquema, las listas


estan reducidas a tres entradas por archivos
 Propietario
 Grupos
 Usuarios

   
Lista de Capacidades (C-List)

 La otra tecnica comentada es almacenar la


matriz de acceso por filas
 En este caso a cada dominio (o sujeto) se
le asocia una lista de objetos a los cuales
puede tener acceso, junto con una
indicacion de las operaciones permitidas
sobre cada objeto. Esta lista se le denomina
lista de capacidades
 Un ejemplo de una lista de capacidades
 
para el dominio D  1 es la siguiente:
Lista de Capacidades (C-List)

Tipo Derechos Objeto


0 programa leer/escribir puntero a programa1
1 archivo leer/escribir puntero a archivo1
Listas de capacidades para el dominio D1

   
Lista de Capacidades (C-List)

 La proteccion mediante capacidades se basa


en que nunca se permite una capacidad se
mueva la espacio de direcciones accesibles por
un proceso de un usuario
 Manteniendo las capacidades seguras, los
objetos a los que protegen tambien estan
seguro frente a un acceso no autorizados

   
Lista de Capacidades (C-List)

 La proteccion de esta lista de capacidades


es impresindible, lo cual se idearon 3
metodos para su proteccion
 Arquitectura de Etiqueta: un diseño de
hardware el cual cada “word” contiene un bit
extra (etiqueta) la cual indica si el “word”
contiene una capacidad o no. La etiqueta no
puede ser manipulada por operacion aritmetica,
comparacion, o instrucciones ordinarias
similares, solo a travez del programas
corriendo en modo kernel (sistema operativo)
   
Lista de Capacidades (C-List)

 El segundo metodo es mantenar la lista de


capacidades dentro del sistema operativo. Las
capacidades son referenciadas por su posicion
dentro de la lista
 El tercer metodo es mantenar la lista dentro del
espacio del usuario, pero administrar la lista por
medios criptograficos de tal manera que el usuario
no pueda leerlos y/o modificarlos. Este metodo se
aplica mas en sistemas distribuidos

   
Sistemas Operativos II

Tema
Administracion de Memoria

   
Introduccion

 Hay dos razones principales por la cual un


sistema operativo debe de poder administrar la
memoria principal
 El principio de Von Neumann para el diseño y
funcionamiento de un sistema operativo requiere
que un programa resida en la memoria principal
para poder ejecutarlo
 La necesidad de poder administrar varios
programas la cuales estan residentes en memoria
en un ambiente multiprogramas

   
Introduccion

 Vamos a examinar algunos de los casos


por lo cual es necesario un administrador
de memoria
 Asignacion: Primero todos los procesos
programados a ejecutarse tienen que estar
residente en memoria. Estos procesos se les
debe de asignar algun espacio en la memoria
principal
 Intercambio, fragmentación y compactación: Si
algun programa se mueve fuera de la memoria
o termina, deja un hueco en esta. La memoria
 
principal se fragmenta
 
y se necesita compactar
para asignaciones organizadas
Introduccion

 Memoria virtual: La memoria virtual debe de tener


un mecanismo de traduccion para mapear una
direccion logica a una direccion fisica para poder
accesar la informacion o instruccion desea
 Soporte a E/S: La mayoria de los dispositivos
orientados a bloques son reconocidos como
archivos especiales. Sus almacenadores
intermediarios (buffers) necesitan ser administrados
dentro la memoria principal junto con otros
procesos

   
Introduccion

 Colector de Basura: Algunos programas usan


estructura de datos dinamica. Estos programas
usan y dejan de usar espacio en la memoria
principal con frecuencia. En la practica el SO no
utiliza de inmediato estos espacio vacios, tales
areas se les conoce como basura. El SO tiene que
compactar estos espacio, proceso conocido como
colector de basura

   
Introduccion

 Proteccion: Revisar que no haya acceso ilegal de


datos por otro proceso corriendo en otra seccion de
la memoria principal. El SO de asegurar que todos
los procesos solo tengan acceso a su asignada
area de la memoria

   
Concepto de Realocacion en
Memoria
 Una consideración importante al asignar un
programa ejecutable es el poder relocalizarlo
en cualquier parte de la memoria principal
 Consideremos que la alocacion de memoria
principal solo se puede hacer a travez de
direcciones absolutas, hay tener en cuenta lo
siguiente:

   
Concepto de Realocacion en
Memoria
 El contador del programas apunta a la
direccion absoluta de la primera instruccion
del programa
 Los datos se puede accesar conociendo la
direccion absoluta
 Esto significa que solo se podran correr
programas si la direccion absoluta esta
disponible, aun cuando haya suficiente
espacio libre en la memoria
   Usando este concepto
  se pierde flexibilidad
Concepto de Realocacion en
Memoria
 Para evitar este problema, los procesos son
generados para poder ser relocalizados
 En la siguiente hay un proceso corriendo
residente en memoria

   
Concepto de Realocacion en
Memoria

   
Concepto de Realocacion en
Memoria
 Inicialmente todas las direcciones del proceso
son relativas a la direccion inicial
 Con esta flexibilidad podemos asignar
cualquier segmento de la memoria al proceso
para que corra
 Las instrucciones, data, control de bloque del
proceso, etc, se puede accesar facilmente si la
direcciones son relativas

   
Concepto de Realocacion en
Memoria
 El concepto de realocacion es muy util cuando
los procesos, “entran” y “salen” de la memoria
principal (recuerden que los espacios vacios
(basura) dejados por procesos que hayan
terminado no esta disponibles al instante) ya
que no siempre estara disponible el segmento
de la memoria que utilizo

   
Concepto de Realocacion en
Memoria
 Las ventajas de relocalizacion se puede mejor
ver con la vinculacion de direcciones a una
variable en un programa
 Para una variable x en un programa P,
asignarle una direccion fija a x significa que el
programa P solo podra corrar cuando x este
asignada la misma direccion de memoria

   
Concepto de Realocacion en
Memoria
 En cambio si la variable se le puede reasignar
una direccion relativa al origen del programa
(primera direccion del programa P) entonces al
relocalizar el programa en cualquier parte de la
memoria, todavia se podran generar
direcciones relativas propias para x y ejecutar
el programa
 En realidad los Compiladores generan codigo
relocalizable

   
Asignacion de Memoria

 Politica de Primer Ajuste


 La politica suguiere de usar el primer espacio
disponible suficientemente grande para que pueda
alojarse en memoria
 En la siguiente figura se puede apreciar esta
politica
 Nota: se esta utilizando la administracion de
procesos (FIFO) junto con la administracion de
memoria (PRIMER AJUSTE)

   
Asignacion de Memoria

   
Asignacion de Memoria

 Esta politica es muy facil de implementar y muy


rapida su ejecucion
 La desventaja es que deja muchos espacios
vacios pequeño que no pueden ser utilizados
por algun proceso, fragmentacion

   
Asignacion de Memoria

 Politica de Mejor Ajuste


 Esta primero recorre toda la memoria registrando
los espacios vacios y su tamaño
 Luego escoje cual es el mas cercano al tamaño del
proceso para poder alojarlo en memoria
 En la siguiente figura se ve un ejemplo de esta
politica, al igual que la de Primer Ajuste se
considera el proceso FIFO para los procesos

   
Asignacion de Memoria

   
Asignacion de Memoria

 La politica de mejor ajuste es mas eficiente con


respecto al uso del espacio en memoria
 Pero muy lenta en ejecutar, ya que tiene que
revisar toda la memoria antes de asignarla a
algun proceso

   
Asignacion de Memoria

 El Siguiente Ajuste
 El puntero de direcciones de memoria continua
en donde se quedo la ultima vez, en lugar de
comenzar desde la direccion inicial de la
memoria. Al igual que el Primer Ajuste deja
espacio vacios pero en una forma mas
uniforme
 Peor Ajuste
 Asigna el espacio vacio más grande. Como su
nombre lo dice es el peor metodo que existe,
  ya no se usa  
Asignacion de Memoria

 Los metodos de Primer Ajuste y Siguiente


Ajuste son los mas rapido en ejecutar lo cual
los hace los preferidos en implementarse

   
Memoria Virtual-Paginacion

 La paginacion de la memoria virtual se


puede se comparar al leer un libro. Cuando
leemos un libro solo leemos la pagina a la
que esta abierto el libro. Todas las demas
paginas estan no estan visibles
 De la misma manera cuando se tiene en
memoria principal una gran cantidad de
datos, el procesador solo necesita un set
pequeño de instrucciones que necesita
ejecutar en un determinado tiempo
   
Memoria Virtual-Paginacion

 En realidad todas las instrucciones que el


procesador necesita ejecutar estan en una
pequeña area una instruccione cerca de la otra
 Esto es como la pagina del libro que se esta
leyendo, claro esta que esto pasa mas
frecuentemente en la computadora

   
Memoria Virtual-Paginacion

 La asignacion de la memoria principal es


limitada y el espacio es muy pequeño
comparada con el espacio de asignacion logica
 El tamaño real de la memoria principal se le
conoce como memoria fisica. La asignacion
logica se le conoce como memoria virtual

   
Memoria Virtual-Paginacion

 El concepto de almacenamiento virtual es


poder dar la impresion de tener un
almacenamiento bastente grande sin tener una
memoria fisica principal realmente grande
 La idea principal es ofrecer una extension de la
memoria principal dentro de algun espacio de
la memoria secundaria

   
Memoria Virtual-Paginacion

 El registro de direcciones genera direcciones


para un espacio mayor al de la memoria
principal
 La nocion de la memoria virtual es una ilusion.
El SO suporta y hace posible esta ilusion
 El SO crea esta ilusion copiando bloques de
memoria del disco duro hacia la memoria
principal como se ve en la figura de abajo.

   
Memoria Virtual-Paginacion

   
Memoria Virtual-Paginacion

 En otras palabras, el procesador es


engañado para que piense que esta
accesando una asignacion de espacio
grande. De donde viene el nombre de
almacenamiento virtual
 Para poder cargar estos bloques hacias la
memoria principal, el tamaño se tiene que
definir y estar monitoreados tanto por la
memoria principal y secundaria
 
 Esto se hace a travez
 
de Paginacion
Memoria Virtual-Paginacion

 La Paginacion estipula que la memoria


principal sea particionada en bloques de
tamaño fijos llamados marco de paginas
 Tambien se requiere que el espacio virtual se
divida paginas del mismo tamaño
 Esta igualdad facilita el movimiento de paginas
de cualquier parte del espacio virtual (disco
duro) hacia el marco de paginas de la memoria
fisica

   
Memoria Virtual-Paginacion

 La capacidad de mapear cualquier pagina a


cualquier marco de paginas nos da mucha
flexibilidad de operacion
 La division de la memoria fisica en marco
de paginas es un particionamiento fijo. Lo
cual teniendo marcos de pagina pequeños
ayuda en tener fragmentacion chica
 La paginacion suporta multi-programacion.
Por lo general puede haber varios procesos
 
corriendo en memoria
 
principal, cada una
con diferentes paginas.
Memoria Virtual-Paginacion

 La ventaja de esto es la posibilidad de


poder compartir el mismo codigo, lo cual es
interesante sobre todo en entornos de
tiempo compartido
 Para ser compatible el codigo debe ser
reentrante, es decir, no automodificable de
forma de que no cambie nunca durante la
ejecucion

   
Memoria Virtual-Paginacion

 Por ejemplo dos procesos pueden compartir el


codigo de un editor, pero el texto (datos) es
diferente para cada uno de ellos, de forma que
se tendra una copia de codigo para los dos
procesos, pero distantas paginas de datos

   
Sistemas Operativos II

Tema
Ambientes de Sistemas Operativos

   
Topologia de Red
 La topología de red o forma lógica de red se
define como la cadena de comunicación
que los nodos que conforman una red usan
para comunicarse
 En algunos casos se puede usar la palabra
arquitectura en un sentido relajado para
hablar a la vez de la disposición física del
cableado y de cómo el protocolo considera
dicho cableado. Así, en un anillo con una
MAU podemos decir que tenemos una
topología en anillo, o de que se trata de un
  anillo con topología
  en estrella
Topologia de Red

 La topología de red la determina


únicamente la configuración de las
conexiones entre nodos. La distancia entre
los nodos, las interconexiones físicas, las
tasas de transmisión y/o los tipos de
señales no pertenecen a la topología de la
red, aunque pueden verse afectados por la
misma

   
Tipos de Topologias

 El arreglo o el trazado de los elementos de


una red da lugar a ciertas topologías
básicas que se puedan entonces combinar
para formar topologías más complejas
(topologías híbridas).
 Los tipos básicos de topologías son:
 Red en Bus
 Red en Estrella
 Red en Anillo
   Red en Arbol  
Tipos de Topologias

 Red en Malla
 Completo
 Parcial
 Hibrido
 Punto-Punto
 Ejemplos de estos:

   
Tipos de Topologias

   
Clasificacion de Topologias

 Hay tres categorias basicas de tipologia de


red:
 Topologia fisica
 Topologia de señal
 Topologia logica

   
Clasificacion de Topologias

 Topologia Fisica
 El trazado de los nodos de una red y de las
conexiones físicas entre ellas - es decir, la
disposición del cableado, de los cables, de las
localizaciones de nodos, y de las interconexiones
entre los nodos y el cableado o el sistema de
conexión

   
Clasificacion de Topologias

 Topologia de Señal
 El trazado de las conexiones reales entre los nodos
de una red, según lo evidenciado por la trayectoria
que las señales toman al propagarse entre los
nodos
 Topologia Logica
 El trazado de las conexiones evidentes entre los
nodos de una red, según lo evidenciado por la
trayectoria que los datos aparentan tomar al viajar
entre los nodos

   
Clasificacion de Topologias

 Ejemplo:
 En una red 802.4 Token Bus, la topología física
puede ser un bus físico, una estrella física, o
una topología física híbrida, mientras que la
topología de la señal es un bus (es decir, la
señal eléctrica se propaga a todos los nodos
simultáneamente [no haciendo caso de
retardos de propagación y de estado latente de
red]), y la topología lógica es un anillo (es decir,
los datos fluyen de un nodo al siguiente de una
manera circular según el protocolo)
   
Red en Bus o Lineal

 Una topología de red de bus es una


arquitectura de red en la cual un sistema de
clientes está conectado vía una línea de
comunicación compartida, llamada bus
 Las redes de bus son la manera más simple de
conectar a clientes múltiples, pero tienen a
menudo problemas cuando dos clientes
quieren transmitir al mismo tiempo en el mismo
bus.

   
Red en Bus - Ventajas

 Fácil ejecutar y extender


 Requiere menos longitud de cable que una
topología de la estrella
 Bien adaptado para las redes temporales o
pequeñas que no requieren altas
velocidades (implementacion rápida)
 Más baratas que otras topologías
 Rentable ya que solamente se utiliza un
solo cable
   
 Fácil de administrar
Red en Bus - Desventajas
 Longitud de cable y número limitados de
estaciones
 Si hay un problema con el cable, la red
entera va abajo
 Los costos de mantenimiento pueden ser
más altos a largo plazo
 El funcionamiento se degrada al adicionar
computadoras o el trafico es muy denso

   
Red en Bus - Desventajas

 Se requiere la terminación apropiada (el lazo


debe estar en trayectoria cerrada)
 Trabaja mejor con el número limitado de nodos
 Es más lento que las otras topologías.

   
Red en Estrella

 Las redes de estrella son una de las


topologías mas comunes. En su forma más
simple, una red de estrella consiste en una
concentrador (switch), eje (hub) o
computadora central, que actúan como
conducto para transmitir mensajes
 La topología de estrella reduce la
probabilidad de falla de la red conectando
todos los sistemas con un nodo central
   
Red en Estrella

 Cuando está aplicado a una red de bus,


este hub central retransmite todas las
transmisiones recibidas de cualquier nodo
periférico a todos los nodos periféricos en la
red, a veces incluyendo el nodo que origina
la señal
 Todos los nodos periféricos pueden
comunicar así con todos los otros,
transmitiendo y recibiendo, del nodo central
solamente
   
Red en Estrella

 La falta de una línea de transmisión que liga


cualquier nodo periférico al nodo central dará
lugar al aislamiento de ese nodo periférico de
todos los otras, pero el resto de los sistemas
será inafectado

   
Red en Estrella - Ventajas
 Un mejor funcionamiento: El paso del
paquete de datos con nodos innecesarios
es prevenido por esta topología. A lo más 3
dispositivos y 2 acoplamientos están
implicados en cualquier comunicación entre
cualesquiera dos dispositivos que sean
parte de esta topología. Esta topología
induce trabajo extra enormes en el eje
central (hub), sin embargo si el eje central
tiene capacidad adecuada, después la
utilización muy alta de la red por un
 
dispositivo en la red
 
no afecta a los otros
dispositivos en la red.
Red en Estrella - Ventajas

 Aislamiento de dispositivos: Cada dispositivo


intrínsecamente es aislado con el acoplamiento
que lo conecta con el eje. Esto hace el
aislamiento de los dispositivos individuales
bastante directo, y equivale a desconectar el
dispositivo del eje. Esta naturaleza aislada
también previene cualquier falta no-
centralizada de afectar a la red.

   
Red en Estrella - Ventajas

 Ventajas de la centralización: Como el eje


central es el embotellamiento, aumentando la
capacidad del eje central o agregando los
dispositivos adicionales a la estrella, puede
ayudar a escalar la red muy fácilmente. La
naturaleza central también permite el tráfico de
la inspección a través de la red. Esto puede
ayudar a analizar todo el tráfico en la red y a
determinar comportamiento sospechoso.

   
Red en Estrella - Ventajas

 Simplicidad: La topología es fácil de entender,


de establecer, y de navegar. La topología
simple evita la necesidad de un
encaminamiento complejo o el mensaje que
pasa protocolos. Según lo observado anterior,
el aislamiento y la centralización simplifica la
detección de avería, pues cada acoplamiento o
dispositivo se puede sondar individualmente.

   
Red en Estrella - Desventajas

 La principal desventaja de una topología de


estrella es la alta dependencia del sistema al
funcionamiento del eje central. Mientras que la
falta de un acoplamiento individual da lugar
solamente al aislamiento de un solo nodo, la
falta del eje central hace la red inoperable,
inmediatamente aislando todos los nodos
 Las interconexiones son complejas

   
Red en Anillo

 Una red de anillo es una topología de red


en la cual cada nodo conecta con
exactamente dos otros nodos, formando un
camino circular para las señales - un anillo.
Los datos viajan de nodo al nodo, con cada
nodo manejando cada paquete
 Muchas redes de anillo agregan un anillo
contrarrotatorio; para formar una topología
redundante. Tales anillo duales incluyen:
Spatial Reuse Protocol, Fiber Distributed
 
Data Interface y Resilient
 
Packet Ring
Red en Anillo - Ventajas

 Red muy ordenada donde cada dispositivo


tiene acceso al símbolo (token) y a la
oportunidad de transmitir
 Mas eficiente que una topología de la
estrella bajo carga pesada de trafico de red
 Puede crear una red mucho más grande
usando token ring
 No requiere un servidor de red para
manejar la conectividad entre las
 
computadoras  
Red en Anillo - Desventajas

 Una estacion de trabajo que funciona


incorrectamente o un puerto malo en el
MAU puede crear problemas para la red
entera
 Movimientos, adiciones y/o cambios de
dispositivos pueden afectar a la red
 Tarjetas de red y MAU' s son mucho más
costoso que tarjetas y hubs de Ethernet
 Mucho más lenta que una red de Ethernet
  bajo carga normal
 
Red en Malla

 La topología en malla es una topología de


red en la que cada nodo está conectado a
uno o más de los otros nodos. De esta
manera es posible llevar los mensajes de
un nodo a otro por diferentes caminos. Si la
red de malla está completamente
conectada, no puede existir absolutamente
ninguna interrupción en las
comunicaciones. Cada servidor tiene sus
propias conexiones con todos los demás
  servidores.  
Red en Malla

 Las redes de malla son autorregenerables: la


red puede funcionar incluso cuando un nodo
desaparece o la conexión falla, ya que el resto
de nodos evitan el paso por ese punto.
Consecuentemente, se forma una red muy
fiable. Es una opción aplicable a las redes
inalambricas (Wireless), a las redes cableadas
(Wired), y a la interacción del software.

   
Red en Malla
 Una red completamente conectada, una
topología completa o una malla completa es
una topología de red en la cual hay un
enlace directo entre todos los pares de
nodos
 Esta topología se se implementa mas en
usos militares. Sin embargo, puede también
ser visto en el protocolo BitTorrent de
compartir archivos en el cual los usuarios
se conectan con otros usuarios en el "
swarm" permitiendo a cada usuario la
  distribución del archivo
  con otros usuarios
también conectados
Red en Malla

 A menudo en el uso real de BitTorrent


cualquier nodo individual dado está conectado
raramente con cada solo el otro nodo como en
una red completamente conectada verdadera
pero el protocolo permite la posibilidad de
cualquier un nodo conectar con cualquier otro
nodo al compartir archivos.

   
Red en Malla

 Son las más caras que cualquier otra


topologia, pero a su vez son las más
flexibles. Vienen caracterizadas por
encontrar caminos entre estaciones muy
rápidamente, pero hay que tener en cuenta
que para N nodos, necesitamos N-1
enlaces, teniendo pues en total (N(N-1))/2
enlaces

   
Redes Hibridas

 Las redes híbridas utilizan una combinación de


cualesquiera dos o más topologías de una
manera tal que la red resultante no exhiba una
de las topologías estándar (e.g., bus, estrella,
anillo, etc.). Por ejemplo, una red de árbol
conectada con una red de árbol sigue siendo
una red de árbol, pero dos redes de estrella
conectadas juntas exhiben una topología de
red híbrida.

   
Redes Hibridas

 Una topología híbrida se produce siempre


cuando dos diversas topologías de red básicas
están conectadas.
 Dos ejemplos comunes para la red híbrida son:
 red de anillo de estrella
 red de bus de estrella

   
Topologia

 Las redes también se pueden clasificar en


base a su ámbito de influencia. Según este
criterio se pueden clasificar en tres grandes
grupos:
 LAN (Local Area Network): Redes de área
local. La longitud entre los nodos más distantes
no debe exceder los 5 Km.
 MAN (Metropolitan Area Network): Redes de
área metropolitana.
 WAN (Wide Area Network): redes de área
  extensa o amplia.
 
Modelo ISO

 El diseño (e implementación) de una red es


especificado por ISO (International
Standards Organization). En el modelo OSI,
la red esta organizada en 7 capas. Cada
capa se comunica con la capa equivalente
en un sitio remoto
 Capa física: Transmite bits de una
computadora a otra, y regula la transmisión de
cadenas de bits sobre el medio físico. En esta
capa se define cómo se une el cable al
 
adaptador de red,
 
y qué técnica de transmisión
se emplea para enviar datos por el cable
Modelo ISO

 Capa de enlace: Aquí se empaquetan en bruto


los bits de la capa física en tramas (paquetes
de datos estructurados y lógicos) Es la
responsable de transferir tramas de una
computadora a otra sin errores. Después de
enviar una trama se espera una expresión de
reconocimiento de la computadora receptor
 Capa de red: Dirige mensajes y traduce
traducciones lógicas, y nombres de direcciones
físicas. También determina la ruta desde el
origen al destino, y gestiona problemas de
 
tráfico como conmutar,
 
encaminar y controlar la
congestión de paquetes de datos
Modelo ISO

 Capa de transporte: Maneja los errores de


reconocimiento y la recuperación. También
empaqueta grandes mensajes cuando es
necesario transmitirlos en pequeños paquetes
o reconstruye los originales en el lado de la
recepción. También envía reconocimiento de la
recepción
 Capa de sesión: permite a dos aplicaciones de
diferentes computadoras establecer, usar y
terminar una comunicación. A este nivel se
establece el diálogo de control entre dos
 
computadoras regulando
 
cuál transmite,
cuándo y cuánto
Modelo ISO

 Capa de presentación: en este nivel el


sistema operativo traduce la información que el
usuario generó en el nivel anterior. Se encripta
la información (si fuese necesario) o se
comprime, con el objetivo de disminuir el tráfico
de la red y de la forma más fiable
 Capa de aplicación: representa el nivel en el
que se encuentran las aplicaciones que
acceden a los servicios de red. El usuario
maneja estas aplicaciones en esta capa
cuando trabaja con programas clientes de
 
correo electrónico,
 
acceso a datos de otros
equipos, etc
Modelo ISO

   
Sistemas Distribuidos

 Un sistema distribuido proporciona a los


usuarios acceso a los distintos recursos
hardware y software que ofrece el sistema.
El acceso a estos recursos lo controla el
software del sistema operativo, que es en
realidad quien proporciona la imagen final
que ven los usuarios. Hay dos esquemas
para proporcionar estos servicios:
 Sistemas Operativos de Red
 Sistemas Operativos Distribuidos
   
Sistemas Distribuidos

 Sistemas Operativos de Red


 Los usuarios estan enterados de la multiplicidad de
maquinas y para accesar a sus recursos necesitan
conectarse a la computadora remota apropiada. En
esta situacion se habla de sistemas debilmente
acoplados tanto en software como en hardware

   
Sistemas Distribuidos

 Sistemas Operativos Distribuidos


 Los usuarios no necesitan saber que existe una
multiplicidad de maquinas y pueden accesar a los
recursos remotos de la misma forma que lo hacen
a los recursos locales. Son sistemas de hardware
debilmente acoplados, pero de software
fuertemente acoplado

   
Bibliografia

 DISEÑO Y SIMULACIÓN DE SISTEMAS


OPERATIVOS, EUGENIO JACOBO
HERNÁNDEZ VALDELAMAR
 INTRODUCTION TO OPERATING
SYSTEMS, PROF P.C.P BHATT
 OPERATING SYSTEMS DESIGN AND
IMPLEMENTATION, THIRD EDITION,
ANDREW S. TANENBAUM
 SISTEMAS OPERATIVOS TEORIA Y
PROBLEMAS, JOAQUIN ARANDA
  ALAMANSA  

Você também pode gostar