miércoles, 17 de julio de 2013

Unidad 6. Protección y seguridad

La protección es un mecanismo control de acceso de los programas, procesos o usuarios al sistema o recursos.

Hay importantes razones para proveer protección  La mas obvia es la necesidad de prevenirse de violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las políticas fijadas para el uso de esos recursos.

Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la protección proveen maneras de distinguir entre uso autorizado y desautorizado.

Objetivos

•  Inicialmente protección del SO frente a usuarios poco confiables.
•  Protección: control para que cada componente activo de un proceso solo pueda acceder a los recursos especificados, y solo en forma congruente con la política establecida.
•  La mejora de la protección implica también una mejora de la seguridad.
•  Las politicas de uso se establecen:
•  Por el hardware.
•  Por el administrador / SO.
•  Por el usuario propietario del recurso.
•  Principio de separación entre mecanismo y política:
•  Mecanismo → con que elementos (hardware y/o software) se realiza la protección.
•  Política → es el conjunto de decisiones que se toman para especificar como se usan esos elementos de protección.
      La política puede variar
•  dependiendo de la aplicación,
•  a lo largo del tiempo
•  La protección no solo es cuestion del administrador, sino tambien del usuario.
El sistema de proteccion debe:

  • distinguir entre usos autorizados y no-autorizado 
  •  especificar el tipo de control de acceso impuesto.
  •  proveer medios para el aseguramiento de la proteccion. 




Funciones del sistema de protección

Es el control de acceso que hace referencia a las características de seguridad que controlan quien puede obtener acceso a los recursos de un sistema operativo. Las aplicaciones llaman a las funciones de control de acceso para establecer quien puede obtener acceso a los recursos específicos o controlar el acceso a los recursos proporcionados por la aplicación.

Un sistema de protección deberá tener la flexibilidad suficiente para poder imponer una diversidad de políticas y mecanismos.

Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de memoria, CPU, y otros recursos administrados por el Sistema Operativo.

Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse solo dentro de sus propios espacios de dirección. El timer asegura que los procesos no obtengan el control de la CPU en forma indefinida.

La protección se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computación. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos.

Hay importantes razones para proveer protección. La más obvia es la necesidad de prevenirse de violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las políticas fijadas para el uso de esos recursos.

Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la protección proveen maneras de distinguir entre uso autorizado y desautorizado.



El sistema de protección tiene la función de proveer un mecanismo para el fortalecimiento de las políticas que gobiernan el uso de recursos. Tales políticas se pueden establecer de varias maneras, algunas en el diseño del sistema y otras son formuladas por el administrador del sistema. Otras pueden ser definidas por los usuarios individuales para proteger sus propios archivos y programas.

Las políticas son diversas, dependen de la aplicación y pueden estar sujetas a cambios a lo largo del tiempo.

Un principio importante es la separación de políticas de los mecanismos. ‘Los mecanismos determinan como algo se hará. Las políticas deciden que se hará'.
La separación es importante para la flexibilidad del sistema.

Dentro de las funciones del sistema de protección del sistema operativo encontramos:

• Controlar el acceso a los recursos
• Asegurarse que todos los accesos a los recursos del sistema están controlados


Implantación de la matriz de acceso


El modelo de protección del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso. Una matriz de acceso es una representación abstracta del concepto de dominio de protección.

Este modelo fue propuesto por Lampsoncomo una descripción generalizada de mecanismos de protección en sistemas operativos. Es el modelo más utilizado, del que existen numerosas variaciones, especialmente en su implementación.


Los elementos básicos del modelo son los siguientes:

•  Sujeto: Una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es equiparable con el de proceso. Cualquier usuario o aplicación consigue acceder en realidad a un objeto por medio de un proceso que representa al usuario o a la aplicación.

•  Objeto: Cualquier cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los archivos, partes de archivos, programas y segmentos de memoria.

•  Derecho de acceso: la manera en que un sujeto accede a un objeto. Como ejemplo está Leer, Escribir y Ejecutar.

El modelo considera un conjunto de recursos, denominados objetos, cuyo acceso debe ser controlado y un conjunto de sujetos que acceden a dichos objetos. Existe también un conjunto de permisos de acceso que especifica los diferentes permisos que los sujetos pueden tener sobre los objetos (normalmente lectura, escritura, etc., aunque pueden ser diferentes, en general, dependiendo de las operaciones que puedan realizarse con el objeto).
Se trata de especificar para cada pareja (sujeto, objeto), los permisos de acceso que el sujeto tiene sobre el objeto. Esto se representa mediante una matriz de acceso M que enfrenta todos los sujetos con todos los objetos. En cada celda M [i, j] se indican los permisos de acceso concretos que tiene el sujeto i sobre el objeto j.




