Optimización del Rendimiento del Disco: Explorando las Estructuras, Algoritmos y Técnicas de E/S

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 31,69 KB

Organización de los Discos

Un disco está compuesto por varios discos o platos, en los que se almacena la información sobre su superficie. Esta se organiza en pistas concéntricas que a su vez están divididas en sectores. Las pistas se organizan en cilindros. Un cilindro estaría compuesto por todas las pistas que ocupan la misma posición en los diferentes platos o discos. Todas las pistas de un cilindro se pueden leer sin mover el cabezal, que es lo que consume más tiempo. La unidad de lectura/escritura en un disco es el sector, que se lee entero y se guarda en un buffer, desde el cual se accede al bit que se desea leer. Se sitúan los sectores de forma no adyacente. A esta técnica se conoce como interleaving, donde el factor de interleaving es el número de sectores que separan cada dos sectores lógicos adyacentes.

El Coste de Acceso a Disco

El tiempo total de acceso a disco está determinado por tres operaciones físicas: el tiempo de posicionamiento (seek time), el retardo de rotación (rotational delay) y el tiempo de transferencia (transfer time).

El tiempo de posicionamiento es el que tarda el brazo del cabezal en posicionarse en el cilindro correspondiente. El retardo de rotación hace referencia al tiempo que tarda el disco en situarse sobre el sector buscado, y se calcula en promedio como la mitad del tiempo que tarda en dar una vuelta. El tiempo de transferencia depende de la cantidad de información que se desea transferir.

Enumeración de Bloques

Los bloques se enumeran desde el cilindro cero, superficie cero y sector cero hasta el sector "n". A continuación, se pasa a la siguiente superficie empezando de nuevo a numerar sectores n+1, n+2… Y así igualmente con los demás cilindros.

RAID

  • RAID 0: También denominado stripe de discos, es una solución donde se intercala la información de los registros en diferentes discos físicos. No existe redundancia de datos para el control y recuperación de errores.
  • RAID 1: Es la función de mirroring o discos espejo. No aumenta la eficiencia pero sí la redundancia.
  • RAID 2: Redundancia mediante código Hamming. 7 discos donde se utilizan 4 para datos y 3 para control.
  • RAID 3: Paridad a nivel de bit. 5 discos con 4 de datos y 1 de control.
  • RAID 4: Paridad a nivel de bloque.
  • RAID 5: Paridad distribuida a nivel de bloque.
  • RAID 6: Redundancia dual.

Técnicas Empleadas para la Realización de E/S

  • E/S programada: El procesador emite una orden de E/S de parte de un proceso a un módulo de E/S. El procesador espera entonces a que termine la operación, antes de seguir.
  • E/S dirigida por interrupciones: El procesador emite una orden de E/S de parte de un proceso, continúa la ejecución de instrucciones siguientes y es interrumpido por el módulo de E/S cuando éste ha completado su trabajo.
  • Acceso directo a memoria (DMA): Un módulo DMA controla el intercambio de datos entre memoria principal y un módulo de E/S. El procesador envía una petición de transferencia de un bloque de datos al módulo DMA y se ve interrumpido sólo cuando el bloque entero se haya transferido.

Estructura Lógica de las Funciones de E/S

  • Dispositivo periférico local: Se comunica de una manera sencilla, como flujo de bytes o de registros. Los niveles implicados son los siguientes: E/S lógica, E/S con dispositivos, planificación y control.
  • Dispositivo de comunicaciones: La diferencia principal es que el módulo de E/S lógica se reemplaza por una arquitectura de comunicaciones, que puede constar de varios niveles internos.
  • Dispositivo de almacenamiento secundario o sistema de archivos: El módulo de E/S lógica es sustituida por estas tres capas: gestión de directorios, sistema de archivos, organización física.

Almacenamiento Intermedio de E/S

