Nivel 4 Traducción ensamblador Nivel 3 Interpret

Anuncio
11 de febrero de 2010
SISTEMAS OPERATIVOS
Nivel 5
Nivel 4
Nivel de lenguaje
orientado al
problema
Traducción (compilador)
Nivel de lenguaje
ensamblador
Traducción ensamblador
Nivel 3
Nivel 2
Nivel de de
maquina del
sistema operativo
Nivel de maquina
del sistema
convencional
Interpretación parcial (S.O)
Interpretación microprogramación
Nivel 1
Nivel de
microprogramació
n
directamente por la máquina
Nivel 0
Real
Nivel de lógica
digital
Los microprogramas son ejecutados
Maquina
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.
•
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)
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
Fortan Monitor System
Memoria
Monitor residente
Drivers de dispositivos
Secuenciador automático de trabajos
Interprete de las tarjetas de control (JCL)
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
monoprogramacion
se
utilizan
más
recursos,
que
en
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
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 Settop 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.
•
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)
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
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
Ofrece servicios locales
Middleware
(virtualización)
multiplicadores
heterogéneos (LAN y
WAN)
a clientes remotos
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)
Maquina A
Maquina B
Maquina C
Aplicaciones distribuidas
Servicios Middleware
Servicios del
SO Red
Servicios del
SO Red
Servicios del
SO Red
Kernel
Kernel
Kernel
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.
9 de marzo de 2010
ARQUITECTURA DEL SISTEMA
CPU
Controlad
or de
disco
Controlado
r unidad
óptica
Controlad
or de
impresora
Bus del sistema
Controlad
or de
memoria
Memoria
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
unidad de memoria
de
memoria
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
interrupción)
(reactiva después de una
Estructura del acceso directo a memoria (DMA) (M)
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:
Tiempo de acceso típico
Capacidad Típica
10 ps
1K
Registros
0.2 ns
16MB
Cache
5-250ns
GB
Memoria principal
16
10 ms
XXTB
disco magnético
100 s
XXTB
Cinta Magnética
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:
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
Interrupción/fallo
monitor
Protección de E/S
Usuario
•
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
•
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.
Kernel
Trabajo 1
Registro
base
Trabajo 2
Trabajo 3
Trabajo 4
Proteccion por hardware
Registro
limite
•
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.
•
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
SVC
Descripción
Llamada al sistema
operativo
Observación
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
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
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
Procesa la
interrupción
Restaura la
información de
estado del
proceso
Restaura los
antiguos PSW y
PC
Servicios del SO
•
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
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
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
memoria principal puede estar en línea o fuera de línea
a
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
-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
Interprete de mandatos externos
Interprete de comandos de Unix -> Shell
Componente X window
X server
función
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
Apolicatio
ns
System call
interface
Kernel
MM PS IPC FS
I/O NET
MM: MANAGER
MEMORY
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
Núcleo UNIX moderno
cuaderno
Conmutad
or de
ejecución
Entorno
de
memoria
virtual
Interfaz
vnode/v
fs
Utilidad
es
comune
s
Entorno de
planificaci
ón
flujo
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
Estructura por niveles de OS/2
Estructura de Mac OS X
Application environments and
common services
BSD
Mach
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
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, x8664, PowerPC, MIPS, SPARC, etc.)
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.
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
web
Formularios
Lenguajes de programación
C#
Jscript
VB.NET
VC++
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
Verificador de Tipos
Interacción con COM
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
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
|
|
|
S archivos
Admon dispositivos
Planificador de procesos
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
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
Shell
Ambiente de
programación de
usuarios
Instrucciones en
lenguaje de shell
12
Procesos de
usuario
Procesos de
usuarios, espacio
direcciones V
Quit, kill,
suspend, resume
Directorios
Directorio de
usuarios
Create, destroy,
attach, detach,
search, list
10
Dispositivos
Dispositivos
externos:
impresoras,
pantallas teclados
Open, close, read,
write
9
Sistemas de
archivos
archivos
Create, destroy
open close, read
write
Comunicaciones
Tuberías
Create, destroy
open close, read
write
Memoria virtual
Espacio
direcciones
lógicas,
segmentos,
páginas
Read, Write, fetch
Almacenamiento
secundario local
Bloques de
dispositivos,
canales de
dispositivos
11
8
7
6
5
Procesos
primitivos
Procesos
primitivos,
semáforos, listas
de listos
4
Programa de
manejo de
interrupciones
Manejo de
interrupciones,
guardar contexto
3
Procedimientos
Procedimientos,
llamado a pila,
presentación
2
Conjunto de
instrucciones del
procesador
Evaluación de la
pila
1
Electrónica de los
circuitos
Implementación de un sistema
•
Los sistemas operativos tradicionalmente se han escrito
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)
en
•
Los sistemas operativos se diseñan para correr en cualquier clase
de maquinas; el sistema debe configurarse para cada computador
especifico.
•
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 compartidoProgramas 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
Dispatch
Enter
Not
Runnin
g
Pause
Runnin
g
a) State transition diagram
Enter
Exit
Dispatch
Process
or
6 de abril de 2010
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
Creación de procesos
•
Los procesos padres crean procesos hijos, los cuales, a su
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
vez crean
Jerarquía de procesos
•
Grupo de procesos dependientes de cada Shell
•
Familia de procesos: -Proceso hijo
hermano. –Proceso abuelo.
•
Vida de un proceso: -Crea
•
Ejecución del proceso:
•
Grupo de procesos
- Proceso padre. –Proceso
- ejecuta -Muere o termina
-Batch
-Iteractivo
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
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.
•
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 Implementaciones
proceso con su propio tradicionale de Unix
espacio de direcciones y
sus recursos
M:1
Un proceso define un Windows NT, solaris,
espacio de direcciones y OS/2, OS/390, MACH
la propiedad sobre los
recursos es dinámica.
Dentro
del
mismo
proceso se pueden crear
y ejecutar multiples hilos
1:M
Un hilo puede migrar Ra (clouds), Emerald
desde un ambiente de
proceso a otro. Esto
permite que un hilo se
pueda mover fácilmente
entre sistemas distintos
M:M
Combina los atributos de Trix
M:1 y 1:M
15 de abril de 2010
Explicación de programa productor y consumidor
Hilos  subprocesos
Delegaciones: parámetros que se
programación orientada a objetos.
pasan
de
procesos
a
un
método,
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
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
stanb
y
ejecutan
do
listo
transició
n
esperand
o
Modelo de procesos/hilos Linux
finalizan
do
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
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
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.
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
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
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)
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)
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
expropiación
expropiativo dirigido por
prioridad
en
puntos
de
d. planificador expropiativo inmediato
PLANEACIÓN EN TIEMPO REAL
Planeacion de tiempo real estatica
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
-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
llegada
de
Tiempo
ejecución
de
Plazo
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
.
.
.
.
de
.
.
.
.
.
.
.
.
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
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
llegada
de Tiempo
ejecución
de 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)
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
-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
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…
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
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
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
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: ….
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
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…
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 ….
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.0No 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.
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
-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
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
Proporciona un tiempo de espera mas uniforme que el SCAN.
La cabeza se mueve desde un extremo al otro. Sirviendo solicitudes
camino. Cuando
en su
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,
Directo/aleatorio, Particionado
pila,
secuencial,
secuencial
indexado,
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
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
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
•
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 Inodo. 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
=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
•
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)
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.
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
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
procesamiento paralelo
son
aquellos
sistemas
que
favorecen
el
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.
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
Descargar