Sistemas Operativos TEMA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. Funciones y Objetivos de los Sistemas Operativos. Evolución de los Sistemas Operativos. Protección de la Información y Seguridad. Estructura de los Sistemas Operativos. Gestión de interrupciones. Requerimientos del sistema para cubrir las necesidades del usuario. TEMA 2. GESTIÓN DE FICHEROS Introducción: Fichero. Sistema de Ficheros. Organización y Acceso a Ficheros. Directorios de Ficheros. Mecanismos de protección. Compartición de Ficheros. Agrupación de Registros. Gestión del Almacenamiento Secundario. Servicios del Sistema Operativo en relación con el Sistema de Ficheros. TEMA 3. GESTIÓN Y ADMINISTRACIÓN DE PROCESOS Descripción de Procesos Procesos e Hilos Estados de un Proceso Control de Procesos Tipos de Planificación Algoritmos de planificación FCFS Planificación por Prioridades 1 Turno Rotatorio SPN, SRT y HRRN Tiempo de Respuesta Evaluación de algoritmos TEMA 4. GESTIÓN Y ADMINISTRACIÓN DE MEMORIA Requisitos para la Gestión de Memoria. Carga de Programas en Memoria Principal. Espacio Contiguo. Particionamiento Fijo Particionamiento Dinámico Reubicación Carga de Programas en Memoria Principal. Espacio no contiguo Paginación Simple Segmentación Simple Segmentación y paginación Memoria Virtual Estructuras de Control Introducción Paginación Segmentación Paginación y Segmentación Combinadas Algoritmos Software Políticas de Descarga Políticas de Ubicación Políticas de Reemplazo Protección y uso compartido TEMA 5. GESTIÓN DE ENTRADA/SALIDA 2 Dispositivos de E/S Técnicas de Comunicación de E/S E/S Programada E/S por Interrupciones E/S por DMA Aspectos de Diseño en los Sistemas Operativos. Almacenamiento Intermedio E/S a Disco Parámetros de Rendimiento Algoritmos de Planificación Cache de Disco TEMA 6. PRINCIPIOS DE DISEÑO DE UN SISTEMA OPERATIVO. Determinación de objetivos Mecanismos y políticas Enfoque por niveles Máquinas virtuales Utilización de multiprocesadores Implementación del sistema TEMA I INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS − Procesador − Subsistema físico − Memoria interna (ordenador) − Memoria secundaria − Sistema informático − Periféricos − Subsistema lógico − Programas del sistema (control) Informática (Sistema operativo) − Programas de servicio 3 − Programas de aplicación − Información − Datos a procesar La informática es el conjunto de conocimientos que hace posible el tratamiento de la información. El sistema informático se divide en: a)− Subsistema físico: es el conjunto de elementos que hacen posible el tratamiento de la información por medios electrónicos. El subsistema físico posee: 1− El procesador, que equivale a la CPU. El procesador realiza todo el trabajo de tratamiento de la información. Su velocidad se mide en MIPS (millones de instrucciones por segundo) no por MHz (millones de operaciones por segundo) 2− La memoria interna, que es donde reside el programa ejecutable. 3− La memoria secundaria, en la que se encuentra la información que no estamos utilizando en ese momento. 4− Los periféricos, que dirigen el trasvase de información entre dos memorias. b)− El subsistema lógico: dividido en 1− Programas de control que permite realizar las operaciones internas de forma transparente al usuario mediante abstracción. 2− Programas de servicio que proporcionan un entorno adecuado para la ejecución de aplicaciones del usuario. La información se divide en: a)− Programas de aplicación: que son los que realiza el usuario. b)− Datos a procesar: que es la información y datos que necesitan los programas de aplicación. El bit es la unidad elemental de información, solo puede tomar valores 0 y 1, El byte está formado por ocho bits, y tenemos 256 formas posibles para codificar todos nuestros caracteres. La palabra depende de la arquitectura del sistema. En los sistemas que utilizan ocho bit la palabra es de 1 byte. Para que se pueda realizar la transmisión de información debe haber un receptor, un emisor, un medio (sistema binario) y un código (EBCDIC y ASCII). − Unidades a)− de capacidad: 1 Kilobyte = 1024 bytes = 210 bytes 1 Megabyte = 1024 Kb = 220 bytes 1 Gigabyte = 1024 Mb = 230 bytes 4 1 Terabyte = 1024 Gb = 240 bytes b)− de velocidad: 1 milisegundo = 1 milésima = 10 −3 seg 1 microsegundo = 1 millonésima = 10 −6 seg 1 milmillonésima = 10 −9 seg − Subsistema físico: 1− Procesador: un procesador tiene una unidad de control, una unidad aritmético − lógica, y unas conexiones entrada/salida llamadas interfaces. U.C: Permite la ejecución ordenada de instrucciones de un programa: • Contador de programa: Permite almacenar la dirección de memoria de la siguiente instrucción a ejecutar. • Registro de instrucción: Permite almacenar el código binario de la instrucción a ejecutar. • Secuenciador: Es el Hardware que activa todas las señales físicas para la correcta ejecución de una instrucción. . La unidad aritmético y lógica realiza y ejecuta operaciones aritméticas y lógicas. Registros de datos: Registro es la unidad elemental de información almacenable en la CPU. Conexiones E/S: Son elementos específicos para la comunicación con el exterior de la CPU. 2− Memoria interna: Almacena las instrucciones a ejecutar por la CPU. Es de tipo RAM. Se puede leer y escribir en ella. Es volátil. Trabaja a una velocidad del orden de nanosegundos. 3− Memoria secundaria: está situada sobre soportes magnéticos. Es una memoria permanente en el tiempo. Está gestionada por los dispositivos de entrada y salida. Su velocidad es del orden de milisegundos. 4− Periféricos: nos permiten o bien introducir información, o informar al usuario de un proceso determinado. Facilitan la comunicación con el exterior. − Gestión de recursos físicos − Programas − Gestión del procesador De control − Gestión de la memoria principal − Gestión de soportes externos − Ensambladores − Traductores − Compiladores 5 Recursos lógicos − Intérpretes − Editores − Programas − Clasificadores De servicios − Utilidades − Manipulación de ficheros − Etc. − Gestión − Aplicaciones − Cálculo − Paquetes El sistema operativo es el conjunto de programas que ordenadamente relacionados dan coherencia a las acciones que lleva a cabo un ordenador. Oculta al usuario la complejidad interna del sistema. El sistema operativo se manifiesta de dos formas: 1− consiguiendo eficacia en la gestión de los recursos. 2− permitiendo una comunicación entre el usuario y el ordenador. Controla los procesos en Curso. **** Sistemas de Control del Sist. Operativo**** 1.Núcleo: Conjunto de programas que modelan el comportamiento del SSOO. a)Monolítico: Todas las funcs. del núcleo están integradas en un único bloque de código b)Microkernel: Las principales funciones para el mantenimiento mínimo del SSOO están agrupadas constituyendo el µKernel. El resto se integran como módulos. 2.Supervisor: Módulo que supervisa la ejecución de aplicaciones. 3.IOCS : Módulo que controla las operaciones de E/S. 4.Cargador: Complemento Software cuya misión consiste en transferir las aplicaciones de usuario total o parcialmente desde memoria secundaria a principal. **** **** Los programas de servicio son los encargados de traducir el lenguaje de alto nivel a lenguaje máquina. Hay tres tipos: a)− Traductores: cambian el código utilizado por nosotros a código máquina. Hay tres tipos: • Ensambladores Traduce un lenguaje , lenguaje Assembler a lenguaje máquina. El lenguaje assembler asocia identificador mnemotécnico a cada instrucción del conjunto de instrucciones del procesador 6 2− Compiladores: traducen el lenguaje de alto nivel a código máquina. 3− Intérpretes: traducen instrucción por instrucción. Es un proceso lento, pero es el más adecuado para la verificación de os programas. Al programa realizado en un lenguaje de alto nivel se le llama fuente y al programa que obtenemos después de aplicar el compilador, se le llama objeto. Fuente Compilador Objeto Montador de enlace Programa ejecutable El montador de enlace direcciona el programa hacia su dirección de memoria y nos dará un programa ejecutable b)− Utilidades: 1− Editores: sirven para realizar un programa directamente en pantalla. 2− Clasificación: sirven para ordenar registros. 3−Manipulador de ficheros: copias, impresiones, .... c)− Aplicaciones: 1− Gestión: son programas que utilizan continuamente E/S. 2− Cálculo: son programas que con un mínimo de instrucciones, puede realizar cálculos. 3− Paquetes de programas: son aplicaciones ya hechas Una interface es el límite que separa los recursos físicos o lógicos pero que lleva implícito una forma de acoplamiento o entendimiento entre ellos. Memoria fija (firmware) Es una memoria que lleva las instrucciones en lenguaje máquina. Estas memorias son de tipo ROM. Esta memoria provoca la carga del sistema operativo en la memoria RAM, a continuación ya podemos comunicarnos con el sistema. Sin este tipo de memoria no podríamos trabajar. Un trabajo puede ser un solo programa un conjunto de ellos, cada uno con sus instrucciones propias. Un trabajo controla un lenguaje de control de trabajo. − Unidad de control − CPU − Unidad aritmetico−lógica 7 − Ordenador − Unidad de E/S − Memoria interna −Sistema Físico − Almacenamiento secundario (Hardware) − Entrada Sistema Informático − Periféricos − Salida − Entrada/salida −Memoria fija (Firmware) −Sistema Lógico − Programas de control (Software) − Programas de servicio − La evolución de los sistemas operativos. 1− Primera generación (1945 − 1955): En esta época no existían los sistemas operativos. Utilización de la tecnología de las válvulas o tubos de vacío que hacían que los ordenadores fuesen enormes. El usuario tenía que hacer todos los programas en código binario. Las máquinas eran de un enorme coste. 2− Segunda generación (1955 − 1965): Aparecen los transistores que hacen que las máquinas se reduzcan de tamaño, facilitando la creación de los sistemas operativos. Aparecen los lenguajes de bajo nivel (assembler) y el lenguaje JCL. En esta época se estandariza el código para una mayor divulgación. Aparece un embrión de programa, dando lugar al IOCS (sistema de control de entrada/salida). Aparecen los lenguajes de alto nivel que tenían que cargar un compilador que convertía el lenguaje en assembler de la máquina en la que se compilaba. Había que quitar el compilador de la cinta magnética e insertar el traductor, más tarde carga el programa objeto en memoria y lo ejecuta. Todos estos recursos aumentaban el número de pasos que había que dar. Aparece el JCL (Lenguaje de control de trabajo) para definir esos pasos perfectamente. Cada vez se separa más el programador del centro de proceso de datos. El operador era el que valoraba los trabajos en el orden más indicado. Aparece la secuencia automática de trabajo, se diseña una secuencia que realice lo que realiza el operador. Aparece un sistema operativo llamado monitor residente que ordena los trabajos y se ejecutan automáticamente. El monitor residente tiene que estar protegido. Por esta razón aparecen dos medidas: 1)− Impedir que cualquier usuario acceda directamente a los programas. 2)− Impedir que un usuario en su programa altere las posiciones de memoria donde está el monitor residente. • Para esto se crean dos estados del S.O.: • El estado Superusuario: que permite ejecutar las instrucciones sin pararse a valorarlas (las instrucciones que sólo se pueden ejecutar de este modo se llaman privilegiadas. 8 • Estado Usuario: Se restringe el uso de las instrucciones. Ejemplo: El S.O. se está ejecutando en modo superusuario, entonces deja paso a una aplicación de usuario y cambia de modo mediante una instrucción privilegiada. Se sigue ejecutando la aplicación hasta que llega una orden de E/S, el sistema tiene que cambiar a superusuario para que el IOCS la gestione, después se vuelve a la aplicación en modo usuario mediante otro cambio de modo. Pero para pasar de modo usuario a Superusuario necesitamos una orden privilegiada que sólo se puede dar en M.Superusuario; para esto está el gestor de interrupciones: • Interrupciones Hardware: Asíncronas que nunca sabes cuando van a ocurrir. • Interrupciones Software: Está generada explícitamente desde un programa. Es una orden privilegiada ejecutable desde modo usuario. • Para esto existe la MMU (Memory Management Unit) que supervisa cualquier direccionamiento de memoria. Cuando se pide que se almacene un dato en una dirección la MMU mira si esa dirección está dentro del marco del S.O. y si es así la rechaza. Comienzan a aparecer más periféricos como las unidades de cinta magnética y una mejora notable de las impresoras. Una forma de reducir el tiempo de parada del procesador es pasar de los dispositivos más lentos a otros más rápidos con un sistema off−line. Si había una lectura de fichas se pasaba la información a una cinta y el procesador leía de ella. El procesador volcaba la información sobre otra cinta y después off−line pasaba de la cinta a la impresora. Este procesamiento, en general es más rápido, pero para un solo programa es más lento. Lectura de Cinta 1 Procesador Cinta 2 Impresora tarjetas Aparecen los buffer que son memorias intermedias donde pasa la información, el dispositivo leerá del buffer, eliminando así el dispositivo off−line. Lectura de Buffer 1 Procesador Buffer 2 Impresora Tarjetas El búffering es la técnica que se comienza a aplicar y que tiene una ventaja: solapan los dispositivos y almacenan la información. Sigue Existiendo un pequeño parón; este sistema amortigua el proceso de E/S con el de ejecución. Existen dos tipos de procesamientos: • Limitados por E/S • Limitados por CPU. 3− Tercera generación (1965 − 1980): Había ordenadores especializados para multitud de cosas concretas, IBM resolvió este problema y creó un software compatible para ordenadores de propósito general. Creó las familias de ordenadores; la primera fue la 360, luego la 370, la 4330, la 3080 y la 3090. La 360 utiliza los circuitos integrados LSI (Large Scale Integration). Aparece la escalabilidad, que es la posibilidad de ampliar en un momento determinado las funciones de un sistema. Aparece la multiprogramación, es decir, que el procesador está trabajando continuamente. Consiste en 9 dividir el espacio de memoria en varias partes, pudiendo tener un programa en cada una de esas partes. Cuando hay un proceso de E/S el SSOO comienza otro trabajo. Aparecen también las unidades de disco. Ahora se utiliza el disco para realizar la función del buffer. Este disco se llama spool y sólo lo utilizaba el sistema operativo. Spool Lectura de Procesador Impresora Tarjeta Con el spool se permite, por línea telefónica, mandar datos a otros lugares. Podemos introducir una serie de trabajos en el spool y es el sistema operativo el que planifica que trabajo se realiza antes que otro. La diferencia del búffering y del spooling es que en el búffering solapamos la E/S de un trabajo con su proceso, mientras que en el spooling solapamos la E/S de varios procesos con otro proceso distinto. Aparecen los sistemas de tiempo compartido que suponían volver a interactuar con el sistema. Desde unos terminales podíamos interactuar en el sistema. El procesador reparte su tiempo entre los usuarios que están utilizándolo. Con el sistema de tiempo compartido el paso de los sistemas procesamiento por lotes es más reducido. Aparecen los sistemas de tiempo real que funcionan mediante una serie de sensores que tienen una respuesta inmediata. Son tiempos de respuesta inmediata. Estos sistemas se combinan pero atienden primero a los sistemas de tiempo real. 4− Cuarta generación (1980− 1990): Se utilizan circuitos integrados VLSI (Very Large Scale Integration) con una enorme potencia. Aparecen los microprocesadores que son el fundamento de los ordenadores. Son como las antiguas estaciones de trabajo, pero ahora a nivel personal. Aparecen grandes desarrollos: a)Conectividad que permite una gran libertad de comunicación pero hace que aparezcan problemas en la Seguridad, lo que impulsa el desarrollo de la criptografía que intenta asegurar la privacidad, la integridad del mensaje y la autentificación del mismo. Tb. aparecen dos tipos de SSOO: − Los de Red, en los que elijo implícitamente que quiero hacer. − Los Distribuidos, que son transparentes para el usuario, son en los que el SSOO se encarga de gestionar todo. b)Concepto de Máquina Virtual que simula otras máquinas en una plataforma concreta (Emuladores) Esto alcanza su mayor desarrollo con la plataforma Java que es una Lenguaje y una Máquina Virtual. c)Uso de Sistemas de Gestión de Bases de datos Existen SSOO que apoyan directamente las bases de datos (seguros, bancos...) −Protección de la Información y seguridad Existen 4 políticas de clases de seguridad. Cuanto más abajo mayor seguridad. • No Compartición: − Los procesos están totalmente aislados (un progr. de usuario no puede acceder a los 10 dominios de otro programa de usuario) − Cada Proceso controla exclusivamente los recursos de cada uno. − Se comparten Prog. y datos copiándolos en memoria virtual. • Compartición de originales: Cuando dos programas van a leer los mismos datos de memoria en lugar de hacer dos copias se hace creer al segundo programa que tiene una copia pero está usando la del primer programa. Esto genera un problema de código porque no permite múltiples ejecuciones del SSOO; hay que usar un código que se denomina reentrante. • Subsistemas confinados / Sin Memoria: Se usa la arquitectura Cliente − Servidor. El cliente es el que solicita los servicios pero sin exponer información al servidor. El Servidor, que puede usar datos privados, suministra esos servicios pero sin explicar como. • Diseminación controlada la Información: A los usuarios y a las aplicaciones se les asignan credenciales de seguridad y a los datos y recursos se le asignan clasificaciones de seguridad. Se comprueban las tablas y si no coinciden la seguridad se deniega. Este es el método más utilizado ahora. − Estructuras de los SSOO. Colas: Estructuras que permiten gestionar listas de procesos en espera de algún recurso. • Contiene los procesos que están en memoria principal listos para su ejecución. • Decide en todo momento que proceso de 1 se va a ejecutar • Lista de trabajos que esperan a poder utilizar el sistema, pasar a 1 y que se les asigne memoria y tiempo de ejecución • El SSOO indica que recursos tienen que llenar la cola de estos dispositivos. • Mira que interrupción entra y de que tipo es, en caso de que tenga que usar un servicio se lo pide a 6 Cuando se produce una interrupción siempre se genera una señal eléctrica (física). El procesador cambia a modo protegido para utilizar instrucciones del SSOO que den la causa y la respuesta a la interrupción pedida. Esto es el RSI (Rutinas de Servicio de Interrupciones) Si la RSI se genera por una interrupción Software el 5 llama al 6 y ejecuta el servicio que pide. − Gestión de interrupciones. • De programa: Siempre se genera como consecuencia de la ejecución de una instrucción (al dividir por cero, desbordamiento, instrucciones ilegales, violación de espacio de memoria...) • De E/S: • De reloj: Generada periódicamente por el reloj interno del sistema. Cada 8,12 microsegundos se genera. • Fallo de Hardware: Fallo de suministro eléctrico. Todas son interrupciones Hardware. − Flujo de control Con interrupciones: Cuando se usan interrupciones el microprocesador puede ejecutar otras instrucciones mientras se procesa la E/S. Programas con espera Corta: Aquel en el que una operación de E/S finaliza antes de que el programa solicite otra operación de E/S Programas con espera Larga: Aquel en que se llega a un punto en que se pide una interrupción de E/S antes de 11 acabar la anterior. Sin interrupciones: Cuando hay una interrupción el microprocesador se para. (Mirar diagramas de tiempo) − Secuencia completa de tratamiento de una instrucción • El dispositivo genera una interrupción hardware que llega directa al microprocesador. • Termina la instrucción en curso • Genera un asentimiento (Señala que a recibido la información) e identifica el dispositivo. • Prepara la transferencia a RSI • Existen dos elementos que indican al estado del microprocesador. La Palabra de estado del Procesador (PSW) y el puntero (PC) que se almacenan en la pila del sistema. • Se mete en PC la dirección de la RSI (a partir de aquí se ejecuta la rutina de servicio) • Se guardan los registros en la pila • Se procesa la interrupción • Se restauran los registros • Se restauran el PC y el PSW (pila tipo LIFO) − Interrupciones múltiples Existen dos métodos para tratar las interrupciones múltiples • Se deshabilitan las interrupciones durante el procesamiento de una y al salir de la rutina de servicio, desde el modo usuario, se vuelven a habilitar. (Se usan las instrucciones DI/EI) • Con prioridades. Una interrupción con prioridad alta (bajo número) puede interrumpir otra con prioridad baja (número alto) EJEMPLO: HDD Tenemos PRN: 8 HDD: 5 RDSI: 2 RDSI PRN − Servicios del SSOO ♦ Creación de Aplicaciones: ♦ Editores de texto y de fuente ♦ Depuradores ♦ Utilidades específicas ♦ Ejecución de aplicaciones ♦ Acceso a dispositivos de E/S ♦ Acceso controlado de E/S ♦ Servicio de acceso al sistema 12 ♦ Detección y respuesta frente a errores. ♦ * El SSOO tiene que dar salida a cualquier situación anómala siempre con el menor impacto posible frente a la aplicación en curso. ♦ Estadísticas y registros ♦ *Cualquier suceso que ocurra en el sistema se tiene que anotar. TEMA 2 GESTION DE ARCHIVOS Campo: Elemento básico de datos caracterizado por una longitud (fija o variable) y un tipo. La mayoría de los sistemas de ficheros no soportan la longitud variable. Registro: Conjunto de campos relacionados entre si que constituyen una unidad de información para los programas de aplicación. Archivo: Colección de registros similares o relacionados. El control de acceso es a nivel de archivo completo. Base de Datos: Es una colección explícitamente relacionada de datos (se relacionan archivos). −Sistema de Gestión de Archivos Es el software que proporciona tanto a usuarios como a aplicaciones unos servicios de gestión de datos. Objetivos de un FS (File System) Lo principal es satisfacer las necesidades del usuario: • Crear, borrar y modificar archivos. • Acceso controlado de información. • Intercambios de datos entre archivos. • Poder efectuar copias de seguridad recuperables. • Acceso mediante nombres simbólicos. Lo secundario: • Optimizar el rendimiento. • Tener soportes diversos para E/S (poder seguir usando los mismos archivos aunque cambie el soporte. • Soporte multiusuario. • Minimizar las pérdidas de información. Arquitectura de un FS. En orden ascendente a lo más próximo al usuario y en descendente desde los más básico y físico • Drivers: ♦ Controla cada uno de los dispositivos que se va a usar. ♦ Inicia y termina las operaciones de E/S. ♦ Código en modo superusuario. 13 ♦ FS/Básico: ◊ Nivel físico de E/S ◊ Se gestionan bloques de datos (unidad de información en almacenamiento) ◊ Se gestionan las zonas de almacenamiento interno (Buffers) ◊ Supervisor de E/S: ⋅ Inicia y termina las operaciones con archivos ⋅ Se gestionan las estructuras de control que permiten efectuar procesos de E/S. ⋅ Planificación de dispositivos (ahorrar tiempo) ⋅ Reserva de espacio en Memoria Secundaria. ⋅ E/S Lógica: • Permite a los usuarios y aplicaciones acceder a los registros • No trabaja con archivos, sino con registros. • Método de Usuario: ♦ Mecanismos que determinan la forma de acceso a los archivos y a la información que contienen en ellos. ◊ Pila. ◊ Secuencial. ◊ Secuencial indexado. ◊ Indexado. ◊ Mediante dispersión Elementos involucrados en la gestión de archivos FUNCIONES DEL FS FUNCIONES DEL S.O Gestión de archivos método planificación De de acceso a Acceso disco ◊ Ordenes del usuario y programas ◊ Estructura de archivos ◊ Registros ◊ Bloques Físicos (Buffers) ◊ Bloques Físicos (Mem. 2ª) Archivos Colección de datos relacionada entre si. Esta información puede ser código ejecutable (programas) o datos representados en caracteres o en binario (no visualizable). Se suelen almacenar en soportes permanentes usando bloques físicos siempre del mismo tamaño. Pocas veces la capacidad de un bloque va a ser múltiplo entero del tamaño del registro. Los sectores en MS−DOS son de 512 bytes y un cluster son 4 sectores. 14 El empaquetamiento en bloques físicos lo pueden hacer aplicaciones o el mismo SSOO cuando los bloques físicos de archivo no están continuos existe fragmentación externa. Cuando se desperdicia espacio en el último bloque que almacena información de un archivo existe fragmentación interna. Estructura de directorios. Un sistema de dispositivos incluye: ◊ Un sistema de dispositivos (Tabla de Volumen) ◊ Directorio de archivos 1. Estructura que permite almacenar entradas o elementos que representan a todos los archivos almacenados. Existe una en cada disco físico y describe físicamente cada archivo del disco (particularizando en DOS sería la FAT) 2. Organización Lógica de los archivos almacenados en todos los dispositivos, es común a todos los discos (particularizando en Dos sería el Directorio Raíz) Operaciones con Archivos. ◊ Creación: Buscar espacio físico (al menos un bloque) ♦ Crear una entrada de Directorio. ♦ 2. Escritura: Solicitud al sistema de E/S (Qué y Donde se escribe) (como se dice en que archivo se ha de escribir el tratamiento de los bloques es transparente al usuario. Examen del directorio (buscar donde escribir) 3. Lectura: Solicitud al sistema (Qué archivo) Solicitud de Buffer o almacenamiento intermedio. 15 Puntero de Posición en el archivo 4. Reinicialización: Poner posición de Lectura a cero. 5. Borrar: Lo elimino lógicamente del directorio de archivos, no físicamente. 6. Abrir: El SSOO utiliza un IDent. numér. a un buffer de memoria que hace referencia al bloque. Métodos de Acceso: Acceso secuencial: Se almacenan en el mismo orden que llegaron. Uno detrás de otro. La lectura se hace leyendo un bloque y avanzado al siguiente. La escritura igual, se escribe en un bloque y se pasa al siguiente. Acceso directo: Secuencia numerada de bloques o registros. Permite la localización de inmediata de una gran cantidad de información, se suelen usar número relativos de bloques. Organización de ficheros: Estructura lógica de registros según el método de acceso a los mismo. Acceso a ficheros: ♦ Pila: ◊ Vale para registros de longitud variable o longitud física 16 (sólo se usa para la variable) ◊ Se almacenan en orden cronológico. ◊ No tiene estructura, las búsquedas para recuperar información son exhaustivas. ◊ Aprovecha el máximo de espacio. ◊ Es la más adecuada cuando hay diferencias grandes entre los registros, tanto en tamaño como en estructura. ◊ Secuencial: ⋅ Forma más básica de organización. ⋅ Todos los registros tienen el mismo número de campos y todos los campos tienen igual tamaño y están colocados en el mismo orden. ⋅ El primer campo suele tener información única y ser el campo clave. ⋅ Los registros se almacenan en orden según la clave. ⋅ Es el único sistema que se puede almacenar 17 tanto en disco como en cinta. ⋅ Tiene poca eficacia para modificaciones individuales, pero puede ser muy eficiente si todo el archivo está en memoria principal. ⋅ A nivel físico se almacena como una lista enlazada de bloques. ⋅ Al introducir nuevos registros tendría que mover los anteriores por de bloque en bloque para hacer huecos, lo que hacemos es usar una organización de tipo pila para los nuevos registros. ⋅ Secuencial indexado: • Es la solución a la anterior. • Se utilizan dos 18 archivos auxiliares, un índice y uno de desbordamie (overflow). ♦ Índic Perm hace búsq para llega cerca del regis busc ♦ OVF Perm alma los regis que llega nuev • Para buscar un determinado registro se busca en el índice el ínfimo de la clave, luego miro donde apunta el puntero y sino está en 19 esa posición tiene que estar en una posición enlazada del archivo OVF. • Es más eficiente cuanto más se parecen el número de entradas del índice con el número de cada partición inducida en el archivo principal. • Al final del registro, tanto en el archivo principal como en el de desbordamie tengo un 20 puntero que me lleva al registro siguiente. • Podemos tener más de un nivel de indexación, esto sería algo así como tener un índice para el índice, se gana rapidez a costa de sacrificar un poco de espacio en el disco duro. • Puramente indexados: ♦ Se usan para efect búsq por vario camp esto 21 supo que no están orde y que no exist un camp clave ♦ Tene un índic por cada camp objet de búsq ♦ No exist nada de secu ♦ Exis dos tipos de índic 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67