Download - Apuntes de Clase de Sistemas Operativos
11 de febrero de 2010
SISTEMAS OPERATIVOS
Nivel 5
Traducción (compilador)
Nivel 4
Traducción ensamblador
Nivel 3
Interpretación parcial (S.O)
Nivel 2
Interpretación microprogramación
Nivel 1
Los microprogramas son ejecutados directamente por la máquina
Nivel 0
Maquina Real
Nivel de lenguaje orientado al problema
Nivel de lenguaje ensamblador
Nivel de de maquina del sistema operativo
Nivel de maquina del sistema convencional
Nivel de microprogramación
Nivel de lógica digital
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 acoplado para multiprocesadores y multicomputadores homogéneos
Ocultar y administrar los recursos de hw
NOS Sos red Sos débilmente acoplados para multiplicadores heterogéneos (LAN y WAN)
Ofrece servicios locales a clientes remotos
Middleware (virtualización) Capa adicional por encima de un NOS, que implementa servicios de propósito general
Proporciona transparencia en la distribución
Sistemas operativos Distribuidos ->DOS
Proporcionan archivos compartidos
Proveen esquemas de comunicación
Corren independientemente de otros computadores en la red
Accent, Bos/Net, Cocanet – Unix, CP/Net, cp/Nos, hetnos, Lahnos, Mp/Net, Mp/Nos, Netware, Newcastle- Connection, Nsw, pc/Nos, Rio/Cp, Rsexec, Trix, Unetix,
Estructura general de un de un sistema operativo de red (NOS)
Maquina A Maquina B Maquina C
RED
En un sistema distribuido basado en middleware, los protocolos usados por cada capa middleware deben ser los mismos, así como las interfaces que ofrecen a las aplicaciones.
Aplicaciones distribuidas
Servicios Middleware
Kernel
Servicios del SO Red
Kernel
Servicios del SO Red
Kernel
Servicios del SO Red
9 de marzo de 2010
ARQUITECTURA DEL SISTEMA
Bus del sistema
Los controladores son los que permiten que los dispositivos se conecten
Arranque del computador
El arranque/reset carga valores predefinidos en registro
Dirección de arranque del cargador del ROM
Se ejecuta el cargador ROM del sistema
Test del sistema
Trae a memoria el boot del SO
Unidad de memoria unidad de memoria
CPU Controlador de disco
Controlador unidad óptica
Controlador de impresora
Controlador de memoria
Memoria
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
Protección de E/S
Todas las instrucciones de E/S son privilegiadas
Debe asegurarse que el programa del usuario no pueda tener el control del computador en el modo supervisor (ej: un programa de usuario que, como parte de su ejecución, almacena una nueva dirección en el vector de interrupciones)
Protección de memoria
monitor Usuario
Interrupción/fallo
Debe proveer protección de memoria al menos para el vector de interrupciones y el vector de las rutinas de servicios de interrupciones.
Con el fin de tener la protección de memoria, se agregan dos registros que determinan el rango de las direcciones validas que un programa puede acceder:
-Registro base- Contiene la dirección legal física más pequeña.
-Registro limite- Contiene el tamaño del rango.
-La memoria fuera del rango es protegida.
El registró base y el límite define un espacio de direcciones lógico.
Proteccion por hardware
Cuando se está ejecutando en modo supervisor, el SO tiene acceso irrestricto tanto a la memoria del usuario como la del supervisor.
Las instrucciones de carga para el registro base
Protección por CPU
Temporizador – Interrumpe al computador después de un periodo especifico para garantizar que el SO mantenga el control.
-El temporizador se decrementa por cada pulsación del reloj.
-Cuando el temporizador alcanza el valor de 0, ocurre una interrupción.
Kernel
Trabajo 1
Trabajo 2
Trabajo 3
Trabajo 4
Registro base
Registro limite
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
Servicios del SO
El controlador de dispositivo u otro sistema hardware genera una interrupción.
El procesador termina la ejecución de la instrucción actual
El procesador indica el reconocimiento de la interrupción
El procesador apila PSW y el PC en la pila de control
El procesador carga un nuevo valor en el pc basado en la interrupción
Salva el resto de la información de estado del proceso
Procesa la interrupción
Restaura la información de
estado del proceso
Restaura los antiguos PSW y PC
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
Apolications
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
Estructura de Linux
El kernel es una estructura monolítica
Los módulos son unidades independientes de software que pueden ser diseñados e implementados después de instalar el SO y se pueden instalar dinámicamente.
El administrador de módulos permite cargar los módulos en memoria y hablar con el resto del kernel. El registro de manejadores permite que los módulos le digan al resto del kernel que ya está disponible un nuevo manejador.
Enfoque Modular de solaris
Utilidades comunes
Interfaz vnode/vfs
Entorno de planificación
Conmutador de ejecución
flujo
Entorno de memoria virtual
Estructura por niveles de OS/2
Estructura de Mac OS X
Kernel environment
Estructura de Mach (CMU)
Estructura Cliente Servidor
Proceso cliente
Servidor de procesos
Servidor de terminales
Servidor de archivos
….. ……
Servidor de memoria
NUCLEO
Estructura cliente servidor de Window NT
Application environments and common services
BSD
Mach
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)
Nivel Nombre objeto Ejemplo de operacion
13 ShellAmbiente de
programación de usuarios
Instrucciones en lenguaje de shell
12 Procesos de usuarioProcesos de usuarios, espacio direcciones V
Quit, kill, suspend, resume
11 Directorios Directorio de usuariosCreate, destroy,
attach, detach, search, list
10 DispositivosDispositivos externos: impresoras, pantallas
teclados
Open, close, read, write
9 Sistemas de archivos archivosCreate, destroy open
close, read write
8 Comunicaciones TuberíasCreate, destroy open
close, read write
7 Memoria virtualEspacio direcciones lógicas, segmentos,
páginasRead, Write, fetch
6Almacenamiento secundario local
Bloques de dispositivos, canales
de dispositivos
5 Procesos primitivos Procesos primitivos, semáforos, listas de
listos
4Programa de manejo
de interrupciones
Manejo de interrupciones,
guardar contexto
3 ProcedimientosProcedimientos, llamado a pila, presentación
2Conjunto de
instrucciones del procesador
Evaluación de la pila
1Electrónica de los
circuitos
Implementación de un sistema
Los sistemas operativos tradicionalmente se han escrito en ensamblador, ahora puede ser escritos en lenguajes de alto nivel.
el código escrito en alto nivel:
Puede ser escrito más rápido
Es mas compacto
Es mas fácil de entender y depurar
Un sistema es más fácil de ser portable si esta escrito en un lenguaje de alto nivel.
Algunos lenguajes de alto nivel usados para escribir sistemas operativos: C(Unix, OS/2, Win NT), Fortran (Primos), Algol (MCP (manster Control Program) burrougs), Bliss (VMS DEC) PL/360, perl, PL1 (multics) Pascal
Generación sistema (SYSGEN)
Los sistemas operativos se diseñan para correr en cualquier clase de maquinas; el sistema debe configurarse para cada computador especifico.
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
Pause
a) State transition diagram
Enter Dispatch Exit
6 de abril de 2010
Not Running
Running
Processor
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 proceso con su propio espacio de direcciones y sus recursos
Implementaciones tradicionale de Unix
M:1 Un proceso define un espacio de direcciones y la propiedad sobre los recursos es dinámica. Dentro del mismo proceso se pueden crear y ejecutar multiples hilos
Windows NT, solaris, OS/2, OS/390, MACH
1:M Un hilo puede migrar desde un ambiente de proceso a otro. Esto permite que un hilo se pueda mover fácilmente entre sistemas distintos
Ra (clouds), Emerald
M:M Combina los atributos de M:1 y 1:M
Trix
15 de abril de 2010
Explicación de programa productor y consumidor
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
Modelo de procesos/hilos Linux Grafico
Estado de hilos en Solaris Grafico
Hilos de Java
Los hilos de Java pueden ser creados por: - Estensión de la clase hilos, -Implementando una interface que los corra
Los hilos de java son administrados por la JM
Suspend () suspende la ejecución del hilo que se esta ejecutando
Sleep () coloca el hilo que actualmente está corriendo a dormir un determinado tiempo
Implementando la interface Runnable
Ejemplo hilos C#
PLANEACIÓN DE LA CPU
stanby
ejecutando
listo
esperando finalizandotransición
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 llegada Tiempo de ejecución Plazo de conclusión
A(1) 0 10 20
A(2) 20 10 40
A(3) 40 10 60
A(4) 60 10 80
A(5) 80 10 100
.
.
.
.
.
.
.
.
.
.
.
.
B(1) 0 25 50
B(2) 50 25 100
.
.
.
.
.
.
.
.
Planificación de tareas periodicas de tiempo real con plazos de conclusión
(grafico) solución diagramas de tiempos
Solución: Planificación de plazo más cercano usando plazos de conclusión
En este caso pueden cumplirse todos los requisitos del sistema por medio de planificación que da prioridad, en los instantes de expropiación, a la tarea que tenga el plazo mas cercano. Dado que las tareas son periódicas y predecibles, se usa un método de planificación con tablas estáticas
Ejemplo2:
Perfil de ejecución de cinco tareas aperiódicas: Sean 5 tareas con tiempo de ejecución de 20 ms
proceso Tiempo de llegada Tiempo de ejecución Plazo de inicio
A 10 20 110
B 20 20 20
C 40 20 50
D 50 20 90
E 60 20 70
Planificación de tareas aperiodicas de tiempo real con plazos de inicio
Grafico (solución Seguir el sentido de las flechas de entrada y de salida)
27 de abril de 2010-04-27
Administración de memoria
Los programas deben ser llevados a la memoria y convertirse en procesos para ser ejecutados
Cola de entrada: colección de programas en disco que esperan para ser llevados a la memoria para la ejecución
Requerimientos de memoria Ms Windows (tabla)
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.0 No referenciadas….
Otros algoritmos de reemplazo de paginas M
Aleatorio (Random): Reemplaza las paginas de forma aleatoria, se trabaja en el OS/360 cuando se degenera el LRU , también se utilizó en extinto i860 de intel (risc)
No frecuentemente usada (NFU) : c/ páginas tiene un contador, en cada intervalo de reloj se incrementa en 1 el contador de las páginas referenciadas, asi cuando se requiere intercambio.
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