C1 introduccion 2012_1_ssoo_mododecompatibilidad_

16
Sistemas Operativos Diaz Muñante Jorge 1 Introducción al curso Your picture here Sistemas Operativos Ciclo 2012-1 Profesor: Diaz Muñante Jorge 2 Introducción Presentación ¿qué esperan del curso? Objetivos del curso 3 Objetivos del curso Conocer las distintas partes de un SO Cómo se relacionan. Fundamentos de la operación Conocer la necesidad de tener sistemas operativos eficientes en un sistema de computación. Ver cómo se implementa en algún sistema operativo real la gestión de los recursos vista en teoría. 4 Introducción Presentación ¿qué esperan del curso? Objetivos del curso Horario – Martes de 2 a 5 PM – Intermedio de 15 minutos Planificación del curso L M M J V S D Sem Tema PPT 26 27 28 29 30 31 1 Mar 1 Introduccion al curso C1_introduccion 2 3 4 5 6 7 8 Abr 2 Procesos. Estados C2_administracion_procesos 9 10 11 12 13 14 15 3 Interrupciones, Hilos C2_administracion_procesos 16 17 18 19 20 21 22 4 Semaforos C3_sincronizacion_procesos 23 24 25 26 27 28 29 5 Abrazo Mortal. Quiz # 1 C4_abrazo_mortal 30 1 2 3 4 5 6 May 6 Objetivos. Algoritmos C5_planificacion_cpu 7 8 9 10 11 12 13 7 Algoritmo Unix C5_planificacion_cpu 14 15 16 17 18 19 20 8 Examen Parcial 21 22 23 24 25 26 27 9 Organización. Estrategias C6_adm_memoria_real 28 29 30 31 1 2 3 Jun 10 Fija y Variable C6_adm_memoria_real 4 5 6 7 8 9 10 11 Antecedentes, Organización C7_memoria_virtual 11 12 13 14 15 16 17 12 Paginada. C7_memoria_virtual 18 19 20 21 22 23 24 13 Estrategias. Quiz # 2 C7_memoria_virtual 25 26 27 28 29 30 1 Jul 14 Dispositivos. Alg Disco C8_dispositivos 2 3 4 5 6 7 8 15 Archivos. Organización C9_administracion_archivos 9 10 11 12 13 14 15 16 Examen Final 16 17 18 19 20 21 22 17 Examen Sustitutorio Planificacion del curso 6 Introducción Presentación ¿qué esperan del curso? Objetivos del curso Horario Planificación del curso Material de apoyo Evaluación

Transcript of C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Page 1: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 1

Introducción al curso

Your picture hereSistemas Operativos

Ciclo 2012-1

Profesor:

Diaz Muñante Jorge

2

Introducción

�Presentación

�¿qué esperan del curso?

�Objetivos del curso

3

Objetivos del curso

• Conocer las distintas partes de un SO

• Cómo se relacionan.

• Fundamentos de la operación

• Conocer la necesidad de tener sistemas operativos eficientes en un sistema de computación.

• Ver cómo se implementa en algún sistema operativo real la gestión de los recursos vista en teoría.

4

Introducción

�Presentación

�¿qué esperan del curso?

�Objetivos del curso

�Horario

– Martes de 2 a 5 PM

– Intermedio de 15 minutos

�Planificación del curso

L M M J V S D Sem Tema PPT

26 27 28 29 30 31 1 Mar 1 Introduccion al curso C1_introduccion

2 3 4 5 6 7 8 Abr 2 Procesos. Estados C2_administracion_procesos

9 10 11 12 13 14 15 3 Interrupciones, Hilos C2_administracion_procesos

16 17 18 19 20 21 22 4 Semaforos C3_sincronizacion_procesos

23 24 25 26 27 28 29 5 Abrazo Mortal. Quiz # 1 C4_abrazo_mortal

30 1 2 3 4 5 6 May 6 Objetivos. Algoritmos C5_planificacion_cpu

7 8 9 10 11 12 13 7 Algoritmo Unix C5_planificacion_cpu

14 15 16 17 18 19 20 8 Examen Parcial

21 22 23 24 25 26 27 9 Organización. Estrategias C6_adm_memoria_real

28 29 30 31 1 2 3 Jun 10 Fija y Variable C6_adm_memoria_real