Esta técnica se conoce como buffering o almacenamiento intermedio. A la hora de discutir los distintos métodos de almacenamiento intermedio, es importante hacer la distinción entre dispositivos de bloque y dispositivos de flujo. La propia denominación indica la unidad de transferencia mínima que usan cada clase.

  • Buffer sencillo: Supóngase que T es el tiempo necesario para realizar una operación que sucede entre dos peticiones de bloque y C es el tiempo transcurrido entre dos peticiones. Sin buffer, el tiempo total entre dos peticiones sería T+C, mientras que con uso del buffer sería Max(T,C)+M, donde M es la sobrecarga para mover el bloque leído a la zona de memoria del usuario.
  • Buffer doble: Se puede mejorar el esquema de buffer sencillo asignando dos buffers a cada operación. De este modo, se puede ir realizando la transferencia hacia (o desde) un buffer, mientras el sistema está utilizando el otro para la petición siguiente.
  • Buffer circular: Cuando se emplean más de dos, el conjunto se denomina buffer circular. Este, sencillamente, es el modelo de productor/consumidor.

Políticas de Planificación de Disco

  • Primero en entrar, primero en salir (FIFO): Significa que los elementos se procesan en un orden secuencial. Con la técnica FIFO, si hay pocos procesos que requieren acceso y sí muchas peticiones de sectores agrupados en un archivo, se puede esperar un buen rendimiento.
  • Último en entrar, primero en salir (LIFO): En los sistemas de proceso de transacciones, conceder el dispositivo al último usuario acarrea pocos o nulos movimientos del brazo al recorrer el fichero secuencial. Se aprovecha la propiedad de cercanía para mejorar la productividad y reduce la longitud de las colas. Existe el riesgo de inanición si la actividad de accesos es alta.
  • Sistema de prioridad: Con un sistema de prioridades no se persigue la optimización del uso del disco, sino cumplir con otros objetivos del sistema operativo. Los trabajos por lotes y los trabajos interactivos reciben frecuentemente una prioridad más alta que los trabajos mayores que realizan largas operaciones.
  • Primero el más corto (SSTF): Esta política elige la solicitud de E/S a disco que requiera el menor movimiento posible del brazo del disco desde su posición actual. El brazo puede moverse en ambas direcciones. Esta política y la anterior pueden provocar inanición sobre ciertas peticiones.
  • SCAN: Es una alternativa simple que previene la inanición de las políticas anteriores. Con SCAN, el brazo sólo se puede mover en un sentido (pero es bidireccional), resolviendo todas las peticiones pendientes de su ruta, hasta que se alcance la última pista o hasta que no haya más peticiones en esa dirección. Favorece a las pistas cercanas a los cilindros más interiores y exteriores.
  • C-SCAN: La política C-SCAN restringe el rastreo a un solo sentido. Así, cuando se haya visitado la última pista en un sentido, el brazo vuelve al extremo opuesto del disco y comienza a recorrerlo de nuevo, lo que reduce el retardo máximo sufrido por las nuevas peticiones.
  • SCAN de N pasos y FSCAN: Para evitar la “pegajosidad” del brazo, que producen las otras políticas anteriores, la cola de peticiones del disco puede dividirse en segmentos, procesándose un segmento cada vez. Dos ejemplos de método son el SCAN de N Pasos y F-SCAN. La primera, divide la cola de peticiones en subcolas de longitud N y para cada una aplica SCAN. F-SCAN utiliza dos subcolas. En el comienzo de un nuevo proceso de acceso, todas las peticiones acumuladas en una cola son procesadas. Todas las nuevas son almacenadas en la otra cola (no se procesarán hasta que terminen las viejas).

Arquitectura de los Sistemas de Archivos

  • Manejadores de dispositivos: Es el nivel más bajo, encargado de la comunicación con los dispositivos periféricos o sus controladores o canales.
  • Sistema de archivos básico o E/S física: Es el siguiente nivel y constituye un interfaz primaria con el entorno exterior del computador.
  • El supervisor básico de E/S: Es el responsable de la iniciación y finalización de toda la E/S con archivos. En este nivel se mantienen unas estructuras de control que se encargan de la E/S con los dispositivos, la planificación y el estado de los archivos.
  • E/S lógica: Es la parte del sistema de archivos que permite a los usuarios y aplicaciones acceder a los registros. La E/S lógica ofrece una capacidad de E/S de registros de propósito general y mantiene unos datos básicos sobre los archivos.
  • Método de acceso: Es el nivel más cercano al usuario. Cada método proporciona una interfaz estándar entre las aplicaciones y los sistemas de archivos y dispositivos que guardan datos.

