Ingeniero Técnico en Informática de Sistemas
Sistemas Operativos
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
• 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
• 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
- 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
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
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
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
- 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.
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 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 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 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)
-
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)
-
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
-
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.
-
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.
-
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.
-
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.
-
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
-
Ordenes del usuario y programas
-
Estructura de archivos
-
Registros
-
Bloques Físicos (Buffers)
-
Bloques Físicos (Mem. 2ª)
-
Un sistema de dispositivos (Tabla de Volumen)
-
Directorio de archivos
-
Creación: Buscar espacio físico (al menos un bloque)
-
Crear una entrada de Directorio.
-
Pila:
-
Vale para registros de longitud variable o longitud física (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 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 archivos auxiliares, un índice y uno de desbordamiento (overflow).
-
Índice: Permite hacer búsquedas para llegar cerca del registro buscado
-
OVF: Permite almacenar los registros que llegan nuevos.
-
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 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 desbordamiento tengo un 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 efectuar búsquedas por varios campos, esto supone que no están ordenados y que no existe un campo clave.
-
Tenemos un índice por cada campo objeto de búsqueda.
-
No existe nada de secuencialidad.
-
Existen dos tipos de índices:
-
Exhaustivos: Existe una entrada por cada registro del archivo principal.
-
Parcial: Existen entradas para los registros donde se encuentra el campo buscado.
-
Organización de tipo Hash:
-
Se aplica una función o una tabla Hash al campo clave que estamos tratando de localizar.
-
Uso sólo un archivo principal y uno de Desbordamiento.
-
Suministro un campo clave a la función que me devuelve directamente a una posición.
-
La función determina la capacidad del archivo principal, en caso de que un registro fuese a entrar en una posición ya ocupada se le manda al archivo auxiliar.
-
Se usa cuando necesito accesos muy rápidos de longitud fija.
-
Organización de archivos en una unidad de almacenamiento.
-
Tabla de signos en los que se asocia un nombre simbólico con un archivo. También es un archivo que es gestionado completamente por el SSOO.
-
Me permite establecer una jerarquía de archivos.
-
La organización que se usa es secuencial pura y puede estar fragmentado. Si el número de archivos que gestiona es muy elevado se puede obtar por una función Hash.
-
Directorios de un nivel:
-
Lista en la que todos los archivos están en el mismo directorio.
-
Limitaciones: Si el número de archivos es muy elevado puesto que me obliga a usar nombres únicos.
-
Ventajas: Puede gestionar los dispositivos del sistema como archivos.
-
Directorio de dos niveles:
-
Usa estructuras de un nivel para cada usuario, lo que forma el directorio principal de archivos. (Master File Directory)
-
El segundo nivel es la información de los archivos de cada usuario. (User File Directory)
-
Existe un comando que te permite crear un nuevo usuario, creando una nueva estructura en MFD y UFD.
-
Los usuarios están aislados y no pueden compartir archivos. Excepcionalmente se permite acceder por medio del comando: Usuario \ archivo.
-
Este sistema se puede usar para compartir la información de los propios archivos del sistema sistema operativo. Esta información está almacenada en otra estructura del MFD como si fuera un usuario más, a la información que está en su correspondiente UFD pueden acceder todos los usuarios.
-
Todo está controlado por el SSOO.
-
Existe la vía de acceso o PATH.
-
En Árbol:
-
El punto de partida es el directorio raiz.
-
Todos los directorios tienen la misma estructura y cada uno de ellos puede contener archivos o directorios, para que el sistema los distinga les asigna un bit (1 Directorio, 0 Archivo)
-
Directorio Actual: Punto único en el que estoy trabajando.
-
Vía de acceso: Relativa o Absoluta (desde la base del árbol)
-
Grafos acíclicos:
-
Expresamente diseñado para compartir información, en este tipo un mismo archivo o un mismo directorio físico, puede aparecer en los directorios de dos o más usuarios.
-
Si alguien modifica un archivo que está compartido tb se modifica para el otro usuario.
-
UNIX:
-
Existe un enlace simbólico de un enlace en otro.
-
Es una estructura muy flexible y compleja.
-
Sólo se borran los archivos si se han borrado todas sus referencias.
-
Primero se hace una exploración exhaustiva (dos caminos llevan a un mismo archivo dos veces) y luego una eliminación de archivos (no pueden quedar referencias sueltas)
-
Grafo General:
-
No hay una organización explícita, pueden aparecer ciclos.
-
Necesitan una construcción especial, necesitan un elemento que atraviese todo el sistema de archivos para evitar el problema de las autoreferencias (cuando un el número de referencias es distinto de cero y físicamente no es posible acceder al archivo)
-
Para solucionar esto se examina todo el sistema de archivos, aquel archivo al que se pueda acceder queda marcado y luego se borran los que no estén marcados. Garbage collection. Es un sistema lento y pesado.
-
Ninguno
-
Localización
-
Ejecución: Ejecución y copia.
-
Lectura: Copia y visualización.
-
Adición: Se pueden añadir datos al final de los ya existentes.
-
Actualización: Se puede modificar cualquier parte del documento.
-
Cambio de derechos.
-
Eliminación (solamente el creador)
-
Sin tramos: los registros se agrupan hasta que ocupan un bloque y después pasan al siguiente. Hay espacios que se quedan libres porque el siguiente registro no cabe en el bloque
-
Tiempo de búsqueda: Es el tiempo que tarda el cabezal en pasar por la pista. Sólo en cabezas móviles.
-
Tiempo de Latencia: Es el tiempo que tarda en aparecer el sector por debajo del cabezal. Es un tiempo estadístico no fijo, pues es variable de la posición. Se calcula como la mitad del tiempo que tarda en dar una vuelta completa.
-
Vector binario o tabla de bits: es una secuencia binaria. Existe un bit que indica si está libre o no para cada bloque del disco. Es útil para bloques libres consecutivos, además de que ocupa poco espacio.
-
Utilización de listas enlazadas: De elementos que describen los bloques libres. Se ponen los números de los bloques libres. Lo peor es el espacio que ocupa, mucho mayor. La ventaja es que no necesita una tabla, sino una estructura formal, donde se almacenan datos. La mayor desventaja es que tiene que leer secuencialmente toda la lista.
-
Listas enlazadas con un número de bloque y cuenta: Se almacena el número de bloque y el número de bloques libres.
-
Método de agrupamiento: Tengo punteros que me indican el espacio libre que hay en ese disco.
-
A cada archivos se le asigna un conjunto de bloques contiguos físicamente.
-
En la FAT necesitamos saber el número del bloque inicial y cuantos bloques son. Se guarda todo en una sola línea.
-
Es la mejor técnica para asignar archivos.
-
Se genera fragmentación exterior del espacio libre ( no de archivos)
-
Para solucionarlo se genera un proceso llamado Compactación que coloca un bloque tras de otro. Pero lleva demasiado tiempo.
-
Un archivo consta de una serie de bloques individuales o aislados.
-
Un puntero al final del bloque me lleva al siguiente bloque.
-
Es una asignación dinámica.
-
En la FAT se necesita un nombre, el bloque inicial y el número total de bloques.
-
Problemas:
-
Se trata de una lista enlazada, por lo que para acceder al final tengo que pasar primero por los anteriores
-
Es vulnerable, porque si pierdo un enlace, no puedo acceder a los siguientes bloques.
-
Soluciones:
-
Se usan listas doblemente enlazadas, y cada bloque tiene el nombre del archivo al que pertenece y el nº de secuencia en el archivo.
-
Se usa un bloque de datos como bloque índice de todo un archivo de forma que tb me diga en que secuencia está.
-
FAT: Nombre del archivo y bloque índice al que pertenece.
-
Problemas:
-
Para leer es lento, ya que los accesos a los datos siempre provocan una E/S al bloque índice.
-
Puede ser que en un bloque índice no entre todo el archivo.
-
Soluciones:
-
Usar bloques índices enlazados (que juntes forman un solo bloque) de forma que el puntero último del bloque enlaza con el principio del siguiente bloque.
-
Indice multinivel, los punteros hacen referencia a otros bloque índices que si que tienen la secuencia de bloques de cada archivo.
-
Combinado entre las otras dos: El índice sólo usa 13 punteros. De 0-9 apuntan a bloques de datos. El 10 apunta a otro bloque índice, el 11 a unos de dos niveles y el 12 a uno de tres niveles. De esta forma el número de acceso es proporcional al tamaño del archivo y la posición relativa del dato dentro del archivo.
-
Identificadores de procesos mediante valores numéricos. Un proceso se puede descomponer en varias actividades independientes o hilos de ejecución (Threads)
-
Estado del microprocesador. Donde se almacena la información de usuario y de control.
-
Información de control de proceso. Donde se almacena información de planificación (prioridades) y de estado. Tb se almacenan las estructuras de datos que permiten relacionar procesos padres con procesos hijos.
-
Ejecución: si se está ejecutando.
-
Nuevo o listo: si se acaba de crear.
-
Espera: si está detenido y espera volver a usar la CPU
-
Detenido.
-
Muerto: detenido definitivamente.
-
Guardar el contexto del procesador (estado del procesador, PC y registros)
-
Actualizar BCP.
-
Mover el BCP a la cola apropiada.
-
Seleccionar otro proceso.
-
Se actualiza el BCP con el nuevo proceso.
-
Se actualizan las estructuras de datos.
-
Volver al contexto del nuevo proceso.
- Interrupciones múltiples
Existen dos métodos para tratar las interrupciones múltiples
EJEMPLO: HDD
Tenemos PRN: 8
HDD: 5
RDSI: 2
RDSI
PRN
- Servicios del SSOO
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:
Lo secundario:
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
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
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.
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:
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.
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.
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:
Directorios:
Mecanismos o métodos de protección:
Derechos de acceso a nivel de archivo dirigidos hacia el del propietario, el de un grupo definido o el del resto.
Clases:
Acceso simultaneo: El primero que llega bloquea el archivo y nadie puede acceder a el para modificarlo hasta que acabe. Si es un sistema eficaz el bloque se hace a nivel de archivos.
Agrupación de registros: El tamaño de los bloques de registros varían según la utilidad de los demás. Cuando accedemos aleatoriamente para consultar datos puntuales o donde no existe localidad de referencia es útil que los bloques sean de un tamaño mínimo. Si accedemos para conectar algo que esté ordenado por unas características el bloque debería ser lo más grande posible, pues de una vez nos llevaríamos todos los datos necesarios.
-Principio de localidad de referencia: Hay una alta posibilidad de acceder a datos físicamente próximos a datos que hemos accedido hace poco o de acceder próximamente en el tiempo a datos que ya han sido consultados.
Todos los SSOO utilizan un tamaño fijo de bloques.
Los métodos de agrupación de registros en bloques son
1- Con tramos: un registro puede estar parte en un bloque y parte en otro. Tendremos que leer muchas veces dos bloques. Esta es la forma que tienen los sistemas actuales para agrupar. El espacio es el sobrante después de implantar todos los bloques para completar una pista.
R1 | R2 | R3 | R4 | R5 | R6 | R7 |
R1 R2 R3 R4 R4 R5 R6
R6 R7 R8 R9 R10 R11 R12 R13
Datos
Saltos debidos al diseño del hardware
Sobrante por ajustar los bloques al tamaño de la pista
Sobrante por la limitación del tamaño de bloque con un tamaño fijo de registros
Gestión de almacenamiento secundario
Existen dos tipos de discos: de cabeza fija o móvil. El fijo tiene un lector por cada pista. Sin embargo el móvil tiene un lector que localiza el sector mediante el movimiento del disco.
Magnitudes a tener en cuenta:
Para hallar el tiempo de acceso al registro. Hay que especificar: superficie, pista y bloque. El sistema operativo utiliza esta formula para asignar un número de bloque:
nº Bloque = nº sector + sectores/pista * (nº superficie + nº cilindro * nº pista/cilindro)
____________________________________
nº pistas
__________________________________________________
nº bloques
La numeración va de dentro a afuera. Numera por bloques de una pista y posteriormente por pistas de cilindros.
Gestión de espacio libre
Para informar de la dirección de los bloques vacíos se utiliza una “tabla de asignación de disco”. Es parecida a la FAT.
Existen 3 técnicas de gestión del espacio libre:
Asignación de archivos.
*Previa: Limitar de antemano el espacio que ocupa un archivo declarándolo al crear el archivo. Se desaprovecha mucho espacio.
*Dinámica: Divide el espacio que se asigna a los archivos en secciones. Si el tamaño de las secciones es muy grande se desaprovecha espacio (fragmentación interna). Si es muy pequeño, la fragmentación interna se reduce a niveles mínimos, pero el archivo se descompondrá en muchas secciones que no estarán ordenadas consecutivamente.
_______ Asignación de secciones contiguas para archivos de tamaño variable ________
Suponiendo un vector binario:
__ __ __
(1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 .....)
__
Métodos: 1.Primer hueco o ajuste (First Fit)
2.Mejor hueco o ajuste (Best Fit): Hueco que menos espacio desperdicie.
3.Siguiente hueco (Next Fit): Desde la anterior asignación.
4.Peor hueco (Worst fit): Hueco que deje más bloques libres.
______________ _________________
Métodos de asignación de archivos:
1.Asignación contigua:
C O M P A C T A C I O N
2.Asignación encadenada:
3.Asignación indexada.
TEMA 3
GESTION DE ARCHIVOS.
Proceso: Programa en ejecución con actividad, tiene una pila y una sección de datos.
Ejecución de la secuencia de instrucciones de un programa concreto.
PC: El contador del programa dice que es la próxima instrucción que se tiene que ejecutar.
El S.O. necesita gestionar para los procesos:
Código de programa + Zona (s) de Datos + Pila +Atributos = Imagen de un proceso.
Los atributos son el Bloque Central de Procesos (BCP) que se guardan en memoria principal, lo demás que forma parte de la imagen se guarda en memoria secundaria.
El S.O. debe conocer la ubicación de procesos en la memoria secundaria y aquellos que ya están en memoria principal.
La imagen se descompone en un conjunto de bloques que no han de ser necesariamente contiguos ni en memoria ni en disco.
No necesito tener todos los bloques en memoria para ejecutar un proceso.
Si los bloques son de longitud física se llaman páginas, si son de longitud variable se llaman segmentos.
El BCP contiene:
Estados de un Proceso:
Pasos en un cambio de proceso:
Capacidad de un elemento Hardware o de un programa.
Página: 4
Programa en ejecución.
Simoltaneous Peripheral Operation On Line.
Cifrar mensajes para enviar.
Dispatcher: Modo en que se reparte el tiempo entre los recursos a la espera
1
10
Unidad
Arit/log
Registros especiales
Conexiones E/S
Unidad
control
Gestor de Peticiones de Servicio
6
6
Gestor de Interrup.
5
Cola de Corto Plazo
1
Cola de Largo Plazo
3
Planificador de Corto Plazo
2
4 Disposit.
E/S
Prog, Principal.
RSI 8
RSI 2
HDD 5
1
2
3
3
4
5
1
2
4
Nombre Posic. Inicial Bloques Oc.
A1 0 2
A2 14 3
A3 19 6
Nombre Pos.Inicial Bloques Oc.
A1 0 2
A2 2 3
A3 5 6
Descargar
Enviado por: | El remitente no desea revelar su nombre |
Idioma: | castellano |
País: | Chile |