Apuntes de Clase de Sistemas Operativos

96
11 de febrero de 2010 SISTEMAS OPERATIVOS Nivel 5 Traducción (compilador) Nivel 4 Traducción ensamblador Nivel 3 Interpretación parcial (S.O) Nivel 2 Interpretación microprogramación Nivel 1 Los microprogramas son ejecutados directamente por la máquina Nivel 0 Maquina Real Nivel de lenguaje Nivel de lenguaje Nivel de de maquina del Nivel de maquina del sistema Nivel de microprogramació Nivel de lógica digital

description

Todos los apuntes de clase de sistemas Operativos durante el primer semestre de 2010

Transcript of Apuntes de Clase de Sistemas Operativos

Page 1: Apuntes de Clase de Sistemas Operativos

11 de febrero de 2010

SISTEMAS OPERATIVOS

Nivel 5

Traducción (compilador)

Nivel 4

Traducción ensamblador

Nivel 3

Interpretación parcial (S.O)

Nivel 2

Interpretación microprogramación

Nivel 1

Los microprogramas son ejecutados directamente por la máquina

Nivel 0

Maquina Real

Nivel de lenguaje orientado al problema

Nivel de lenguaje ensamblador

Nivel de de maquina del sistema operativo

Nivel de maquina del sistema convencional

Nivel de microprogramación

Nivel de lógica digital

Page 2: Apuntes de Clase de Sistemas Operativos

Sistemas Operativos

Como maquina ampliada: es el software cuya función es presentar al usuario el equivalente de una maquina virtual (N3) que sea más fácil de programar que el hardware implícito.

Como manejo de recursos: Es el administrador de los recursos ofrecidos por el hardware para lograr un eficiente rendimiento de los mismos.

Es un programa o conjunto de programas que actúan como intermediarios entre usuarios y el hardware del computador.

Clase de sistemas operativos 17 de febrero

Ejecución de una orden: EDIT FUENTE.TXT

Entrada de orden Interprete de comandos y ejecución del programa Verifica presencia de Edit en memoria sino lo pasa a un subsistema de archivos( tamaño) El gestor de memoria asigna memoria El cargador lo carga Se crea el BCP El BCP se matricula en la lista de procesos listos El planificador elije el programa para ejecución EDIT solicita al SO la apertura de fuente .txt Se registra fuente.txt en archivos activos Dialogo Teclado-pantalla Termina: guarda, cierre, libera memoria

Área de memoria de intercambio –Bufer

Objetivos buscados del sistema operativo Eficiencia: hacer las cosas con la menor cantidad de recursos Robustez: Capaz de responder a todas las exigencias de los usuarios,” Aguante el

uso y el abuso” Escalabilidad: Capaz de atender volúmenes pequeños y grandes de trabajo, crece

dependiendo de las exigencias. Extensibilidad: Que se le puedan agregar mas módulos, mas funciones Portabilidad: Que se pueda ejecutar en diferentes plataformas (hardware) Seguridad: el sistema debe dejar hacer a los usuarios lo que puede hacer, en el

momento indicado.

Page 3: Apuntes de Clase de Sistemas Operativos

Protección: el sistema no debe realizar actividades no permitidas Interactividad: Usabilidad: amigable con el usuario, fácil de entender y manejar Auditabilidad: permite rastrear las aplicaciones, hacer seguimientos a las

actividades, (Quien, cómo y cuándo) Transparencia: Que de la información correcta en el momento oportuno Estabilidad: Que el sistema no se salga de casillas por nada. Que no saque errores

con frecuencia

Ambientes de computación

Computación tradicional:

PCs, servidores, terminales de mini/maxi acceso remoto limitado

Redes de computadores:

LAN, WAN, MAN, PAN (personal Area Network, HAN (home area network)

Computación cliente servidor

Computación P2P (peer to peer)

No se distingue cliente de servidor

Ejemplo Napster Gnutella

Computación basada en la web:

Cliente servidor y servicios de web, acceso remoto adecuado, servidores sin ubicación.

Computación embebida/empotrada

Controladores de maquinas, microondas, etc, (se tienen dispositivos inteligentes dentro de equipos)

Características limitadas en los sistemas operativos

Poca o ninguna interacción con el usuario, acceso remoto

Es la forma más extendida del uso de los computadores

Grid computing (computación en red)

Page 4: Apuntes de Clase de Sistemas Operativos

Clound computing Computación en la nube)

Utility computing

18 de febrero de 2010

La vitalización ha hecho posible el desarrollo de los sistemas y la información en la nube a la cual se pueden acceder remotamente por medio de un proveedor de servicios.

Tipos de sistemas operativos

Monoprogramación:

Por lotes:

