jueves, 27 de noviembre de 2008

unidad 6

6.1 Concepto y objetivos de protección.

Menciona J. Boria. (1987) que los sistemas operativos proveen algunos mecanismos de protección para poder implementar políticas de seguridad. Las políticas definen qué hay que hacer (qué datos y recursos deben protegerse de quién; es un problema de administración), y los mecanismos determinan cómo hay que hacerlo. Esta separación es importante en términos de flexibilidad, puesto que las políticas pueden variar en el tiempo y de una organización a otra. Los mismos mecanismos, si son flexibles, pueden usarse para implementar distintas políticas.
Postula J.Boria. (1987) los objetivos para la protección de los sistemas operativos.

Objetivos de la Protección

• Inicialmente protección del SO frente a usuarios poco confiables.

• Protección: control para que cada componente activo de un proceso sólo pueda acceder a los recursos especificados, y sólo en forma congruente con la política establecida.

• La mejora de la protección implica también una mejora de la seguridad.

• Las políticas 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 qué elementos (hardware y/o software) se realiza la protección.

- Política.- es el conjunto de decisiones que se toman para especificar cómo se usan esos elementos de protección.


6.2 Funciones del sistema de protección.

H. Deitel (1987) define que dado que los sistemas de cómputo se han venido haciendo cada vez más sofisticados en sus aplicaciones, la necesidad de proteger su integridad, también ha crecido.
H. Deitel (1987) Menciona que los aspectos principales de protección en un Sistema Operativo son:
1. Protección de los procesos del sistema contra los procesos de usuario.
2. Protección de los procesos de usuario contra los de otros procesos de usuario.
3. Protección de Memoria.
4. Protección de los dispositivos.

6.3 IMPLANTACION DE MATRICES DE ACCESO.

A. Tanenbaum. (1993) postula que un modelo de protección puede ser visto abstractamente como una matriz, llamada matriz de derecho. Los renglones de la matriz representan dominios y las columnas representan objetos. Cada entrada en la matriz contiene un conjunto de derechos de acceso. Dado que los objetos son definidos explícitamente por la columna, se puede omitir el nombre del objeto en el derecho de acceso. La entrada "Matriz[i, j]" define el conjunto de operaciones que un proceso ejecutándose en el dominio "Dj" puede realizar sobre el objeto "Oj".
A. Tanenbaum. (1993) Considero la siguiente matriz de acceso:
Dominio \ Objeto
A1
A2
A3
COM1
LPT1
D1
Leer

Leer


D2



Leer
Imprimir
D3

Leer
Ejecutar


D4
Leer Escribir

Leer Escribir



.

6.4 Protección Basada en Lenguaje

Explica A. Tanenbaum. (1993) que la protección que se ofrece en los sistemas de computación existentes casi siempre se ha logrado con la ayuda del núcleo de un sistema operativo, que actúa como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido. Puesto que la validación de todos los accesos puede dar pie a un gasto extra considerable, debemos apoyarla con hardware para reducir el costo de cada validación o bien debemos aceptar que el diseñador del sistema podría inclinarse por sacrificar los objetivos de la protección. Es difícil satisfacer todos estos objetivos si los mecanismos de soporte con que se cuenta restringen la flexibilidad para implementar diversas políticas de protección.
Outra deficinion mencionada por Silberschantz. (1999). Las políticas para el uso de recursos también podrían variar, dependiendo de la aplicación, y podrían cambiar con el tiempo. Por estas razones, la protección ya no puede considerarse como un asunto que sólo concierne al diseñador de un sistema operativo; también debe estar disponible como herramienta que el diseñador de aplicaciones pueda usar para proteger los recursos de un subsistema de aplicación contra intervenciones o errores.
Silberschantz. (1999). Menciona que este enfoque tiene varias ventajas importantes:
1. Las necesidades de protección se declaran de forma sencilla en vez de programarse como una secuencia de llamadas a procedimientos de un sistema operativo.
2. Las necesidades de protección pueden expresarse independientemente de los recursos que ofrezca un sistema operativo en particular.
3. El diseñador de un subsistema no tiene que proporcionar los mecanismos para hacer cumplir la protección.
4. Una notación declarativa es natural porque los privilegios de acceso están íntimamente relacionados con el concepto lingüístico de tipo de datos.

6.5 Concepto de seguridad

