sistemas operativos distribuidos dos

Anuncio
Clase numero 5
SISTEMAS DE TIEMPO REAL

Con frecuencia se utilizan como dispositivosde control en aplicaciones delicadas tales como el control de experimenros cientificos, sistemas de
imagenes medicas, y algunos sistemas de presentacion. Restricciones de timepo 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 esta soportado por los sistemas operativos de proposito general.

Sistemas de tiempo real blandos de utilidad limitada en industrias de control o robótica.Util en aplicaciones que requieren de avanzadas caracteristicas
del sistema operativo (multimedia, realidad virtual).
La estructura de un sistema de tiempo real esta conformado de un sistema controlador y al menos un sistema controlado.
Los sistemas de tiempo real deben producir resultados computacionales exactos, llamados exactitud funcional o logica, y estos calculos deben terminar en un
periodo de tiempo predefinido, llamada exactitud temporal.
Los sistemas de tiempo real se definen como aquellos sistemas en los cuales la exactitud total del sistema depende de la exactitud funcional y de la exactitud
temporal.
SISTEMAS MULTIPROCESADOR


Sistemas multiprocesador con mas de una CPU en comunicacion muy cercana.
Sistemas fuertemente acoplados-los procesadores comparten la memoria y el reloj; la comunicacion por lo general se realiza a traves de la memoria
compartida.

Ventajas de los sistemas paralelos:
Incremento del rendimiento.
Economicos.
Encrementan confiabilidad.(degradacion gradual, Sistemas de fallos controlados por software).
SISTEMAS OPERATIVOS DISTRIBUIDOS DOS
Menos autonomia entre computadores.
Da la impresion que solo hay un sistema operativo controlando la red.
Aegis, Amoeba, Arachne, Charlotte, Chice, Clouds, Cmds, Condor, Cronus, Demos/Mp, Distos, Distrix, Dunix, Eden, Galaxy, Locus, Mdx, Micros-Mos, Mosix,
Newark, Nsmos, Plam9, Repos, Rig, Roscoe, Saguaro, Soda, Sods/Os, Spring, Uniflex, V.
ESTRUCTURA GENERAL SISTEMA OPERATIVO DE RED (NOS)
Proporciona archivos compartidos.
Proveen esquemas de comunicacion.
Corren independientemente de otros computadores en la red.
Accent, Bos/Net, Cocanet-Unix, Cp/Net, Cp/Nos, Hetnos, Lahnos, Mp/Net, Mp/Nos, Netware-connection, Nsw, Pc/Nos, Rio/Cp, Rsexec, Trix, Unetix.
ESTRUCTURA GENERAL DE UN SISTEMA DISTRIBUIDO BASADO EN MIDDLEWARE
Es un sistema distribuido basado en middleware, los protocolos usados por cada capa middleware deben ser los mismos, asi como las interfaces que ofrecen a las
aplñiaciones.
ARQUITECTURA DEL SISTEMA
ARRANQUE DEL COMPUTADOR



El arranque/Reset carga valores predefinidos en registros.
Direccion de arranque del cargador ROM.
Se ejecuta el cargador ROM del sistema.
Test del sistema.
Trae a memoria el boot del SO.

En el del PC la ROM contiene, ademas, SW de E/S (BIOS).
ARRANQUE DEL SITEMA OPERATIVO