PROGRAMA+DATOS+ORDENES No interacción (nomina análisis de tiempo, análisis estadístico, cálculos científicos, etc.

Procesamiento FCFS, no gestión E/S, pobre gestión archivos.

Interactiva

Por lotes e interactiva

Page 5: Apuntes de Clase de Sistemas Operativos

Fortan Monitor System

Memoria

Monitor residente

Drivers de dispositivos

Secuenciador automático de trabajos

Interprete de las tarjetas de control (JCL)

Page 6: Apuntes de Clase de Sistemas Operativos

Tipos de sistemas Operativos

Multiprogramación:

Multitarea: Varios procesos

Mono usuario: 1 solo usuario

Multiusuario: varios usuarios interactivos

Multiacceso: Un programador varios terminales

Multiprocesador: Varios procesadores

Tiempo compartido: Multiprog. Int+lote

Tiempo real: Respuesta de acuerdo a entorno (responde de acuerdo al sistema que está controlando)

Combinados: Mezcla varias modalidades

SOR: Múltiples computadores, C/maquina ejecuta su SO Distribuidos: s/ autónomos capaces de comunicación y cooperación mediante interconexiones HW y SW ven el S/ como si fuera uniprocesador

En multiprogramación se utilizan más recursos, que en monoprogramacion

Sistemas de computación personal

Computadores personales- computadores dedicados a un solo usuario.

Dispositivos I/O teclados, ratón, pantallas, pequeñas impresoras

Conveniencia y responsabilidad del usuario

Pueden adoptar la tecnología desarrollada para los grandes sistemas operativos. Con frecuencia los individuos usan en forma aislada el computador y no requieren de avanzada utilización de características de protección de la CPU.

Desktop, portatil, laptop, palmtop, wearable PC (computadores que se ponen- vestir), tablet PC, PDA, celulares 3ra generación, reproductores mp3/mp4, RFID

Page 7: Apuntes de Clase de Sistemas Operativos

23 DE FEBRERO DE 2010

Wearable Pc: Tecnología en la cual se puede llevar el pc a todas partes, Dispositivos mucho más reducidos. ZYPAD: computador que se usa en la muñeca, MITHRIL, WPC Quantum3d Especializado para uso militar, equipo de infantería

Smartbooks: Ipad

Sistemas embebidos/ computación ubicada

Los sistemas embebidos son sistemas computacionales con un alto acoplamiento en la integración de hardware y software, se diseña para ejecutar funciones dedicadas.

Presente en todas partes: empresa, hogar… automatización industrial, defensa, transporte, viajes espaciales, entretenimiento.

Ej path finder de NASA, misiles guiados, automóviles, juguetes, electrodomésticos, cámaras teléfonos celulares, PDAS, GPS, digital Set-top box (DST), enrutadores.

Caracterizados por un pequeño conjunto de recursos especializados.

Los procesadores SoC (system-on a-chip) son muy atractivos para sistemas embebidos.

Admon eficiente de recursos: memoria limitada –procesadores lentos – pequeñas pantallas de visualización .

Ecos, embedded inux, Linux CE, FreeDOS, FreeRTOS, LynxOS, RTOS, NetBSD, Open BSD, Inferno, OSE, Os-9, QNX, VXWorks, Windows CE, Windows XP Embeddedm IOS

CE: HAvi (Home audio Video interoperability), jini

RFID

(Radio Frecuency Identification) identificación por radio frecuencia

Todos los sistemas RFDI aw compone de un interrogador o sistema de base que lee y escribe datos en los dispositivos y un “Transponder” o un transmisor que responde al interrogador. El interrogador genera un campo de radiofrecuencia, normalmente conmutando una bobina a alta frecuencia. Las frecuencias usuales van desde 125khz hasta la banda ISM de 2.4 GHZ incluso más.

El campo de radio frecuencia genera una corriente eléctrica sobre la bobina de recepción del dispositivo. Esta señal es rectificada y de esta manera se alimenta el circuito.

Page 8: Apuntes de Clase de Sistemas Operativos

Cuando la alimentación llega a ser suficiente el circuito transmite sus datos.

El interrogador detecta los datos transmitidos por la tarjeta como una perturbación del propio nivel de la señal

Esta tecnología es usada para las tarjetas de transporte TIM

Seguimiento a personas

Identificador de mascotas

Seguimiento de paquetes enviados

Inventarios en las empresas

Pago en los supermercados etc.

25 de febrero de 2010

Participación en el mercado de los SO de teléfonos Móviles

Video en youtube “the future of mobile”

Sistemas de tiempo Real

Con frecuencia se utilizan como dispositivos de control en aplicaciones dedicadas tales como el control de experimentos científicos, sistemas de imágenes médicas, y algunos sistemas de presentación, Restricciones de tiempo fijo bien definidas.

Sistemas de tiempo real duros.

-La memoria secundaria es muy limitada o ausente, los datos son almacenados en memoria de corto plazo (memoria de solo lectura (ROM)) o similar.

–Tiene conflictos con los sistemas de tiempo compartido, no está soportado por los sistemas operativos de propósito general.

Sistemas de tiempo real de utilidad limitada en industrias de control o robótica. Útil en aplicaciones que requieren de avanzadas características del sistema operativo (multimedia, realidad virtual)

Page 9: Apuntes de Clase de Sistemas Operativos

La estructura de un sistema de tiempo real está conformada de un sistema controlador y al menos un sistema controlado

Los sistemas de tiempo real deben producir resultados computacionales exactos.

2 de marzo de 2010

Sistemas multiprocesador con más de una CPU en comunicación muy cercana.

Sistemas fuertemente acoplados – los procesadores comparten la memoria y el reloj; la comunicación por lo general se realiza a través de la memoria compartida.

Ventajas de los sistemas paralelos:

Incremento del rendimiento

Económicos

Incrementan confiabilidad

Degradación gradual

Sistemas de fallos controladores por software

Page 10: Apuntes de Clase de Sistemas Operativos

Multiprocesamiento: múltiples tareas

Sistemas multiprocesador

Multiprocesamiento simétrico (SMP)

Cada procesador corre una copia idéntica del SO

Muchos procesadores pueden correr a la vez sin deterioro del rendimiento.

La mayoría de los SO modernos soportan SMP

Multiprocesamiento antisimetrico

Sistemas Distribuidos

Distribuyen los cálculos entre procesadores

Objetivo principal: compartir recursos y datos entre usuarios ofreciendo transparencia

Sistemas devilmente acoplados – cada procesador tiene su propia memoria local; los procesadores se comunican entre si a través de varias líneas de comunicación

Sistema Descripción Objetivo principal

DOS SoS distribuidos SOS fuertemente acoplado para multiprocesadores y multicomputadores homogéneos

Ocultar y administrar los recursos de hw

NOS Sos red Sos débilmente acoplados para multiplicadores heterogéneos (LAN y WAN)

Ofrece servicios locales a clientes remotos

Page 11: Apuntes de Clase de Sistemas Operativos

Middleware (virtualización) Capa adicional por encima de un NOS, que implementa servicios de propósito general

Proporciona transparencia en la distribución

Sistemas operativos Distribuidos ->DOS

Proporcionan archivos compartidos

Proveen esquemas de comunicación

Corren independientemente de otros computadores en la red

Accent, Bos/Net, Cocanet – Unix, CP/Net, cp/Nos, hetnos, Lahnos, Mp/Net, Mp/Nos, Netware, Newcastle- Connection, Nsw, pc/Nos, Rio/Cp, Rsexec, Trix, Unetix,

Estructura general de un de un sistema operativo de red (NOS)

Page 12: Apuntes de Clase de Sistemas Operativos

Maquina A Maquina B Maquina C

RED

En un sistema distribuido basado en middleware, los protocolos usados por cada capa middleware deben ser los mismos, así como las interfaces que ofrecen a las aplicaciones.

Aplicaciones distribuidas

Servicios Middleware

Kernel

Servicios del SO Red

Kernel

Servicios del SO Red

Kernel

Servicios del SO Red

Page 13: Apuntes de Clase de Sistemas Operativos

9 de marzo de 2010

ARQUITECTURA DEL SISTEMA

Bus del sistema

Los controladores son los que permiten que los dispositivos se conecten

Arranque del computador

El arranque/reset carga valores predefinidos en registro

Dirección de arranque del cargador del ROM

Se ejecuta el cargador ROM del sistema

Test del sistema

Trae a memoria el boot del SO

Unidad de memoria unidad de memoria

CPU Controlador de disco

Controlador unidad óptica

Controlador de impresora

Controlador de memoria

Memoria

Page 14: Apuntes de Clase de Sistemas Operativos

El cargador RoM carga el sector del boot del SO y le da control, sin multos> Programa gestor de arranque

-El Boot del SO carga el SO residente y da el control al programa de arranque del SO, que:

Comprueba el hardware

Comprueba el sistema de ficheros

Establece las tablas del SO

Crea procesos (según el tipo de SO)

Proceso INIT

Proceso o tareas del sistema (demonios)

Procesos de login (uno por terminal)

Programa cargador (identificador)

-Tras la autenticación, el proceso login se convierte en Shell

-Toma control SO (inicio)

-Espera de ocurrencia de suceso (interrupción hw/sw)

-si interrupción

Desactiva las otras interrupciones

Guarda estado sistema

Ejecuta rutina de vector de interrupciones/ escrutinio

Reactiva variables de estado (reactiva después de una interrupción)

Estructura del acceso directo a memoria (DMA) (M)

Page 15: Apuntes de Clase de Sistemas Operativos

Utilizado por dispositivos de E/S de alta velocidad capaces de transmitir información a una velocidad muy cercana a la de la memoria.

-El controlador del dispositivo transfiere bloques de datos del buffer de almacenamiento directamente a la memoria principal sin interrupciones de la CPU

Solo una interrupción es generada por bloque, más bien que una interrupción por byte.

1. El procesador envía una solicitud de I/O al controlador I/O, el cual envía una solicitud al disco. El procesador continúa ejecutando instrucciones.

2. El disco envía los datos al controlador del I/O; los datos se colocan en la dirección de memoria especificada por la orden DMA.

3. El disco envía una interrupción al procesador para indicar que la petición I/O se ha realizado.

Jerarquía del almacenamiento

Los sistemas de almacenamiento se organizan por jerarquías.

Velocidad

Costo

Volatilidad: Cuando una memoria no es capaz de almacenar los datos que registra cuando se corta la energía.

Caching- Es la copia de información en un sistema de almacenamiento más rápido; la memoria principal puede verse como el último cache para el almacenamiento secundario.

Jerarquía de los dispositivos de almacenamiento

L0: Registers

L1: On-Chip L1 Cache (SRAM)

L2: Main Memory (DRAM)

L3:Local secondary storage Disco duro

L4:

Page 16: Apuntes de Clase de Sistemas Operativos

Tiempo de acceso típico Capacidad Típica

10 ps Registros 1K

0.2 ns Cache 16MB

5-250ns Memoria principal 16 GB

10 ms disco magnético XXTB

100 s Cinta Magnética XXTB

Unidades de medida

10^3 milli - kilo

10^6 micro - Mega

10^9 nano - Giga

10^12 pico - Tera

10^15 femto- Peta

10^18 atto- exa

10^21 zepto – Zetta

10^24 yocto - yotta

11 de marzo de 2010

Protección de hardware

Operación del modo dual

Protección de E/S

Protección de memoria

Protección de CPU

Operación en modo dual:

Page 17: Apuntes de Clase de Sistemas Operativos

El compartir los recursos del sistema requiere que el SO se asegure que un programa incorrecto no pueda propiciar que otros programas se ejecuten de forma incorrecta.

Proporciona soporte al hardware para diferenciar entre al menos dos modos de operación.

1. Modo usuario: Ejecución de parte del usuario.

2. Modo monitor (también modo supervisor o modo del sistema) – Ejecución realizada por parte del sistema operativo.

Operación modo dual

Se adiciona al hardware un bit de modo para indicar el modo actual: monitor (0) o usuario (1).

Cuando sucede una interrupción o fallo el hardware se cambia a modo monitor

Protección de E/S

Todas las instrucciones de E/S son privilegiadas

Debe asegurarse que el programa del usuario no pueda tener el control del computador en el modo supervisor (ej: un programa de usuario que, como parte de su ejecución, almacena una nueva dirección en el vector de interrupciones)

Protección de memoria

monitor Usuario

Interrupción/fallo

Page 18: Apuntes de Clase de Sistemas Operativos

Debe proveer protección de memoria al menos para el vector de interrupciones y el vector de las rutinas de servicios de interrupciones.

Con el fin de tener la protección de memoria, se agregan dos registros que determinan el rango de las direcciones validas que un programa puede acceder:

-Registro base- Contiene la dirección legal física más pequeña.

-Registro limite- Contiene el tamaño del rango.

-La memoria fuera del rango es protegida.

El registró base y el límite define un espacio de direcciones lógico.

Proteccion por hardware

Cuando se está ejecutando en modo supervisor, el SO tiene acceso irrestricto tanto a la memoria del usuario como la del supervisor.

Las instrucciones de carga para el registro base

Protección por CPU

Temporizador – Interrumpe al computador después de un periodo especifico para garantizar que el SO mantenga el control.

-El temporizador se decrementa por cada pulsación del reloj.

-Cuando el temporizador alcanza el valor de 0, ocurre una interrupción.

Kernel

Trabajo 1

Trabajo 2

Trabajo 3

Trabajo 4

Registro base

Registro limite

Page 19: Apuntes de Clase de Sistemas Operativos

El temporizador se utiliza comúnmente para implementar tiempo compartido.

El temporizador también se utiliza para calcular el tiempo actual.

La carga de temporizador es una instrucción privilegiada.

COMPONENETES COMUNES DEL SISTEMA

Administración de procesos

Cuaderno

Tipo de interrupción Descripción Observación

SVC Llamada al sistema operativo

I/O Cambio de estado de un canal o dispositivo

Externa Evento externo al sistema

Reset Reinicio del sistema

Verificación de programa

Verificación de hardware

Llamadas al sistema

Page 20: Apuntes de Clase de Sistemas Operativos

Las llamadas al sistema proporcionan la interface entre un programa corriendo y el sistema operativo.

En general están disponibles como instrucciones en ensamblador

Se han definido lenguajes para reemplazar el lenguaje ensamblador en programación de sistemas que permita realizar en forma directa las llamadas al sistema (ej. C. Bliss, PL/360)

Tres métodos genéricos para pasar parámetros a las llamadas al sistema:

-En registros

-En una tabla de memoria, cuya dirección se pasa al SO en un registro.

-Poner los parámetros en la pila del programa y deja que el SO los extraiga.

Cada SO proporciona sus propias llamadas al sistema:

-Estándar POSIX (Portable Operating System Interface) en Unix y Linuz

cuaderno

Hardware software

Page 21: Apuntes de Clase de Sistemas Operativos

Servicios del SO

El controlador de dispositivo u otro sistema hardware genera una interrupción.

El procesador termina la ejecución de la instrucción actual

El procesador indica el reconocimiento de la interrupción

El procesador apila PSW y el PC en la pila de control

El procesador carga un nuevo valor en el pc basado en la interrupción

Salva el resto de la información de estado del proceso

Procesa la interrupción

Restaura la información de

estado del proceso

Restaura los antiguos PSW y PC

Page 22: Apuntes de Clase de Sistemas Operativos

Los servicios se programan mediante sentencias de un lenguaje

Estas sentencias son como llamadas a función

Se convierten, mediante

Interfaz del programador

Esta interfaz recupera la visión que como maquina extendida tiene el usuario del sistema operativo:

-Portable operating System Interface: POSIX (interfaz de sistemas operativos portables de IEEE basado en Unix) 1003 ISO/IEC 9945

-Win32

Estándar POSIX

Interfaz estándar de sistemas operativos de IEEE

Objetivo; Posibilidad de las aplicaciones entre diferentes plataformas y sistemas operativos

Características de POSIX

Las funciones normalmente devuelven 0 en caso de éxito o -1 en caso de error.

Recursos gestionados por el sistema operativo se referencian mediante descriptores.

Características de WIn32

Page 23: Apuntes de Clase de Sistemas Operativos

Define los servicios ofrecidos por los sistemas Windows 95/98, Windows NT, Windows 2000, XP

No es un estándar

API totalmente distinto a POSIX

Los recursos se referencia mediante manejadores

Administración de procesos

Un proceso es un programa en ejecución. Un proceso para lograr sus objetivos requiere algunos recursos como tiempo de CPU, memoriam archivos, y dispositivos de entrada y salida.

El sistema operativo es responsable de las siguientes actividades relacionadas con la administración de procesos:

-Creación y eliminación

-Supervisión y reanudación

-Proveer los mecanismos para: (sincronización de procesos, comunicación entre procesos)

16 de marzo de 2010

Administración de memoria

La memoria es un gran arreglo de palabras y bytes, cada uno con su propia dirección,. Es un repositorio de acceso rápido de datos compartidos por lo cual la CPU y los dispositivos E/S.

La memoria principal es un dispositivo de almacenamiento volátil.

El sistema operativo es responsable por las siguientes actividades relacionadas don la administración de memoria:

-Llevar el rastro de las componentes de

Page 24: Apuntes de Clase de Sistemas Operativos

Administración de memoria secundaria

Dado que la memoria principal es volátil y muy pequeña para acomodar todos los datos y programas permanentes, el sistema de de computación debe proveer almacenamiento secundario para respaldar la memoria principal.

La mayoría de los computadores modernos utilizan discos como medio principal de almacenamiento en línea, tanto como para programas como para datos.

El sistema operativo es responsable por las siguientes tareas relacionadas con la administración secundaria.

-Administración del espacio libre

-Asignación de espacio

-Planificación del disco

Almacenamiento terciario Memoria auxiliar, diferente a memoria principal puede estar en línea o fuera de línea

Administración de archivos

Un archivo es una colección de información relacionada definida por su creador, En general los archivos representan programas (tanto en formato fuente como objeto) y datos

El sistema operativo es responsable por las siguientes actividades en relación con la administración de archivos:

-Creación y borrado de archivos

-Creación y borrado de directorios.

-Soporte de primitivas para manipular archivos y directorios.

-Mapeo de archivos en almacenamiento secundario.

-Respaldo de archivos en medios de almacenamientos estables (no volátiles)

Interfaz del usuario: intermediación del sistema con los usuarios

Funciones:

-Manipulación de archivos y directorios

-Herramientas de desarrollo de aplicaciones

Page 25: Apuntes de Clase de Sistemas Operativos

-Comunicación con los otros sistemas

-Información de estado

-Configuración de la propia interfaz y entorno

-Intercambio de datos y aplicaciones

-Control de acceso

-Sistema de ayuda interactivo

Tipos

-Interfaces alfanuméricas (interpretes de mandatos)

-Interfaces gráficas

Sistema de interpretes de comandos

Muchos comandos se dan al sistema operativo por instrucciones de control que tiene que ver con:

-Administración y creación de procesos

-Manejo de E/S

-Administración de memoria secundaria

-Administración de memoria principal.

Interprete de mandatos

Programa cuya función es obtener los mandatos del usuario y ordenador su ejecución del sistema operativo.

Hay dos tipos básicos: interpretes de mandatos internos, Interpretes de mandatos externos.

Casi todos los mandatos son sentencias de control para los gestores del SO descritos (procesos, E/S, ficheros, protección y comunicaciones)

Puede haber múltiples interpretes de mandatos sobre el mismo SO, la visión del mismo SO cambia según el usado.

Interprete de mandatos internos

Page 26: Apuntes de Clase de Sistemas Operativos

Interprete de mandatos externos

Interprete de comandos de Unix -> Shell

Componente X window función

X server Interacción con el usuario

X Protocol Comunicaciones Cliente /servidor

X library Interface del programador

X clients Aplicaciones

Estructura del sistema – Enfoque básico

Monolítico: Un programa compuesto de rutinas entrelazadas

-Programa central, procedimientos de servidores,

Procedimientos de uso general

18 de marzo de 2010

Apolications

System call interface

Kernel

MM PS IPC FS I/O NET

MM: MANAGER MEMORY

Page 27: Apuntes de Clase de Sistemas Operativos

Estructura de niveles de Ms- DOS

Ms- DOS fue escrito para proveer la mayor funcionalidad en el menor espacio.

No se dividió en módulos

No obstante MS-DOS tiene alguna estructura, sus interfaces y niveles de funcionalidad no están bien separados. 1995 DOS v7

Estructura del sistema- Enfoque básico 2

Unix- Limitado por la funcionalidad de l hardware, el unix original tenían limitaciones en estructura. El sistema operativo UNIX consta de dos partes

Los programas del sistema

El Kernel

Conformado de todo lo que está por debajo de las llamadas al sistema y por encima del hardware.

Proporciona el sistema de archivos

Estructura del sistema- Enfoque por niveles

Estratos/ jerárquica

El sistema operativo está dividido en un número de capas (niveles), cada uno construido en la parte superior del nivel inferior. El nivel de abajo, es el hardware; el nivel mas alto (capa n) es la interface del usuario final.

Con la modularidad, las capas se seleccionan de tal forma que cada una utiliza funciones (operaciones) y servicios solo del nivel inferior.

Precursor THE, capas jerárquicas (Rings Trap) Multics

Módulos

La mayoría de los SOS modernos implementan modulos de kernel

-Utiliza el enfoque 00

-Cada componente del núcleo

Page 28: Apuntes de Clase de Sistemas Operativos

Núcleo UNIX moderno

cuaderno

Estructura de Linux

El kernel es una estructura monolítica

Los módulos son unidades independientes de software que pueden ser diseñados e implementados después de instalar el SO y se pueden instalar dinámicamente.

El administrador de módulos permite cargar los módulos en memoria y hablar con el resto del kernel. El registro de manejadores permite que los módulos le digan al resto del kernel que ya está disponible un nuevo manejador.

Enfoque Modular de solaris

Utilidades comunes

Interfaz vnode/vfs

Entorno de planificación

Conmutador de ejecución

flujo

Entorno de memoria virtual

Page 29: Apuntes de Clase de Sistemas Operativos

Estructura por niveles de OS/2

Estructura de Mac OS X

Kernel environment

Estructura de Mach (CMU)

Estructura Cliente Servidor

Proceso cliente

Servidor de procesos

Servidor de terminales

Servidor de archivos

….. ……

Servidor de memoria

NUCLEO

Estructura cliente servidor de Window NT

Application environments and common services

BSD

Mach

Page 30: Apuntes de Clase de Sistemas Operativos

Windows Architecture

Concepto de spool. (Serial Peripherial operations on line)

Programa interceptor de spool-> interceptor del periférico en línea, almacena la información a imprimir en el disco.

Transcriptor de spool-> lleva la información almacenada en disco a la impresora

Administrador de spool.

23 de marzo de 2010

Ejemplos de llamadas al sistema en Windows y unix

Maquinas virtuales

Concepto inventado por IBM como un método de tiempo compartido para los mainframes (VM/370)

“Una máquina virtual es una copia completamente protegida y aislada del hw de la máquina subyacente”

Una maquina virtual aprovecha en forma lógica el enfoque de niveles. Considera el hardware y el kernel como si fueran los dos el hardware.

Una maquina virtual proporciona una interface idéntica al hardware desnudo subyacente.

El sistema operativo crea una ilusión a los múltiples procesos de cada uno esta ejecutándose sobre su propio procesador con su propia memoria (virtual)

“Cualquier problema en la ciencia computacional puede ser resuelto con otro nivel de indirección” David Wheeler. Agregarle niveles a las maquinas multi-nivel

Arquitectura VMware

Otros ejemplos:

BOCHS. Un programa bajo licencia GPL programa c++ para simular o emular un ordenador donde instalar un sistema operativo y poder ejecutar aplicaciones en el

QEMU: Programa que se ejecuta maquinas virtuales dentro de un sistema operativo, ya sea Linux, Windows, etc. Esta maquina virtual puede ser cualquier tipo de Microprocesador o arquitectura (X86, x86-64, PowerPC, MIPS, SPARC, etc.)

Page 31: Apuntes de Clase de Sistemas Operativos

VirtualPC: Programa desarrollado por Connectix y comprado por Microsoft para crear ordenadores virtuales. Es decir, su función es emular un hardware sobre el que funcionen varios sistemas operativos, con esto se puede conseguir ejecutar varios sistemas operativos en la misma máquina a la vez y hacer que se comuniquen entre ellos.

Para virtualización

Presenta al invitado un sistema similar, pero no idéntico al hardware

El invitado debe modificarse para correr eb el hw paravirtualizado

El invitado puede ser un sistema operativo o en el caso de solaris 10 aplicaciones corriendo en contenedores.

Arquitectura de un computador

Las capas claves de implementación se comunican verticalmente a través del conjunto de instrucciones de la arquitectura, la interface de aplicación binaria y la interfase de programas de aplicación

El conjunto de instrucciones del procesador son ejecutadas dependiendo del tipo de procesador, es mayor la complejidad en el RIS que es el SIS

ABI: interface de aplicación binaria

API: interface de aplicación de programas

ISA. Interface de sistemas de

Monitores de Maquina Virtual : capa de software que permite encapsular u ocultar un hardware o software

Una componente clave de las VM son los monitores de maquina virtual (VMM) que proporcionan una capa entre los ambientes de software y el hardware, que es programable, transparente al software que tiene encima y hace eficiente el hardware sobre el que está montado.

Procesos y las VM, a) en un procesador de VM el software de virtualización traduce un conjunto de instrucciones del OS y del nivel de usuario convirtiendo una plataforma en otra.