El mecanismo de protección es la matriz, junto con todos los elementos que se han de añadir para que se cumplan de manera efectiva todas las restricciones de acceso a los objetos.

•  La política consiste en decidir cómo rellenar las distintas celdas de la matriz.
•  La MA permite implementar operaciones de cambio de domino.
•  El objeto sobre el que trabajamos es el Dominio aparecen tantas columnas como dominios haya en el sistema. 
•  La operación es la conmutación de un dominio a otro.
•  También la MA es un objeto que se puede modificar. De este modo podemos definir tres operaciones:
•  Copiar derechos de acceso de una celda a otra dentro de la misma columna. Consiste en pasar el derecho de acceso a un objeto de un Dominio que lo tiene, a otro donde originalmente no lo tenía. Se señala con un asterisco (*).
•  Copia ilimitada con propagación del propio derecho de copia.
•  Copia limitada sin propagación.
•  Movimiento de derecho.
•  Dueño. Un proceso ejecutándose en un dominio que tiene derecho de “dueño” sobre un objeto, puede repartir cualquier derecho de acceso sobre cualquier dominio para dicho objeto.
•  Control. Opera solo sobre dominios. Ejercer el control sobre un dominio implica que se puede quitar cualquier derecho sobre una fila de dominio.
•  La MA también ha de ser protegida.

Implementación de la Matriz de Acceso

*Tabla Global

Sencilla. Se almacena una lista de ternas {<dominio, objeto, permisos>...}.
Como el número de objetos y dominios es posiblemente muy grande, se debería guardar en memoria virtual lento. 



*Lista de acceso para objetos (ACL)

Se expresa la MA por columnas {<dominio, permisos>,...}. Se descartan las entradas vacías.
Se puede crear una lista de permisos por defecto para hacer más fácil su uso.

Dado que cada vez que se va a usar un objeto hay que comprobar si hay o no permiso para hacerlo, es lógico poner la ACL allí donde estén descritos los atributos del objeto.

Asocia a cada objeto una lista ordenada con:

  • ·         Todos los dominios que pueden tener acceso al objeto.
  • ·         La forma de dicho acceso (ej.: lectura (r), grabación (w), ejecución (x)).
  • ·         Una forma de implementar las ACL consiste en:
  • ·         Asignar tres bits (r, w, x) para cada archivo, para:
  • ·         El propietario, el grupo del propietario y los demás usuarios.
  • ·         Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
  • ·         Permite prohibir accesos antes permitidos.


*Lista de Capacidades

Se expresa la MA por filas. Cada dominio tiene una lista de la forma {<objeto, permisos>,...}
Para identificar el objeto se usa o bien su nombre lógico, o un puntero a él (la estructura de datos que le describe); a esta dirección se la llama capacidad.
Solo se podrá realizar la operación M sobre el objeto O si se dispone de la capacidad (puntero) al objeto. 



*Mecanismo de Cerradura-Llave

·         Cada objeto tiene una lista de patrones llamados cerradura.
·         Cada dominio tiene una lista de patrones llamados claves.
·         Un proceso que se ejecuta en un dominio solo tendrá acceso a un objeto si el dominio contiene una llave que coincida con una de las cerraduras.

Protección basada en el lenguaje

El grado de protección que se proporciona en los sistemas informáticos existentes suele conseguirse inmediatamente en kernel del sistema operativo que actúa como agente de seguridad para inspeccionar y validar cada intento de acceder a un recurso protegido.

La protección la maneja la máquina virtual (JVM). La JVM asigna un dominio de protección a una clase cuando la carga. El dominio de protección indica qué operaciones puede (y no puede) realizar la clase.Si se invoca un método de biblioteca y éste realiza una operación privilegiada, se examina el stack para asegurar que la biblioteca pueda realizar la operación.

La seguridad en los sistemas de una computadora es un elemento muy importante en diseño delos sistemas operativos ya que manejan información muy valiosa para sus propietarios.




