Вы находитесь на странице: 1из 82

Sistemas Operativos

Profesor:

Ciclo 2016-1

Diaz Muante Jorge

Your picture here

Introduccin al curso

Quienes somos nosotros?

Presentacion

Apellidos y nombre
que SSOO mas conoce?
que esperas aprender en clases?

Descripcin del Curso


Facultad

Ingeniera Informtica y de Sistemas

Numero de crditos

Curso Acadmico

2016-1

Tipo de curso

Obligatorio

Ciclo

VI

Horas Semanales

4 horas presenciales

Prerrequisito

Arquitectura de Computadoras

Introduccin

Presentacin
qu esperan del curso?
Objetivos del curso y nuestro contrato

Objetivos del curso

Conocer las distintas partes de un SO


Cmo se relacionan.
Fundamentos de la operacin
Conocer la necesidad de tener sistemas operativos
eficientes en un sistema de computacin.
Ver cmo se implementa en algn sistema operativo
real la gestin de los recursos vista en teora.

Nuestro contrato

Espero de ustedes:
Lean anticipadamente el material de clases
Participen en clases
Proporcionen retroalimentacin
Tomen en serio las tareas asignadas

A cambio, mi compromiso es:


Proporcionar razones concretas del porque del contenido
Aprovechar el tiempo para discutir los temas .. Todos
Ser receptivo y sensible a la retroalimentacin
Estar preparado para intervenir en forma corta y enfocado

Introduccin
Presentacin
qu esperan del curso?
Objetivos del curso y nuestro contrato
Horario
Teoria
Jueves de 7 a 11 pm.

Planificacin del curso

Planificacin del curso


L
14
21
28
4
11
18
25
2
9
16
23
30
6
13
20
27
4
11
18

Feriado

M
15
22
29
5
12
19
26
3
10
17
24
31
7
14
21
28
5
12
19

M
16
23
30
6
13
20
27
4
11
18
25
1
8
15
22
29
6
13
20

J
17
24
31
7
14
21
28
5
12
19
26
2
9
16
23
30
7
14
21

V
18
25
1
8
15
22
29
6
13
20
27
3
10
17
24
1
8
15
22

S
19
26
2
9
16
23
30
7
14
21
28
4
11
18
25
2
9
16
23

Trabajos autnomos

D
20
27
3
10
17
24
1
8
15
22
29
5
12
19
26
3
10
17
24

MAR
ABR

MAY

JUN

JUL

Sem Tema
Introduccion al curso
1 Procesos. Estados
2 Diagrama del UNIX
3 Interrupciones, Hilos.
4 Sincronizacion. HA1
5 Abrazo Mortal. QUIZ No. 1
6 Objetivos.
7 Algoritmos. HA 2
Examenes Parciales
8 Organizacin. Estrategias
9 Fija y Variable. HA 3
10 Antecedentes.
11 Paginada. Quiz # 2
12 Estrategias. HA 4
13 Drivers. Algoritmos HD
14 Fin de Clases 2 Jul
15 Examen Final
16 Examen Final
17 Examen rezagado

Evaluacin continuas en aula

PPT
C1_introduccion
C2_administracion_procesos
C2_administracion_procesos
C2_administracion_procesos
C3_sincronizacion_procesos
C4_abrazo_mortal
C5_planificacion_cpu
C5_planificacion_cpu
C6_adm_memoria_real
C6_adm_memoria_real
C7_memoria_virtual
C7_memoria_virtual
C7_memoria_virtual
C8_dispositivos

Introduccin

Presentacin
qu esperan del curso?
Objetivos del curso y nuestro contrato
Horario
Planificacin del curso
Material de apoyo
Evaluacin

10

Material de apoyo
Campus virtual
Todas las clases en pdf
Informacin de los trabajos (horas autnomas)
Bibliografia

Sistemas Operativos Modernos 3era edicin


Andrew S. Tanenbaum
Sistemas operativos Conceptos Fundamentales
Silbershatz, Galvin, Gagne

11

Evaluaciones
Evaluacin

Porcentaje

Fecha

Examen Parcial

25 %

09 al 14 de mayo

Examen Final

25 %

06 al 12 de julio

Ponderacin y Cronograma para la Nota de Evaluacin Permanente (50% del Promedio Final)
Ponderacin
Desagregada
Tipo de Evaluacin
(de la Evaluacin
Permanente) (50%)

