Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Cap 8: DeadLock Resumen: • El interbloqueo ocurre en un conjunto de procesos cuando todos los procesos del conjunto están esperando un evento que solo puede ser causado por otro proceso en el conjunto. • Hay cuatro condiciones necesarias para el interbloqueo: (1) exclusión mutua, (2) retener y esperar, (3) sin apropiación y (4) espera circular. El abrazo mortal o deadlock es soloposible cuando las cuatro condiciones están presentes. • El abrazo mortal o deadlock se pueden modelar con grafos de asignación de recursos, donde un ciclo indica un abrazo mortal o deadlock. • Los interbloqueos se pueden prevenir asegurándose de que uno de las cuatro condiciones para el interbloqueo no pueden ocurrir. De las cuatro condiciones necesarias, eliminar la espera circular es el único enfoque práctico. • El interbloqueo se puede evitar utilizando el algoritmo del banquero, que no otorga recursos, si hacerlo llevaría al sistema a un estado inseguro, donde sería posible un abrazo mortal o deadlock. • Un algoritmo de detección de bloqueo puede evaluar procesos y recursos en un sistema en ejecución para determinar si un conjunto de procesos está en un estado de bloqueo. • Si se produce un interbloqueo, un sistema puede intentar recuperarse del interbloqueo abortando uno de los procesos en la espera circular o quitando recursos que se han asignado a un proceso interbloqueado. Cap 9: Administración de Memoria Resumen: • La memoria es fundamental para el funcionamiento de un sistema de computación moderno y consta de una gran variedad de bytes, cada uno con su propia dirección. • Una forma de asignar un espacio de direcciones a cada proceso es mediante el uso de registros base y límite. El registro de base contiene el registro físico con la dirección de memoria legal más pequeña, y el límite especifica el tamaño del rango. • Traducir las referencias de direcciones simbólicas a direcciones físicas reales puede ocurrir durante (1) compilación, (2) carga o (3) tiempo de ejecución. • Una dirección generada por la CPU se conoce como dirección lógica, quela unidad de gestión de memoria (MMU) la traduce en una dirección física en memoria. 2 • Un método para asignar memoria es asignar particiones de memoria contigua de diferentes tamaños. Estas particiones se pueden asignar en base a tres posibles estrategias: (1) primer ajuste, (2) mejor ajuste y (3) peor ajuste. • Los sistemas operativos modernos utilizan la paginación para administrar la memoria. En este proceso, la memoria física se divide en bloques de tamaño fijo llamados marcos y la memoria lógica en bloques del mismo tamaño llamados páginas. • Cuando se usa la paginación, una dirección lógica se divide en dos partes: un número de página y el desplazamiento de página. El número de página sirve como índice en una tabla de páginas por proceso que informa el marco en la memoria física que contiene la página. El desplazamiento es la ubicación específica dentro del marco al que se hace referencia. • El búfer de traducción anticipada (TLB) es un caché de hardware de la tabla de páginas. Cada entrada de TLB contiene un número de página y su marco correspondiente. • El uso de un TLB en la traducción de direcciones para sistemas de búsqueda implica obtener el número de página de la dirección lógica y comprobar si el marco para La página está en TLB. Si es así, la trama se obtiene de la TLB. Si el marco no está presente en el TLB, debe recuperarse de la tabla de páginas. • La paginación jerárquica implica dividir una dirección lógica en varias partes, cada uno se refiere a diferentes niveles de tablas de páginas. A medida que las direcciones se expanden más allá de 32 bits, el número de niveles jerárquicos puede aumentar. Las dos estrategias que abordan este problema son tablas de páginas con hash y tablas de páginas. • El intercambio (swapping) permite que el sistema mueva las páginas que pertenecen a un proceso al disco para incrementar el grado de multiprogramación. • La arquitectura Intel de 32 bits tiene dos niveles de tablas de páginas y admite tamaños de página de 4 KB o 4 MB. Esta arquitectura también es compatible con la dirección de página extensión, que permite a los procesadores de 32 bits acceder a un espacio de direcciones superior a 4 GB. Las arquitecturas x86-64 y ARMv9 son Arquitecturas de 64 bits que utilizan paginación jerárquica. Cap10: Memoria Virtual Resumen • La memoria virtual abstrae la memoria física en una Matriz de almacenamiento uniforme extremadamente grande. 3 • Los beneficios de la memoria virtual incluyen lo siguiente: (1) un programa puede ser más grande que la memoria física, (2) un programa no necesita estar completamente en memoria, (3) procesos pueden compartir memoria, y (4) procesos pueden ser creados más eficientemente. • La paginación por demanda es una técnica mediante la cual las páginas se cargan solo cuando se demandan durante la ejecución del programa. Páginas que nunca se demandan por lo tanto, nunca se cargan en la memoria. • Se produce un fallo de página cuando se intenta acceder a una página que no está actualmente en la memoria. La página debe traerse desde el disco a un marco de página disponible en la memoria. • Copy-on-write permite que un proceso hijo comparta el mismo espacio de direcciones que su padre. Si el proceso hijo o padre escribe (modifica) una página, se realiza una copia de la página. • Cuando la memoria disponible se agota, un algoritmo de reemplazo de página selecciona una página existente en la memoria para reemplazarla con una nueva página. Los algoritmos de Reemplazo de página incluyen FIFO, óptimo y LRU. Los algoritmos LRU puros no son prácticos de implementar y la mayoría de los sistemas utilizan Algoritmos de aproximación LRU. • Los algoritmos de reemplazo de página global seleccionan una página de cualquier proceso en el sistema para reemplazo, mientras que los algoritmos de reemplazo de página local seleccionan una página del proceso que falla. • El trashing (hiperpaginación) (o “paliza”) se produce cuando un sistema dedica más tiempo a paginar que a ejecutar. • Una localidad representa un conjunto de páginas que se utilizan juntas de forma activa. Cuando un proceso se ejecuta, se mueve de localidad en localidad. Un conjunto de trabajo se basa en la localidad y se define como el conjunto de páginas actualmente en uso por un proceso • La compresión de memoria es una técnica de administración de memoria que comprime varias páginas en una sola página. La memoria comprimida es una alternativa a la paginación y se utiliza en sistemas móviles que no admiten paginación. • La memoria del kernel se asigna de manera diferente a los procesos en modo usuario; está asignado en trozos contiguos de diferentes tamaños. Dos técnicas comunes para la asignación de memoria del kernel son (1) el sistema de amigos y (2) la asignación de bloques. • El alcance de TLB se refiere a la cantidad de memoria accesible desde el TLB y es igual al número de entradas en el TLB multiplicado por el tamaño de la página. Una técnica para aumentar el alcance de TLB es aumentar el tamaño de las páginas. • Linux, Windows y Solaris administran la memoria virtual de manera similar, utilizando paginación bajo demanda y copia en escritura, entre otras características. 4 Cada sistema también utiliza una variación de la aproximación LRU conocida como algoritmo de reloj. Cap 11: Estructura de Almacenamiento Masivo Resumen: • Las unidades de disco duro y los dispositivos de memoria no volátiles son las principales unidades de E/S de almacenamiento en la mayoría de las computadoras. El almacenamiento secundario moderno está estructurado como grandes matrices unidimensionales de bloques lógicos. • Las unidades de cualquier tipo se pueden conectar a un sistema informático en una de las tresformas: (1) a través de los puertos de E/S locales en la computadora host, (2) directamente conectado a placas base, o (3) a través de una red de comunicaciones o conexión a la red de almacenamiento. • Las solicitudes de E/S de almacenamiento secundario son generadas por el sistema de archivos y por el sistema de memoria virtual. Cada solicitud especifica la dirección en el dispositivo al que se hará referencia en forma de un número de bloque lógico. • Los algoritmos de planificación de discos pueden mejorar el ancho de banda efectivo de los discos duros, el tiempo medio de respuesta y la variación en el tiempo de respuesta. Algoritmos como SCAN y C-SCAN están diseñados para realizar tales mejoras a través de estrategias para ordenar la cola de disco. Rendimiento de la planificación de discos los algoritmos pueden variar mucho en los discos duros. En contraste, porque los discos de estado sólido no tienen partes móviles, el rendimiento varía poco entre algoritmos de planificación y, con bastante frecuencia, se utiliza una estrategia FCFS simple. • El almacenamiento y la transmisión de datos son complejos y con frecuencia dan lugar a errores. La detección de errores intenta detectar tales problemas para alertar al sistema de acción correctiva y evitar la propagación de errores. La corrección de errores puede detectar y reparar problemas, según la cantidad de datos de corrección disponible y la cantidad de datos dañados. • Los dispositivos de almacenamiento se dividen en una o más partes de espacio. Cada partición puede contener un volumen o formar parte de un volumen de varios dispositivos. Los sistemas de archivos se crean en volúmenes. • El sistema operativo administra los bloques del dispositivo de almacenamiento. Nuevos dispositivos normalmente vienen preformateados. El dispositivo está particionado, los sistemas de archivos son creados, y los bloques de arranque se asignan para almacenar el programa de arranque del sistema, si el dispositivo contiene un sistema operativo. Finalmente, cuando un bloqueo la página está dañada, el sistema debe tener una forma de trabar ese bloque o para reemplazarlo lógicamente con un repuesto. 5 • Un espacio de intercambio eficiente es clave para un buen rendimiento en algunos sistemas. Algunos sistemas dedican una partición sin procesar para intercambiar espacio y otros usan un archivo en su lugar, dentro del sistema de archivos. Aún otros sistemas permiten al usuario o administrador del sistema tomar la decisión proporcionando ambas opciones. • Debido a la cantidad de almacenamiento requerida en sistemas grandes y porque los dispositivos de almacenamiento fallan de varias formas, los dispositivos de almacenamiento secundarios son frecuentemente redundante mediante algoritmos RAID. Estos algoritmos permiten más de una unidad para ser utilizada para una operación determinada y permitir la continuación funcionamiento e incluso recuperación automática ante un fallo de la unidad. Los algoritmos RAID están organizados en diferentes niveles; cada nivel proporciona alguna combinación de fiabilidad y altas tasas de transferencia. • El almacenamiento de objetos se utiliza para problemas de grandes datos, como la indexación de Internet y almacenamiento de fotos en la nube. Los objetos son colecciones de datos autodefinidos, direccionado por ID de objeto en lugar de nombre de archivo. Normalmente utiliza replicación para la protección de datos, calcula basándose en los datos de los sistemas donde una copia de los datos existe, y es escalable horizontalmente para una gran capacidad y fácil expansión. Cap 12: Sistemas de E/S Resumen: • Los elementos básicos de hardware involucrados en las E/S son buses, placas controladoras de dispositivos, y los propios dispositivos. • Se realiza el trabajo de mover datos entre dispositivos y la memoria principal por la CPU como E/S programadas o se descarga a una controladora DMA. • El módulo del kernel que controla un dispositivo es un driver de dispositivo. La interfaz de llamada al sistema que se proporciona a las aplicaciones está diseñada para manejar varias categorías de hardware, incluidos dispositivos de bloque, dispositivos de flujo de caracteres, archivos mapeados en memoria, sockets de red y temporizadores de intervalos programados. Las llamadas al sistema suelen bloquear los procesos que las emiten, pero también hay llamadas no bloqueantes y asincrónicas son utilizadas por el propio kernel y por las aplicaciones que no deben dormir mientras espera que se complete una operación de E/S. • El subsistema de E/S del kernel proporciona numerosos servicios. Entre estos se encuentran Planificación de E/S, almacenamiento en búfer, almacenamiento en caché, almacenamiento en cola (spooling), reserva de dispositivos, manejo de errores. Otro servicio, la traducción de nombres, establece las conexiones entre dispositivos de hardware y los nombres de archivos simbólicos utilizados por las aplicaciones. Eso implica varios niveles de mapeo que se traducen de una cadena de caracteres nombres, a drivers de dispositivos específicos y direcciones de dispositivos, y luego a direcciones de puertos de 6 E/S o controladoras de bus. Este mapeo puede ocurrir dentro del espacio de nombres del sistema de archivos, como lo hace en UNIX, o en un dispositivo separado del espacio de nombres, como lo hace en MS-DOS. • STREAMS es una implementación y metodología que proporciona un marco para un enfoque modular e incremental para escribir drivers de dispositivos y protocolos de red. A través de los STREAMS, los drivers se pueden apilar, con datos que pasan a través de ellos secuencial y bidireccionalmente para su procesamiento. • Las llamadas al sistema de E/S son costosas en términos de consumo de CPU debido a las muchas capas de software entre un dispositivo físico y una aplicación. Estas capas implican una sobrecarga de varias fuentes: cambio de contexto apara cruzar al kernel, señalar e interrumpir el manejo para dar servicio a los dispositivos de E/S y la carga en la CPU y el sistema de memoria para copiar datos entre los búferes del kernel y el espacio de la aplicación.
Compartir