b) En un sistema de VM, el software de virtualización traduce la ISA (arquitectura de conjunto de instrucciones) utilizada por una plataforma de hardware en otra.

Page 32: Apuntes de Clase de Sistemas Operativos

Taxonomia de Maquinas virtuales (VM)

Las VM pueden ser de procesos o de sistemas, con la misma o diferente arquitectura de conjunto de instrucciones

CDVM: Transmeta (crusoe) Os400

Ventajas y desventajas de las maquinas virtuales

El concepto de máquina virtual proporciona completa protección de los recursos del sistema, ya que cada máquina virtual está aislada de las otras maquinas virtuales. El aislamiento no permite el compartir en forma directa los recursos.

Un sistema de máquinas virtuales es un perfecto vehículo para la investigación y desarrollo del sistema se hace sobre la máquina virtual.

Ambiente de lenguajes de alto nivel

a) Ambiente convencional donde se distribuyen el código objeto de la plataforma tradicional.

b) Ambiente de VM donde VM dependiente de plataforma ejecuta código portable intermedio.

Ambiente de desarrollo Java

Sistemas operativos java

El sistema operativo JX

Plataforma: .NET Framework <grafico>

ASP.NET

Servicios web Formularios web

Page 33: Apuntes de Clase de Sistemas Operativos