La seguridad de un sistema tiene múltiples facetas, desde la protección ante posibles daños físicos de los datos (fuego, terremotos, etc.) hasta el acceso indebido a los mismos (intrusos, fallos de confidencialidad, etc.).Los ataques contra la confidencialidad, la integridad o la disponibilidad de recursos en un sistema deben prevenirse y solventarse mediante la política y los mecanismos de seguridad de un sistema. La seguridad debe tener en cuenta eventos tanto internos como externos (provenientes del entorno en que opera el sistema), de nada sirve tener mecanismos de protección interna muy buenos, si el sistema operativo no es capaz de identificar a los usuarios que acceden al sistema o si no existe una política de salvaguarda de datos antes la rotura de un disco. La protección, consiste en evitar que se haga un uso indebido de los recursos que están dentro del ámbito del sistema operativo. Es necesario comprobar que los recursos (archivos, zonas de memoria, etc.) solo se usan por aquellos usuarios que tienen derechos de acceso. El sistema operativo debe proporcionar los medios para implementar políticas de protección deseadas por el usuario.

Concepto de seguridad

Los términos seguridad y protección se utilizan en forma indistinta. Sin embargo, es útil hacer una distinción entre los problemas generales relativos a la garantía de que los archivos no sea leídos o modificados por personal no autorizado, lo que incluye aspectos técnicos, de administración, legales y políticos, por un lado y los sistemas específicos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusión, utilizaremos el término seguridad para referirnos al problema general y el término mecanismo de protección para referirnos a los mecanismos específicos del sistema operativo utilizado para resguardar la información de la computadora. Sin embargo, la frontera entre ellos no está bien definida. 

La seguridad tiene muchas facetas. Dos de las más importantes son la perdida de datos y los intrusos. Algunas de las causas más comunes de la perdida de datos son:

•  Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles.
•  Errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicación o errores en el programa.
•  Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecución incorrecta del programa, perdida de cintas o discos.

Un problema más interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no están autorizados a leer. Los intrusos activos son más crueles: Desean hacer cambios no autorizados a los datos. Si se desea diseñar un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener protección. Algunas de las categorías comunes son:

•  Curiosidad casual de usuarios no técnicos.
•  Conocidos husmeando.
•  Un intento deliberado de hacer dinero.
•  Espionaje comercias o militar.

Otro aspecto del problema de la seguridad es la privacía: la protección de las
personas respecto del mal uso de la información en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro niveles distintos:

  • 1.   Físico
  • 2.   Humano
  • 3.   Sistema operativo
  • 4.   Red


Si queremos poder garantizar la seguridad del sistema operativo, es necesario garantizar la seguridad en los primeros dos niveles. Cualquier debilidad en uno de los niveles altos de seguridad (físico o humano) podría puentear las medidas de seguridad que son estrictamente de bajo nivel (del nivel del sistema operativo). Así, la frase que afirma que una cadena es tan fuerte como el más débil de sus eslabones es especialmente cierta cuando hablamos de seguridad de los sistemas. Para poder mantener la seguridad, debemos contemplar todos estos aspectos.


Además, el sistema debe proporcionar mecanismos de protección para permitir la implementación de las características de seguridad. Sin la capacidad de autorizar a los usuarios y procesos, de controlar su acceso y de registrar sus actividades, sería imposible que un sistema operativo implementara medidas de seguridad o se ejecutara de forma segura. Para soportar un esquema global de protección hacen falta mecanismos de protección hardware. Por ejemplo, un sistema donde la memoria no está protegida no puede nunca estar seguro.

Clasificación de la seguridad




La seguridad interna está relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del sistema.

La seguridad externa consiste en:
  • 1. Seguridad física. Esta incluye la protección contra desastres (como inundaciones, incendios, etc.) y la protección contra intrusos. En ella son importantes los mecanismos de detección, algunos ejemplos son:

 ·         Detectores de humo.
  •          Sensores de calor.
  •          Detectores de movimiento.
La seguridad física trata especialmente de impedir la entrada de intrusos,  utilizando sistemas de identificación física, como:
  • ·         Tarjetas de identificación.
  • ·         Sistemas de huellas digitales.
  • ·         Identificación por medio de la voz.


  • 2. Seguridad Operacional. Consiste en las diferentes políticas y procedimientos implementados por la administración de la instalación computacional. La autorización determina que acceso se permite y a quien. La clasificación divide el problema en subproblemas:


