Vous êtes sur la page 1sur 84

11 de febrero de 2010

SISTEMAS OPERATIVOS

Nivel 5 Nivel de lenguaje


orientado al
problema Traducción (compilador)

Nivel de lenguaje
Nivel 4
ensamblador
Traducción ensamblador

Nivel de de
Nivel 3 maquina del
sistema operativo
Interpretación parcial (S.O)

Nivel de maquina
Nivel 2 del sistema
convencional
Interpretación microprogramación

Nivel 1 Nivel de
microprogramació Los microprogramas son ejecutados
n
directamente por la máquina

Nivel 0
Nivel de lógica
digital Maquina
Real
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 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

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.

• 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 Ocultar y administrar los


acoplado para recursos de hw
multiprocesadores y
multicomputadores
homogéneos

NOS Sos red Sos débilmente Ofrece servicios locales


acoplados para
multiplicadores a clientes remotos
heterogéneos (LAN y
WAN)

Middleware Capa adicional por Proporciona


(virtualización) encima de un NOS, que transparencia en la
implementa servicios de distribución
propósito general

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 Servicios del Servicios del


SO Red SO Red 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 Controlado Controlad


or de r unidad or de
disco óptica 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 de memoria
unidad 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 (reactiva después de una


interrupción)
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 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:

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
Usuario

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

• 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
Registro
Trabajo 1 base

Trabajo 2

Trabajo 3
Registro
Trabajo 4 limite

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.

• 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

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

Salva el resto
El controlador de
de la
dispositivo u otro
información de
sistema hardware
estado del
genera una
interrupción.

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

Restaura la
información de
El procesador
estado del
indica el
proceso
reconocimiento de
la interrupción

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

El procesador carga
un nuevo valor en el
pc basado en la
interrupción
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 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

-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 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
Apolicatio
ns
System call
interface

Kernel MM: MANAGER


MEMORY
MM PS IPC FS
I/O NET

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

Interfaz
Entorno vnode/v
de fs
memoria
virtual 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 Servidor de Servidor de Servidor de ….. Servidor de


cliente procesos terminales archivos …… 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, x86-
64, 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 Formularios


web

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

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 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

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)

Ejemplo de
Nivel Nombre objeto
operacion

Ambiente de
Instrucciones en
13 Shell programación de
lenguaje de shell
usuarios

Procesos de
Procesos de Quit, kill,
12 usuarios, espacio
usuario suspend, resume
direcciones V

Create, destroy,
Directorio de
11 Directorios attach, detach,
usuarios
search, list

Dispositivos
externos: Open, close, read,
10 Dispositivos
impresoras, write
pantallas teclados

Create, destroy
Sistemas de
9 archivos open close, read
archivos
write

Create, destroy
8 Comunicaciones Tuberías open close, read
write

Espacio
direcciones
7 Memoria virtual lógicas, Read, Write, fetch
segmentos,
páginas

Bloques de
Almacenamiento dispositivos,
6
secundario local canales de
dispositivos
Procesos
Procesos primitivos,
5
primitivos semáforos, listas
de listos

Programa de Manejo de
4 manejo de interrupciones,
interrupciones guardar contexto

Procedimientos,
3 Procedimientos llamado a pila,
presentación

Conjunto de
Evaluación de la
2 instrucciones del
pila
procesador

Electrónica de los
1
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.

• 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

Dispatch

Enter Not Runnin


Runnin g
g Pause

a) State transition diagram

Enter Dispatch
Process
Exit
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 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

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 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

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

esperand finalizan
transició
o do
n

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

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 expropiativo dirigido por prioridad en puntos de


expropiación

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 de Tiempo de Plazo de


llegada ejecución 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

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 Tiempo de Plazo de inicio


llegada ejecución

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 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

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 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

=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 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.

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