Lenguajes de programación

C# VB.NET VC++ Jscript

Librería de clases (system, ADO, XML…)

Common Language Runtime (CLR)

Estructura interna del entorno de común ejecución para lenguajes

Entorno común de Ejecución para lenguajes (CLR)

Soporte da las librerías de clases Base

Manejo de hilos Interacción con COM

Verificador de Tipos controlador de

CLR (common Languaje Runtime)

Multiplataforma

El modelo es abierto, luego es posible la creación de CLR para cualquier plataforma

Multilenguaje

Recolector de basura muy efectivo

En C# no existen destructores

Liberación determinista mediante el uso de la instrucción Using

MSIl (Microsoft intermédiate Languaje)

.Net 3.0

Page 34: Apuntes de Clase de Sistemas Operativos

25 de marzo de 2010

Tipos de SOS de acuerdo al Kernel

Macrokernel/Monokernel

Microkernel

Nano kernel

Exokernel : No tienen sistema operativo

Arquitectura Microkernel:

Arquitectura de sistemas oprativos microkernel

Proporciona solo un pequeño número de servicios

Intenta tener un kernel pequeño y escalable

Alto grado de modularidad

Extensible, portable y escalable

Se incrementa el nivel de comunicación entre modulos

Pueden degradar el rendimiento del sistema

Fiasco, AIX, AmigaOS, Amoeba, BeOS, Brainix, Chorus microkernel, coyotos, EROS, Haiku, K42, L4, Mach, NEXTSTEP, OPENSTEP, OSX, MERT, Minix, MorphOS, Phoenix-RTOS, QNX, LSE/OS (nanokernel), KeyKOS (nanokernel)

Aplicaciones

|

Interface del llamado

Page 35: Apuntes de Clase de Sistemas Operativos

| | |

S archivos Planificador de procesos Admon dispositivos

Espacio usuario

Espacio kernel

Beneficios de una organización micronucleo

Interfaces uniformes en las peticiones realizadas por un proceso

Extensibilidad

Portabilidad

Fiabilidad

Soporte de sistemas distribuidos

Sistema operativo orientado a objetos

Exokernel

Un SO se interpone entre las aplicaciones y el hw

Elimina el concepto de abstracción sobre la cual corren las aplicaciones

SE asegura de multiplexar el hw desnudo: a través de primitivas de hw, librerías a nivel de aplicación de servidores

Ej. XOK con Exos (librería sos tipo unix) de MIT, Aegis, Nemesis (Cambridge)

El servidor Cheetah se construye sobre XOK

Es esencialmente la extensión de la filosofía de la arquitectura RISC en CPU al nivel del sistema operativo

Kernel Paginable

Kernel no paginable

Page 36: Apuntes de Clase de Sistemas Operativos

Objetivos de diseño del sistema

Objetivos de los usuarios- que el sistema operativo sea adecuado para su uso, fácil de aprender, confiable, seguro, y rápido

Objetivos de sistema- El sistema operativo debe ser fácil de diseñar implementar y mantener, de la misma forma que sea flexible, confiable libre de errores y eficiente

Jerarquia de diseño de SO (Brown/ Denning)

Nivel Nombre objeto Ejemplo de operacion

13 ShellAmbiente de

programación de usuarios

Instrucciones en lenguaje de shell

12 Procesos de usuarioProcesos de usuarios, espacio direcciones V

Quit, kill, suspend, resume

11 Directorios Directorio de usuariosCreate, destroy,

attach, detach, search, list

10 DispositivosDispositivos externos: impresoras, pantallas

teclados

Open, close, read, write

9 Sistemas de archivos archivosCreate, destroy open

close, read write

8 Comunicaciones TuberíasCreate, destroy open

close, read write

7 Memoria virtualEspacio direcciones lógicas, segmentos,

páginasRead, Write, fetch

6Almacenamiento secundario local

Bloques de dispositivos, canales

de dispositivos

5 Procesos primitivos Procesos primitivos, semáforos, listas de

Page 37: Apuntes de Clase de Sistemas Operativos

listos

4Programa de manejo

de interrupciones

Manejo de interrupciones,

guardar contexto

3 ProcedimientosProcedimientos, llamado a pila, presentación

2Conjunto de

instrucciones del procesador

Evaluación de la pila

1Electrónica de los

circuitos

Implementación de un sistema

Los sistemas operativos tradicionalmente se han escrito en ensamblador, ahora puede ser escritos en lenguajes de alto nivel.

el código escrito en alto nivel:

Puede ser escrito más rápido

Es mas compacto

Es mas fácil de entender y depurar

Un sistema es más fácil de ser portable si esta escrito en un lenguaje de alto nivel.

Algunos lenguajes de alto nivel usados para escribir sistemas operativos: C(Unix, OS/2, Win NT), Fortran (Primos), Algol (MCP (manster Control Program) burrougs), Bliss (VMS DEC) PL/360, perl, PL1 (multics) Pascal

Generación sistema (SYSGEN)

Los sistemas operativos se diseñan para correr en cualquier clase de maquinas; el sistema debe configurarse para cada computador especifico.

Page 38: Apuntes de Clase de Sistemas Operativos

El programa sysgen obtiene información relacionada con la configuración especifica del hardware del sistema

Booting- arrancar un computador al cargar su kernel

Bootstrap program

Procesos

Concepto de procesos

Un sistema operativo ejecuta una variedad de programas: - Sistemas por lotes, trabajos. – Sistema de tiempo compartido- Programas de usuarios o tareas

Definición: Un programa en ejecución con el entorno asociado/ unidad de procesamiento gestionada por el SO

Un proceso incluye: -Un contador de programa – Pila –Sección de datos, código

Programa: entre pasivo

Proceso: entre activo

Sistema con memoria virtual

La información de traducción está en la tabla de páginas

Preasingnación de zona de intercambio. Todas las páginas están en disco, algunas están copiadas en marcos de páginas.

Traza de los procesos

Traza: Lista de la secuencia de instrucciones que se ejecutan para un proceso

Modelo simplificado

Un proceso puede estar en dos estados: - corriendo -No corriendo

Page 39: Apuntes de Clase de Sistemas Operativos

Dispatch

Enter

Pause

a) State transition diagram

Enter Dispatch Exit

6 de abril de 2010

Not Running

Running

Processor

Page 40: Apuntes de Clase de Sistemas Operativos

FALTÉ A CLASE

08 DE ABRIL DE 2010

La CPU cambia de proceso a proceso

Cuando la CPU cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso.

La conmutación del contexto es trabajo extra, el sistema no realiza trabajo útil mientras conmuta, depende en gran medida del apoyo del hardware

Planificadores

El planificador de corto plazo o planificador de CPU seleciona que procesos deben ser ejecutado enseguida y se le asigna la CPU, bajo nivel, scheduler/desparchador es solicitado muy frecuentemente (milisegundos) -< (deben ser rápido)

Planificador de mediano plazo: intermedio

El planificador de largo plazo o planificador de trabajos : selecciona que proceso debe ser traído a la cola de listos, es solicitado con poca frecuencia (seg, minutos) -> (puede ser lento)

Planificador de largo plazo controla el grado de multiprogramación

Los procesos pueden ser descritos como:

-Procesos limitados por E/S consume mas tiempo realizando operaciones de E/S que cálculos causan muchas ráfagas cortas a la CPU

Procesos limitados por CPU- consumen mas tiempo realizando cálculos

Representación de la planificación de procesos Grafico

Adición de planificación de mediano plazo Grafico

Page 41: Apuntes de Clase de Sistemas Operativos

Creación de procesos

Los procesos padres crean procesos hijos, los cuales, a su vez crean otros procesos, conformando un árbol de procesos.

Recursos compartidos -Los procesos padres e hijos comparten los recursos. –Los hijos comparten un subconjunto de los recursos del padre. –El padre y el hijo no comparten los recursos

Ejecución: -El padre y el hijo

Jerarquía de procesos

Grupo de procesos dependientes de cada Shell

Familia de procesos: -Proceso hijo - Proceso padre. –Proceso hermano. –Proceso abuelo.

Vida de un proceso: -Crea - ejecuta -Muere o termina

Ejecución del proceso: -Batch -Iteractivo

Grupo de procesos

Arbol de procesos de un sistema UNIX típico y Solaris

Procesos cooperativos

Los procesos independientes no pueden afectar o ser afectados por la ejecución de otros procesos.

Problemas de productores y consumidores

El problema de productores y consumidores es un paradigma de los procesos cooperativos, los productores producen información que es consumida por los procesos consumidores.

-Buffer ilimitado no establece un límite práctico para el tamaño del buffer

-el buffer limitado asume que hay un tamaño fijo de buffer

Page 42: Apuntes de Clase de Sistemas Operativos

Hilos: capacidad que tiene un sistema de dividir en subprocesos permiten al usuario compartir los recursos a todos los hilos que hacen parte del proceso

Hilos de usuario y de nucleo

Modelos multihilos

Hilos solaris2

Hilos java

Multihilos

La capacidad de un SO para soportar multiples trayectorias concurrentes de ejecución dentro de un mismo proceso

Enfoques monohilados

Ms- Dos utiliza un solo proceso con un solo hilo

El ambiente de ejecución Java utiliza un solo proceso con multiples hilos

Comportamiento de los hilos

Proceso Bloqueado por comunicación

Bloqueado por acceso a disco

Activo

Procesos ligeros

En una tarea multihilo, mientras un hilo servidor está bloqueado y esperando, un segundo hilo en la misma tarea puede estar corriendo.

-la cooperación de multiples hilos en el mismo trabajo le proporciona un alto rendimiento y mejora la eficiencia

Las aplicaciones que requieren compartir el buffer común (por ejemplo, productor- consumidor) se benefician de la utilización de hilos

Los hilos proporcionan un mecanismo que permiten a los procesos secuenciales hacer llamadas al sistema bloqueadoras y al mismo tiempo lograr paralelismo.