·         Los datos del sistema y los usuarios se dividen en clases, a las clases se conceden diferentes derechos de acceso.
·         Un aspecto crítico es la selección y asignación de personal, la pregunta es si se puede confiar en la gente.

El tratamiento que generalmente se da al problema es la división de responsabilidades:
§  Se otorgan distintos conjuntos de responsabilidades.
§  No es necesario que se conozca la totalidad del sistema para cumplir con esas responsabilidades.
§  Para poder comprometer al sistema puede ser necesaria la cooperación entre muchas personas:
§  Se reduce la probabilidad de violar la seguridad.
§  Debe instrumentarse un gran número de verificaciones y balances en el sistema para ayudar a la detección de brechas en la seguridad.
§  El personal debe estar al tanto de que el sistema dispone de controles, pero:
§  Debe desconocer cuales son esos controles:
§  Se reduce la probabilidad de poder evitarlos.
§  Debe producirse un efecto disuasivo respecto de posibles intentos de violar la seguridad.
Para diseñar medidas efectivas de seguridad se debe:
1.   Enumerar y comprender las amenazas potenciales.
2.   Definir que grado de seguridad se desea (y cuanto se esta dispuesto a gastar en seguridad).

3.   Analizar las contramedidas disponibles.



Validación y amenazas

Los tipos de amenazas a la seguridad de un sistema informático los podemos caracterizar teniendo en cuenta como esta información es suministrada por el sistema. En general, hay un flujo de información de una fuente a un destino.

Dentro de las amenazas que existen podemos mencionar las siguientes:

*Interrupción: Un elemento del sistema es destruido o se hace inservible. Es una amenaza a la disponibilidad. Ejemplos son la destrucción de algún elemento hardware  y la desactivación del sistema de gestión de ficheros.

 * Intercepción: Una parte no autorizada obtiene acceso a un elemento relacionado con la seguridad. Es una amenaza a la privacidad. Ejemplos son la copia ilícita de programas y la visualización de ficheros que han de permanecer ocultos.

 * Modificación: Una parte no autorizada no sólo obtiene acceso sino que puede modificar un elemento relacionado con la seguridad. Es una amenaza a la integridad. Ejemplos son la alteración del contenido de un fichero y modificar un programa para que funcione de forma diferente.

 * Fabricación: Una parte no autorizada inserta nuevos elementos en el sistema. Es una amenaza a la integridad. Ejemplos son adición de registros a un fichero y la inclusión de mensajes ilegítimos en una red.

*Intrusos: dentro de ellos tenemos lo que son los piratas o hackers: que son los individuos que acceden al sistema sin autorización y hacen que los sistemas presenten agujeros que es el lugar por donde consiguen colarse.

Amenazas de tipo software

· Bomba Lógica: Es un código incrustado en un programa que comprueba si ciertas condiciones se cumplen, en cuyo caso ejecuta alguna acción no autorizada. Un ejemplo de uso de bomba lógica es el caso de un programador que vende un programa a una empresa. Si transcurrido un cierto tiempo la empresa no ha pagado, el programador revela la existencia de la bomba lógica con el fin de obtener su dinero.

· Puerta Falsa (Trapdoor): Es un punto de entrada secreto en un programa, de forma que alguien que conozca la existencia de dicha puerta puede obtener permisos de acceso sin tener que pasar por los mecanismos normales de autentificación.

· Caballo de Troya (Trojan Horse): Es una rutina oculta en un programa de utilidad. Cuando el programa se ejecuta, se ejecuta la rutina y ésta realiza acciones no autorizadas. Estos programas permiten realizar de forma indirecta acciones que no puede realizar de forma directa. Por ejemplo, puede ser un editor que cuando es ejecutado modifica los permisos de los ficheros que edita de forma que éstos puedan ser accedidos por cualquier usuario.

· Virus: Es código introducido en un programa que puede infectar otros programas mediante la copia de sí mismo en dichos programas.

· Bacteria: Programa que consume recursos del sistema replicándose asimismo, pero no daña explícitamente ningún fichero. Se suele reproducir exponencialmente, por lo que puede acaparar recursos como CPU, memoria y disco.


· Gusano (Worm): Es un programa que usa las redes de computadores para pasar de unos sistemas a otros. Una vez que llega a un sistema, el gusano se puede comportar como un virus o una bacteria, puede implantar programas caballo de troya, o puede realizar acciones no autorizadas.