Organización Lógica y Acceso a Archivos

  • Pilas: Los datos se recogen en el orden en el que llegan. La finalidad de la pila es simplemente acumular una masa de datos y guardarla. Los registros pueden tener campos diferentes. El acceso a los registros se hace por búsqueda exhaustiva.
  • Archivos secuenciales: En esta clase de archivos se emplea un formato fijo para los registros. Todos los registros son de la misma longitud y constan del mismo número de campos.
  • Archivos secuenciales indexados: Mantienen las características generales de los archivos secuenciales. Los registros se organizan en una secuencia basada en un campo clave.
  • Archivos indexados: 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 los archivos generales indexados se abandonan los conceptos de secuencialidad y clave única.
  • Archivos directos o de dispersión: Los archivos de dispersión explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida.

Métodos de Asignación de Archivos

  • Asignación Contigua: Cada fichero ocupa bloques con direcciones lógicas del dispositivo contiguas (bloques contiguos en el disco). Número de búsquedas y tiempo de búsqueda mínimos para acceder a archivos contiguos. Ventajas: Soporta acceso secuencial y directo. Todo el espacio se utiliza para almacenar datos. Desventajas: Encontrar espacio para la creación de un fichero. Fragmentación externa. Declaración por anticipado del tamaño del archivo.
  • Asignación Encadenada: Archivo como lista enlazada de bloques de disco. Los bloques pueden estar dispersos por todo el disco. La entrada al directorio contiene un puntero al primer y al último bloque del archivo. Ventajas: No se produce fragmentación externa. No es necesario declarar por anticipado el tamaño del archivo. Desventajas: Eficiente sólo para archivos de acceso secuencial. Espacio ocupado por los punteros. Confiabilidad: pérdida de datos provocada por pérdida de punteros.
  • Asignación Indexada: La asignación enlazada resuelve: fragmentación externa y declaración anticipada del tamaño de los archivos. Ventajas: No se produce fragmentación externa. No es necesario declarar por anticipado el tamaño del archivo. Soporta acceso secuencial y directo. Desventajas: Mayor pérdida de espacio (bloque/s índice). Confiabilidad: pérdida de datos provocada por pérdida del bloque/s índice.

Gestión de Almacenamiento Libre

  • Tablas de bits: El método de las tablas de bits utiliza un vector que contiene un bit por cada bloque libre de disco. Cada entrada igual a 0 corresponde a un bloque libre y cada 1 corresponde a un bloque en uso. Ventajas: Búsqueda rápida y fácil. Desventajas: Tamaño incrementalmente excesivo.
  • Secciones libres encadenadas: Las secciones libres pueden encadenarse juntas mediante un puntero y un valor de longitud en cada sección libre. Ventajas: Espacio de gestión insignificante. Desventaja: Tendencia a fragmentarse (las secciones serán de un bloque y la creación de archivos se ralentiza).

Sistemas Operativos

Definición de Sistemas Operativos

Un sistema operativo es un programa que controla la ejecución de los programas de aplicaciones y actúa como interfaz entre el usuario de un computador y el hardware del mismo. Tiene tres objetivos claros: comodidad, eficiencia y capacidad de ejecución.

El Sistema Operativo como Administrador de Recursos

Un computador es un conjunto de recursos para el traslado, almacenamiento y proceso de datos y para el control de estas funciones.