Page 43: Apuntes de Clase de Sistemas Operativos

El nucleo puede apoyar los hilos como e Mach y OS/2

Los hilos a nivel de usuario; soportados arriba por el kernel, a tráves de una serie de llamadas de biblioteca en el nivel de usuario (como en el proyecto CMU de Andrew)

Un enfoque hibrido implementa tanto hilos a nivel de usuario como hilos apoyados por el kernel (como Solaris 2)

Relaciónd e hilos y procesos

Hilo: proceso DEDscripción Ejemplo

1:1 Cada hilo en un único proceso con su propio espacio de direcciones y sus recursos

Implementaciones tradicionale de Unix

M:1 Un proceso define un espacio de direcciones y la propiedad sobre los recursos es dinámica. Dentro del mismo proceso se pueden crear y ejecutar multiples hilos

Windows NT, solaris, OS/2, OS/390, MACH

1:M Un hilo puede migrar desde un ambiente de proceso a otro. Esto permite que un hilo se pueda mover fácilmente entre sistemas distintos

Ra (clouds), Emerald

M:M Combina los atributos de M:1 y 1:M

Trix

15 de abril de 2010

Explicación de programa productor y consumidor

Page 44: Apuntes de Clase de Sistemas Operativos

Hilos subprocesos

Delegaciones: parámetros que se pasan de procesos a un método, programación orientada a objetos.

Hilos en Windows 2000, estructura de un proceso en Windows 2000

Imjplementa mapeo uno a uno

Cada hilo contiene

- Una identificación de hilo

- -Un conjunto de registros

Objeto proceso de Windows

Tipo proceso

Proceso

ID proceso

Descriptor de seguridad

Prioridad base

Afinidad procesador por defecto

Hilo

ID hilo

Page 45: Apuntes de Clase de Sistemas Operativos

Contexto del hilo

Prioridad dinámica

Prioridad base

Afinidad de procesador de hilo

Tiempo de ejecución del hilo

Estado de alerta

Contador de suspensiones

Testigo de personificación

Puerta de finalización

Estado de salida del hilo

Crear hilo

Abrir hilo

Solicitar información del hilo

Establecer información del hilo

Hilo actual

Terminar hilo

Estados de un hilo de Windows

Page 46: Apuntes de Clase de Sistemas Operativos

Modelo de procesos/hilos Linux Grafico

Estado de hilos en Solaris Grafico

Hilos de Java

Los hilos de Java pueden ser creados por: - Estensión de la clase hilos, -Implementando una interface que los corra

Los hilos de java son administrados por la JM

Suspend () suspende la ejecución del hilo que se esta ejecutando

Sleep () coloca el hilo que actualmente está corriendo a dormir un determinado tiempo

Implementando la interface Runnable

Ejemplo hilos C#

PLANEACIÓN DE LA CPU

stanby

ejecutando

listo

esperando finalizandotransición

Page 47: Apuntes de Clase de Sistemas Operativos

Es aquella parte del sistema que se encarga de determinar como es que se utiliza el procesador

-concepto de planificación

-Criterios de planificación

-Algoritmos de planificación

-Planificación multiprocesador

-Planificación en tiempo real

-Evaluación de algoritmos

Conceptos básicos

La máxima utilización de la CPU se obtiene con multiprogramación

El ciclo de ráfaga de CPU-E/S el proceso de ejecucuión consiste en un ciclo de ejecución

Planificador de CPU

Selecciona de los procesos en memoria aquellos que están listos para ejecutar, y le entrega la CPU a uno de ellos

Las decisiones de planificación de CPU tiene lugar cuando un proceso:

1. Conmuta a de un estado de corrida a un estado de espera

2. Conmuta de un estado de corrida a un estado de listo

3. Conmuta de esperando a listo

4. Termina

5. La planificación de 1 y 4 no es expropiativa, en los otros casos es expropiativa

Despachador

El modulo despachador le da el control de la CPU a proceso seleccionado por el

Latencia de despacho: grafico

Es el tiempo que se toma el despachador para parar un proceso e iniciar otro

Page 48: Apuntes de Clase de Sistemas Operativos

Criterios de planificación

Utilización de CPU- Mantener la cpu tan ocupado como sea posible

Rendimiento: Número de procesos que culminan su ejecución por unidad de tiempo

Tiempo de entrega/estancia/retorno (turnaround time) Tiempo transcurrido desde que se lanza un proceso hasta que finaliza. Incluye el tiempo de ejecución sumado con el tiempo de espera por los recursos, incluyendo el procesador. Es una medida apropiada para trabajar por lotes.

Tiempo de espera: Cantidad de tiempo

Tiempo de respuesta: ……

Criterios de optimización

Máxima utilización de CPU

Algoritmos de planificación

FCFs/PEPs: Costos sufren, justa, predecible

SJf/SPN, el siguiente proceso es el mas corto

SRTN el< Tiempo restante , compensan cortos

Round- Robin RR, asignación cíclica/turno. Equilibra FCFS/SRTN, usa cola circular con FCFS/ prioridades con slice/ quantum para c/ proceso.

Por prioridad:: Siempre se elige el de mayor prioridad, compensada X prioridad envejecimiento.

HRN, Tasa de respuesta mas alta, es costosa Prioridad = (w+S)/s

MLQ, colas multinivel: Combinar, proceoss del sistema (X Prioridad), interactivos (RR), lotes (FCFS/SRTN)

MLQ con retroalimentación: Los procesos se pueden reubicar en diferentes colas de acuerdo a comportamiento, Los procesos limitados por procesador se envían a la cola de < prioridad, los interactivos se ubican con mayor prioridad.

Page 49: Apuntes de Clase de Sistemas Operativos

Fss (Fair Share Schedule), Porción justa, o reparto equitativo, los grupos sde p

Algoritmo Planificación –FCFS

Ejemplo proceso Tiempo de ráfaga

P1 3

Suponga que los procesos

Planificación el tiempo mas corto primero (SJF)

Asocia con cada proceso la longitud de su próxima ráfaga de cpu. Usa estas longitudes para planificar el procesos con el menor tiempo

Ejemplo de SJF/SPN no expropiativo

proceso Tiempo de llegada Tiempo de rafaga

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

Tiempo promedio de espera:

Ejemplo de SJF expropiativo (SRTN)

proceso Tiempo de llegada Tiempo de rafaga

P1 0.0 7

P2 2.0 4

P3 4.0 1

Page 50: Apuntes de Clase de Sistemas Operativos

P4 5.0 4

SJF (expropiativo)

Tiempo promedio de espera = (9+1+0+2)/4=3

Planificación por prioridad

-Se asocia un número (entero) a cada proceso