Cifrado



Sistemas de cifrado simétrico.

Deitel (1987) nos comenta que los sistemas de cifrado simétrico son aquellos que utilizan la misma clave para cifrar y descrifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave.
Sistemas de cifrado asimétrico.

Deitel (1987) menciona que También son llamados sistemas de cifrado de clave pública. Este sistema de cifrado usa dos claves diferentes. Una es la clave pública y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la clave pública del destinatario para cifrar el mensaje.

Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo.

Sistemas de cifrado híbridos.


Deitel (1987) nos comenta que es el sistema de cifrado que usa tanto los sistemas de clave simétrica como el de clave asimétrica. Funciona mediante el cifrado de clave pública para compartir una clave para el cifrado simetrico. En cada mensaje, la clave simétrica utilizada es diferente por lo que si un atacante pudiera descubrir la clave simétrica, solo le valdría para ese mensaje y no para los restantes.

Unidad 5. Sistemas de Archivos


El sistema de archivos es la forma en que el sistema operativo va a organizar la información dentro del disco duro para su grabación y posterior recuperación. Cada sistema operativo tiene su propio y único sistema de archivos, lo que hace que no pueda funcionar con otros. 

Por ejemplo, dentro de la linea Microsoft tenemos: 
  • Windows 3.11: FAT (Tabla de asignación de archivos) 8 o 12.
  • Windows 95: FAT 16 o 32. 
  • Windows 98, ME, XP: FAT 32. 
  • Windows XP, 2000, NT: NTFS. 

Otros sistemas operativos, como GNU/Linux, tienen sus propios sistemas de archivos. 



martes, 16 de julio de 2013

Archivo real y archivo virtual

Archivo real


Es un objeto que contiene programas, datos o cualquier otro elemento. Un archivo se muestra de manera real, en la información del espacio que ocupa en un disco duro o sistema de almacenamiento, en otras palabras su tamaño en bytes.



Archivo virtual


Es un archivo de uso temporal que es utilizado por los procesos del sistema mientras se están ejecutando dichos procesos. Estos archivos se crean durante la ejecución de un sistema y los utiliza para el almacenamiento de información, intercambio y organización mientras se ejecuta el sistema , su tamaño es muy variable y terminan al detener la ejecución del sistema, muchos de ellos son borrados, por ejemplo, los archivos *.tmp (temporales).

Se le conoce como archivo virtual, ya que es aquel que contiene los datos generados por el usuario.


Componentes

Haciendo referencia a  “Archivo” como un conjunto de registros relacionados, se puede decir que el “Sistema de Archivos” es un componente importante de un Sistema  Operativo (como ya se menciono en la introducción de este blog)  y suele contener : 


  • “Métodos de acceso” relacionados con la manera de acceder a los datos almacenados en archivos.
  • “Administración de archivos” referida a la provisión de mecanismos para que los archivos sean almacenados, referenciados, compartidos y asegurados.
  • “Administración del almacenamiento auxiliar” para la asignación de espacio a los archivos en los dispositivos de almacenamiento secundario.
  • “Integridad del archivo” para garantizar la integridad de la información del archivo.
  • El sistema de archivos está relacionado especialmente con la administración del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco. 
Una forma de organización de un sistema de archivos puede ser la siguiente: 

  1. Se utiliza una “raíz” para indicar en qué parte del disco comienza el “directorio raíz”.
  2. El “directorio raíz” apunta a los “directorios de usuarios”.
  3. Un “directorio de usuario” contiene una entrada para cada uno de los archivos del usuario.
  4. Cada entrada de archivo apunta al lugar del disco donde está almacenado el archivo referenciado.
  5. Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado. 
  6. El nombre del sistema para un archivo dado debe ser único para el sistema de archivos. 

En sistemas de archivo “jerárquicos” el nombre del sistema para un archivo suele estar formado como el “nombre de la trayectoria” del directorio raíz al archivo

Los componentes del sistema de archivos y de programación permiten interactuar con los recursos del sistema de archivos y de directorio y provocar eventos en intervalos programados. Las instancias del componente File System Watcher permiten inspeccionar cambios en los directorios y archivos y reaccionar cuando se producen. El componente Timer permite configurar programaciones simples de producción de eventos y ejecutar el procesamiento asociado.

Organización lógica y física