Historia de los Sistemas Operativos

  • Primera generación (1945-1955): Proceso serie: Toda la programación se llevaba a cabo en lenguaje máquina absoluto. El programador interactuaba directamente con el hardware de la máquina.
  • Segunda generación (1955-1965): Sistemas sencillos por lotes: La idea central es el uso de un elemento software conocido como monitor. El monitor es el que controla la secuencia de sucesos. Gran parte de este, siempre debe estar en memoria principal (monitor residente). El resto del monitor consta de utilidades que son cargadas como subrutinas en los programas de usuario al comienzo de cualquier trabajo.
  • Tercera generación (1965-1980): Sistemas por lotes con multiprogramación: El avance consiste en la posibilidad de ejecutar varios trabajos o programas a la vez y efectuar el cambio de turno cuando un proceso realiza una operación de E/S. Este modelo se conoce como multitarea o multiprogramación.
  • Cuarta generación (1980-1990): Computadoras personales: El desarrollo de circuitos VLSI (Very Large Scale Integration), se inicia en la era de las computadoras personales. En términos de arquitectura, estas computadoras no eran muy distintas de las microcomputadoras de la generación anterior. No obstante, el coste de producción era varios órdenes de magnitud inferior.

Clasificación de los Sistemas Operativos

Desde el Punto de Vista de la Utilización de los Recursos

  • Sistemas monoprogramados: En la memoria solo tenemos un proceso.
  • Sistemas multiprogramados: Se basa en la técnica de multiprogramación. La memoria se divide en partes, en donde tenemos en cada una un proceso. Se solapa la entrada-salida de un proceso con la ejecución de otro proceso en el procesador.
  • Sistemas multiproceso: Se basa en que tiene múltiples procesadores. Es el sistema operativo el que se encarga de asignar ese programa a uno de los procesadores.

Desde el Punto de Vista de la Interactividad

  • Sistemas de procesamiento por lotes o batch: No existe interactividad entre el usuario y el sistema. Son los más sencillos en planificación. El sistema monitor es la parte del sistema operativo que ha de estar permanentemente en la memoria.
  • Sistemas de tiempo compartido: Se necesita una estructura de terminales que se conecta mediante líneas limitadas de comunicación con el sistema. En estos sistemas se introduce la programación interactiva. El terminal no tiene sistema operativo propio. Hace falta un administrador del sistema. El sistema distribuye el tiempo del procesador entre los usuarios conectados.
  • Sistema de tiempo real: Se tiene que tener un tiempo de respuesta inmediato. Se usa para el control de aplicaciones, comunicaciones, contrastes, instalaciones, etc. Se caracteriza por prioridades.

Desde el Punto de Vista del Número de Usuarios

  • Sistemas monousuario: Lo utiliza un único usuario. Se puede usar la multiprogramación ya que el usuario puede introducir varios programas.
  • Sistemas multiusuario: Son todos los que usan un sistema de tiempo compartido, usado por varios usuarios a la vez.

Un Modelo de Cinco Estados

  • Nuevo (new): El proceso se está creando.
  • En ejecución (running): El proceso está en la CPU ejecutando instrucciones.
  • Bloqueado (waiting, en espera): Proceso esperando a que ocurra un suceso (ej. terminación de E/S o recepción de una señal).
  • Preparado (ready, listo): Esperando que se le asigne a un procesador.
  • Terminado (terminated): Finalizó su ejecución, por tanto no ejecuta más instrucciones y el SO le retirará los recursos que consume.

Los sucesos que pueden dar lugar a una transición de estados en este modelo son los siguientes:

  • Ninguno a nuevo: Se crea un nuevo proceso para ejecutar un programa.
  • Nuevo a preparado: El sistema está preparado para aceptar un proceso más porque dispone de recursos para ello.
  • Preparado a ejecución: El sistema elige uno de los procesos en estado preparado para llevarlo a ejecución.
  • Ejecución a terminado: El proceso que se está ejecutando es finalizado por el SO si indica que terminó, se abandona o se cancela.
  • Ejecución a preparado: El proceso ha agotado su tiempo de ejecución, cede voluntariamente su tiempo de ejecución o se interrumpe para atender a otro de mayor prioridad.
  • Ejecución a bloqueado: El proceso solicita algo por lo que debe esperar.
  • Bloqueado a preparado: Se produce el suceso por el que el proceso estaba esperando.
  • Preparado a terminado: Un padre puede terminar con un proceso hijo en cualquier momento, o bien, si el padre termina todos sus hijos se pueden terminar.
  • Bloqueado a terminado: El mismo criterio que el anterior.