Promedio de
Prcticas

100%

Ponderacin Desagregada
(por Tipo de Evaluacin)
Semana

(%)

(%)
Nota
final

N
Descripcin
1

Prctica 1

15

7.5

3 (*)

Evaluacin Contnua 1

20

10

4 (*)

Prctica 2

15

7.5

6 (*)

Prctica 3

15

7.5

9 (*)

Evaluacin Continua 2

20

10

11 (*)

Prctica 4

15

7.5

12 (*)

Fecha

TOTAL 100
50
No se elimina ninguna Prctica ni Evaluacin Continua. No hay Prctica ni
Evaluacin Continua Rezagada. (*) Por confirmar

Introduccin

Presentacin
qu esperan del curso?
Objetivos del curso
Horario
Planificacin del curso
Material de apoyo
Evaluacin
Recomendaciones
13

En cualquier sitio

Maquina Original de Von Neumann

ALU

Address Bus

CPU
CU

Address Bus

RAM
Data Bus

I/O
Data Bus

Control Bus

Ha aumentado la complejidad

17

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?
18 los HW?
Un programa que tenga acceso a todos

Un mundo sin Sistemas Operativos

Imaginemos sino existieran los SSOOs


Todo lo que tenemos es el HW
Piensa en cmo construir una aplicacin
Cmo usamos los perifricos (discos, impresoras,
etc.)
Cmo gestionamos los recursos (CPU, Memoria
Real, etc.)

Hola mundo
Android

qu es un sistema operativo?

21

qu es un sistema operativo?

22

qu es un sistema operativo?

Magia!
Existe un gran nmero 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.
23

Sistemas Operativos

Componentes Sistema Operativo

SO interfaz
usuario

Applicaciones
GUI

CLI/shell

usuario
Interfaz llamada al sistema

kernel
Procesos

Drivers

Dispositivos
E/S

Manejo de
errores

File
systems

Memoria real
y virtual

hardware
25

Comunicaciones
Con la red

Proteccion
y seguridad

25

Hardware / Software

1.
2.
3.
4.
5.

Recopila informacion HW y SETUP


Carga data del sector arranque o boot
Ejecuta el programa de arranque en CPU
Carga SO del disco
Corre SO
boot

OS

boot
OS

Ventajas de los S.O.

Segn su experiencia :
En el uso de un sistema operativo qu ventajas encontr?

28

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
desempeos son diferentes?
cul 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).

29

es parte del desarrollo de un SSOO?

Firmware ?
Word processor?
Window manager?
Windows Control Panel?
Device driver?
Browser?
Anti-virus?

Primera Generacin (1945-1955)


Exista un slo grupo de personas que se dedicaba a disear, construir,
programar, operar y mantener las mquinas.
Tecnologa usada: Tubos al vaco.
Menos potente que una calculadora de bolsillo
No exista el concepto de sistema operativo
La programacin era exclusivamente en lenguaje de mquina.
Los recursos del sistema eran asignados a una sola tarea.
Al final de este periodo aparecieron las tarjetas perforadas.

31

Segunda Generacin (1955-1965)

La tecnologa incluye transistores.


Creacin 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

32

Sistema por Lotes, batch

$END
DATOS

$RUN
$LOAD
PROGRAMA

$FORTRAN
$JOB 10,47 DUPONT

33

Sistema Fuera de Lnea, outlline

34

Tercera Generacin (1965-1980)

La tecnologa usada era de circuitos integrados


IBM S/360
Apareci:
Multiprogramacin
Spooling (Operacin simultanea y en lnea de perifricos)

Apareci los primeros sistemas de Tiempo


compartido (CTSS)

35

Fue un proyecto exitoso?


El proyecto del desarrollo del sistema operativo OS/360
producido por IBM y a cargo de Frederick Brooks (*) su
lanzamiento estaba dispuesto para 1965 para las versiones
ms simples y para 1966 para las versiones ms
complejas, pero no fue hasta 1967 cuando vio la luz
oficialmente. Inicialmente pensado para ocupar 6KB,
posteriormente fue aumentado desorbitadamente de tamao
con nuevas funcionalidades hasta alcanzar el tamao de
lanzamiento de 64KB. Tanembaum, lo consideraron la mayor
revolucin en la historia de la informtica.