Un sistema de archivos garantiza la organización lógica de los datos en los discos duros y proporciona al sistema operativo las rutinas necesarias para que puedan ser accedidos, modificados y eliminados. Cualquier sistema operativo suele tener soporte para varios sistemas de archivos, aunque sólo sea en modo lectura. 

Es así que la unidad física del sistema de archivos es el propio disco duro, sin más y la unidad lógica es el fragmento que se comporta como una partición y que está dentro de una partición extendida.

La partición, puede ser del total del tamaño del disco o una parte.Existen la:

  • Partición primaria: Partición que el sistema marca como bootable o arrancable.
  • Partición extendida: partición que no es de inicio y que a su vez puede contener unidades lógicas. Sólo puede haber una por disco.


Se utiliza el término organización de archivos para referirnos a la estructura lógica de los registros determinada por la manera en que se accede a ellos. La organización física del archivo en almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos. 

Para seleccionar una organización de archivos hay diversos criterios que son importantes: 
  • Acceso Rápido para recuperar la información 
  • Fácil actualización 
  • Economía de almacenamiento 
  • Mantenimiento simple 
  • Fiabilidad para asegurar la confianza de los datos 


La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo. La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categorías o puede implementarse como una combinación de estas.

Mecanismos de acceso a los archivos

Diseño de un sistema de archivos

Se consideran aspectos como: 

-La forma de almacenamiento de archivos y directorios.
-La administración del espacio en disco.
-La forma de hacerlo de manera eficiente y confiable.

Se debe tener presente que problemas como la “fragmentación” del espacio en disco; ocasiona problemas de desempeño al hacer que los archivos se desperdiguen a través de bloques muy dispersos. Una técnica para aliviar este problema consiste en realizar periódicamente una “Compactación”:, es decir “reorganizar” los archivos  automáticamente; o en su defecto una  “Recolección de basura o residuos”.


Implantación de Archivos

El aspecto clave de la implantación del almacenamiento de archivos es el registro de los bloques asociados a cada archivo. Algunos de los métodos utilizados son los siguientes: 

*Asignación contigua o adyacente, en la cual los archivos son asignados a áreas contiguas de almacenamiento secundario, sus principales ventajas son:
  • Facilidad de implantación, ya que sólo se precisa el número del bloque de inicio para localizar un archivo.
  • Rendimiento excelente respecto de la e / s.



sus principales defectos son:

  •  Se debe conocer el tamaño máximo del archivo al crearlo.
  •  Produce una gran fragmentación de los discos.

*Asignación no contigua: Son esquemas de almacenamiento más dinámicos, entre ellos encontramos:

*Asignación encadenada orientada hacia el sector, en la cual:

  • El disco se considera compuesto de sectores individuales.
  • Los archivos constan de varios sectores que pueden estar dispersos por todo el disco.
  • Los sectores que pertenecen a un archivo común contienen apuntadores de uno a otro formando una “lista encadenada”.
  • Una “lista de espacio libre” contiene entradas para todos los sectores libres del disco.
  • Las ampliaciones o reducciones en el tamaño de los archivos se resuelven actualizando la “lista de espacio libre” y no hay necesidad de compactación.


sus desventajas son:

  • Por la dispersión en el disco, la recuperación de registros lógicamente 
  • contiguos puede significar largas búsquedas.
  • El mantenimiento de la estructura de “listas encadenadas” significa una 
  • sobrecarga en tiempo de ejecución.
  • Los apuntadores de la lista consumen espacio en disco.

*Asignación por bloques:

-Es más eficiente y reduce la sobrecarga en ejecución.
-Es una mezcla de los métodos de asignación contigua y no contigua.
-Se asignan bloques de sectores contiguos y no sectores individuales.
-El sistema trata de asignar nuevos bloques a un archivo eligiendo bloques libres lo más próximos a los bloques del archivo existentes.

Las formas más comunes son:

  • Encadenamiento de bloques.
  • Encadenamiento de bloques de índice.
  • Encadenamiento de bloques o lista ligada:
-Las entradas en el directorio de usuarios apuntan al primer bloque de            cada archivo.
-Cada bloque de longitud fija que forman un archivo contiene dos partes: Un bloque de datos y un apuntador al bloque siguiente.
-Cada bloque contiene varios sectores.
-Localizar un registro determinado requiere:
  1. Buscar en la cadena de bloques hasta encontrar el bloque apropiado.
  2. Buscar en el bloque hasta encontrar el registro.

