estudio comparativo de s.o

Download Estudio Comparativo de S.O

If you can't read please download the document

Upload: gabriel-arellano

Post on 25-May-2015

4.839 views

Category:

Technology


2 download

DESCRIPTION

Estudio comparativo de sistemas operativos de la cátedra Sistemas Operativos de la FRCU - UTN.

TRANSCRIPT

  • 1. Tema del da: Estudio comparativo de S.O. Unix BSD, GNU/Linux y Windows NT/2K

2. Objetivos Comparar los SO propuestos de acuerdo a:

    • Historia y Generalidades
  • 3. Estructura del Kernel

4. Gestin de Procesos 5. Gestin de Memoria 6. Estrategias de Entrada/Salida 7. Manejo de Archivos y F.S. 8. Seguridad y Proteccin 9. Historia: Unix

    • Desarrollado en 1969 por Ken Thompson and Dennis Ritchie (tratando de copiar MULTICS).
  • 10. La tercera versin se escribo en C en los laboratiorios de Bell (creado para soportar Unix)

11. La UC en Berkeley desarrolla su propio Unix (el Berkeley Software Distributions - BSD). 12. Desarrollado para las VAX, 4.3BSD es una de las versiones ms influyentes y ha sido portada a innumerables arquitecturas. 13. Dos ramas incompatibles (BSD y System V) crean la necesidad de un estndar (nace POSIX) 14. Historia: GNU/Linux

    • Durante los '80 la FSF comenz a desarrollar las herramientas para su S.O. (GNU). A principio de los '90 slo les faltaba terminar el kernel...
  • 15. En 1991 un estudiante finlands presenta como tesis un kernel basado en Minix, lo llama Linux y lo distribuye bajo licencia GNU.

16. Al unirse con las herramientas de la GNU nace el sistema operativo GNU/Linux. 17. Historia: Windows 2000

    • En 1998, Microsoft decide desarrollar sistemas operativos portables de nueva tecnologa (NT) que soporten las APIs OS/2 y POSIX...
  • 18. Originalmente la API nativa de NT sera la OS/2, pero durante su desarrollo se la cambi por la Win32 debido a la popularidad de Windows 3.0

19. Luego evolucion en Windows 2000, un S.O. de 32 bits, preemptivey con arquitectura de microkernel. 20. Principios: Unix Principios de diseo:

    • Diseado para sistemas de tiempo compartido.
  • 21. Interfaz de usuario sencilla y externa.

22. Sistema de archivos y directorios jerrquico. 23. Archivos como secuencias de bytes. 24. Soporte multiproceso. 25. Objetivos prioritarios: favorecer la interactividad y brindar herramientas al programador de aplicaciones. 26. Principios: GNU/Linux Comparte los principios de Unix y adems:

    • Proporciona interfaz POSIX.
  • 27. Pensado para ser portable. En lo posible el cdigo fuente es independiente de la plataforma.

28. Kernel modular con mdulos que se cargan de manera dinmica (DLKM). 29. Soporte para gran variedad de F.S. 30. Soporte multiproceso a travs de SMP (multiprocesamiento simtrico). 31. Principios: Windows 2000 Principios de diseo:

    • Extensibilidad: usando arquitectura por capas.
  • 32. Portabilidad: escrito en C y C++, con el cdigo dependiente del Hw aislado en una DLL llamada HAL (Hardware Abstraction Layer)).

33. Confiabilidad: proteccin de memoria y proteccin de recursos. 34. Performance: kernel preemtive y con soporte de SMP. 35. Internacionalizacin: mediante la API NLS. 36. Estructura: Unix BSD 37. Estructura: GNU/Linux 38. Estructura: Windows 2K 39. Kernel: Arquitectura El kernel Linux y Windows son monolticos

    • Todos los servicios corren en un rea de memoria compartida en modo kernel.
  • 40. Todos los servicios del sistema son parte de un solo archivo:
  • Linux: vmlinuz

41. Windows: ntoskrnl.exe La interfaz es manejada de manera diferente:

  • Windows tiene un sistema de ventanas en modo kernel.