Procesos Suspendidos

Se añaden las siguientes transiciones al grafo de estados:

  • Nuevo a Listo y suspendido: Cuando se crea un proceso, la escasez de espacio lleva al SO a realizar la creación en memoria secundaria.
  • Listo a Listo y suspendido: De vez en cuando se debe liberar un bloque de memoria. Si llega a ser lo suficientemente grande, puede llegar a ser necesario suspender a un proceso Listo.
  • Listo y suspendido a Listo: Cuando no hay procesos Listos, el SO tendrá que traer uno de Nuevo o bien de Listo y suspendido. También, la prioridad de un proceso Listo y suspendido puede obligar al SO a cargarle en Listo.
  • Bloqueado a Bloqueado y suspendido: Si no hay procesos Listos, entonces al menos un proceso bloqueado pasa a Bloqueado y suspendido, alojándolo en memoria secundaria.
  • Bloqueado y suspendido a Listo y suspendido: Se produce cuando el proceso recibe el suceso que estaba esperando.

Estructuras de Control de Procesos

  • Tablas de memoria: Se utilizan para seguir la pista a la memoria principal y secundaria (asignación de bloques a procesos, atributos de protección, etc.).
  • Tablas de E/S: Sirven para administrar los dispositivos y canales de E/S (estado actual de E/S, posición de memoria utilizada para la transferencia, etc.).
  • Tablas de archivos: Informan al SO sobre los ficheros que existen en memoria secundaria. El sistema de gestión mantiene esta tabla.
  • Tablas de procesos: Cada elemento se corresponde con un proceso. Debe tener un identificador y se establecen referencias cruzadas con elementos de las otras tablas anteriores.

Imagen del Proceso

Sus elementos típicos son:

  • Datos de usuario: Puede guardar datos del programa, una zona para la pila de usuario y programas que pueden modificarse.
  • Programa de usuario: El código a ejecutar.
  • Pila del sistema: Cada proceso tiene una o más pilas asociadas. Una pila se almacena para guardar parámetros y direcciones de retorno (de llamadas a procedimientos y funciones).
  • Bloque de control de proceso (BCP o PCB): Es la parte donde se guardan todos los atributos del proceso, esto es, la información necesaria para que el sistema operativo controle al proceso.

Creación de Procesos

  • Función fork(): Cuando se la llama crea un proceso hijo que es una copia casi exacta del proceso padre (duplicado del padre). Ambos procesos continúan ejecutándose desde el punto en el que se hizo la llamada a fork(). En UNIX los procesos se identifican mediante un “identificador de proceso” (PID) que es un entero único. Ambos procesos continúan su ejecución con la instrucción que sigue al fork() con una diferencia: el código que el hijo recibe del fork() es cero. El que recibe del padre es el propio pid.
  • Función exec: Tras crear un nuevo proceso, después de llamar a fork(), Linux llama a una función de la familia exec. Éstas funciones reemplazan el programa ejecutándose en el proceso por otro programa. Cuando un programa llama a una función exec, su ejecución cesa de inmediato y comienza a ejecutar el nuevo programa desde el principio, suponiendo que no ocurriera ningún error durante la llamada.

Procesos e Hilos

El concepto de proceso incluye las dos características siguientes:

  • Unidad de propiedad de recursos: A cada proceso se le asigna un espacio de direcciones virtuales para albergar la imagen del proceso y, de cuando en cuando, se le asigna más memoria virtual para otros recursos.
  • Unidad de expedición: Un proceso tiene un estado de ejecución (Ejecución, Listo, etc.) y una prioridad de expedición.