4 5 6 7 8 9 10 11 Antecedentes, Organización C7_memoria_virtual

11 12 13 14 15 16 17 12 Paginada. C7_memoria_virtual

18 19 20 21 22 23 24 13 Estrategias. Quiz # 2 C7_memoria_virtual

25 26 27 28 29 30 1 Jul 14 Dispositivos. Alg Disco C8_dispositivos

2 3 4 5 6 7 8 15 Archivos. Organización C9_administracion_archivos

9 10 11 12 13 14 15 16 Examen Final

16 17 18 19 20 21 22 17 Examen Sustitutorio

Planificacion del curso

6

Introducción

�Presentación

�¿qué esperan del curso?

�Objetivos del curso

�Horario

�Planificación del curso

�Material de apoyo

�Evaluación

Page 2: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 2

Material de apoyo

�Material electronico en campus.dokeos.com

– Registrar en Dokeos

– Registrar en el curso

• El registro es el curso virtual de teoria y de laboratorio.

tlozano

•Ingresa a tu cuenta•Ingresa a la opción “ordenar mis cursos”

Pagina de DIU - Dokeos

Page 3: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 3

13

Material de apoyo

� Campus de Dokeos - Aula virtual

– Todas las clases en pdf (3 y 6 diapositivas x hoja)

� Bibliografia

– Sistemas Operativos Modernos – 3ra ediciónAndrew S. Tanenbaum

– Sistemas operativos Conceptos FundamentalesSilbershatz, Galvin, Gagne

14

Evaluación

Evaluación Porcentaje Termino Fecha

Examen Parcial

25 % EP Semana 8

Examen Final 30 % EF Semana 15

Evaluaciones continuas

10 % PC1, PC2 Semana 5 y 13

Laboratorio 35 % Prof. M E Rivera

Evaluación

�Sustitutorio

– Reemplaza el promedio de E1 y E2

– Son By four – A puro dolor

– Grupo Kaliente - Iquitos

• Solo me queda llorar... resignado a perderte... Solo me queda llorar... dolido y vació …

– Maelo Ruiz – Te va a doler

• Pero te vas arrepentir la vida entera

Recuperación

�Feriado Martes 01 de mayo

– Por video conferencia

17

Introducción

�Presentación

�¿qué esperan del curso?

�Objetivos del curso

�Horario

�Planificación del curso

�Material de apoyo

�Evaluación

�Recomendaciones

En cualquier sitio ¡¡¡

Celulares

ATMs

Medicina(MRI)

Carros

Microondas

ControladorDe trafico

ipod PDA

Aviones

Reloj

Robots

Camaras

Musica

Juegos

Servidores

Page 4: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 4

CPU RAM I/O

Data Bus Data Bus

Address Bus Address Bus

Control Bus

ALU

CU

Maquina Original de Von Neumann

20

Ha aumentado la complejidad ¡¡

CPUNorthbridge

chipsetRAM

PCISouthbridge

chipsetHDD

Graphics

PCIe Bus

PCI

Bus

Frontside

Bus

ATA

Bus

Memory

Bus

21

¿qué significa estos cambios?

�Cada pieza de HW es diferente

– Diferentes CPU

• Pentium, PowerPC, ColdFire, ARM, MIPS

– Diferentes promedios de memoria, disco, …

– Diferentes tipos de dispositivos

• Teclados, sensores, camaras, lectores opticos, …

– Diferentes ambientes de red

• Cable, DSL, Wireless, Firewalls,…

�Preguntas:

– ¿El programador necesita escribir un programa unico que desarrolle muchas actividades independientes?

– ¿Por cada HW, el programa tiene que ser alterado?

– ¿Un programa que tenga acceso a todos los HW?

Hardware / Software

Un mundo sin Sistemas Operativos

�Imaginemos sino existieran los SSOOs

�Todo lo que tenemos es el HW

�Piensa en cómo construir una aplicación

�Cómo usamos los periféricos (discos, impresoras, etc.)

�Cómo gestionamos los recursos (CPU, Memoria Real, etc.)

24

¿qué es un sistema operativo?

Page 5: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 5

25

¿qué es un sistema operativo?

26

¿qué es un sistema operativo?

�¡Magia!

�Existe un gran número de definiciones:

– Pruebe en Google con define: Operating System