42. Linux tiene el sistema X-Window que corre en modo usuario. 43. Kernel: Arquitectura DeviceDrivers Process Management, Memory Management,I/O Management, etc. Win32 Windowing Application System Services User Mode Kernel Mode Hardware Dependent Code Windows DeviceDrivers Process Management,Memory Management,I/O Management, etc. X-Windows Application System Services User Mode Kernel Mode Hardware Dependent Code Linux 44. Kernel: Linux

  • Linux es monoltico pero con diseo modular.
  • Todos los subsistemas del kernel forman una sola pieza de cdigo sin proteccin entre ellas.

La modularidad se soporta de dos maneras:

  • Opciones en tiempo de compilacin.

45. La mayora de los componentes se pueden compilar como DLKMs 46. Kernel: Linux (cont.) DLKMs (dynamically loadable kernel modules)

    • Se compilan separados del kernel
  • 47. Se cargan en el kernel en tiempo de ejecucin y bajo demanda (componentes poco usados ocupan memoria del kerenl slo cuando son necesarios)

48. Lo mdulos del kernel pueden ser actualizados gradualmente 49. Permite soportar kernel mnimos que se adaptan a la computadora y cargan slo aquellos componentes que son utilizados. 50. Kernel: Windows

  • Windows es monoltico (y modular)
    • Sin proteccin entre componentes del kernel.
  • 51. El soporte de modularidad es dbil:

52. Los drivers de Windows permiten la extensin dinmica de las funcionalidades del kernel Los drivers de Windows son mdulos de carga dinmica

  • Gran cantidad de cdigo (incluso protocolos y algunos servicios) corren como drivers.

53. Se compilan independientemente del kernel. 54. Pueden ser cargados de manera dinmica. 55. APIs y Compejidad

  • Windows
    • Kernel con unas 250 system calls (via ntdll.dll)
  • 56. Subsistemas por capas Win32/POSIX

57. Rich Windows API (17500 funciones) Linux

  • Kernel con cerca de 200 system calls

58. Libreras de sistema por capas: BSD, Unix SysV y POSIX 59. APIs compactas (1742 funciones en la Single Unix Specification Version 3; sin incluir las APIs de X-Window) 60. APIs y Compejidad

  • Windows
    • Kernel con unas 250 system calls (via ntdll.dll)
  • 61. Subsistemas por capas Win32/POSIX

62. Rich Windows API (17500 funciones) Linux

  • Kernel con cerca de 200 system calls

63. Libreras de sistema por capas: BSD, Unix SysV y POSIX 64. APIs compactas (1742 funciones en la Single Unix Specification Version 3; sin incluir las APIs de X-Window) 65. Procesos: Unix y Linux

  • Proceso:
    • Es la unidad bsica de procesamiento.
  • 66. Cada proceso tiene su espacio de direcciones a travs de su BCP y tablas intermedias.

67. Relaciones padre/hijo entre procesos. Hilos (threads)

  • Comparten el espacio de direcciones y las tablas intermedias con el proceso que las cre.

68. PThreads brinda herramientas para threads cooperativas. 69. Planificacin

  • Windows
    • Dos clases de planif.
    • Prioridad de Tiempo Real (fija) 16 a 31
  • 70. Prioridad Dinmica de 1 a15

La prioridades ms altas son favorecidas.

  • La prioridades de un thread no pueden ser reducidas.
  • Linux
    • Tres clases de planif.
    • Normal (pri. 100-139)
  • 71. RR fija (pri. 0-99)

72. FIFO fija (pri. 0-99) Prioridades bajas son favorecidas. 73. Planificacin: Prioridades 31 15 16 0 Fija Dinmica E/S Windows 140 100 99 0 FIFO Fija Round-Robin Fija Normal CPU E/S Linux 74. Planificacin: Linux

  • La mayora de los procesos usan polticas de prioridad dinmica.
  • El valor nice establece la prioridad base de un proceso.
  • Los valores de nice van desde -20 a +20 (ms grande = menor prioridad)

75. Los usuarios no privilegiados slo pueden especificar valores de nice positivos. Los procesos normales se ejecutan slo cuando no quedan procesos de tiempo real (de prioridad fija) en la cola de listos. 76. Planificacin T-R Linux

  • Linux soporta dos polticas de prioridades estticas para procesos de tiempo real:
  • Round-Robin y FIFO
  • Se selecciona con la llamada sched-setcheduler()