H.Deitel. (1987) Menciona que un concepto de seguridad está definido como el un conjunto de medidas tomadas para protegerse contra robos, ataques, crímenes y espionajes o sabotajes. La seguridad implica la cualidad o estado de estar seguro, es decir, la evitación de exposiciones a situaciones de peligro y la actuación para quedar a cubierto frente a contingencias adversas.
H.Deitel. (1987) Declara que la seguridad, no solo requiere un sistema de protección apropiado, sino también considerar el entorno externo en el que el sistema opera. La protección interna no es útil si la consola del operador está al alcance de personal no autorizado, o si los archivos se pueden sacar simplemente del sistema de computación y llevarse a un sistema sin protección. Estos problemas de seguridad son esencialmente de administración, no problemas del sistema operativo.
H.Deitel. (1987) Redacta en su libro introducción al los sistemas operativos que la información almacenada en el sistema, así como los recursos físicos del sistema de computación, tienen que protegerse contra acceso no autorizado, destrucción o alteración mal intencionado, y la introducción accidental de inconsistencia.

6.6 Clasificaciones de la seguridad

Schwinmmer. (2006) señala que la clasificación de los sistemas de computación según sus requisitos de seguridad ha sido un tema ampliamente discutido desde los años setenta. La disparidad de criterios existentes se ha ampliado más con la conexión de las computadoras para formar redes de computación que pueden compartir recursos.
Señala Schwinmmer. (2006) que en la clasificación especifica, hay cuatro niveles de seguridad: a, b, c y d… a continuación, se describen estos niveles de seguridad y las características de cada uno.
Nivel D es el Sistemas con protección mínima o nula no pasan las pruebas de seguridad mínima. MS-DOS y Windows 3. 1 son sistemas de nivel d. Puesto que están pensados para un sistema mono proceso y mono usuario, no proporcionan ningún tipo de control de acceso ni de separación de recursos.
Nivel C a la Capacidad discrecional para proteger recursos, La aplicación de los mecanismos de protección depende del usuario, o usuarios, que tienen privilegios sobre los mismos. Entonces esto significa que un objeto puede estar disponible para lectura, escritura o cualquier otra operación. Y entonces casi todos los sistemas operativos comerciales de propósito general, como Unix, Linux o Windows NT se clasifican en este nivel.es decir dos son:
1. Control de acceso por dominios.
2. Control de acceso individualizado.
Nivel B es el Control de acceso obligatorio en este nivel, los controles de acceso no son discrecionales de los usuarios o los dueños de los recursos, que deben existir obligatoriamente. Esto significa que todo objeto controlado debe tener protección sea del tipo que sea. Es decir que son tres y son:
1. Etiqueta de seguridad obligatoria.
2. Protección estructurada.
3. Y el dominio de seguridad.
Nivel A es el Sistemas de seguridad certificados para acceder a este nivel, la política de seguridad y los mecanismos de protección del sistema deben ser verificados y certificados por un organismo autorizado para ello.es decir dos tipos:
1. Diseño verificado.
2. Desarrollo controlado.





6.7 Validación y amenazas al sistema

H.Deitel. (1993) menciona las siguientes amenazas muy importantes para un sistema y algunas técnicas de prevención y detección de intrusos:

Amenazas a la seguridad en el acceso al sistema:
· Intrusos.
· programas malignos.
Intrusos:
· Piratas o hackers: individuos que acceden al sistema sin autorización.
· Los sistemas presentan agujeros por donde los hackers consiguen colarse.
· Técnicas de intrusión:
- Averiguar contraseñas (más del 80% de las contraseñas son simples).
- Probar exhaustivamente.
- Descifrar archivo de contraseñas.
- Intervenir líneas.
- Usar caballos de Troya.