El cargador ROM carga el sector de boot del SO y le da control, si multos >Programa gestor de arranque.
El boot del SO carga el SO rsidente y da control al programa de arranque del SO, que:
Comprueba el hardware.
Comprueba el sistema de ficheros.
Establece las tablas del SO.
Crea procesos ((segun el tipo de SO)
Procesos INIT
Procesos o tareas del sistema (demonios).
Procesos de login (uno por terminal).




Tras la autentuicacion, el proceso login se convierte en shell.
Toma control SO (inicio).
Espera de ocurrencia de suceso (interrupcion Hw/Sw).
Si enterrupcion
Desactiva las otras interrupciones.
Guarda estado sistema.
Ejecuta rutina de vector de interrupciones/escrutinio.
Reactiva variables de estado.
ACCESO DIRECTO A MEMORIA (DMA)
1.
El procesador envia una solicitud de I/O, el cual envia una solicitud al disco.El procesador continua ejecutando instrucciones.
2.
El disco envia los datos al controlador de I/O; los datos se colocan en la direccion de memoria especificada por la orden DMA.
3.
El disco envia una interrupcion al pecesador para indicar que la peticion I/O se ha realizado.
JERARQUIA DEL ALMACENAMIENTO

Los sistemas de almacenamiento se organizan por jerarquias.
Velocidad.
Costo.
Volatilidad.

Caching- es la copia de informacion en un sistema de almacenamiento mas rapido; la memoria principal puede verse como el ultimo cache para el
almacenamiento secundario.
JERARQUIA DE LOS DISPOSITIVOS DE ALMACENAMIENTO
clase numero 6
ESPECIFICACIONES SUPERCOMPUTADOR SILLICON GRAPHICS
Silicon graphics
1024 procesadores Intel Itanium2 dual-core 1.6 Ghz con 6MB cache L3 cada uno y 4 terabytes de
memoria, corriendo servidor Suse Linux Enterprise 10.
Tiene una tasa de transferencias sostenida de 4.5 terabytes por seg vs 1089 MB/s de pentium 4
3.2 Ghz.
UNIDADES DE MEDIDA

PROTECCION DE HARDWARE
Operacion en modo dual.

Proteccion de E/S

Proteccion de memoria

Proteccion de CPU.
OPERACION 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 so`porte al hardware para diferenciar entre al menos dos modos de operacion.
1. Modo de usuario- Ejecucion de parte del usuario.
2. Modo Monitor (tambien modo supervisor o modo del sistema)- Ejecucion realizada por parte
del sistema operativo.

(1).

OPERACION EN MODO DUAL (2)
Se adiciona al hardware un bit de modo para indicar el modo actual: monitor (0) o usuario
Cuando sucede una interrupcion o fallo el hardware se cambia a modo monitor.
Interrupcion/fallo

Las instrucciones privilegiadas solo pueden ser ejecutadas en el modo supervisor.
PROTECCION DE MEMORIA

Debe proveer proteccion de memoria al menos para el vector de interrupciones y el vector
de las rutinas de sevicios de interrupcion.

Con el fin de tener la proteccion de memoria, se agregan dos registros que determinan el
rango de las direcciones validas que un programa puede acceder:
-Registros base- contiene la direccion legal fisica mas pequeña.
-Registro limite- contiene el tamaño del rango.
-La memoria fuera del rango es protegida.
EL REGISTRO BASE Y EL LIMITE DEFINEN UN ESPACIO DE DIRECCIONES LOGICO
PROTECCION POR HARDWARE

Cuando se esta 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 y el limite son privilegiadas.
PROTECCION POR CPU

Temporizador: Interrumpe al computador despues de un periodo especifico para garantizar
que el SO mantenga el control.
- El temporizador se decrementa por cada pulsacion del reloj.
-Cuando el temporizador alcanza el valor de 0, ocurre una interrupcion.

El temporizador se utiliza comunmente para implementar tiempo compartido.

El temporizador tambien se utiliza para calcular el tiempo actual.

La carga del temporizador es una instruccion privilegiada.
ESTRUCTURA DEL SISTEMA
COMPONENTES DEL SO
LLAMADAS AL SISTEMA

Las llamadas al sistema proporcionan la interface entre un programa corriendo y el sistema
operativo.

En general estan disponibles como instrucciones en ensamblador.

Se han definido lenguajes para reemplazar el lenguaje ensamblador en programacion de
sistemas que permitan realizar en forma directa las llamadas al sistema.

Tres metodos genericos para pasar parametros a las llamadas al sistema:
-En registros.
-En una tabla de memoria, cuya dirrecion se pasa al SO en un registro.
-Poner los parametros en la pila del programa y dejar que el SO los extraiga.

Cada SO proporciona sus propias llamadas al sitema:
-Estandar POSIX (Portable Operating System Interface) en UNIX y LINUX.
-Win 32 en Windows NT.
-Java API para JVM.
PROCESAMIENTO SIMPLE DE INTERRUPCIONES
INTERFAZ DEL PROGRAMADOR

Esta interfaz recupera la vision que como maquina extendida riene 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

ESTANDAR POSIX
Interfaz estandar de sistemas operativos de IEEE.

Objetivo: portabilidad de las aplicaciones entre diferentes plataformas y sistemas
operativos.


NO es una implementacion, solo efine una interfaz.
Diferentes estandares
-1003.1 Servicios basicos del SO.
-1003.1a Extensiones a los servicios basicos.
-1003.1b Extensiones de tiempo real.
-1003.1c Extensiones de procesos ligeros.
-1003.2 Shell y utilidades.
-1003.2b Utilidades adicionales.
CARACTERISTICAS DE WIN32

Define los servicios ofrecidos por los sistemas Windows 95/98, Windows NT, Windows
2000, XP.

No es un estandar.

API totalmente distinto a POSIX.

Los recursos se referencian mediante manejadores.

Nombres de funciones largos y descriptivos:
-GetFileAtributes.
-CreateNamedPipe


Dispone de tipos de datos predefinidos.
-Bool
-Dword
-Tchar.
Las funciones devuelven en general True en caso de éxito y False en caso de error.
SISTEMA INTERPRETE DE COMANDOS

Muchos comandos se dan al sistema operativo por instrucciones de control que tienen que
ver con:
-Administracion y creacion de procesos
-Manejo de E/S.
-Administracion de memoria secundaria.
-Administracion de memoria principal.
-Acceso al sistema de archivos.
-Proteccion.
-Redes.


El programa que lee e interpreta las instrucciones de control tiene diferentes nombres:
-Interprete de tarjetas de control.
-Interptrete de lineas de comando.
-Shell.
Su funcion es obtener y ejecutar la proxima instruccion de comandos
clase numero 7
ARQUITECTURA DE UN COMPUTADOR
Las capas claves de implementacion se comunican verticalmente a traves del conjunto de
instrucciones de la arquitectura, la interface de aplicacion binaria y la interface de programas de
aplicacion.
MONITORES DE MAQUINA VIRTUAL

Una componente clave de las VM son los monitores de maquina (VMM) que peoporcionan
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 esata mantado.
Procesos
y
las
VM
a. En un proceso de VM, el software de virtualizacion traduce un conjunto de instrucciones del SO
y
de
nivel
de
usuario
convirtiendo
una
plataforma
en
otra.
b. En un sistema VM el software de virtualizacion traduce la ISA (Arquitectura del conjunto de
instrucciones) utilizada por una plataforma de hardware en otra.
TAXONOMIA DE VM
Las VM pueden ser de procesos o de sistemas, con la misma o diferente arquitectura de conjunto
de instrucciones.
VENTAJAS Y DESVENTAJAS DE LAS MAQUINAS VIRTUALES

El concepto de maquina virtual proporciona completa proteccion de los recursos del
sistema, ya que cada maquina virtual esta aislada de las otras maquinas virtuales. El aislamiento,
no permite el compartir en forma directa los recursos.

Un sistema de maquina virtual es una perfecto vehiculo para la investigacion y el desarrollo
de los sistemas operativos, el desarrollo del sistema se hace sobre la maquina virtual, a cambio de
realizarlo sobre la maquina fisica de tal forma que no afecta la operacion normal del sistema.

El concepto de maquina virtual es dificil de implementar debido al esfuerzo requerido para
proporcionar un duplicado exacto de la maquina subyacente.
AMBIENTES DE LENGUAJES DE ALTO NIVEL
a) Ambiente convencional donde se distribuye el codigo objeto de la plataforma tradicional.
b) Ambiente de VM donde una VM dependiente de plataforma ejecuta codigo portable intermedio.
PLATAFORMA JAVA
PLATAFORMA .NET FRAMEWORK
ESTRUCTUIRA INTERNA DEL ENTRONO DE COMUN DE EJECUCION PARA LENGUAJES
CLR (COMMON LANGUAGE RUNTIME)

Multiplataforma El modelo es abierto, luego es posible la creacion de CLR para cualquier
plataforma.

Multilenguaje Existen traductores para C#, J#, Visul C++, Visual Basic, Pascal, Cobol,
Java, Eiffel, Python, Perl, APL, Delphi, Mondrian, Fortrian, RPG, Smalltalk, Haskell...

Recolector de basura muy efectivo En C# no existen destructores.

Liberacion determinista mediante el uso de la instruccion Using Los paquetes se
tienen en memoria solo cuando se usan.

TIPOS SOS DE ACUERDO AL KERNEL
Macrokernel/Monokernel

Microkernel

Nano Kernel

Exokernel
ARQUITECTURA MICROKERNEL
Arquitectura de sistemas operativos microkernel

Proporciona solo un pequeño numero de servicios;Intenta tener un kernel pequeño y
escalable.

Alto grado de modularidad; Extensible, portable y escalable.

Se incrementa el nivel de comunicacion entre modulos; Puede degradar el rendimento del
sistema.

BENEFICIOS DE UNA ORGANIZACION MICROKERNEL
Interfaces uniformes en las peticiones realizadas por un proceso.
- Los procesos no necesitan diferenciar entre servicios a nivel de nucleo y a nivel de usuario.
- Todos los servicios se proporcionan a traves de paso de mensajes.

Estensibilidad
- Permite agragar nuevos servicios.

Flexibilidad
- Se pueden añadir nuevas caracteristicas al sistema operativo.
- Se pueden eliminar las caracteristicas existentes.

Portabilidad
- Los cambios necesarios para transferir el sistema a un nuevo procesador se cambian en el
micronucleo, no en otros servicios.

Fiabilidad.
- Diseño modular.
- Un micronucleo pequeño se puede verificar de forma rigurosa.

Sporte de sistemas distribuidos.
- Los mensajes se mandan sin saber en que maquina reside el servicio pedido.

Sistema operativo orientado a objetos.
- Los componentes son objetos con enietrfaces claramente definidad que puedenser
interconectadas para la realizacion del software.

EXOKERNEL
Un SO se interpone entre las aplicaciones y el Hw.

Elimina el concepto de abstraccion sobre el cual corren las aplicaciones.

Se asegura de multiplexar el Hw desnudo: a traves de primitivas de Hw, librerias a nivel de
aplicacion y servidores.

Ej. XOK con Exos (libreria sos tipo unix) de MIT, Aegis, Nemesis (Cambridge).

El servidor Cheetah se construye sobre XOK.

Es escencialmente la extension de la filosofia de la arquitectura Risc en CPU al nivel del
sistema operativo.
OBJETIVOS DE DISEÑO DEL SISTEMA

Objetivos de los usuario- que el sistema operativo sea adecuado para su uso, facil de
aprender, confiable, seguro y rapido.

Objetivos del sistema- El sistema operativo debe ser facil de diseñar, implementar, y
mantener, de la misma forma que sea flexible, confiable, libre de errores y eficiente.
IMPLEMENTACION DEL SISTEMA

Los sistemas operativos tradicionalmente se han escrito en ensamblador, ahora pueden
ser escritos en lenguajes de alto nivel.


El codigo escrito en alto nivel:
- Puede ser mas rapido.
- Es mas compacto.
- Es mas facil de entender y depurar.
Un sistema es mas facil de ser portable si esta escrito en lenguaje de lato nivel.
Clase numero 8
PROCESOS

Concepto de procesos.

Operaciones sobre procesos.

Procesos cooperativos.

Hilos.

Planeacion de procesos.

CONCEPTO DE PROCESOS
Un sistema operativo ejecuta una variedad de programas:
- Sistemas por lotes-Trabajos.
- Sistemas de tiempo compartido- Programas de usuario o tareas.

Definicion: Un programa en ejecucion con el entorno asociado/Unidad de procesamiento
gestionada por el SO.

Un proceso incluye:
- Un controlador de programa.
- Pila.
- Seccion de dator, codigo.

Programa: ente pasivo.

Proceso: ente activo.

SISTEMA CON MEMORIA VIRTUAL
La informacion de traduccon esta en la tabla de paginas.

Preasignacion de zona de intercambio: Todas las paginas estan en disco, algunas estan
copiadas en marcos de pagina.

MODELO SIMPLIFICADO
Un proceso puede estar en dos estados:
- Corriendo
- No corriendo.
ESTADO DE LOS PROCESOS
En la medida que se ejecuta un proceso su estado se modifica.

Nuevo: El proceso se esta creando.

Corriendo: Las instrucciones estan ejecutandose.

Esperando/Bloqueado: El proceso esta a la espera de la ocurrencia de algun evento.

Listo: El proceso esta esperando a ser asignado al proceador.

Terminado: El proceso ha terminado su ejecucion.
DIAGRAMA DE TRANSICION DE ESTADO DE LOS PROCESOS.
Clase numero 9

OPERACIONES SOBRE LOS PROCESOS
CREAR: nombre, BCP, tabla, recursos, prioridad, jerarquico/No jerarquico.

DESTRUIR: Eliminarlo del sistema.

SUSPENDER:Paraliza (fallo. pausa, congestion).

Retardar

Abortar

Leer atributos

REANUDAR

CAMBIAR PRIORIDAD

BLQUEAR: E/S

DESPERTAR: Desbloqueo.

DESPACHAR

TEMPORIZAR: Ejecucion programada
ESTRUCTURA GENERAL DE LAS TABLAS DE CONTROL DEL SO
Tablas del sistema operativo
BLOQUE DE CONTROL PROCESOS (PCB)
Descriptor del proceso para SO en tabla de procesos, informacion asociada con cada proceso.

Identificacion del proceso (PID)

Identificacion del procesador, Afinidad.

Estado del proceso (flags)

Identificacion de usuario, grupo

Contador de programa

Apuntador a proceso padre

Apuntadores a procesos hijos

Registros visibles de la CPU

Informacion de planificacion de la CPU

Informacion de administracion de la memoria (datos, instrucciones)

Informacion contable

Informacion de estado E/S

Localiza, Identificador, estado padre, hijos, prioridad, memoria, estadisticas, recursos en
uso, privilegios, hora inicio, ...
LA CPU CAMBIA DE PROCESOS A PROCESO

Cuando la cpu cambia a otro procesos, el sistema debe guardar el estado del proceso
anterior y cargar el estado guardado del nuevo proceso.

La conmutacion de contexto es trabajo extra, el sistema no realiza trabajo util mientras
cunmuta, depende en gran medida del apoyo del hardware.

Cuando un proceso esta ejecutando su estado reside en los registros del computador.

Cuando un proceso no se esta ejecutando, su estado reside en el BCP.
PLANIFICADORES

El planificador de corto plazo o planificador de cpu selecciona que proceso debe ser
ejecutado enseguida y se le aigna la cpu, bajo nivel, Scheduler/ despachador es solicitado muy
frecuentemente (milisegundos) -(debe ser rapido).

Planificador de mediano plazo: intermedio.

El planificador de largo plazo o planificador de trabajos: selecciona que proceso debe ser
traido a la cola de listos, es solicitado con poca frecuencia ( segs, minutos)- (puede ser lento)

El planificador de largo plazo controla el grado de multiprogramacion.

Los proceos pueden ser descritos como:
- Procesos limitados por E/S- consumen mas tiempo realizando operaciones de E/S que
calculos, causan mucgas rafagas cortas a la cpu.
- Procesos limitados por cpu- consumen mas tiempo realizando calculos, emplean pocas
rafagas fuertes a la cpu.
ADICION DE PLANIFICACION DE MEDIANO PLAZO
CREACION DE PROCESOS

Los procesos padres crean proceos hijos, los cuales, a su vez crean otros proceos,
conformando un arbolde procesos.


Recursos compartidos.
- Los procesos padres e hijos comparten los recursos.
- Los hijos comparten un subconjunto de los recursos del padre.
- El padre y e hijo no comparten recursos.
Ejecucion.
- El padre y el hijo se ejecutan concurrentemente.
- El padre espera a que termine el hijo.

Espacio de direcciones.
- El hijo deplica el del padre
- Se carga un programa en el proceso hijo.

Ejemplos Unix.
- La llamada al sistema fork crea nuevos procesos.
- La llamada al sistema execve es utilizda despues de fork para reemplazar el espacio de
memoria del proceso con un nuevo programa.

JERARQUIA DE PROCESOS
Grupos 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

Ejecucion del proceso
- Batch
- Interactivo

Grupo de procesos.
PROCESOS COOPERATIVOS
Los proceos independientes no pueden afectar o ser afectados por la ejecucion de otros procesos.

Los procesos cooperativos pueden afectar o ser afectados por la ejecucion de otros
procesos.

Ventajas de cooperacion entre procesos
- Se comparte informacion
- Agiliza los calculos.
-Convivencia.
PROBLEMA DE LOS PRODUCTORES Y CONSUMIDORES.
El problema de productores y consumidores es un paradigma de los procesos cooperativos, los
productores producen informacion que es consumida por los procesos consumidores.
Buffer ilimitado no establece un limite practico para el tamaño del buffer.
El buffer limitado asume que hay un tamaño fijo de buffer.
HILOS

Beneficios

Hilos de usuario y de nucleo

Modelos multihilados

Hilos solaris 2

Hilos Java
Ms-dos usa un solo hilo por proceso.
Unix V soporta multiples procesos por usuario pero solo un hilo por proceso.

Un hilo (o proceso ligero/liviano) es una unidad basica de utilizacion de la cpu; consiste de:
- Contador del programa
- Conjunto de registros.
- Espacio de pila.

Un hilo comparte con sus hilos pares su:
- Seccion de codigo
-Seccion de datos
-Los recursos del sistema operativo.
Colectivamente conocido como una tarea.

Um proceso tradicional o pesado es igual a una tarea con un solo hilo.
Descargar