77. Usan prioridades estticas con valores ente 1 y 99 78. Los procesos se ejecutan en estricto orden decreciente de prioridad Procesos de T-R pueden provocar inanicin a procesos de baja prioridad. Llamadas al sistema de mucha duracin pueden causar inversin de prioridades. 79. Planificacin T-R Windows

  • Windows soporta planificacin Round-Robin esttica para hilos con prioridades en el rango de tiempo real (16-31)
  • Un hilo puede usar hasta un quantum de tiempo.

80. Las prioridades nunca son aumentadas. Hilos de tiempo real pueden provocar inanicin en servicios del sistema. 81. Ciertas llamadas al sistema pueden provocar una inversin de prioridades. 82. Planificacin: Quantums

  • Windows
    • La rodaja de un hilo es 10ms o 120ms
  • 83. Reentrante y con expropiacin.
  • Linux
    • La rodaja de un hilo es 10ms a 200ms
    • Default: 100ms.
  • 84. Vara de acuerdo a prioridad (segn nivel de interactividad)

Reentrante y con expropiacin. Fixed: 120ms 20ms Primer Plano: 60ms Segundo Plano 100ms 200ms 10ms 85. Soporte Multiprocesador

  • Windows
    • Soporta SMP
    • Hasta 32/64 CPUs.

Soporta acceso a memoria no uniforme. 86. Soporta Hyperthreading

  • Favorece CPUs desocupadas cuando es posible.
  • Linux
    • Soporta SMP
    • Sin lmite de CPUs.

Soporta acceso a memoria no uniforme 87. Soporta Hyperthreading

  • Favorece CPUs desocupadas cuando es posible.

88. Memoria Principal

  • Windows
    • Conjuntos de trabajo por proceso:
    • Tamao dinmico.
  • 89. Usa algoritmo del reloj.
  • Linux
    • Conjunto de trabajo global:
    • Usa algoritmo del reloj.

Process LRU Reused Page Other Process LRU LRU Reused Page 90. Memoria Virtual

  • Windows
    • Se separa en usuario/kernel desde 2/2GB hasta 3/1GB
  • 91. Memoria virtual paginada por demanda
  • CoW, compartir mem.

Mapeo de archivos.

  • Linux
    • Se separa en usuario/kernel 4/4GB
  • 92. Memoria virtual paginada por demanda
  • CoW, compartir mem.

Mapeo de archivos. 93. Entrada/Salida: Linux

  • Centrado alrededor del nodo-v.

94. Los drivers no estn ordenados por capas, aunque hay cierta estructura: controlador / dispositivo. 95. La cantidad de interrupciones se controla mediante IRQL (internal interrupt request level) 96. Las int. se separan en rutina de trat. de la int.(ISR) e interrupcin suave o tasklet. 97. Soporta Plug&Play 98. Entrada/Salida: Windows

  • Centrado alrededor del objeto archivo.

99. Drivers ordenados por capas y la mayora de la E/S soporta operacin asncrona. 100. La cantidad de interrupciones se controla mediante IRQL. 101. Las int. se separan en rutina de trat. de la int. (ISR) y llamada a proc. diferido (DPC) 102. Soporta Plug&Play 103. Cach de Archivos

  • Tanto Windows como Linux soportan:

104. Cach global comn. 105. Cach virtual de archivos 106. El cach se hace a nivel de archivos, no de bloques. 107. Los archivos son mapeados en memoria del kernel. 108. La cach permite servir archivos usando un protocolo de copia cero (zero-copy) 109. Bibliografa Esta clase puede ser ampliada viendo:

    • Carretero (S.O. Visin Aplicada) (1ra. ed.):
    • Captulo 11 - Estudio de Casos: Linux.
  • 110. Captulo 12 - Estudio de Casos: Windows NT.

Tannenbaum (Sistemas Operativos Modernos):

  • Captulo 10: Unix y Linux.

111. Captulo 11: Windows 2000. Stallings (Sistemas Operativos)

  • Los contenidos se encuentran distribuidos en los distintos captulos del libro. Se puede descargar un resumen en : http://williamstallings.com/OS4e.html

112. Gracias ! Ing. Gabriel E. Arellano [email_address] http://www.gabriel-arellano.com.ar/so/ (2008) Gabriel E. Arellano Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. The GNU Free Documentation License as applicable to this document can be found at:http://www.gnu.org/copyleft/fdl.html