Técnicas de prevención de intrusos:
Establecer una buena estrategia de elección de contraseñas:
ü Contraseñas generadas por ordenador (difícil memorización).
ü Inspección activa (proceso periódico de averiguación).
ü Inspección proactiva (decidir si es buena en su creación.


Tipos de amenazas:
· Amenazas pasivas:

- Revelación del contenido del mensaje.
- Análisis del tráfico:
- En caso de que los mensajes vayan encriptados.

· Amenazas activas:

- Alteración del flujo de mensajes.
- Privación del servicio:
- Impide el uso normal de los servicios de comunicaciones.
- Suplantación:
- Cuando una entidad finge ser otra diferente.

H.Deitel. (1993) Señala en un diagrama la clasificación de programas malingnos.

Clasificación de programas malignos:


Programas malignos que necesitan anfitrión:
· Trampillas:
- Punto de entrada secreto a un programa.
- Se usan para depuración y prueba.
- Pueden usarse para acceso no autorizado.


· Bomba lógica:
- Se ejecutan cuando se cumplen ciertas condiciones.

· Caballo de Troya:
- Código dañino incrustado en programa que se ejecuta cuando se ejecuta el programa.

Programas malignos que no necesitan anfitrión:

· Gusanos:
- Programas independientes.
- Se reproducen a través de la red.
- Además de propagarse pueden causar daños.

· Bacterias:
- No dañan explícitamente.
- Su único objetivo es reproducirse.

· Virus:
- Código incrustado en un programa.
- Se reproducen e insertan en otros programas.
.







6.8 Cifrado

Menciona S, Williams. (2001). que la criptografía es el uso de la transformación de datos para hacerlos incomprensibles a todos, excepto a los usuarios a quienes están destinados.
El problema de la intimidad trata de cómo evitar la obtención no autorizada de información de un canal de comunicaciones.
El problema de la autentificación trata sobre cómo evitar que un oponente:
Modifique una transmisión.
Le introduzca datos falsos.
S, Williams. (2001). Señala que un problema de la disputa trata sobre cómo proporcionar al receptor de un mensaje pruebas legales de la identidad del remitente, que serían el equivalente electrónico de una firma escrita.











REFERENCIAS BIBLIOGRAFICAS.

J. Boria. “Construcción de Sistemas Operativos” (1987) Prentice-Hall, 1987. [España]

H. M. Deitel. Introducción a los Sistemas Operativos. Addison-Wesley Iberoamericana, 1987, 1993. [Mexico]

William Sistemas Operativos – Cuarta Edición. Madrid, Prentice-Hall, 2001. [España]

W. Stallings. Data and Computer Communications - Fifth Edition. Prentice Hall, 1997. [Estados Unidos]

A. Tanenbaum. Sistemas Operativos Modernos. Prentice Hall Hispanoamericana, S.A., 1993. [Mexico]

A. Tanenbaum. Operating Systems: Design And Implementation. Prentice Hall, 1987. [Estados Unidos]

A. Silberschatz. Operating Systems Concepts. Addison-Wesley, 1991 [Estados Unidos]




miércoles, 26 de noviembre de 2008

unidad 5


INTRODUCCION

Un Archivo es un conjunto de elementos de información relacionados entre si y que fueron definidos por su creador. Por lo general, los archivos representan datos y programas. Un archivo de datos puede ser numérico, alfabético o binario. Los archivos pueden ser de formato libre, como los archivos de texto, o pueden estar rigurosamente formateados. En general, un archivo es una secuencia de bits, bytes, líneas o registros cuyo significado es definido por el creador del archivo y por el usuario.

Un archivo se puede manipular como una unidad mediante operaciones tales como abrir, cerrar, crear, destruir, copiar, renombrar y listar. Los elementos de información individuales que conforman un archivo se pueden manipular con acciones tales como leer, escribir, modificar y eliminar.

De acuerdo a las características y tipo de trabajo que se realicen sobre los archivos, estos pueden caracterizarse por su: Volatilidad, Actividad y Tamaño.


VOLATILIDAD.
Se refiere a la frecuencia con la que se inserta o elimina información.

ACTIVIDAD.
Se refiere al porcentaje de los elementos de información de un archivo al que se tuvo acceso en un periodo de tiempo dado.


TAMAÑO.
Se refiere a la cantidad de información que conforma el archivo.

ARCHIVO FISICO.
La información vista desde la perspectiva de hardware. Por ejemplo, el archivo 1 está formado por los sectores 3, 10 y 15 del archivo. Otro ejemplo: el archivo X es la secuencia de bytes localizados en la RAM en el bloque 0A703h:03000h al 0A703h:04200h.


ARCHIVO LOGICO.
Son datos cuyo significado esta definido por el usuario. Ejemplo, el archivo Y es la información de 1000 artículos, cada uno con su código, descripción y precio. Generalmente, un archivo lógico se representa de manera tabular.

EL SISTEMA DE ARCHIVOS DE UN SISTEMA OPERATIVO.
Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos relacionados con el manejo de Archivos.

5.1 concepto
Moshe Bar (McGraw-Hill, 2001)Los sistemas de archivos (filesystem en inglés), estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos poseen su propio sistema de archivos.
Moshe Bar (McGraw-Hill, 2001)Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la intervención de un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso o capacidades. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso.
5.2. Noción de un archivo virtual y real
Marco Cesati (O'Reilly Media, 2005). Un sistema de archivos virtual (abreviado como VFS, del inglés Virtual File System), también denominado conmutador de sistema de archivos virtual, es una capa de abstracción encima de un sistema de archivos más concreto. El propósito de un VFS es permitir que las aplicaciones cliente tengan acceso a diversos tipos de sistemas de archivos concretos de una manera uniforme. Puede ser utilizada para tender un puente sobre las diferencias en los sistemas de archivos de Windows, de Mac OS y Unix, de modo que las aplicaciones pudieran tener acceso a archivos en los sistemas de archivos locales de esos tipos sin tener que saber a qué tipo de sistema de archivos están teniendo acceso.
Un VFS especifica un interfaz (o un contrato) entre el kernel y un sistema de archivos en concreto. Por lo tanto, es fácil agregar nuevos sistemas de archivos al kernel simplemente satisfaciendo el contrato. Los términos del contrato pueden volverse incompatibles de una versión a otra, lo que requeriría que sistemas de archivos concretos fuesen recompilados, y posiblemente modificados antes de la recompilación, para permitirles trabajar con un nuevo lanzamiento del sistema operativo; o el proveedor del sistema operativo pueda realizar solamente cambios retrocompatibles al contrato, de modo que un sistema de archivos concreto construido para un lanzamiento dado del sistema operativo trabaje con las versiones futuras del mismo sistema operativo.

5.3 Componentes de un sistema operativo

Gestión de procesos
Silberschatz, Abraham (2006). Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:
Crear y destruir los procesos.
Parar y reanudar los procesos.
Ofrecer mecanismos para que se comuniquen y sincronicen.
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.

Gestión de la memoria principal

La Memoria (informática) es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:
Conocer qué partes de la memoria están utilizadas y por quién.
Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
Asignar y reclamar espacio de memoria cuando sea necesario.
Gestión del almacenamiento secundario
Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:
Planificar los discos.

Gestionar el espacio libre.

Asignar el almacenamiento.
El sistema de E/S
Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

Sistema de archivos
Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:
Construir y eliminar archivos y directorios.
Ofrecer funciones para manipular archivos y directorios.
Establecer la correspondencia entre archivos y unidades de almacenamiento.
Realizar copias de seguridad de archivos.
Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS...
Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS , que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes sin embargo en un sistema NTFS el tamaño es considerablemente mayor.

Sistemas de protección
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
Distinguir entre uso autorizado y no autorizado.
Especificar los controles de seguridad a realizar.
Forzar el uso de estos mecanismos de protección.
Sistema de comunicaciones
Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Intérprete de órdenes

Shell de línea de comandos
El shell del sistema es el principal componente del SO que utiliza el usuario. Este uso se realiza siempre directa o indirectamente a través del intérprete. Generalmente incorpora un lenguaje de programación para automatizar las tareas.
Hay dos tipos de intérpretes de órdenes:
Alfanuméricos: las órdenes se expresan mediante un lenguaje específico usando las cadenas de caracteres introducidas por el terminal.
Gráficos: normalmente las órdenes se especifican por medio de iconos y otros elementos gráficos.
Programas de sistema
Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:
Manipulación y modificación de archivos.
Información del estado del sistema.
Soporte a lenguajes de programación.
Comunicaciones.
Gestor de recursos
Como gestor de recursos, el Sistema Operativo administra
La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).
Los dispositivos de E/S (entrada y salida)
La memoria principal (o de acceso directo).
Los discos (o memoria secundaria).
Los procesos (o programas en ejecución).
...
y en general todos los recursos del sistema.


Componentes del Sistema Operativo

Características

Administración de tareas
Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Administración de usuarios
Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Manejo de recursos
Centralizado: Si permite utilizar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de más de una computadora al mismo tiempo.

ORGANIZACIÓN DE ARCHIVOS.
Silberschatz, Abraham (2006). Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de archivos: Organización de archivos lógicos y de archivos físicos.

DE ARCHIVOS LOGICOS. Contempla la organización desde el punto de vista lógico. Por ejemplo, secuencial, directo, etc.

DE ARCHIVOS FISICOS. Contempla la administración de archivos desde la perspectiva física, particularmente la organización del almacenamiento en disco a nivel de pistas y sectores.
Este tipo de organización muestra a su vez, 2 aspectos importantes: Métodos De Asignación De Espacio Libre y Asignación De Espacio De Almacenamiento Del Archivo.

Acceso a un Archivo
Tipos:
O´brien, James A. (2006). Metodo de Acceso Secuencial: El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la única forma de acceder a los datos, por ejemplo en una cinta de cassette. También puede ser el método de acceso elegido, para simplemente procesar una secuencia de datos en orden. Fuente

Metodo de Acceso Secuencial Indexado: Método de acceso secuencial indexado. Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo. El orden secuencial sería el más comúnmente usado para el procesamiento por lotes y la impresión (número de cuenta, nombre, etc.).

Archivos Secuenciales
La forma mas común de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo numero de campos de tamaño fijo en un orden particular. Como se conocen la longitud y la posición de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.
Un campo particular, generalmente el primero de cada registro se conoce como el campo clave. El campo clave identifica unívocamente al registro. así, los valores de la clave para registros diferentes son siempre diferentes.
Los archivos secuenciales son típicamente utilizados en aplicaciones de proceso de lotes Y son óptimos para dichas aplicaciones si se procesan todos los registros. La organización secuencias de archivos es la única que es fácil de usar tanto en disco como en cinta.
Para las aplicaciones interactivas que incluyen peticione s o actualizaciones de registros individuales, los archivos secuenciales ofrecen un rendimiento pobre.
Normalmente un archivo secuencial se almacena en bloques, en un orden secuencial simple de los registros. La organización física del archivo en una cinta o disco se corresponde exactamente con la ubicación lógica del archivo. En este caso, el procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado archivo de registro (log file) o archivo de transacciones. Periódicamente, se realiza una actualización por lotes que mezcla el archivo de registro con el archivo maestro para producir un nuevo archivo en secuencia correcta de claves.

Archivos Secuenciales indexados
Un método popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado. El archivo secuencial indexado mantiene las caracteristicas básicas de los archivos secuenciales: los registros están organizados en una secuencia basada en un campo. Dos características se añaden: un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento ( overflow ). El indice provee una capacidad de búsqueda para llegar rapidamente a las proximidades de un registro deseado. El archivo de desbordamiento (overflow) es similar al archivo de registro usado en un archivo secuencial, pero esta intregrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si registro precedente. En la estructura secuencial indexada mas simple, se usa un solo nivel de indexacion. El indice, en este caso, es un archivo secuencial simple. Cada registro del archivo indice tiene dos campos: un campo clave, que es el mismo que el campo clave del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el indice hasta encontrar el valor mayor de la clave que es igual o precede al valor deseado de la clave. La busqueda continua en el archivo principal a partir de la posición indicada por el puntero.

Archivos Indexados
Los archivos secuenciales indexados retienen la limitación del archivo secuencial: la eficacia en el procesamiento se limita al basado en un único campo del archivo. Cuando es necesario buscar un registro basándose en algún otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable. Para alcanzar esta flexibilidad, se necesita una estructura que utilice múltiples índices, uno para cada tipo de campo que pueda ser objeto de la búsqueda. Se suelen utilizar dos tipos de índices. Uno indice exhaustivo contiene una entrada par cada registro del archivo principal. Otro índice parcial contendrá entradas a los registros donde este el campo de interés. Con registros de longitud variable, algunos registros no contendran todos los campos. Los archivos indexados son muy utilizados en aplicaciones donde es critica la oportunidad de la informacion y donde los datos son rara vez procesados de forma exhaustiva.

Archivos Directos o de Dispersión (Hashed)
Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencial.

Manejo Espacio Memoria Secundaria
Stallings William (2002) La memoria secundaria requiere que la computadora use sus canales de entrada/salida para acceder a la información y se utiliza para almacenamiento a largo plazo de información persistente. Sin embargo, la mayoría de los sistemas operativos usan los dispositivos de almacenamiento secundario como área de intercambio para incrementar artificialmente la cantidad aparente de memoria principal en la computadora. La memoria secundaria también se llama "de almacenamiento masivo".
Habitualmente, la memoria secundaria o de almacenamiento masivo tiene mayor capacidad que la memoria primaria, pero es mucho más lenta. En las computadoras modernas, los discos duros suelen usarse como dispositivos de almacenamiento masivo. El tiempo necesario para acceder a un byte de información dado almacenado en un disco duro es de unas milésimas de segundo (milisegundos). En cambio, el tiempo para acceder al mismo tipo de información en una memoria de acceso aleatorio se mide en mil-millonésimas de segundo (nanosegundos).


Espacio de direcciones: Los espacios de direcciones involucrados en el manejo de la memoria son de tres tipos: Direcciones físicas: Son aquellas que referencian alguna posición en la memoria física. Direcciones lógicas: Son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por el procesador (la MMU), antes de convertirse en direcciones físicas. Direcciones lineales: Direcciones lineales se obtienen a partir de direcciones lógicas tras haber aplicado una transformación dependiente de la arquitectura. Los programas de usuario siempre tratan con direcciones virtuales, nunca ven las direcciones físicas reales.