Un hilo (proceso ligero) es una unidad básica de utilización de la CPU, y consiste en un contador de programa, un juego de registros y un espacio de pila. El término multihilo hace referencia a la capacidad de un SO para mantener varios hilos de ejecución dentro del mismo proceso. En un SO con procesos monohilo (un solo hilo de ejecución por proceso), en el que no existe el concepto de hilo, la representación de un proceso incluye su PCB, un espacio de direcciones del proceso, una pila de proceso y una pila núcleo. En un SO con procesos multihilo, sólo hay un PCB y un espacio de direcciones asociados al proceso, sin embargo, ahora hay pilas separadas para cada hilo y bloques de control para cada hilo.

Diferencia con los Procesos

Los hilos no son independientes entre sí. Como todos los hilos pueden acceder a todas las direcciones de la tarea, un hilo puede leer la pila de cualquier otro hilo o escribir sobre ella. Aunque pueda parecer lo contrario, la protección no es necesaria ya que el diseño de una tarea con múltiples hilos tiene que ser de un usuario único.

Ventajas de los Hilos sobre los Procesos

  • Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear un nuevo proceso.
  • Se tarda mucho menos tiempo en terminar un hilo que un proceso.
  • Se tarda mucho menos tiempo en conmutar entre hilos de un mismo proceso que entre procesos.
  • Los hilos hacen más rápida la comunicación entre procesos, ya que al compartir memoria y recursos, se pueden comunicar entre sí sin invocar el núcleo del SO.

Objetivo de la Multiprogramación

  • Tener un proceso en ejecución en todo momento para un mayor aprovechamiento de la CPU.
  • En un sistema monoprocesador nunca habrá más de un proceso en ejecución. Si hay más procesos, tendrán que esperar a que la CPU quede libre para reasignarse.
  • Para un mayor aprovechamiento, se mantienen varios procesos en memoria a la vez. Cuando un proceso necesita esperar, el SO le quita la CPU y se la da a otro proceso.
  • Casi todos los recursos del computador se planifican antes de usarse; la planificación es fundamental en el diseño de un SO.

Ciclo de Ráfagas de CPU y E/S

La ejecución de un proceso consiste en un ciclo de ejecución alternando de manera sucesiva:

  • Ráfagas de CPU: (que inician el proceso), durante las cuales el proceso ejecuta instrucciones.
  • Ráfagas de E/S: Durante las cuales el proceso utiliza o espera por la E/S.

Planificación Expropiativa

Las decisiones de planificación de CPU se toman según las cuatro situaciones siguientes:

  • Cuando un proceso pasa del estado en ejecución a en espera.
  • Cuando un proceso pasa del estado en ejecución a listo.
  • Cuando un proceso pasa del estado en espera al estado listo.
  • Cuando un proceso termina.

Los casos 1 y 4 corresponden a una planificación no expropiativa. Los casos 2 y 3 corresponden a una planificación expropiativa.

Entendemos por política expropiativa, aquella en la que el planificador a corto plazo (SO) tiene la capacidad de retirar la CPU (sacar del estado de Listo) a un proceso, como consecuencia de un suceso (cambio de estado de otro proceso, timeout de ráfaga de ejecución, etc).

Criterios de Planificación

  • Utilización de CPU: % de tiempo que la CPU está ocupada.
  • Rendimiento: Número de procesos, trabajos, que se completan por unidad de tiempo.
  • Tiempo de retorno: Tiempo transcurrido entre la llegada de un proceso y su finalización.
  • Tiempo de espera: Tiempo que un proceso permanece en la cola de preparados.
  • Tiempo de respuesta: Tiempo que un proceso bloqueado tarda en entrar en la CPU desde que ocurre el suceso que lo bloquea.

FCFS

Planificación de servicio por orden de llegada (función de selección max(w)).

Es el algoritmo más sencillo, el primer proceso que solicita la CPU es el primero en recibirla. Tiempo de espera promedio bastante largo. Penaliza a los procesos cortos. Penaliza a los procesos con carga de E/S. Modo de decisión: No expropiativo. Sobrecarga para el sistema: mínima. Fácil de implementar con una política FIFO para la cola de preparados.

SPN

Planificación por orden creciente de tiempo de servicio estimado (función de selección min(s)).

