diseño de sistemas operativos - facultad de … · diseño de sistemas operativos ... –para el...
TRANSCRIPT
![Page 2: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/2.jpg)
2
Asignación - Hilos
• Concepto de Hilo
• ¿Posee alguna estructura?– Si o No
– Si la respuesta es positiva
• ¿Qué debe contener la estructura de control del hilo?
![Page 3: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/3.jpg)
3
Asignación - Hilos
• Un proceso tiene asociado– Imagen del proceso
• Espacio de direcciones virtuales
– Acceso protegido
• Procesador
• Procesos
• Archivos
• E/S
![Page 4: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/4.jpg)
4
Asignación - Hilos
• Un hilo debe poseer− El estado de ejecución del hilo
− El contexto del procesador
− Una pila de ejecución
− Almacenamiento estático
− Acceso a memoria y a los recursos del proceso
![Page 5: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/5.jpg)
5
Asignación - Hilos
![Page 6: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/6.jpg)
6
Asignación - Hilos
• ¿Qué comparten los hilos de un proceso?– Estado del proceso
– Recursos del proceso
– Espacio de direcciones
– Acceso a los mismos datos
![Page 7: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/7.jpg)
7
Diseño de Sistemas Operativos
• Es diferente estudiar sobre un sistemaoperativo que diseñarlo e implementarlo
• Creencias más no estándares
![Page 8: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/8.jpg)
8
Diseño de Sistemas Operativos
• The Mythical Man Month – Fred Brooks (1975)
• Operating System: A Design-OrientedApproach – Crowley (1997)
• Hints for Computer System Design – Lampson(1984)
• On Building Systems That Will Fail – Corbató(1991)
![Page 9: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/9.jpg)
9
Diseño de Sistemas Operativos
• La naturaleza del problema del diseño– Metas
– Diseño de interfaces
– Implementación
– Desempeño
– Administración de proyectos
– Tendencias del diseño
![Page 10: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/10.jpg)
10
Diseño de Sistemas Operativos
• Metas– Ideas claras
– ¬ ideas --> Dificultades
• ¿Dónde?
– Ejemplo
• PL/I y C (1960)
• PL/I --> Fortran, COBOL, Algol
• C --> Dennis Ritchie
![Page 11: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/11.jpg)
11
Diseño de Sistemas Operativos
• Metas– Tener una visión clara es crucial
– ¿Qué quieren los diseñadores de SO?
• Ideas
![Page 12: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/12.jpg)
12
Diseño de Sistemas Operativos
• Metas– SO de propósito general
• Definir abstracciones
• Proporcionar operaciones primitivas
• Garantizar el aislamiento
• Administrar el hardware
![Page 13: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/13.jpg)
13
Diseño de Sistemas Operativos
• Metas– SO de propósito general
• Definir abstracciones
• Proporcionar operaciones primitivas
• Garantizar el aislamiento
• Administrar el hardware
![Page 14: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/14.jpg)
14
Diseño de Sistemas Operativos
• Definir abstracciones– ¿Qué es una abstracción?
– Ejemplos de abstracción en un SO
– Sincronización
– Modelo de memoria
• Abstracciones vía estructuras de datos
![Page 15: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/15.jpg)
15
Diseño de Sistemas Operativos
• Proporcionar operaciones primitivas– Manipular estructuras de datos
• ¿Proporcionadas por quien?
– Llamadas al sistema
– Para el usuario
• SO– Abstracción
– Llamadas al sistema
![Page 16: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/16.jpg)
16
Diseño de Sistemas Operativos
• Garantizar el aislamiento– Múltiples usuarios
– ¿Qué hacer?
– Ejecuciones autorizadas
• Instrucciones autorizadas
• Datos autorizados
– ¿Cómo hacer la compartición?
– Aislamiento selectivo
• Ejemplo
![Page 17: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/17.jpg)
17
Diseño de Sistemas Operativos
• Administrar el hardware– Es obvio
– ¿Por qué?
![Page 18: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/18.jpg)
18
¿Por qué es difícil diseñar SO?
• Ley de Moore– El hardware de computadora mejora en un factor de 100
cada década.
• Sin embargo
– Nadie afirma que los sistemas operativos mejoran en unfactor de 100 cada década
– Ni siquiera que mejoran
– Tal vez las versiones antiguas sean más confiables que lasactuales
![Page 19: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/19.jpg)
19
¿Por qué es difícil diseñar SO?
• ¿Por qué ocurre lo anterior?– Inercia
– Compatibilidad con sistemas anteriores
• ¿Será un sistema operativo, igual a unprograma de aplicación?
• ¿Ambos podrían verse como procesos?
![Page 20: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/20.jpg)
20
¿Por qué es difícil diseñar SO?
• ¿Qué diferencia a un SO de un programa deaplicación?
• Top eight
![Page 21: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/21.jpg)
21
¿Por qué es difícil diseñar SO?
• 1°– Los SO son extremadamente grandes
• ¿Cuanto tiempo les tomaría hacer un SO serio?
• UNIX
– Por encima de un millón de líneas
• Windows
– 29 millones de líneas de código
– Tampoco exageremos
• ¿Un portaaviones será más complicado que un SO?
![Page 22: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/22.jpg)
22
¿Por qué es difícil diseñar SO?
• 2°– Manejo de concurrencia
• Múltiples usuarios y múltiples dispositivos de E/S
• Condiciones de competencia
• Deadlocks
![Page 23: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/23.jpg)
23
¿Por qué es difícil diseñar SO?
• 2°– Manejo de concurrencia
• Múltiples usuarios y múltiples dispositivos de E/S
• Condiciones de competencia
• Deadlocks
![Page 24: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/24.jpg)
24
¿Por qué es difícil diseñar SO?
• 3°– Usuarios hostiles
– Complicaciones de acceso
– ¿Un editor de texto sufrirá estas consecuencias?
![Page 25: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/25.jpg)
25
¿Por qué es difícil diseñar SO?
• 4°– Compartición de recursos
• ¿Qué pasa con los usuarios malintencionados?
• ¿Estos es una contradicción?
![Page 26: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/26.jpg)
26
¿Por qué es difícil diseñar SO?
• 5°– Vida larga
• Unix --> + 25 años
• Windows --> + 10 años
– Consideraciones
• Cambios en el hardware
• Cambios en las aplicaciones
– Los sistemas casados con una visión específica del mundotienden a desaparecer
![Page 27: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/27.jpg)
27
¿Por qué es difícil diseñar SO?
• 6°– No se tiene un idea clara
• ¿De qué?
– Alto grado de generalidad
– Ejemplos
• SO
• Barcos
![Page 28: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/28.jpg)
28
¿Por qué es difícil diseñar SO?
• 7°– Portabilidad
• Múltiples arquitecturas– Big-Endian
– Little-Endian
– Diferencias
• Múltiples dispositivos– IRQs (Interrupt ReQuest) repetidos
![Page 29: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/29.jpg)
29
¿Por qué es difícil diseñar SO?
• 8°– Compatibilidad
• ¿Hacia dónde?
• ¿Por qué?
– Ejemplo
• Computacional
• Carros
![Page 30: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/30.jpg)
30
Diseño de Interfaces
• Si diseñar es complicado, ¿por donde empezar?
• Interfaces– Conjuntos de servicios
• Tipos de datos
– Archivo
• Operaciones sobre los tipos de datos
– Read
• ¿Quien es el usuario para el SO?
![Page 31: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/31.jpg)
31
Diseño de Interfaces
• Interfaces de llamadas el sistema
• Interfaces de bajo nivel– Ejemplos
![Page 32: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/32.jpg)
32
Diseño de Interfaces
• Principios Orientadores– Sencillez
• Fácil entendimiento
• Fácil implementación
– “Se alcanza la perfección no cuando ya no queda más queañadir, sino cuando ya no queda más que quitar” -- Antoniede Saint-Exupupéry
– Menos es mejor que más
– Principio KISS (Keep It Simple, Stupid)
![Page 33: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/33.jpg)
33
Diseño de Interfaces
• Principios Orientadores– Integridad
• Hacer lo que se debe hacer– Completa o Integra
– “Todo de ser lo más sencillo posible, pero no más”-- Albert Einsten
– Funcionalidades bien definidas y correctas
![Page 34: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/34.jpg)
34
Diseño de Interfaces
• Principios Orientadores– Integridad
– “En primer lugar, es importante destacar el valor de lasencillez y la elegancia, pues la complejidad suelemultiplicar las dificultades y, como hemos visto, propiciarerrores. Mi definición de elegancia es el logro de unafuncionalidad dada con un mínimo mecanismo y un máximode claridad” -- Fernando Corbato
– Idea clave
• Mínimo mecanismo
![Page 35: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/35.jpg)
35
Diseño de Interfaces
• Principios Orientadores– Integridad
– Cada característica, función y llamada al sistema debesostener su propio peso
– Solo una cosa, pero se hace bien
– Debo preguntarme algo antes de incluir una funcionalidad alSO
– ¿Sucedería algo terrible si no incluyéramos lafuncionalidad?
• Si o No
• Consideraciones
![Page 36: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/36.jpg)
36
Diseño de Interfaces
• Principios Orientadores– Integridad
– Ejemplos
• MINIX– sendsend, receive y sendrec
– ¿Se les parece a algún esquema estudiado?
• Amoeba– Llamada a procedimiento remoto
![Page 37: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/37.jpg)
37
Diseño de Interfaces
• Principios Orientadores– Eficiencia
• Rápido y bien
• Nada de marramucias
• Es ocasiones es mejor no implementar, si no existe eficiencia
• Se requiere preservar intuición por parte del programador
– Ejemplos
» lseek vs. read
![Page 38: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/38.jpg)
38
Diseño de Interfaces
• Paradigmas– Ya con metas, comenzamos con el diseño
– Buen punto de partida
• ¿Cómo los clientes verán al sistema?
– Ofrecer un conjunto consistente de características
• Coherencia arquitectónica
![Page 39: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/39.jpg)
39
Diseño de Interfaces
• Tipos de usuarios– Interacción con los programas de ejecución
• ¿Con qué interactúan?
– Construyen o programan dichos programas
• ¿Con qué interactúan?
– Ejemplos
• Macintosh
• UNIX
![Page 40: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/40.jpg)
40
Diseño de Interfaces
• Si creamos, ¿cómo vamos?– Crear la GUI
• Modelo descendente
• ¿Qué debo saber?
– Orientado a eventos
– Orientado a manejo de caracteres
– Crear la interfaz de llamadas al sistema
• Modelo ascendente
– Características ofrecidas a los programadores
– Ejemplo --> X en Linux
![Page 41: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/41.jpg)
41
Diseño de Interfaces
• Paradigmas de interfaz de usuario– Buen paradigma
• Metáforas
• ¿Qué significa esto?
• ¿Qué facilita?
• Implicaciones– Bibliotecas y herramientas
– Manejo uniforme
![Page 42: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/42.jpg)
42
Diseño de Interfaces
• Paradigmas de ejecución– ¿Qué se pretende mantener?
– Paradigma algorítmico
• Ideas
– Paradigma controlado por sucesos
• Ideas
– ¿Qué provee el sistema operativo en cada caso?
![Page 43: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/43.jpg)
43
Diseño de Interfacesmain()
{
int ...;
init();
hacer_algo();
read(...);
hacer_otra_cosa();
write(...);
seguir_trabajando();
exit(0);
}
main()
{
mees_t mens;
init();
while(rec_mensaje(&mens)){
switch(msg.type){
case 1: ...;
case 2: ...;
....
}
}
}
![Page 44: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/44.jpg)
44
Diseño de Interfaces
• Paradigmas de datos– ¿Cómo se presentan los dispositivos y las estructuras al
programador?
• FORTRAN
– Todos es una cinta
• UNIX
– Todos es un archivo
• Windows
– Todo es un objeto
• WEB
– Todo es un documento
![Page 45: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/45.jpg)
45
Diseño de Interfaces
• Paradigmas de datos– Ejemplos
• fd1 = open (“file1”,O_RDWR);
• fd2 = open (“/dev/tty”,O_RDWR);
• fd3 = open (“/proc/501”,O_RDWR);
![Page 46: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/46.jpg)
46
Diseño de Interfaces
La interfaz de llamada al sistema
− Conjunto de llamadas al sistema
Lo más sencillo posible, pero no más sencilla
− ¿Servirá de algo el paradigma de datos acá?
Ideas
![Page 47: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/47.jpg)
47
Diseño de Interfaces
La interfaz de llamada al sistema
− Ejemplos
exec (nombre,argp,envp)
execl (nombre,arg0,arg1,...,argn,0)
execle (nombre,arg0,arg1,...,argn,envp)
Sin exagerar− ¿Por qué?
![Page 48: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/48.jpg)
48
Diseño de Interfaces
La interfaz de llamada al sistema
− Creación de procesos
Linux
Windows
Primera ley de Tanenbaum− “Añadir más código añade más errores”
![Page 49: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/49.jpg)
49
Diseño de Interfaces
La interfaz de llamada al sistema
− Consideración adicional – Lampson (1984)
“No hay que ocultar la potencia”
¿Qué significa los anterior?
Ejemplos− Linux vs. Windows
− Lecturas de la RAM de vídeo
![Page 50: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/50.jpg)
50
Implementación
Estructura del sistema
− Decidir la estructura que adoptará el sistema
− Opciones
Capas
Exokernel
Cliente – Servidor (Microkernel)
Sistemas Extensibles
Subprocesos del kernel
![Page 51: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/51.jpg)
51
Implementación
Mecanismo vs. Políticas
− Mecanismo -- ¿En donde?
− Políticas -- ¿En donde?
− Ejemplos
Planificación
Memoria
Carga de módulos
![Page 52: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/52.jpg)
52
Implementación
Ortogonalidad
− Definición
− Ejemplo
Lenguaje C
− Es consecuencia directa de los principios
Sencillez
Integridad
![Page 53: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/53.jpg)
53
Implementación
Ortogonalidad
− Ejemplos
Clone – Linux
Procesos y Subproceso – Windows 2000
![Page 54: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/54.jpg)
54
Implementación
Asignación de nombres
− ¿Cómo referenciar: objetos, recursos, archivos?
− Creación y administración de nombre
Clave
− Jerarquías
Ejemplos
![Page 55: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/55.jpg)
55
Implementación
Asignación de nombres
− Niveles
Externo
Interno
− Ejemplo
Windows− Nombres de archivos, nombres de objetos, nombres del
registro, nombre active directory.
![Page 56: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/56.jpg)
56
Implementación
Asignación de nombres
− ¿Que considerar?
Cantidad de espacios de nombre
Sintaxis
Relativos
Absolutos
![Page 57: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/57.jpg)
57
Implementación
Tiempo de enlace
− ¿La correspondencia entre nombres y objetos esfija?
Si o No
− ¿Qué es enlazar?
Enlace temprano
Enlace tardío
![Page 58: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/58.jpg)
58
Implementación
Tiempo de enlace
− Ejemplos
Universidad
Fabrica
Lenguajes de programación− Variable global
− Variable local
− Malloc o New
![Page 59: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/59.jpg)
59
Implementación
Tiempo de enlace
− ¿Qué tipo de enlace utilizar en un SO?
Ideas
− Ejemplos
Memoria
GUI
![Page 60: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/60.jpg)
60
Implementación
Estructuras estáticas o dinámicas
− Siempre nos vemos obligados a escoger
− ¿Por qué?
− Ventajas
− Desventajas
![Page 61: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/61.jpg)
61
Implementación
Estructuras estáticas o dinámicas
− Ejemplos
Tablas de procesos
Tablas de archivos abiertos
− Soluciones
Ideas
![Page 62: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/62.jpg)
62
Implementación
Estructuras estáticas o dinámicas
− Soluciones
Listas enlazadas
− Funcionamiento
Ejemplo --> Tabla de procesos
¿De qué tamaño podría ser la tabla de procesos?
De hecho
¿De qué tamaño podría ser cualquier tabla?
![Page 63: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/63.jpg)
63
Implementación
Estructuras estáticas o dinámicas
− Búsquedas en las estructuras
Ejemplo
− Buscar un proceso por PID
![Page 64: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/64.jpg)
64
Implementación
Estructuras estáticas o dinámicas
− Búsquedas en las estructuras
found = 0;
for (p=&proc_table[0]; p<&proc_table[PROC_TABLE_SIZE]; p++){
if(p->proc_pid == pid){
found=1;
break;
}
}
![Page 65: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/65.jpg)
65
Implementación
Estructuras estáticas o dinámicas
− Tablas estáticas
¿Cuando es recomendable usarlas?
− Ejemplos
SO monousuarios
Conocimiento con antelación
− Otra alternativa
Fijo, pero no…
Ideas
![Page 66: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/66.jpg)
66
Implementación
Estructuras estáticas o dinámicas
− Algunas consideraciones sobre el kernel parecidas a este enfoque
Pilas
Planificación de procesos
Estructura del kernel
![Page 67: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/67.jpg)
67
Implementación
Descendente o Ascendente
− Top-Down
Manejadores de llamadas al sistema
− Mecanismos y Estructuras
Continuo descendiendo
Consideraciones
− Ideas
− ¿Algún inconveniente?
![Page 68: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/68.jpg)
68
Implementación
Descendente o Ascendente
− Bottom-up
Ocultar el hardware --> HAL
Manejador de interrupciones
Controlador de reloj
Planificador
Tablas y estructuras de datos
Protección
¿Y la E/S?
![Page 69: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/69.jpg)
69
Implementación
Descendente o Ascendente
− ¿Existe otro modelo?
Ideas
Ejemplos
Consideraciones
![Page 70: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/70.jpg)
70
Implementación
Técnicas útiles
− Ocultación del hardware
Una buena parte del hardware es fea
Ocultarla desde el principio
¿En qué caso no?
HAL
¿Cómo manejar las interrupciones?
− Ideas
![Page 71: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/71.jpg)
71
Implementación
Técnicas útiles
− ¿Cómo manejar las interrupciones?
Convertirlas de inmediato
Convertirlas en una operación unlock
Convertirla en un mensaje
− ¿Características en común?
Ideas
![Page 72: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/72.jpg)
72
Implementación
Técnicas útiles
− Ocultación del hardware
Múltiples plataformas
− Tamaño de RAM
− CPU
− Tamaño de la palabra
¿Cómo ocultar dichas diferencias?
− Ideas para item
![Page 73: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/73.jpg)
73
Implementación
Técnicas útiles
− Ocultación del hardware
Compilación condicional
#include “config.h”
init()
{
#if(CPU==PENTIUM)
#endif
#if (CPU==ULTRASPARC)
#endif
}
![Page 74: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/74.jpg)
74
Implementación
Técnicas útiles
− Indirección
¿Qué es esto?
Se dice que no hay un problema en la computación que no puedaresolverse con un nivel adicional de indirección
Ejemplo
− Teclas --> Sistemas basados en Pentium
− Caracteres ASCII --> Fuentes
− Buzones
− Macros
#define PROC_TABLE_SIZE 256
![Page 75: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/75.jpg)
75
Implementación
Técnicas útiles
− Reusabilidad
Concepto
Beneficios
Ejemplos
¿Mismo contexto?
![Page 76: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/76.jpg)
76
Implementación
Técnicas útiles
− Reentrancia
Diferentes filosofías
− Modificar vs. Ejecutar -- ¿Alguna relación?
Ejecución de un fragmento de código --> Instancias simultaneas
Ejemplos
− Sistemas multiprocesador
− Sistemas uniprocesador
Consideraciones
Solución
− SO reentrante
− Estructuras protegidas por mutex
− Inhabilitar interrupciones
![Page 77: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/77.jpg)
77
Implementación
Técnicas útiles
− Reentrancia
Ejemplo
− Planificador
1. Un proceso agoto su tiempo2. El SO lo pasa al final de la cola3. Ocurre una interrupción -- Proceso pasa a listo4. ¿Y entonces?
![Page 78: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/78.jpg)
78
Implementación
Técnicas útiles
− Fuerza bruta
A veces optimizar no es lo más recomendable
Ejemplos
− Búsqueda en tablas
− Conmutación de contexto
![Page 79: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/79.jpg)
79
Implementación
Técnicas útiles
− Fuerza bruta
A veces optimizar no es lo más recomendable
Ejemplos
− Búsqueda en tablas
− Conmutación de contexto
![Page 80: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/80.jpg)
80
Implementación
Técnicas útiles
− Verificar primero si hay errores
Muchas llamadas al sistema podrían fallar
− Ejemplos
SO debe verificar minuciosamente todos los posibles errores antes deinvocar o ejecutar cualquier llamada
Básicamente, realizar las pruebas al principio del procedimiento queejecuta la llamada al sistema
¿Por qué?
− Asignación de recursos
¿Qué pasa si no verifico?
![Page 81: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/81.jpg)
81
Implementación
Técnicas útiles
− Verificar primero si hay errores
Ejemplos
− malloc
− free
¿Quién podría ayudar acá?
![Page 82: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/82.jpg)
82
Implementación
Técnicas útiles
− Verificar primero si hay errores
Ejemplos
− malloc
− free
¿Quién podría ayudar acá?
![Page 83: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/83.jpg)
83
Desempeño
En condiciones normales
− ¿Qué es mejor?
SO rápido vs. SO lento
− Consideraciones
− Implicaciones del desempeño
![Page 84: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/84.jpg)
84
Desempeño ¿Por qué son lentos los sistemas operativos?
− Generalmente la lentitud es culpa del propio SO
− Ejemplos
Tiempo de carga: MS-DOS y UNIX Versión 7
Tiempo de carga: Windows Vista y Fedora Core 7
Consideraciones
− Más de la cuenta
Ejemplo
− Plug and Play
− ¿Alguna solución adicional?
![Page 85: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/85.jpg)
85
Desempeño ¿Por qué son lentos los sistemas operativos?
− ¿SO amigables o a prueba de idiotas?
− Opción --> Ser aún más selectivo
¿Esto gustaría a los usuarios?
¿Esta característica justifica el precio en cuanto a tamaño del código, lentitud,complejidad y confiabilidad?
− También influye el marketing
![Page 86: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/86.jpg)
86
Desempeño ¿Qué debe optimizarse?
− La primera versión debe ser lo más directa posible
− Solo optimizar lo que se está seguro dará problemas
− Período de prueba
El estudio del período da como resultado nuevas optimizaciones
− Anécdota
mkfs en MINIX
¿Valió la pena?
− “Lo bastante bueno es bastante bueno”
− Otras consideraciones
![Page 87: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/87.jpg)
87
Desempeño ¿Qué debe optimizarse?
− Equilibrio espacio-tiempo
Sacrificar tiempo a uno para ganar el otro
Sustituir procedimientos pequeños por macros
Ventajas
![Page 88: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/88.jpg)
88
Desempeño ¿Qué debe optimizarse?
#define BYTE_SIZE 8
int bit_count(int byte)
{
int i, count=0;
for(i=0;i<BYTE_SIZE;i++)
if((byte>>1)&1) count++;
return(count);
}
![Page 89: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/89.jpg)
89
Desempeño
¿Qué debe optimizarse?
#define bit_count(b)(b&1)+((b>>1)&1)+((b>>2)&1)+((b>>3)&1)+((b>>4)&1)+…+((b>>7)&1)
− ¿Se diferencian en algo?
Ideas
![Page 90: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/90.jpg)
90
Desempeño
¿Qué debe optimizarse?
− Uso de cachés
Mejorar desempeño
¿Dónde es aplicable?
Ejemplo
− /usr/ast/correo
− ¿Cuál es el proceso?
¿Cómo mejorar lo anterior?
![Page 91: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/91.jpg)
91
Desempeño ¿Qué debe optimizarse?
− Uso de cachés
60/usr/ast/correo
26/usr/ast
6/usr
Número de Nodo-iRuta
![Page 92: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/92.jpg)
Desempeño
¿Qué debe optimizarse?− Sugerencias en vez de caches
¿Qué es esto? Ejemplo
− URLs
![Page 93: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/93.jpg)
Desempeño
¿Qué debe optimizarse?− Aprovechamiento de la localidad
Los proceso no actúan al azar Principio de localidad de referencia Ejemplos
− Archivos --> Fast System de Berkeley (McKusick et al, 1984)− Planificación en sistemas multiprocesadores
![Page 94: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/94.jpg)
Desempeño
¿Qué debe optimizarse?− Aprovechamiento de la localidad
Los proceso no actúan al azar Principio de localidad de referencia Ejemplos
− Archivos --> Fast System de Berkeley (McKusick et al, 1984)− Planificación en sistemas multiprocesadores
![Page 95: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/95.jpg)
Desempeño
¿Qué debe optimizarse?− Optimización del caso común
Se estudia el mejor, el peor y promedio de los casos Se desea optimizar el caso más factible
![Page 96: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/96.jpg)
Administración de Proyectos
Los programadores son optimistas perpetuos Correr al teclado y empezar a escribir Luego depurar y correr En un SO esto no funciona
![Page 97: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/97.jpg)
Administración de Proyectos
El mes hombre mítico− Fred Brooks -- Libro -- OS/360− Programador --> 1000 líneas de depuradas al año− ¿Estará este hombre loco?− ¿Cómo podría ser esa la producción anual de una
persona con un coeficiente intelectual mayor a 50?− Los proyectos grandes no son ni parecidos a
proyectos completos
![Page 98: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/98.jpg)
Administración de Proyectos
El mes hombre mítico− Proyecto grande
Planificación Especificaciones de módulos e interfaces Interacción entre dichas partes Codificación Etc.
![Page 99: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/99.jpg)
Administración de Proyectos
El mes hombre mítico− Brooks estimo lo siguiente:
1/3 Planificación 1/6 Codificación 1/4 Prueba de módulos 1/4 Prueba del sistema
− En otras palabras el código es lo fácil
![Page 100: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/100.jpg)
Administración de Proyectos
El mes hombre mítico− ¿Qué significa el título?
Las personas y el tiempo no son intercambiables No existe unidad mes-hombre 15 personas --> 2 años 360 personas --> 1 mes 60 personas --> 6 meses “La adición de personal a un proyecto de software atrasado lo atrasa
más” “Se necesitan 9 meses para tener un hijo, por más mujeres que se
asignen a la tarea”
![Page 101: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/101.jpg)
Administración de Proyectos Estructura de equipos de trabajo
− La calidad es inmensamente importante− 10 a 1 el factor de productividad de un programador experto a un rookie− El problema es el número de programadores expertos− Necesidad de mantener coherencia arquitectónica− Harlam Mills
Equipo de programador en jefe “Equipo de cirujanos, no de carniceros” Ejemplo de dicho enfoque
![Page 102: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/102.jpg)
Administración de Proyectos Estructura de equipos de trabajo
![Page 103: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/103.jpg)
Administración de Proyectos El papel de la experiencia
− Contar con diseñadores expertos es crucial
− Romper con los paradigmas clásicos de desarrollo
− Efecto segundo sistema
![Page 104: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/104.jpg)
Administración de Proyectos
No hay una bala de plata− Brooks
“No Silver Bullet” Ningún remedio propuesto, provee una solución
completa ¿Cierto o falso?
![Page 105: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/105.jpg)
Resumen
Primero debo saber lo que voy a hacer Interfaces sencillas, completas y eficientes Paradigmas claros
− Usuario− Ejecución− Datos
Estructuración conocida− Capas, microkernel, etc.
![Page 106: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/106.jpg)
Resumen
Componentes internos ortogonales Separar mecanismos de políticas Consideraciones
− Estructuras dinámicas− Estructuras estáticas− Asignación de nombres− Tiempo de enlace
![Page 107: Diseño de Sistemas Operativos - Facultad de … · Diseño de Sistemas Operativos ... –Para el usuario •SO ... –Consideraciones •Cambios en el hardware •Cambios en las](https://reader036.vdocuments.net/reader036/viewer/2022081606/5bbe871409d3f280238bd2ed/html5/thumbnails/107.jpg)
Resumen
Desempeño Administración del equipo ¿Será complejo diseñar, implantar y probar un
SO?