�Unas pocas de estas definiciones:

– “El software del que depende el resto del software para hacer el computador funcional”.

– “El único programa que se ejecuta todo el tiempo en el computador”.

– “Un programa que administra todos los otros programas en el computador”.

27

Proposito de un SO

� Dos funciones principales:

– Administrar los recursos físicos:

• Manejar varios dispositivos:

– Procesador, memoria, discos, redes, pantallas, cámaras, etc.

• De manera eficiente, confiable, tolerando y enmascarando las fallas, etc.

– Proveer un ambiente de ejecución para las aplicaciones corriendo sobre el computador (programas como Word, Emacs, etc.):

• Provee recursos virtuales y sus interfaces.

– Archivos, directorios, threads, procesos, etc.

• Simplifica la programación mediante abstracciones de alto nivel.

• Provee al usuario con un ambiente estable.

instruction set

software

hardware

boot

OS

boot

OS

1. Recopila informacion HW y SETUP2. Carga data del sector “arranque o boot”3. Ejecuta el programa de arranque en CPU4. Carga SO del disco5. Corre SO

29

Componentes Sistema Operativo

SO interfazusuario

usuario

29

Interfaz llamada al sistema

GUI CLI/shell

Applicaciones

hardware

Manejo de

errores

Procesos Dispositivos

E / S

File

systems

Comunicaciones

Con la red

Proteccion

y seguridad

kernel

Memoria real

y virtualDrivers

30

Ventajas de los S.O.

�Según su experiencia :

– En el uso de un sistema operativo ¿qué ventajas encontró?

Page 6: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 6

31

¿por qué estudiar los SO?

�¿necesitas crear o escribir un SO?

– Muy poco probable

�¿entonces para que necesitamos estudiarlo?

– ¿por qué diferentes PCs con el mismo CPU, sus desempeños son diferentes?

– ¿cuál es la diferencia entre los sistemas operativos?

– ¿debo actualizar el HW? ¿debo actualizar el SO?

– A veces se requiere modificar el SO (no vas a poderlo sin conocer como funciona).

32

Primera Generación (1945-1955)

� Existía un sólo grupo de personas que se dedicaba a diseñar, construir, programar, operar y mantener las máquinas.

� Tecnología usada: Tubos al vacío.

� Menos potente que una calculadora de bolsillo

� No existía el concepto de sistema operativo

� La programación era exclusivamente en lenguaje de máquina.

� Los recursos del sistema eran asignados a una sola tarea.

� Al final de este periodo aparecieron las tarjetas perforadas.

33

Segunda Generación (1955-1965)

� La tecnología incluye transistores.

� Creación de lenguajes ensambladores y lenguajes de alto nivel; como Fortran y Cobol .

� Se adoptó el Procesamiento por Lotes

� Apareció el primer Sistema Operativo, se logró minimizar el tiempo ocioso de los computadores

34

$JOB 10,47 DUPONT

$FORTRAN

PROGRAMA

$LOAD

$RUN

DATOS

$END

Sistema por Lotes, batch

35

Sistema Fuera de Línea, outlline

36

Tercera Generación (1965-1980)

�La tecnología usada era de circuitos integrados

�IBM S/360

�Apareció:

– “Multiprogramación”

– Spooling (Operación simultanea y en línea de periféricos)

�Apareció los primeros sistemas de “Tiempo compartido” (CTSS)

Page 7: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 7

¿Fue un proyecto exitoso?