Requiere que los procesos declaren por anticipado el tiempo de servicio que van a requerir. En caso contrario, el sistema operativo debe estimarlo de alguna forma (históricos de contabilidad). Ofrece un buen tiempo de respuesta para procesos cortos. Modo de decisión: No expropiativo. Sobrecarga para el sistema: Puede ser alta. Penaliza a los procesos largos y puede producir inanición.

SRTF

Es una variante apropiativa del SPN. Planificación por orden creciente de tiempo de servicio pendiente (función de selección min(s-e)).

La evaluación se hace cada vez que un proceso llega a la cola de listos o el proceso en ejecución sale de ese estado por E/S o terminación. Si un proceso que llega a listos tiene menor tiempo de servicio pendiente que el que está ejecutándose, el planificador lo retirará de la CPU y pondrá al nuevo. Ofrece un buen tiempo de respuesta para procesos cortos. Modo de decisión: Expropiativo (en llegada). Sobrecarga para el sistema: Puede ser alta. Penaliza a los procesos largos y puede producir inanición.

RR (Round Robin)

Establece una política FIFO rotatoria y expropiativa por turnos de tiempo (función de selección constante).

Ofrece un buen tiempo de respuesta para procesos cortos. Modo de decisión: Apropiativo (en cuantos de tiempo). Sobrecarga para el sistema: Baja. Trato equitativo entre los procesos. La productividad puede ser baja si el cuanto es pequeño.

HRRN (Highest Response Ratio Next)

La función de selección utiliza la relación entre el tiempo consumido por el proceso en el sistema y el tiempo de servicio del mismo. Mantiene una política FIFO, donde los procesos más antiguos van tomando prioridad alta con el tiempo (función de max((w+s)/s)).

Ofrece un buen tiempo de respuesta. Soluciona el riesgo de inanición de los procesos largos. Modo de decisión: Apropiativo. Sobrecarga para el sistema: Puede ser alta. La productividad suele ser alta.

Estructura de Niveles

Estructura de Niveles Propuesta para un Sistema Operativo

  • Nivel 1: Circuitos electrónicos. Registros, puertas, buses, etc. Oper: Poner a 0, transferir, activar, complementar.
  • Nivel 2: Conjunto de instrucciones: Pila de evaluación, intérprete de microprogramas, datos escalares y vectoriales. Oper: Cargar, almacenar, sumar.
  • Nivel 3: Procedimientos: Procedimientos, pila de llamadas, registro de activación. Oper: Marcar la pila, llamar, retornar.
  • Nivel 4: Interrupciones. Programas de gestión de interrupciones. Oper: Invocar, enmascarar, desenmascarar, reintentar.
  • Nivel 5: Procesos primitivos. Procesos primitivos, semáforos, lista de procesos listos. Oper: Suspender, continuar, esperar, señalizar.

Gestión de Memoria

El Sistema Operativo tiene cinco responsabilidades principales en la gestión del almacenamiento que son:

  • Aislamiento del proceso.
  • Asignación y gestión automática.
  • Soporte para la programación modular.
  • Protección y control de acceso.
  • Almacenamiento a largo plazo.

La Planificación y Gestión de Recursos

Cualquier política de asignación y gestión depende de tres factores claves:

  • Equitatividad: Trato igual a los procesos cuando solicitan un recurso.
  • Respuesta diferencial: Clasificar trabajos por categoría según criterio y prioridad.
  • Eficiencia: Maximizar la productividad y minimizar el tiempo de respuesta.

Seguridad y Protección de la Información

Aborda los problemas de control de acceso a sistemas informáticos y a la información. Podemos agruparlas genéricamente en cuatro categorías:

  • Disponibilidad: Relacionado con la protección del sistema frente a las interrupciones.
  • Confidencialidad: Asegura que los usuarios no puedan leer los datos sobre los cuales no tienen autorización.
  • Integridad de datos: Protección de los datos frente a modificaciones no autorizadas.
  • Autenticidad: Relacionado con la verificación apropiada de la identidad de los usuarios.

Entradas relacionadas: