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 AttributionNoncommercialShare Alike 2.5 Mexico License. To view a copy of
this license, visit http://creativecommons.org/licenses/byncsa/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
Compartir información
La información se pierde al apagar la computadora Almacenamiento es poco 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
Archivo ARCHIVO ArChiVo
Se refieren al mismo documento o programa
UNIX
Archivo
ARCHIVO
ArChiVo
Se refieren a 3 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
file.bak file.c file.gif file.html file.iso file.jpg file.mp3 file.mpg file.o file.pdf file.ps file.tex file.txt file.zip
Descripción Archivo de respaldo Programa fuente de C Graphical Interchange Format image HyperText Markup Language Imagen ISO de un CD-ROM Foto codificada con estandard JPEG Musica codificada con estandard MPEG capa 3 Película codificada con estandar MPEG Archivo objeto compilado Archivo tipo Portable Document Format Archivo tipo PostScript Input for the TEX formatting program Archivo de texto 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 libro ordena ordena lista libmat
Tipo txt obj exe txt lib
Version 3 1 1 2 4
Puntero 30125 25432 10125 65390 192
Tamaño 50 120 30 40 90
Permisos rwrr rwrwrw rwxrwrw rwrr rwrwrw
Ejemplo de una Tabla de Directorio
Fechas 12/12/94 10/01/95 05/11/94 22/01/95 01/01/95 01/10/95 10/10/94 05/12/94 01/03/94 05/08/94
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 libro ordena ordena lista libmat
ID 1 2 3 4 5
ID 1 2 3 4 5
Tipo txt obj exe txt lib
Version 3 1 1 2 4
Puntero 30125 25432 10125 65390 192
Tamaño 50 120 30 40 90
Ejemplo de Tabla de Directorio divida en dos
Permisos rwrr rwrwrw rwxrwrw rwrr rwrwrw
Fechas 12/12/94 10/01/95 05/11/94 22/01/95 01/01/95 01/10/95 10/10/94 05/12/94 01/03/94 05/08/94
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)
REMOVEDIR (borrar 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, “..” 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)
LINK (enlazar)
Al igual que como ocurre con los archivos, los directorios se pueden cambiar de nombre con una llamada al sistema 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)
Unidad de Transferencia: segun en metodo que se utilice para transferir datos los perifericos se clasifican en dos categorias:
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
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 raton modem 56K Scanner Camara Video Digital 52x CDRom FireWire (IEEE 1394) USB 2.0 Monitor XGA Red SONET OC12 Ethernet Gigabit Disco Serial ATA Disco SCSI UltraWide Bus PCI
10 bytes/seg 100 bytes/seg 7 Kb/seg 400 Kb/seg 4 Mb/Seg 8 Mb/seg 50 Mb/seg 60 Mb/seg 60 Mb/seg 78 Mb/seg 125 Mb/seg 200 Mb/seg 320 Mb/seg 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 cosa lo que provoca el bajo rendimiento de este estado de transferencia
Fin
No Dato preparado en periferico? Si
No
Recibir mas datos?
Transferir dato del registro de datos RD al CPU
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
El CPU no siempre esta en disposicion de aceptar peticiones de interrupcion por parte de los perifericos, como por ejemplo:
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
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
Averias a la computadora o errores de programas
Incendios Apagones Desastre naturales
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 Confidencialidad de datos Integridad de Datos Disponibilidad Del Sistema
Amenaza Datos expuestos Manipulacion de datos 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
Adrian Lamo
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 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”
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
Programas los cuales ocultan parte de su funcionalidad, frecuentemente destinadas a obtener datos o derechos de acceso del usuario
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
El estado predefinido es el de no acceso
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 Los derechos de acceso deben ser adquiridos solo con permiso previo
Principios de Diseño de Sistemas Seguros
Verificar la autorizacion actual
Minimos privilegios
Cada peticion de acceso a un objeto debe conllevar la comprobacion de la autorizacion 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
Psicologicamente aceptable
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 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)>
D1
<archivo2, (escribir)> impresora,(escribir)>
D2
<programa1,(ejecutar)>
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
En la siguiente figura se puede apreciar esta politica
La politica suguiere de usar el primer espacio disponible suficientemente grande para que pueda alojarse en memoria
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
Peor 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 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
Topologia Logica
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 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 nocentralizada 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