-El examen de la cadena desde el principio puede ser lento ya que debe realizarse de bloque en bloque, y pueden estar dispersos por todo el disco.
-La inserción y el retiro son inmediatos, dado que se deben modificar los apuntadores del bloque precedente.
-Se pueden usar “listas de encadenamiento doble”, hacia adelante y hacia atrás, con lo que se facilita la búsqueda





*Encadenamiento de bloques de índices:
-Los apuntadores son colocados en varios bloques de índices separados:
  1. Cada bloque de índices contiene un número fijo de elementos.
  2. Cada entrada contiene un identificador de registros y un apuntador a ese registro.
  3. Si es necesario utilizar más de un bloque de índices para describir un archivo, se encadena una serie de bloques de índices.

-La gran ventaja es que la búsqueda puede realizarse en los propios bloques de índices.
-Los bloques de índices pueden mantenerse juntos en el almacenamiento secundario para acortar la búsqueda, pero para mejor desempeño podrían mantenerse en el almacenamiento primario.
-La principal desventaja es que las inserciones pueden requerir la reconstrucción completa de los bloques de índices, una posibilidad es dejar vacía una parte de los bloques de índices para facilitar inserciones futuras y retardar las reconstrucciones.
-Es suficiente que el dato del directorio contenga el número de bloque inicial para localizar todos los bloques restantes, sin importar el tamaño del archivo 








Manejo de espacio en memoria secundaria

Administración del Espacio en Disco


Existen dos estrategias generales para almacenar un archivo de “n” bytes: 

1. Asignar “n” bytes consecutivos de espacio en el disco: Tiene el problema de que si un archivo crece será muy probable que deba desplazarse en el disco, lo que puede afectar seriamente al rendimiento.

2. Dividir el archivo en cierto número de bloques (no necesariamente) adyacentes: Generalmente los sistemas de archivos utilizan esta estrategia con bloques de tamaño fijo.

Dada la forma en que están organizados los bloques, el sector, la pista y el cilindro son los candidatos obvios como unidades de asignación. Si se tiene una unidad de asignación grande, como un cilindro, esto significa que cada archivo, inclusive uno pequeño, ocupará todo un cilindro; con esto se desperdicia espacio de almacenamiento en disco. 


Si se utiliza una unidad de asignación pequeña, como un sector, implica que cada archivo constará de muchos sectores; con esto su lectura generará muchas operaciones de e / s afectando el desempeño. Lo anterior indica que la eficiencia en tiempo y espacio tienen un conflicto inherente.

Hay que recordar que el tiempo de lectura de un bloque de disco es la suma de los tiempos de: Búsqueda, rotacional y Transferencia.

Para evitar que los usuarios se apropien de un espacio excesivo en disco, los Sistemas Operativos multiusuario proporcionan un mecanismo para establecer las cuotas en el disco. 

Un administrador del sistema asigna a cada usuario una proporción máxima de archivos y bloques. El S. O. garantiza que los usuarios no excedan sus cuotas.

Operación de Almacenamiento de Disco de Cabeza Móvil




Los datos se graban en una serie de discos magnéticos o platos. 
El eje común de los discos gira a una velocidad del orden de las 4,000 o más revoluciones por minuto
Se lee o escribe mediante una serie de cabezas de lectura - escritura.
Se dispone de una por cada superficie de disco. 
Solo puede acceder a datos inmediatamente adyacentes a ella: 

o La parte de la superficie del disco de donde se leerá (o sobre la que se grabará) debe rotar hasta situarse inmediatamente debajo (o arriba) de la cabeza de lectura - escritura. 
o El tiempo de rotación desde la posición actual hasta la adyacente al cabezal se llama tiempo de latencia.

Todas las cabezas de lectura - escritura están montadas sobre una barra o conjunto de brazo móvil: 

  • Puede moverse hacia adentro o hacia afuera, en lo que se denomina operación de búsqueda.
  • Para una posición dada, la serie de pistas accesibles forman un cilindro vertical. 


A los tiempos de búsqueda y de latencia se debe agregar el tiempo de transmisión propiamente dicha. El tiempo total de acceso a un registro particular: involucra movimientos mecánicos y generalmente es del orden de centésimas de segundo, aunque el tiempo de latencia sea de algunas milésimas de segundo (7 a 12 aproximadamente).