�El proyecto del desarrollo del sistema operativo OS/360producido por IBM y a cargo de Frederick Brooks (*) sulanzamiento estaba dispuesto para 1965 ‐para las versionesmás simples‐ y para 1966 ‐para las versiones máscomplejas‐, pero no fue hasta 1967 cuando vio la luzoficialmente. Inicialmente pensado para ocupar 6KB,posteriormente fue aumentado desorbitadamente de tamañocon nuevas funcionalidades hasta alcanzar el tamaño delanzamiento de 64KB. Tanembaum, lo consideraron la mayorrevolución en la historia de la informática.– (* la ley de Brooks en The Mythical Man‐Month, "Añadir personal a un proyecto

retrasado lo retrasará aún más." )

38

Uniprogramación a Multiprogramacion

Ejecución. Ejecución.espera espera

tiempo

Se basan en el hecho de que los dispositivos de E/S son lentoscomparados con el procesador

Leer un registro 0,0015 segundosEjecutar 100 instrucciones 0,0001 segundosEscribir un registro 0,0015 segundosTOTAL 0,0031 segundos

% utilización CPU = 0,0001 / 0,0031 = 0,032 = 3,2%

39

Proceso 1

Proceso 2

Proceso 3

Proceso 4

KERNEL(MONITOR)

128K

0

La Multiprogramación

40

La multiprogramación

�Cuando un proceso se bloquea al esperar por e/s, ejecutamos en el CPU instrucciones de otro proceso.

�Los procesos entrelazan su ejecución: concurrencia.

�La cpu y las e/s trabajan a la vez,

– se terminan más trabajos a la vez

41

La multiprogramación

T1

T1

T1 T2

T2

T2CPU

E/S

Sin

T1

T1

T1T2

T2

T2CPU

E/S

con

42

LECTORATARJETAS

CPU

IMPRESORADE LINEA

DISCO

ARCHIVO SPOOLDE SALIDA

ARCHIVO SPOOLDE ENTRADA

El Spooling

Page 8: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 8

43

El Tiempo Compartido

Intervalo de tiempo (Quantum) o time sliceEs la cantidad mas grande de tiempo del procesador que cualquier proceso puede consumir cuando se le asigna el procesador

Quantum

CPU

45

Tiempo Compartido

�Multiprogramado

– CPU multiplexada.

� Interactivo

– comunicación on-line entre usuario y sistema (pequeñas rodajas de tiempo)

�Sistema de Archivos

– permite a los usuarios el acceso a datos y código (operaciones de E/S)

� Intérprete de mandatos

– Permiten arrancar otros programas.

�Multiusuario

– varios usuarios simultáneos

– cada usuario cree tener todo el computador 46

Cuarta Generación (1980-1990)

�La tecnología usada son los microprocesadores

�Los computadores personales con mayores capacidades

�Aparecen los SO que proporcionan una interfaz más amigable al usuario (capacidades gráficas, íconos, sistemas de menús, etc.)

47

Quinta Generación (1990-????)

�Aunque mediados de los '80 surgió el crecimiento de las redes de computadores con sistemas operativos de red y sistemas operativos distribuidos, en esta empezo a consolidarse.

�Los últimos años han generado un conjunto de estándares abiertos.

48

Colección de sistemas operativos de computadoras conectados en una red, y que cuentan con módulos pa ra proporcionar acceso a recursos remotos.

SO SO

SO SO

SO

Red de comunicación

Sistemas Operativos en Red

Page 9: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 9

49

Ejemplo de SO de Red

�Novell Netware, Personal Netware, LAN Manager, Windows Server, UNIX, LANtastic, etc.

50

Sistemas Operativos Distribuidos

� Clúster de máquinas individuales.

� Sobre una LAN, WAN o interconexiones más rápidas.

� El clúster puede ser Asimétrico vs. Simétrico.

� Se comparten los recursos, de hardware y software.

� Utilización de los recursos, alta disponibilidad.

� Permite algún paralelismo, pero el speedup no es un tópico principal.

� SANs, Oracle Parallel Server.

51

Ejemplos SO Distribuidos

�Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, Plan 9, etc.

SO Paralelos

�Sistemas multiprocesador o fuertemente acoplados.

�Numerosas Ventajas:

– Incremento del throughput.

– Más barato.

– Más confiable.

�Asimétrico vs. multiprocesamiento simétrico.

�Maestro/Esclavo vs. Relaciones de iguales.

�Ejemplos: SunOS Versión 4 y Versión 5.

53

aplicaciones

Tiempo de respuesta; corto

Sistemas Tiempo Real

54

Caracteristicas

– Proporcionar rápidos tiempos de respuesta.

– Proceso de mayor prioridad expropia recursos.

– Gestión de memoria menos exigente. Usualmente procesos son residentes permanentes en memoria.

– Población de procesos estática en gran medida.

– Poco movimiento entre almacenamiento secundario y memoria.

– Gestión de archivos se orienta más a velocidad de acceso que a su eficiencia.

Page 10: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 10

55

Sist. Oper. Tiempo Real

�Ejemplos :

– VxWorks, Solaris, Lyns OS y Spectra

�Areas de Aplicación:

– STR Criticos

• avión, satélite, médicos, etc.

• No pueden perder ningún deadline de tarea

• Almacenamiento secundario limitado o ausente

• Sistemas dedicados, no de propósito general

– STR suave

• multimedia, comunicaciones, etc.

• Pueden perder deadlines de tareas no críticas

• Uso limitado en sistemas de control

56

Es un sistema independiente del fabricante que esta diseñado para interconectarse con una variedad de productos común-mente disponibles. Implica que los estándares para tal siste-ma estan determinados a partir de un consenso de la s partes interesadas, más que de uno o dos fabricantes solam ente .

Los sistemas abiertos tienen muchos componentes•Normas de comunicación abierta

•modelo de referenica OSI•Normas de sistemas operativos abiertos

•Unix: Fundación Software Abierto (OSF), parecida a Aix Normas de sistemas operativos abiert os

•Normas de interfaces de usuario abiertas•ejemplo: X Window System desarrollado en el MIT

•Normas de aplicaciones de usuario abiertas•adoptadas por varias corporaciones: X/Open y la OSF

Sistemas Abiertos

57

Sistema computacional que puede seguir funcionando, (tal vez con un menor desempeño), a pesar de que uno de sus componentes no este funcionando, ( sistemas robustos ) Se tienen dos enfoques:

�Rendundancia hardware�uso de componentes redundantes

�Recuperación software �diseño programas para recuperarse de fallas

Sistemas Tolerantes a Fallas Sistemas Ubicuos

�Smartphones, PDAs, telefonos celulares, etc.

Fuente: Cisco IBSG Abril 2011

Principales SSOO para dispositivos moviles

�Google’s Android

�Apple’s iOS

�Microsoft’s Windows Phone

�RIM’s BlackBerry OS

60

Principales sistemas operativos

Page 11: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 11

61

Principales sistemas operativos

62

Principales sistemas operativos

¿que es Android?

¿Que es Android?

� Un SSOO open source basado en Linux

� Para plataformas moviles

� Incluye un Java API para el desarrollo de aplicaciones

� No es un dispositivo

Android 4.0 Ice Cream Sandwich

NYC High School Girls Build Android Appshttp://www.pcworld.com/article/223409/move_over_dr_soong_girls_can_build_android_apps_too.html

Page 12: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 12

� http://developer.android.com/sdk� Eclipse

68

Resumen de la historia de los SO

� El punto es: cambiarlos cuando la tecnología cambia.

� La situación ha cambiado en los ultimos 40 años. Ahora los SO son enormes.

– Pequeños SO: 100K lineas

– Grandes SO: 50M lineas

� Microsoft tiene cerca del 90% del mercado de Sos (solo desktop)

� Complejidad

– NT fue desarrollado desde los inicios de los 90’s hasta fines 90’s

• Nunca trabajo muy bien

• 12 Millones de lineas de codigo

– Hicieron el Windows 2000/XP ( 40 M de lineas de codigo)

– Windows Vista (“Longhorn”) postergado varias veces

• Liberacion en 2008, pero antes 2005, 2006, 2007

• Prometio reemplazar varias tecnologias

• 5 años en realizarlo

– Windows 7 (Lanzamiento oficial 21 Octubre 2009)

• 3 años en realizarlo

• y ahora ?

69

Aumento en la complejidad de un SO Linux

Fuente: http://www.ibm.com/developerworks/linux/library/l-linux-kernel/

Configuración de un Servidorhttp://philip.greenspun.com/bboard/q-and-a-fetch-ms g?msg_id=000tcP20 Julio 2011

• Linux setup - 40 mins• Tomcat Configuration - 5 Mins• Mysql configuration - 15 Mins• Firewall config - 30 Mins• Server hardening - 30 Mins

Linux (2 horas)

• Windows setup - 2 hrs• Update patches - 4hrs~8hrs• Server config - 1 hr• .NET framework update & install- 20~40 Mins• IIS Config - 30 Mins• Application Configuration - 1 hr• Server hardening - 2hrs~5hrs.

Microsoft(12 a 20 horas)

A través de los años

� No todos los sistemas Batch fueron ridículos.

� Ellos representaban el compromiso correcto en su momento.

� Este compromiso ha cambiado con el tiempo.

� Menores precio y mayores prestaciones.• Ley de Moore.

� Es necesario entender las bases, de tal manera que se puedan diseñar los sistemas para los compromisos

del futuro.

1985 2005 2009Ciclos por segundo 80386 – 16 Mhz Pentium D - 2 GHz QuadCore – 3.2 Ghz

DRAM 128 KB 512 MB 4 GB

Disco 10 MB 80 GB 250 GB

Velocidad de Red 9600 bps 100 Mbps 1 Gbps

Page 13: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 13

Clases de Sistemas operativoscaracterísticas básicas

Clase de SO Periodo Preocupación principal

Concepto clave

Procesamientos por lotes

1960 Tiempo muerto del CPU

Operación simultanea con los periféricos

Multiprogramación 1970 Utilización de los recursos

Prioridades

Tiempo compartido

1970 Un buen tiempo de respuesta

Intervalo de tiempo (quantum)

Tiempo real 1980 Cumplir con el tiempo limite

Planificación en tiempo real

Distribuido 1990 Recursos compartidos

Transparencia, control distribuido

Sistemas operativos modernos

Concepto Ejemplo tipico de uso

Procesamiento por lotes Actualizar la BD con las operaciones del día

Planificación basada en prioridades Tratamiento especial a las procesos de alta prioridad, por lo general a los procesos interactivos

Intervalo de tiempo Evitar que un proceso monopolice el uso del CPU

Intercambio Aumentar el numero de procesos

Procesos múltiples en una aplicación Reducir el tiempo de ejecución de una aplicación

Recursos compartidos En una LAN para compartir las impresoras

75

Enfoques de diseño

�Núcleos monolíticos

– Ejemplo: Linux, Windows, ...

�Microkernels

– Ejemplo: Mach kernel

�Hay otros como capas, maquina virtual, etc.

Monolitico vs Microkernel

Un resumen de la afamada discusión puede consultarse en http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html

77

Diseño de sistemas operativos

�Básicos:

– Gestor de procesos

– Gestor de memoria

– Gestor de E/S (genérica y por bloques)

�Servidores:

– Servidor de ficheros

– Servidor de protección y seguridad

– Servidor de comunicaciones por red

�Utilidades:

– Intérprete de mandatos

– Programas de sistema

Micro

kern

el

Monolítico

Ap

licacio

ne

s

78

Monitor monolítico

Proceso de

usuario

Proceso de

usuario

Proceso de

usuario

Intérprete de la SVC

Petición de E/S

Proceso de la

interrupción

Desbloquear

Dispositivos

Monitor

Procesosde usuario

SVC

Despertar

Comienzo de la E/S Interrupción

Page 14: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 14

79

Ejemplo : El UNiX

Bibliotecas

Buffer cache

Control hardware

Subsistema

de archivos

Subsistema

de E/S

Subsistema de

control de procesos

Carácter

Nivel kernel

Nivel hardware

Nivel kernel

Nivel de usuario

HARDWARE

Drivers

Interfaz de llamadas al sistema

Programas de usuarioTrap

Bloque

Manejo de memoria

IPC

Planificador

80

Validación de argumentos de las llamadas al sistema

Conmutador de sistemas de archivo

Manejadordel buffer cache

Bib

liote

cas

del k

erne

l

Manejador dememoria

Manejador deprocesos

Manejador de interrupciones

Manejadores de dispositivo

Estructuras dedatos compartidas

entre el alto y el bajo nivel

Interfaz de llamadas de alto nivel

HARDWARE

Bajo niveldel núcleoManejador de traps de llamadas al sistema

Manejador de excepciones

Manejador de procesos de

bajo nivel

Cambiode contexto

Tabla dedispatch

Callout debajo nivel

Manejador determinales

Pila de red

Interfaz desockets ystreams

Manejador dearchivos

Estructuras delnúcleo

(alto nivel)

Manejadorde callouts

Sis

tem

as

de

arch

ivo

Alto niveldel núcleo

Modo usuario

Estructura del Linux

81

Micronúcleo

Proceso de

usuario

Proceso de

usuario

Proceso de

usuario

Proceso de

usuario

Proceso gestionador

de dispositivo

Micronúcleo

Proceso de la

interrupción

Determinación del proceso que solicitó

la E/S

DispositivoLectura de disco

Devolver los datos

Inicio de la E/S

Interrupción

Despertar

82

�Monitor monolítico �Micronúcleo

� Todo el SO se ejecuta en modo supervisor

� Menos robusto

� El SO es ininterrumpible

� Mayor rendimiento

� Empleado en sistemas pequeños

� Difícil de modificar en tiempo de ejecución

� Menos adaptable

� Empleado en sistemas grandes

� Fácil de modificar en tiempo de ejecución

� Más adaptable

� Menor rendimiento debido a la sobrecarga de comunicaciones

� El SO es interrumpible

� Más robusto

� Sólo el µnúcleo se ejecuta en modo supervisor

Comparativa

83

DLLsDLLs

API del núcleo

Controlador de servicios

WinLogon

Manejador desesiones

Replicador

Alertador

RPC

Registradorde eventos

Aplicacionesde usuario

DLLs

POSIX

OS2

Win32

Manejador deE/S

Sistemade archivos

NTDLL.DLL

Manejadorde cache

PnPControl de

alimentación

Seguridad Memoriavirtual

Procesose hilos

Win32GDI

Manejador de objetos

Manejadores de dispositivo Kernel

HAL

HARDWARE

Hilos del sistema

NtosKrnl.exe

Procesos de sistema Servicios Aplicaciones Subsistemas

Estructura del W2K Estructura por capas

�El SO se divide en un número de capas:

– La capa inferior (capa 0), es el hardware.

– La de mayor nivel (capa N) es la interfaz del usuario.

– Cada capa usa sólo funciones y servicios de las capas inferiores.

Hardware

Capa 0: Planificación

Capa 1: Gestión de la memoria

Capa 2: Comunicación proceso-consola

Capa 3: Gestión de entrada-salida

Proceso de usuario

Page 15: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 15

85

Ventajas del empleo de capas

�Las estructuras internas y algoritmos de una capa no son visibles a las demás

�El sistema puede evolucionar fácilmente

�Pueden existir realizaciones alternativas

�Algunas capas pueden ser transparentes si sus servicios no son necesarios

�Cada capa se codifica y prueba de modo independiente

86

Máquinas virtuales

� Una MV crea una copia idéntica del hardware

– Procesador con su propia memoria y E/S

– Sobre una MV se puede ejecutar cualquier SO

– Sobre el mismo computador varios SSOO a la vez

� El Monitor de MVs ejecuta sobre el HW real ¿Cómo se hace?

– Planificación UCP para MV � multiproceso

– Spooling y sistema ficheros � multiplexación E/S

– MV del operador � control del sistema

� Ventajas:

– Protección sencilla, muy modular, bueno para investigación y desarrollo (SO distribuido)

� Inconvenientes:

– Difícil compartir recursos

– Difícil implementar duplicados exactos del HW

� Usado para emular SSOO sobre otros

� Ej. VM-370, MS-DOS en Windows, VMware

87

Máquinas virtuales / Hipervisores Maquinas virtuales – Otra arquitectura

89

Aspectos de diseño e implementacion

�Objetivos de diseño

�Implementación

�Arranque del sistema

90

Objetivos en el diseño de un SO

�Para el usuario

– Fácil de usar, fiable, seguro, potente y sencillo

� Internamente:

– Fácil de implementar y mantener

– Flexible, fiable, eficiente y estar libre de errores

�Diferenciar claramente entre:

– Mecanismos: Como las cosas se pueden hacer

• Como se establece la prioridad a un proceso?

• Como crear, terminar o suspender un proceso?

– Políticas: criterio para decidir qué hacer

• Puede un proceso leer la memoria de otro proceso

• Que hacemos con procesos de alta prioridad?? Y los de baja prioridad??

– Separarlos es importante para poder afinar bien los sistemas

Page 16: C1 introduccion 2012_1_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 16

91

Implementación del sistema

�Tradicionalmente: ensamblador

�Actualmente: C y ensamblador

�Uso lenguaje alto nivel:

– Desarrollo más rápido

– Más fácil de comprender y depurar

– Más fácil de transportar de un hardware a otro (Ej. Linux, Windows-NT)

�Base:

– HAL ( Hardware Abstraction Layer)

– Oculta los detalles específicos de la arquitectura

– Proporciona una interfaz de alto nivel