-La CPU es asignada al proceso con mayor prioridad (por ejemplo el numero mas pequeño significa mayor prioridad en Unix o prioridad ascendente como Windows a mayor # mayor prioridad)

-Expropiativo

_no expropiativo

-SJF es un esquema del planificación por prioridad, donde la prioridad es el tiempo de ráfaga de cpu que se cálcula

Turno Circular (runing ro RR)

Cada proceso toma una pequeña unidad de tiempo de CPu (quantum) de tiempo, por lo general 10-100 ms, Despues de transcurrido este lapso de tiempo, el proceso es expropiado y ubicado en la cola de listos.

Si hay n procesos en la cola de listos

Proceso Rafaga de tiempo

P1 53

P2 17

P3 68

P4 24

El diagrama de Gantt es

Page 51: Apuntes de Clase de Sistemas Operativos

Tipicamente, tiene mayor tiempo de retorno que SJF,

Primero el mayor tasa de respuesta [highest Response Ratio Next (HRRN)]

Elige el proceso de mayor tasa: Prioridad= (w+s)/s

Formula:

Tiempo invertido esperando por el procesador + tiempo de servicio esperado/ Tiempo de servicio aceptable

Algoritmo de Fair Share Scheduling –Porción justa

LOteria

Se da a cada proceso un tiquete para varios recursos del sistema, tal como la cpu. Cuando se requiere planificar se selecciona al azar u tiquete, y el proceso que lo tiene obtiene el recurso. Si queremos que un proceso tenga mas oportunidades se le entregan mas tiquetes. Los procesos cooperativos pueden intercambiar sus tiquetes

Un ejempl

Colas Multinivel Grafico….

Colas multinivel con retroalimentación

22 de abril de 2010 parcial 2

Planificación en solaris 2 (grafico)

Page 52: Apuntes de Clase de Sistemas Operativos

A los procesos de tiempo real le da mayor prioridad y los atiende primero que los demás, divide los procesos en clases en tiempo real, de tiempo compartido, la prioridad determina el tamaño de quantum de tiempo

Tabla de funcionamiento de solaris

Planificación en POSIX

Cada política de planeación lleva asociado un rango con al menos 32 niveles de prioridad.

El planificador elegirá el poceso o proceso ligero….

Planificación de procesos en Linux

Dos algoritmos: tiempo compartido y tiempo real

Tiempo compartido

Prioridad basada en créditos- el proceso con mas créditos se despacha

Se restan los créditos cuando suceden interrupciones de temporizador

Cuando el crédito 0….

Planificación en Windows

Grafico

La prioridad de Windows se organizan en dos bandas o clases

-Tiempo real

-Variable

Planificador expropiativo basado en prioridades

Windows vs NT kernel priorities (tabla)

Relacion entre prioridades en windows (grafico)

Page 53: Apuntes de Clase de Sistemas Operativos

Planificación multiples procesadores

La planificación es mas compleja cuando se tiene varios procesadores

El escenario: asignación de procesos a procesadores, usi de la multiprogramación en cada procesador individual, activación del proceso, propiamente dicho

La carga se comparte (una cola por procesador?)

Una cola para todos los procesadores…

Asignación de procesos a procesadores

Trata cada procesador como un recurso colectivo y asigna procesos a procesadores por demanda

Un proceso se vincula permanentemente a un procesador

-Estrategia conocida como planificación de grupo o pandilla (gang)

-Dedica una cola a corto plazo por cada procesador

-menos sobrecarga

El procesdor puede estar ocioso mientras otro procesador tiene trabajo acumulado

Cola global

-Procesos planificados sobre cualquier procesador disponible

Arquitectura maestro/ esclavo

-las funciones claves….

Escenario de planificación de procesos en tiempo real (grafico)

c. planificador expropiativo dirigido por prioridad en puntos de expropiación

d. planificador expropiativo inmediato

PLANEACIÓN EN TIEMPO REAL

Planeacion de tiempo real estatica

Page 54: Apuntes de Clase de Sistemas Operativos

No se ajustan las prioridades con el tiempo real, poca recarga en el sistema, para procesos deonde las condiciones eventualmente cambian

Estatica dirigida por tabla (plan): determina , el tiempo de ejecución cuando debe comenzara ejecutarse cada tarea. Se aplica a tareas periodicas

Estatica con expropiación dirigida por prioridad (sin plan): se utiliza un planificador expropiativo tradicional basado en prioridades. Usado en los sistemas multiprogramados que no son en tiempo real. En tiempo real la prioridad se ajusta con base a las restricciones de tiempo de la tarea, ej. Planificación monótona en frecuencia (RMS)

Planeación d etiempo real dinámica

Ajusta las prioridades en respuesta a condiciones cambiantes, pueden tener una significativa sobrecarga, pero debe asegurar que ella no genere incumplimiento en los tiempos

Dinamica basada en un plan: La factibilidad se determina en tiempo de ejecución.

Dinamica basada en el mejor esfuerzo: no se realiza análisis de factibilidad.

Planificación por plazos

Las aplicaciones de tiempo real no se preocupan tanto de la velocidad de ejecución como de completar sus tareas

El proceso debe complementarse en un tiempo especifico

Se utiliza cuando los resultados serían inútiles si no se realiza el proceso a tiempo.

Dificil de implementar

-debe prever un plan de requerimientos de recursos

-Genera significativa sobrecarga

-El servicio proporcionado a los otros procesos se puede degradar

Información utilizada: tiempo de activación, plazo de inicio, plazo de conclusión, tiempo de proceso, recursos requeridos, prioridad, estructura de subtareas

Las prioridades en general se basada en los tiempos limites de los procesos.

El tiempo limite mas temprano primero (EDF Earliest- deadline-fist)

Mínima laxitud primero

Page 55: Apuntes de Clase de Sistemas Operativos

-Similar a EDF, pero la prioridad se basa en la laxitud, la cual se basa en el tiempo límite de los procesos y su tiempo restante para completar su objetivo.

Ejemplo: Perfil de ejecución de dos tareas periodicas con plazos de terminación

Considere un sistema que recoge y procesa datos de 2 sensores, A y B, el plazo para tomar los datos del sensor de A debe ser de 20ms y el B cada 50 ms. Se tarda 10 ms incluyendo la sobrecarga del SO, para procesar cada muestra de datos de A y 25 ms para B. El sistema es capaz de tomar una decisión de planificación c/10ms

Proceso Tiempo de llegada Tiempo de ejecución Plazo de conclusión

A(1) 0 10 20

A(2) 20 10 40

A(3) 40 10 60

A(4) 60 10 80

A(5) 80 10 100

.

.

.

.

.

.

.

.

.

.

.

.

B(1) 0 25 50

B(2) 50 25 100

.

.

.

.

.

.

.

.

Planificación de tareas periodicas de tiempo real con plazos de conclusión

(grafico) solución diagramas de tiempos

Solución: Planificación de plazo más cercano usando plazos de conclusión

Page 56: Apuntes de Clase de Sistemas Operativos

En este caso pueden cumplirse todos los requisitos del sistema por medio de planificación que da prioridad, en los instantes de expropiación, a la tarea que tenga el plazo mas cercano. Dado que las tareas son periódicas y predecibles, se usa un método de planificación con tablas estáticas

Ejemplo2:

Perfil de ejecución de cinco tareas aperiódicas: Sean 5 tareas con tiempo de ejecución de 20 ms

proceso Tiempo de llegada Tiempo de ejecución Plazo de inicio

A 10 20 110

B 20 20 20

C 40 20 50

D 50 20 90

E 60 20 70

Planificación de tareas aperiodicas de tiempo real con plazos de inicio

Grafico (solución Seguir el sentido de las flechas de entrada y de salida)

27 de abril de 2010-04-27

Administración de memoria

Los programas deben ser llevados a la memoria y convertirse en procesos para ser ejecutados

Cola de entrada: colección de programas en disco que esperan para ser llevados a la memoria para la ejecución

Requerimientos de memoria Ms Windows (tabla)

Page 57: Apuntes de Clase de Sistemas Operativos

Vinculación de las instrucciones y los datos a la memoria

Puede realizarse en tres estadios:

Tiempo de compilación: Si se conoce previamente la ubicación de memoria, puede generarse código absoluto, el código debe ser recopilado si la dirección de inicio cambia.

Tiempo de carga: Si se conocen las direcciones en tiempo de compilación, debe generarse código reubicable.

Tiempo de ejecución: La vinculación se retarda hasta el tiempo de corrida si los procesos pueden ser movidos durante su ejecución de una posición de memoria a otra

(grafico)

Overlays (Superposiciones)

-Mantiene en memoria solo aquellas instrucciones y datos que se requieren en un momento determinado.

-Se utilizaba cuando el proceso era mayor que la cantidad de memoria destinada para el.

Se implementaba por el usuario, no se requería un soporte especial del sistema operativo, su programación era compleja.

(grafico)

Asignación Contigua

Generalmente la memoria principal tiene dos particiones.

-Para el sistema operativo …..

Asignación Contigua 2

Asignación con multiples particiones

Page 58: Apuntes de Clase de Sistemas Operativos

-Hueco: Bloque de memoria disponible….

Asignación de multiples particiones fijas

( grafico)

Particiones configuradas por usuarios predeterminadas, se uso en OS/360/MTF (Multiprogramación con un # fijo de tareas)

Recolocación: El enlazador debe determinar que direcciones recolocarse, vs carga absoluta x part.

Protección: Bloques de 2k con clave, o registro de base y limite. FRAGMENTACION

Explicación de programa en pascal de simulación de asignación de particiones fijas, en las particiones ejecuta programas específicos, muestra las particiones, los procesos y cola de trabajos

Asignación de memoria con particionamiento fijo

(grafico)

Ejemplo de particionamiento

Asignación con particiones variables

(grafico)

Asignación dinámica de las particiones, Compresión (garbage collection): Ciber CDC 40mb/ seg micro 1 mb/seg

Fragmentación: Huecos después de ejecución

Condensación: Fusión de 2 huecos contiguos

Explicación de un programa de simulación de asignación con particiones variables, memoria

Particion variable (grafico)

Compresión/ compactación de memoria (grafico)

Problema de la asignación dinámica de memoria

Page 59: Apuntes de Clase de Sistemas Operativos

Como satisfacer la solicitud de un tamaño n a partir de huecos libres

Estrategia de colocación:

-Mejor ajuste: hueco que mejor quepa y menos desperdicio. Busque en toda la lista (puede estar ordenada)

-Primer ajuste: El primer hueco que le sirva. Búsqueda al principio o a partir de este punto

-Peor ajuste: Hueco…

Primer ajuste (grafico)

Mejor ajuste (grafico)

Peor ajuste (grafico)

Sistema Buddy (grafico)

El espacio completo disponible se trata como un único bloque de tamaño 2 a la U

Si se realiza una petición de tamaño s, tal que 2 a la u-1 <s <=2 a la u….

Almacenamiento virtual

-Capacidad de obtener acceso a direcciones en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario del sistema

-SO …

Intercambio/ Swap

-Un proceso puede intercambiarse temporalmente de memoria a un almacenamiento de respaldo y luego puede ser retornadi hacia la memoria para continuar su ejecución….

Vista esquemática del intercambio (grafico)

Fundamentos de la memoria virtual (grafico)

-El procesador utiliza y genera direcciones virtuales

-Parte del mapa de memoria (virtual) está en disco (swap) y parte en memoria principal

-La MMu (memory Management Unit) traduce las direcciones no está en memoria principal….

Almacenamiento virtual (grafico)

Espacio de direcciones virtuales…

Page 60: Apuntes de Clase de Sistemas Operativos

Evolución de las organizaciones de memoria (grafico importante!)

Distribución de almacenamiento por procesos (gráfico)

Paginación

-el espacio de direcciones lógicas de un proceso no necesariamente es contiguo; los procesos se ubican en memoria física donde luego quedan disponibles

-Se divide la memoria física en bloques de tamaño fijo llamados marcos (los tamaños son potencias de 2, entre 512 bytes y 8192 bytes)

-Se divide la memoria lógica en bloques del mismo tamaño llamados páginas.

-Se mantiene el rastro de todos los marcos

-Para correr un programa de tamaño n páginas, se requiere encontrar n marcos libres y cargar el programa.

-Se debe poner a punto una tabla para traducir las direcciones físicas a las lógicas

-Se puede presentar fragmentación interna

División de páginas de los espacios de memoria (grafico)

El espacio virtual se divide en páginas

Algunas páginas están en memoria principal

-El SO se encarga de que estén en memoria principal las páginas necesarias

-Para ello trata los fallos de página producidos por la MMU

29 de abril de 2010

Page 61: Apuntes de Clase de Sistemas Operativos

Esquema de traducción de direcciones

Las direcciones generadas por la CPU se dividen en:

-Numero de página (P)- utilizado en la tabla de páginas que contiene las direcciones base de cada página en la memoria física.

-El desplazamiento de página (d) combinado con la dirección base definen la dirección de memoria física que es enviada a la unidad de memoria.

Traducción: proceso referencia (p, d), se busca en la tabla de correspondencia de páginas para ver la p’ (p real). La dirección real es p’+d. Por agilidad tabla de correspondencia en caché.

Si no hay residencia de la página en memoria principal, sucede una falta de página. R

(grafico)

Traducción de direcciones en paginación

(grafico)

Ejemplo de paginación (grafico)

Elemento de la tabla de páginas

(grafico)

Otras informaciones: Copia de escritura, Edad, No página (fija en memoria física), Rellenar a ceros.

El kernel del sistema operativo no es paginable.

Ejemplo de traducción con tablas de páginas

(grafico)

Buffer de traducción anticipada (TLB)

La tabla de página se mantiene en memoria principal

El registro base de la tabla de páginas (PTBR) señala la tabla de páginas

El registro de longitud de tabla de páginas }(PRLR) indica el tamaño de la tabla de páginas

Page 62: Apuntes de Clase de Sistemas Operativos

Toda memoria virtual puede causar dos accesos a memoria física

- Uno para buscar en la tabla de páginas apropiada

- Uno para buscar los datos solicitados

Para solventar este problema, la mayoría de esquemas de memoria virtual utilizan una cache especial de alta velocidad para las entradas de la tabla de página

-Se le denomina buffer de traducción anticipada [Translation Lookaside Buffer (TLB)], también llamado registros asociativos.

Contiene aquellas entradas de la tabla de páginas que han sido usadas de forma más reciente…

Operación de paginación y TLB

(grafico)

Registros asociativos/ tiempo de acceso efectivo sin intercambio

ἐ= Tiempo de búsqueda asociativa

t= Tiempo deacceso de memoria…

α= Tasa….

EAT: Tiempo de acceso efectivo

EAT= (t+ἐ)α+ (2t+ἐ)(1-α)

Esquema de tabla de páginas de dos niveles

(grafico)

Ventajas de tablas multinivel

Si un proceso usa una parte pequeña de su espacio lógico: Ahorro en espacio para almacenar TPs

Sea un procesador con dir lógica de 32b de 2 niveles (10b c/nivel), TP de 4KB, entrada a TP es 4B

Si el proceso usa 12MB superiores y 4MB inferiores:

Tenemos cada página N2 direcciona 4MB

Page 63: Apuntes de Clase de Sistemas Operativos

Tamaño tablas de páginas:

1 TP N1 +4TPN2 =5*4KB= 20KB (frente a 4MB si utilizará todas las páginas)

Ejemplo de paginación de dos niveles

Una dirección lógica (en una máquina de 32 bits con tamaño de página

Paginación multinivel y rendimiento (sin intercambio)

Establecer el EAT para un procesador con 4 niveles de paginación, con el tiempo de acceso a memoria de 100ms, tiempo de búsqueda es 20ms y una tasa de aciertos en cache de 98%

Para 4 niveles de paginación

Rendimiento en paginación por demanda de intercambio

Tasa de fallo de página 0<=p<=1.0

-si p = 0 no hay fallo de página

-Si p = 1 cada referencia es un fallo de página

Tiempo de acceso efectivo con intercambio = EATS = (1-p)* acceso a memoria

+p*(sobrecarga de fallo de pagina)

+[descarga]

+carga

+Reinicio)

Si asumimos un valor global para el tiempo requerido en fallo de página (f) tendremos:

EATS= (1-p)*t+p*f

Donde

T: ….

Page 64: Apuntes de Clase de Sistemas Operativos

Ejemplo Rendimiento en paginación por demanda con intercambio

EATS= (1-p)*t+p*f

si suponemos un t= 100 ns y un disco con latencia = 8ms, t búsqueda= 15 ms y t. transferencia= 1ms, tendríamos un tiempo promedio de fallo f= ….

Tamaños de páginas (tabla)

-Si < tamaño pagina, mayor tablas de páginas, fragmentación por tablas,> transferencia disco – memoria, aprovecha la localidad.

-si> tamaño pagina, carga el código no usado, fragmentación interna.

SEGMENTACIÓN

Esquema de administración de memoria que soporta la visión del usuario de la memoria.

Un programa es una colección de segmentos. Un segmento es una unidad lógica como por ejemplo:

-Programa principal

-Procedimietos

-funciones

-Variables locales, variables globales

-bloques comunes

Pila

-tabla de simbolos

Esquema de traducción usando segmentación

(grafica)

Vista lógica de la segmentación (grafica)

Tabla de correspondencia de segmentos

Page 65: Apuntes de Clase de Sistemas Operativos

Dirección virtual = (s,d), los segmentos se intercambian como unidades

Programa: nucleo principal, rutinas, datos (tablas, pilas etc)

R=0 si segmento no está en real….

Arquitectura de la segmentación

Las direcciones lógicas ….

Segmentos compartidos (grafica)

4 de mayo de 2010

Segmentos compartidos

Segmentación con paginación

La segmentación con paginación interna juntar lo mejor de los dos esquemas anteriores

La segmentación proporciona soporte directo a las regiones del proceso y la paginación permite un mejor aprovechamiento de la memoria y el ….

Traduccion dinámica de direcciones en sistema segmentado/ páginado con TBL

(grafico)

Segmentación con paginación: Pentium

El Pentium soporta hasta 16k segmentos, cada uno hasta 232 bytes de direccionamiento virtual. Puede determinarse por S.O usar solo segmentación, solo paginación o ambos

(Grafico) Mapeo de una dirección lineal en una dirección física

Tamaño de paginación de desplazamiento 212

Politica de recuperación

Politica de recuperaciónDetermina cuando una página se debería traer a la memoria principal…

Page 66: Apuntes de Clase de Sistemas Operativos

Algoritmo de reemplazo de páginas

Las faltas de página forzan el cambio

-Que página debe ser removida

-Establecer espacio para la página que entra

Las páginas modificadas deben ser guardadas las otras pueden sobrescribirse

-Es aconsejable no reemplazar una página usada con frecuencia, seguramente la necesitaremos

Algoritmo optimo de reemplazamiento de página

Reemplaza la página que se requiera en el punto más lejano

-Optimo pero no lograble

La estimación se basa en el registro de uso de las corridas anteriores de los procesos

Sigue siendo poco práctico.

Algoritmo de página no recientemente usada (NRU)

Cada página tiene un bit de referencia, un bit de modificación

-Las paginas se clasifican

1. No referenciadas, no modificadas

2. No referenciada, modificadas

3. Referenciadas, no modificadas

4. Referenciadas, modificadas

. NRU remueve las páginas aleatoriamente desde el numero más bajo en clases no vacías.

FIFO (First –In, First-Out)

Conserva una lista encadenada de todas las páginas ….

Page 67: Apuntes de Clase de Sistemas Operativos

Fifo y anomalía de Belady M

(grafico)

Algoritmo de Reloj, segunda oportunidad

Las páginas se colocan en una cola circular donde son elegidas por el apuntador

LRU (least Recently Used)

Asume que las páginas recientemente usadas serán usadas de nuevo, elimina las páginas que no han sido usadas por mucho tiempo…..

LRU (grafico)

Algoritmo del conjunto de trabajo

(Grafico)

El conjunto de trabajo se refiere al conjunto de páginas usadas por las k referencias de memoria más recientes.

W(k,t) es el tamaño del conjunto de trabajo en el tiempo t.

Algoritmo del conjunto de trabajo

(grafico)

Reloj mejorado

Se toma el algoritmo del reloj pero con los 2 bit, el de referencia y el de modificación:

0.0 No referenciadas….

Otros algoritmos de reemplazo de paginas M

Aleatorio (Random): Reemplaza las paginas de forma aleatoria, se trabaja en el OS/360 cuando se degenera el LRU , también se utilizó en extinto i860 de intel (risc)

No frecuentemente usada (NFU) : c/ páginas tiene un contador, en cada intervalo de reloj se incrementa en 1 el contador de las páginas referenciadas, asi cuando se requiere intercambio.

Page 68: Apuntes de Clase de Sistemas Operativos

Windows xp

Utiliza paginaciónpor demanda con clustering. El agrupamiento trae las páginas alrededor de la página fallada.

A los procesos se les asigna un working set mínimum y un working set maximun

El conjunto de trabajo mínimo es el numero de paginas que se le garantiza a un proceso tener en memoria

A un proceso se le pueden asignar tantas paginas hasta alcanzar su conjunto de trabajo máximo

Cuando la cantidad de memoria en el sistema cae por debajo de un umbral, se realiza un recorte automatico del conjunto de trabajo para recuperar memoria disponible

Este recorte remueve las páginas de exceso de los procesos que están sobre su conjunto de trabajo minimo

Espacio de direcciones de 32 Bits Windows

Solaris

Mantiene una lista de páginas libres para asignarle a los proceos con falta de página

Lostfree : Parametros umbral (cantidad de memoria) para empezar a páginar

Desfree – Parametro umbral para empezar el intercambio

…..

Buscador de paginas de solaris 2

(grafico)

Reemplazo de paginas de Linux

Linux utiliza una variante de algoritmo de reloj para aproximarse a la estrategia de reemplazo de paginas LRU

El administrador de memoria utiliza dos listas enlazadas

Page 69: Apuntes de Clase de Sistemas Operativos

-La lista actica

…..

ALMACENAMIENTO SECUNDARIO

Velocidad de transferencia en dispositivos

Características de los discos duros sobre distintos dispositivos

Parámetros

Ejemplos de discos duros

Planificación del disco

El sistema operativo es responsable por el uso eficiente del hw- para los discos duros, esto significa tener un tiempo de acceso más rápido y un mayor ancho de banda para el disco.

El tiempo de acceso tiene dos componentes principales

-el tiempo de búsqueda es el tiempo en el que el disco debe mover las cabezas hasta el cilindro que contiene el sector deseado.

-Latencia rotacional es el tiempo adicional de espera para que el disco rote sus cabezas hasta el sector deseado.

Minimizado el tiempo de búsqueda

El ancho de banda del disco es el número total de bytes transferidos, dividido por el tiempo total entre la primera solicitud del servicio y el completado de la transferencia

Existen diversos algoritmos para planificar el servicio de las solicitudes de entrada y salida de disco.

La ilustraremos con una cola de solicitudes (0-199)

98, 138, 37, 122, 14, 124, 65, 67

Puntero de la cabeza 53

Page 70: Apuntes de Clase de Sistemas Operativos

FCFS (First come first serve)

Cola de solicitudes = 98, 183, 37, 122,14, 124 65, 67

La cabeza inicia en 53

La ilustración muestra el movimiento total de la cabeza de 640

SSTF (Shortest seek time first)

Cola de solicitudes = 98, 183, 37, 122,14, 124 65, 67

La cabeza inicia en 53

Elige la solicitud con el mínimo tiempo de búsqueda desde la actual posición de la cabeza

La planificación SSTF es una forma de la planificación SJF; puede causar inanición de algunas solicitudes.

La ilustración muestra el movimiento total de la cabeza de 236 cilindros

SCAN

Cola de solicitudes = 98, 183, 37, 122,14, 124 65, 67

La cabeza inicia en 53

El brazo del disco empieza en uno de los extremos del disco, y se mueve hacia el otro extremo, sirviendo las solicitudes hasta que llega al otro extremo, donde le movimiento se invierte y el servicio continua.

Algunas veces es llamado el algoritmo del elevador.

La ilustración muestra un total de 208 movimientos de la cabeza

SCAN DE N PASOS

El brazo del disco empieza en uno de los extremos del disco, y se mueve hacia el otro extremo, sirviendo las solicitudes que ya estaban esperando hasta que llega el otro

C-SCAN

Page 71: Apuntes de Clase de Sistemas Operativos

Proporciona un tiempo de espera mas uniforme que el SCAN.

La cabeza se mueve desde un extremo al otro. Sirviendo solicitudes en su camino. Cuando

C-look

Versión de C-Scan

El brazo solo va tan lejos como esté la ultima solicitud en cada dirección, entonces se devuelve sin ir al extremo

Comparativo de rendimiento de algoritmos de planificación de disco (grafico)

Selección de algoritmo de planificación de disco (grafico)

ELEMENTOS DE LA ADMINISTRACIÓN DE ARCHIVOS (GRAFICO)

Arquitectura software de un sistema de archivos (Grafico)

Organización: archivos apilado, pila, secuencial, secuencial indexado, Directo/aleatorio, Particionado

Método de acceso: Pila, secuencial, secuencial indexado, Directo/aleatorio

Atributos de los archivos

Nombre simbolico – información en forma leible por los humanos

Tipo: Diferencia los archivos dentro de un sistema

Ubicación: señalador de ubicación del archivo en un dispositivo

Tamaño

Protección: Controla quien puede leer, escribir o ejecutar

Hora, fecha e identificación de usuario. Datos para protección, seguridad y monitoreo de uso.

Organización

Tipo de dispositivo

Page 72: Apuntes de Clase de Sistemas Operativos

Tipo (archivo de datos, prog objeto, cola, etc)

Tratamiento (temporal o permanente)

Conteo de actividad

La información acerca de los archivos se guarda en la estructura del directorio, que se guarda en disco

Estructura de Directorio

Una colección de nodos que contienen información acerca de todos los archivos

Elemento de información de un directorio

Fecha de creación

Directorio de nivel simple

Problemas de denominación

Problemas de agrupamiento

Directorio en dos niveles

Directorio estructurado de un árbol

Busqueda eficiente

Capacidad de agrupamiento

Directorio actual (directorio de trabajo)

Trayectoria absoluta o relativa

La creación de un nuevo archivo se hace en el directorio actual

Borrado de archivos: rm <Archivo>

Se recorre desde la raíz

Page 73: Apuntes de Clase de Sistemas Operativos

La creación de un nuevo

Directorio en grafos acíclicos

Tiene subdirectorios y archivos compartidos

Este concepto no existe en Windows

Dos nombres diferentes (alias)

Directorio de grafo general

Como podemos evitar los ciclos?

18 de mayo de 2010

Asignación de espacio para archivos

Contigua, Enlazada, Indexada

Contigua

Cada archivo ocupa un conjunto de bloques contiguos en el disco

Se asigna un único conjunto contiguo de bloques en tiempo de creación

Simple-Solo se requiere la ubicación inicial (nro de bloque) y la longitud (nro de bloques)

Existirá fragmentación externa

Desperdicio de espacio (problema con la asignación dinámica del espacio

Asignación enlazada / encadenada

Page 74: Apuntes de Clase de Sistemas Operativos

Cada archivo es una lista enlazada de bloques de disco: los bloques pueden estar dispersos en cualquier parte del disco.

En lo que respecta a la administración del espacio libre

Asignación indexada

Tiene todos los punteros juntos en el bloque de índices

Vista lógica

Ubicación indexada

Requiere de tabla índice

Acceso aleatorio

Acceso dinámico sin fragmentación externa, pero hay sobre costo en el bloque de índice

Que tan grande debe ser el bloque índice

Lo suficiente para contener los distintos índices:

-Esquema enlazado. Dentro del bloque las últimas direcciones indican otros bloques de dirección

-Indice multinivel. Bloque índice de primer nivel y de segundo nivel, el tercero es el de datos. Con 4096 de tamaño de bloque se tiene 1024 punteros de 4 bytes que apuntarían a 1.048.576 bloques de datos o 4 GB de datos.

-Esquema combinado. Ej 17 punteros de bloque en el bloque índice o I-nodo. Los primeros 12 son directos, 3 a bloques indirectos, luego un indirecto doble, e indirecto triple.

Información de un Nodo

Disposición de un archivo UNIX en un disco (4k por bloque) grafico

Almacenamiento = almacenamiento directo+ indirecto simple+ indirecto doble+ indirecto triple+…

+ numero de índices * tamaño de bloque+ Numero de índices indirectos * (tamaño bloque/Dirección de bytes + (numero de índices

Page 75: Apuntes de Clase de Sistemas Operativos

=Indirecto simple * tamaño de bloque+ indirecto doble*( Tamaño de bloque/Dirección de bytes)2

Es decir

Descripción física en unix

Tamaño max de archivo = D*TB+IS*(Tb/db)*Tb+ID*(tb/db)2 * tb+ IT*(Tb/db)3 *Tb…

Tb: el tamaño del bloque

D: punteros directos

IS: Indirecto simple

ID: Indirectos dobles

IT: Indirectos triples

db: Tamaño de direcciones a dobles

Administración del espacio libre

El mapa de bits requiere de espacio extra, ej: tamaño de bloque = 212 bytes

Tamaño del disco = 230 bytes (1 GB)

n= 230/212= 218 bits (o 32k)

Respaldo y recuperación

Chequeo de consistencia – compara los datos en la estructura del directorio con los bloques de datos en disco, y trata de arreglar inconsistencias.

Uso de programas del sistema para sacar backup de los datos de disco a otro dispositivo de almacenamiento (disquete, cinta, etc)

Recuperación de archivos perdidos o disco al recuperar datos desde el backup

Respaldo total vs respaldo incremental

Esquema abuelo – padre – hijo

Page 76: Apuntes de Clase de Sistemas Operativos

D1…D4

S1….S3

M1…M5

S1

A1

Otros esquemas de respaldo y recuperación

Protección a nivel de disco. Multiples copias de FAT; arreglo en caliente para detección y corrección de bloques malos

Duplexión

Disco de espejo

Sistema RAID. Redundant array of inexpensive/independient disks: conjunto de drives que aparecen como un solo. El nivel de redundancia depende del nivel RAID

RAID 0

RAID 0. Data Stripping without parity (DSA)

Datos copiados en distintos discos sin redundar

RAID 1 Espejo

Los datos son copiados en un arreglo

RAID 2 (Redundancia por código Hamming)

Datos copiados a nivel de bit en todos los drives. No usado

Este nivel cuenta con varios discos para bloques de redundancia y corrección de errores. La división es a nivel debits

RAID 3 (Bit de paridad intercalado)

Datos copiados a nivel de bits o bytes en todos los dryvers

RAID 4 (Paridad a nivel de bloques)

Page 77: Apuntes de Clase de Sistemas Operativos

Independient Disk array (IDA)

Similar al anterior pero a nivel de sectores, mejora el rendimiento. En este nivel los bloques de datos pueden se distribuidos a

RAID 5 (Paridad distribuida a nivel de bloques)

Datos escritos a nivel de sectores, Se incluyen códigos de corrección de error en todos los drives. Los datos y la paridad son guardados en los mismos discos por lo que conseguimos aumentar la velocidad de demanda….

RAID 6 (Redundancia Dual)

RAID de nivel superior

Raid 10

Raid 30

Raid 50

Sistemas de archives de algunos sistemas operativos

FAT

NTFS

Clase de sistemas operativos 20 de mayo de 2010

Tendencias en sistemas operativos

Las principales abstracciones de hoy en día: procesos, hilos, sockets, y archivos no manejan adecuadamente los problemas de administración de la localidad, disponibilidad y tolerancia a fallos. Los sistemas operativos distribuidos pueden resolver estos problemas.

Cualquier fragmento de código debe poder correr en cualquier parte.

El sistema debe manejar localidad, replicación y migración de datos y operaciones.

Page 78: Apuntes de Clase de Sistemas Operativos

Los sistemas operativos del futuro deben estar listos para internet, comercio electrónico, intranets/ extranets, operaciones basadas en internet, servidores de correo electrónico, web, servicios web etc.

El sistema debe ser:

Autoconfigurable

Autoajustable

Automonitoreable

Escalable

Confiable

Seguro

Robusto

Escalable (a nivel mundial)

Tolerante a fallos

Persistente

Preparado para la red (webos, webfs)

Favorable a la movilidad

Extensible

Orientado a objetos

Orientado a GUI

Mayores longitudes de palabra (64, 128 bits)

Ambiente multitier

Reconocimiento automático de componentes

Autodiagnostico

Risc

Multiples ambientes operativos

Page 79: Apuntes de Clase de Sistemas Operativos

Multiples idiomas

Kernel paginable

Interoperatividad

Procesamiento paralelo (simétrico)

Dispositivos ópticos multiescritura

Gestion de comunicaciones y bases de datos en kernel

Configuración en caliente (dinámica)

Registro y seguimiento de operaciones (auditoria), log, Journal

Abstracción agresiva (independencia completa del sistema)

Irrelevancia en almacenamiento (no jerarquía)

Irrelevancia de ubicación

Vinculación justo a tiempo (evitar vinculaciones que afecten la distribución y tolerancia a fallos)

Introspección (monitorearse así mismo, reflexión, autoexamen)

Gran semántica de máquina virtual

Arquitecturas descentralizadas: mejora relación precio beneficio PC-Redes

Estándares

Sistemas operativos multiprocesadores

Los computadores paralelos son aquellos sistemas que favorecen el procesamiento paralelo

Clasificación Flynn arquitecturas de multiprocesadores

SISD: Simple flujo de instrucciones – simple flujo de datos. Un solo procesador ejecuta una única instrucción que opera sobre datos almacenados en una sola memoria. Computadores serie IBM 370, DEC VAX, Macintosh, PC, etc

SIMD: Simple flujo de instrucciones – Multiple flujo de datos

Cada instrucción se ejecuta en un conjunto de datos diferente a través de los diferentes procesadores. Procesadores matriciales, una unidad de control que orquesta varios procesadores que operan sobre varios bloques de datos. Illiac IV, Conection Machine.

Page 80: Apuntes de Clase de Sistemas Operativos

MISD: Multiple flujo de instrucciones – Simple flujo de datos. NO SE USA

MIMD: Multiple flujo de instrucciones – Multiple flujo de datos

Un conjunto de procesadores ejecuta simultáneamente diferentes secuencias de instrucciones en diferentes conjunto de datos. Cray X/Mp, Cedar, Butterfly

Page 81: Apuntes de Clase de Sistemas Operativos