(* la ley de Brooks en The Mythical ManMonth, "Aadir personal a un proyecto


retrasado lo retrasar an ms." )

Uniprogramacin a Multiprogramacion

Ejecucin.

Ejecucin.

espera

espera

tiempo
Se basan en el hecho de que los dispositivos de E/S son lentos
comparados con el procesador
Leer un registro
Ejecutar 100 instrucciones
Escribir un registro
TOTAL 0,0031 segundos

0,0015 segundos
0,0001 segundos
0,0015 segundos

% utilizacin CPU = 0,0001 / 0,0031 = 0,032 = 3,2%


37

La Multiprogramacin

128K
Proceso 1
Proceso 2
Proceso 3
Proceso 4
KERNEL

(MONITOR)

38

La multiprogramacin

Cuando un proceso se bloquea al esperar por e/s,


ejecutamos en el CPU instrucciones de otro
proceso.
Los procesos entrelazan su ejecucin: concurrencia.
La cpu y las e/s trabajan a la vez,
se terminan ms trabajos a la vez

39

La multiprogramacin

CPU

T1

E/S

T2

T2

T1

E/S

CPU

T1

T1

T2

Sin

T2

T1

T2

T1
T2
40

con

El Spooling
ARCHIVO SPOOL
DE SALIDA
ARCHIVO SPOOL
DE ENTRADA

DISCO

IMPRESORA
DE LINEA

LECTORA
TARJETAS
CPU

41

El Tiempo Compartido

Intervalo de tiempo (Quantum) o time slice


Es la cantidad mas grande de tiempo del procesador que
cualquier proceso puede consumir cuando se le asigna el
procesador
42

Quantum

CPU

Tiempo Compartido
Multiprogramado
CPU multiplexada.

Interactivo
comunicacin on-line entre usuario y sistema (pequeas rodajas de
tiempo)

Sistema de Archivos
permite a los usuarios el acceso a datos y cdigo (operaciones de E/S)

Intrprete de mandatos
Permiten arrancar otros programas.

Multiusuario
varios usuarios simultneos
cada usuario cree tener todo el computador
44

Cuarta Generacin (1980-1990)

La tecnologa usada son los microprocesadores


Los computadores personales con mayores
capacidades
Aparecen los SO que proporcionan una interfaz ms
amigable al usuario (capacidades grficas, conos,
sistemas de mens, etc.)

45

Quinta Generacin (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 aos han generado un conjunto de
estndares abiertos.

46

Sistemas Operativos en Red

Coleccin de sistemas operativos de computadoras


conectados en una red, y que cuentan con mdulos para
proporcionar acceso a recursos remotos.

SO

SO

SO

Red de
comunicacin

SO

SO
47

Ejemplo de SO de Red

Novell Netware, Personal Netware, LAN Manager,


Windows Server, UNIX, LANtastic, etc.

48

Sistemas Operativos Distribuidos


Clster de mquinas individuales.
Sobre una LAN, WAN o interconexiones ms rpidas.
El clster puede ser Asimtrico vs. Simtrico.
Se comparten los recursos, de hardware y software.
Utilizacin de los recursos, alta disponibilidad.
Permite algn paralelismo, pero el speedup no es un tpico
principal.
SANs, Oracle Parallel Server.

49

Ejemplos SO Distribuidos

Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba,


Taos, Plan 9, etc.

50

SO Paralelos
Sistemas multiprocesador o fuertemente acoplados.
Numerosas Ventajas:
Incremento del throughput.
Ms barato.
Ms confiable.

Asimtrico vs. multiprocesamiento simtrico.


Maestro/Esclavo vs. Relaciones de iguales.
Ejemplos: SunOS Versin 4 y Versin 5.

Sistemas Tiempo Real

aplicaciones

Tiempo de respuesta; corto

52

Caracteristicas
Proporcionar rpidos tiempos de respuesta.
Proceso de mayor prioridad expropia recursos.
Gestin de memoria menos exigente. Usualmente
procesos son residentes permanentes en memoria.
Poblacin de procesos esttica en gran medida.
Poco movimiento entre almacenamiento secundario y
memoria.
Gestin de archivos se orienta ms a velocidad de acceso
que a su eficiencia.

53

Sist. Oper. Tiempo Real


Ejemplos :
VxWorks, Solaris, Lyns OS y Spectra

Areas de Aplicacin:
STR Criticos

avin, satlite, mdicos, etc.

No pueden perder ningn deadline de tarea

Almacenamiento secundario limitado o ausente

Sistemas dedicados, no de propsito general

STR suave
multimedia, comunicaciones, etc.

Pueden perder deadlines de tareas no crticas

Uso limitado en sistemas de control


54

Sistemas Abiertos

Es un sistema independiente del fabricante que esta diseado


para interconectarse con una variedad de productos comnmente disponibles. Implica que los estndares para tal sistema estan determinados a partir de un consenso de las partes
interesadas, ms que de uno o dos fabricantes solamente.
Los sistemas abiertos tienen muchos componentes
Normas de comunicacin abierta
modelo de referenica OSI
Normas de sistemas operativos abiertos
Unix: Fundacin Software Abierto (OSF),
parecida a Aix Normas de sistemas operativos abiertos
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
55

Sistemas Tolerantes a Fallas

Sistema computacional que puede seguir


funcionando, (tal vez con un menor desempeo), a
pesar de que uno de sus componentes no este
funcionando, (sistemas robustos)
Se tienen dos enfoques:
Rendundancia hardware
uso de componentes redundantes

Recuperacin software
diseo programas para recuperarse de fallas

56

Sistemas Ubicuos

Smartphones, PDAs, telefonos celulares, etc.

Fuente: Cisco IBSG Abril 2011

Principales SSOO para dispositivos moviles

Googles Android
Apples iOS
Microsofts Windows Phone
RIMs BlackBerry OS

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

Resumen de la historia de los SO


El punto es: cambiarlos cuando la tecnologa cambia.
La situacin ha cambiado en los ultimos 40 aos. Ahora los SO son enormes.
Pequeos 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 90s hasta fines 90s

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 aos en realizarlo

Windows 7 (Lanzamiento oficial 21 Octubre 2009)

3 aos en realizarlo

Windows 8 (Lanzamiento oficial 26 octubre 2012 y ultima actualizacion 15 dic 2014)


Windows 10 Ahora ??

62

Aumento en la complejidad de un SO

63

Linux

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

Configuracin de un Servidor
http://philip.greenspun.com/bboard/q-and-a-fetch-msg?msg_id=000tcP
20 Julio 2011

Linux
(2 horas)

Microsoft
(12 a 20 horas)

Linux setup
Tomcat Configuration
Mysql configuration
Firewall config
Server hardening

Windows setup
Update patches
Server config
.NET framework update & installIIS Config
Application Configuration
Server hardening -

40 mins
5 Mins
15 Mins
30 Mins
30 Mins

2 hrs
4hrs~8hrs
1 hr
20~40 Mins
30 Mins
1 hr
2hrs~5hrs.

Enfoques de diseo
Ncleos monolticos
Ejemplo: Linux, Windows, ...

Microkernels
Ejemplo: Mach kernel

Hay otros como capas, maquina virtual, etc.

66

Monolitico vs Microkernel

Un resumen de la afamada discusin puede consultarse en


http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html

Diseo de sistemas operativos

Gestor de procesos
Gestor de E/S (genrica y por bloques)

Servidores:
Servidor de ficheros
Servidor de proteccin y seguridad
Aplicaciones

Servidor de comunicaciones por red

Utilidades:
Intrprete de mandatos
Programas de sistema
68

Monoltico

Gestor de memoria

Microkernel

Bsicos:

Monitor monoltico

Procesos
de usuario

Proceso
de
usuario

Proceso
de
usuario

Proceso
de
usuario

SVC
Despertar
Intrprete
de la SVC

Desbloquear

Peticin
de E/S

Proceso de
la
interrupcin

Monitor

Dispositivos

Comienzo de la E/S

Interrupcin
69

Ejemplo : El UNiX

Programas de usuario

Bibliotecas

Trap

Nivel de usuario
Nivel kernel

Interfaz de llamadas al sistema


Subsistema de

Subsistema

Subsistema

control de procesos

de archivos

de E/S

Manejo de memoria

Buffer cache
IPC

Bloque
Carcter
Drivers

Planificador

Nivel kernel
Nivel hardware

Control hardware
HARDWARE
70

Estructura del Linux

Interfaz de llamadas de alto nivel

Modo usuario

Validacin de argumentos de las llamadas al sistema

Alto nivel
del ncleo

archivo

Manejador de
memoria

de

Manejador de
procesos

Sistemas

Manejador de
archivos

Interfaz de
sockets y
streams
Manejador de
terminales
Pila de red

Manejador
del buffer cache

Bibliotecas del kernel

Conmutador de sistemas de archivo

Manejador de traps de llamadas al sistema


Manejador de excepciones

Tabla de
dispatch

Manejador de
procesos de
bajo nivel

HARDWARE

71

Estructuras del
ncleo
(alto nivel)

Estructuras de
datos compartidas
entre el alto y
el bajo nivel

Manejadores de dispositivo

Manejador de interrupciones

Manejador
de callouts

Callout de
bajo nivel

Cambio
de contexto

Bajo nivel
del ncleo

Microncleo

Proceso
Proceso
Proceso
Proceso de de
usuario
dede
usuario
usuario
usuario

Lectura de disco

Devolver los datos


Inicio de la E/S

Proceso
gestionador
de
dispositivo

Dispositivo

Interrupcin
Despertar

Microncleo

Determinacin del
proceso que solicit
la E/S

72

Proceso de
la
interrupcin

Comparativa

Monitor monoltico

Microncleo

Todo el SO se ejecuta en
modo supervisor

Slo el ncleo se ejecuta


en modo supervisor

Menos robusto

Ms robusto

El SO es ininterrumpible

El SO es interrumpible

Mayor rendimiento

Menor rendimiento debido


a la sobrecarga de
comunicaciones

Empleado en sistemas
pequeos

Empleado en sistemas
grandes

Difcil de modificar en
tiempo de ejecucin

Fcil de modificar en
tiempo de ejecucin

Menos adaptable

Ms adaptable
73

Estructura del W2K

Procesos de sistema

Servicios

Controlador
de servicios

Aplicaciones

Subsistemas
POSIX

Replicador
Alertador

WinLogon

OS2

RPC

Manejador de
sesiones

Aplicaciones
DLLs
de usuario
DLLs
DLLs

Registrador
de eventos

Hilos del
sistema

Win32

NTDLL.DLL
API del ncleo
Manejador de
E/S

NtosKrnl.exe

Manejador
de cache

PnP
Control de
alimentacin

Sistema
de archivos

Seguridad

Memoria
virtual

Procesos
e hilos

Manejador de objetos

Manejadores de dispositivo

Kernel
HAL
HARDWARE

74

Win32
GDI

Estructura por capas


El SO se divide en un nmero de capas:
La capa inferior (capa 0), es el hardware.
La de mayor nivel (capa N) es la interfaz del usuario.
Cada capa usa slo funciones y servicios de las capas inferiores.
Proceso de usuario
Capa 3: Gestin de entrada-salida
Capa 2: Comunicacin proceso-consola
Capa 1: Gestin de la memoria
Capa 0: Planificacin

Hardware

Ventajas del empleo de capas

Las estructuras internas y algoritmos de una capa


no son visibles a las dems
El sistema puede evolucionar fcilmente
Pueden existir realizaciones alternativas
Algunas capas pueden ser transparentes si sus
servicios no son necesarios
Cada capa se codifica y prueba de modo
independiente

76

Mquinas virtuales
Una MV crea una copia idntica 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 Cmo se hace?


Planificacin UCP para MV

multiproceso

Spooling y sistema ficheros

multiplexacin E/S

MV del operador

control del sistema

Ventajas:
Proteccin sencilla, muy modular, bueno para investigacin y desarrollo (SO distribuido)

Inconvenientes:
Difcil compartir recursos
Difcil implementar duplicados exactos del HW

Usado para emular SSOO sobre otros


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

Mquinas virtuales / Hipervisores

78

Maquinas virtuales Otra arquitectura

Aspectos de diseo e implementacion

Objetivos de diseo
Implementacin
Arranque del sistema

80

Objetivos en el diseo de un SO
Para el usuario
Fcil de usar, fiable, seguro, potente y sencillo

Internamente:
Fcil 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?

Polticas: 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
81

Implementacin del sistema


Tradicionalmente: ensamblador
Actualmente: C y ensamblador
Uso lenguaje alto nivel:
Desarrollo ms rpido
Ms fcil de comprender y depurar
Ms fcil de transportar de un hardware a otro (Ej. Linux, Windows-NT)

Base:
HAL ( Hardware Abstraction Layer)
Oculta los detalles especficos de la arquitectura
Proporciona una interfaz de alto nivel

82

Вам также может понравиться