Capítulo 2<br />Evolución<br />1<br />Sistemas Operativos I<br />
hasta los sistemas para PC<br />evolución de los S.O.<br />Fortran y Cobol<br />Primeros sistemas<br />1950<br />Sistemas ...
 multiprogramados</li></ul>1960<br />CTSS<br />OS/360<br />Sistemas de tiempo compartido<br />1970<br />MULTICS<br />UNIX<...
Sistemas Operativos I<br />3<br />generación de computadoras<br />
pre historia<br />Sistemas Operativos I<br />4<br />generación de computadoras<br />Años 40.<br />Primeras computadoras.<b...
primera generación (años 50)<br />Sistemas Operativos I<br />5<br />generación de computadoras<br />Los trabajos siguen ej...
segunda generación (años 60)<br />Sistemas Operativos I<br />6<br />generación de computadoras<br />Aparece el concepto de...
tercera generación (años 70)<br />Sistemas Operativos I<br />7<br />generación de computadoras<br />Sistemas de propósito ...
cuarta y quinta generación (años 80 a la actualidad)<br />Sistemas Operativos I<br />8<br />generación de computadoras<br ...
historia<br />anécdotas<br />Los sistemas operativos han estado estrechamente vinculados a la arquitectura de las computad...
historia<br />anécdotas<br />Primeros sistemas (1945-1955)<br />Howard Aiken (Harvard), John Von Neumann (Princeton) Konra...
modos de operación<br />sistemas por lotes simples<br />Modo de operación:<br />Contratación de un operador profesional.<b...
ventajas y desventajas<br />sistemas por lotes simples<br />Ventaja de agrupar por lotes y contratar operador:<br />Se red...
el monitor residente<br />sistemas por lotes simples<br />13<br />Sistemas Operativos I<br />Tratamiento de<br />interrupc...
Un pequeño computador dedicado a copiar de la cinta y en ella procesamiento satélite.  </li></li></ul><li>problemática<br...
Spooling (Simultaneous Peripheral Operation On Line)<br />sistemas por lotes simples<br />El disco actúa como un buffer de...
Spooling (Simultaneous Peripheral Operation On Line)<br />sistemas por lotes simples<br />16<br />Sistemas Operativos I<br...
sistemas por lotes multiprogramados<br />distribución de la memoria principal<br />sistemas por lotes simples<br />El spoo...
sistemas por lotes multiprogramados<br />alternancia en el uso del CPU<br />sistemas por lotes simples<br />18<br />Sistem...
sistemas por lotes multiprogramados<br />funciones y problemática<br />sistemas por lotes simples<br />Funciones<br />El s...
tipos de sistema<br />sistemas de tiempo compartido<br />La técnica básica de un sistema de tiempo compartido es tener a v...
objetivos<br />sistemas de tiempo compartido<br />Objetivos<br />Tiempos de respuesta aceptables.<br />Mejora de la interf...
funciones del sistema operativo<br />sistemas de tiempo compartido<br />Funciones del sistema operativo:<br />Gestión de p...
Dennis Ritchie y Ken Thompson utilizando consolas Teletype en computadores PDP-11 durante el primer desarrollo de Unix<br ...
objetivos y características<br />sistemas operativos para PC<br />Objetivos:<br />Sencillez y comodidad del usuario: contr...
sistemas paralelos<br />tendencias actuales<br />Sistemas multiprocesador:<br />Sistemas con más de una CPU en estrecha co...
sistemas distribuidos<br />tendencias actuales<br />Distribuir el cómputo entre varios procesadores físicos.<br />Los proc...
Upcoming SlideShare
Loading in...5
×

Cap2

887

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
887
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Cap2"

  1. 1. Capítulo 2<br />Evolución<br />1<br />Sistemas Operativos I<br />
  2. 2. hasta los sistemas para PC<br />evolución de los S.O.<br />Fortran y Cobol<br />Primeros sistemas<br />1950<br />Sistemas por lotes<br /><ul><li> simples
  3. 3. multiprogramados</li></ul>1960<br />CTSS<br />OS/360<br />Sistemas de tiempo compartido<br />1970<br />MULTICS<br />UNIX<br />Primeros sistemas Unix<br />CP/M<br />VMS<br />1980<br />Sistemas para PC<br />MS DOS<br />MAC OS<br />1990<br />OS/2<br />Linux<br />Windows<br />Windows NT<br />2000<br />2<br />Sistemas Operativos I<br />
  4. 4. Sistemas Operativos I<br />3<br />generación de computadoras<br />
  5. 5. pre historia<br />Sistemas Operativos I<br />4<br />generación de computadoras<br />Años 40.<br />Primeras computadoras.<br />No existen sistemas operativos.<br />Todos los trabajos se ejecutan en serie.<br />
  6. 6. primera generación (años 50)<br />Sistemas Operativos I<br />5<br />generación de computadoras<br />Los trabajos siguen ejecutándose en serie.<br />Se procesan los trabajos por lotes.<br />Se dispone de rutinas de E/S.<br />Se usan mecanismos rápidos para pasar de un trabajo al siguiente.<br />Recuperación del sistema si un trabajo acaba en error.<br />Lenguaje de control de trabajos para especificar los recursos a utilizar y las operaciones a realizar en cada trabajo.<br />
  7. 7. segunda generación (años 60)<br />Sistemas Operativos I<br />6<br />generación de computadoras<br />Aparece el concepto de multiprogramación.<br />Se construyen los primeros multiprocesadores.<br />Sistemas de tiempo compartido. <br />Planificación del CPU en rodajas.<br />Primeros sistemas de tiempo real.<br />
  8. 8. tercera generación (años 70)<br />Sistemas Operativos I<br />7<br />generación de computadoras<br />Sistemas de propósito general.<br />Procesamiento por lotes.<br />Multiprogramación.<br />Tiempo compartido.<br />Modo multiprocesador.<br />Aparición de los sistemas UNIX y MVS.<br />
  9. 9. cuarta y quinta generación (años 80 a la actualidad)<br />Sistemas Operativos I<br />8<br />generación de computadoras<br />Procesamiento distribuido.<br />Se desarrollan los sistemas operativos para computadores personales (MS-DOS y sistemas Windows).<br />Aparecen los sistemas operativos de tiempo real.<br />Se desarrollan los primeros sistemas operativos distribuidos.<br />Middlewares.<br />POSIX y Win32.<br />
  10. 10. historia<br />anécdotas<br />Los sistemas operativos han estado estrechamente vinculados a la arquitectura de las computadoras en los que se ejecuta.<br />La primera computadora digital verdadera fue diseñada por el matemático inglés Charles Babbage (1792-1871):<br />Se trataba de una “máquina analítica” totalmente mecánica que nunca logro que funcionara correctamente.<br />Babbage se dio cuenta de que necesitaría software para su máquina y contrato a Ada Lovelace como la primera programadora de la historia.<br />9<br />Sistemas Operativos I<br />
  11. 11. historia<br />anécdotas<br />Primeros sistemas (1945-1955)<br />Howard Aiken (Harvard), John Von Neumann (Princeton) Konrad Zuse (Alemania) lograron construir máquinas calculadoras con tubos de vacío. <br />Eran máquinas muy voluminosas ocupaban habitaciones completas con decenas de miles de tubos de vacío. <br />Un solo grupo de persona diseñaba, construía, operaba y mantenía cada máquina.<br />Los programas se almacenaban en tableros de conmutación y posteriormente en tarjetas perforadas.<br />Modo de operación:<br />“handson”, el usuario hace las veces de operador delante de la consola y tiene el control total sobre la máquina.<br />No existe un sistema operativo como tal. Se dispone de software como: cargadores, compiladores, bibliotecas con manejadores de dispositivo.<br />Existe un mala utilización de recursos: CPU y E/S.<br />Se trata de máquinas muy caras donde era importante maximizar el rendimiento de la CPU.<br />Prácticamente todos los problemas eran cálculos numéricos directos como las tablas de senos y cosenos.<br />10<br />Sistemas Operativos I<br />
  12. 12. modos de operación<br />sistemas por lotes simples<br />Modo de operación:<br />Contratación de un operador profesional.<br />Ausencia de interacción directa usuario-máquina.<br />El programador ya no opera delante de la máquina.<br />Agrupación por lotes de trabajos similares (igual compilador) con requisitos semejantes.<br />Esto reduce el tiempo de preparación.<br />Secuenciación automática de trabajos con tarjetas de control.<br />El usuario proporciona las cintas ó tarjetas al operador con el programa a ejecutar, el operador no puede depurar programas incorrectos, de modo que en caso de error en el programa se hace un volcado de la memoria y los registros .<br />El programador depura a partir del volcado, iniciando luego el trabajo siguiente.<br />Funciones del S.O.:<br />Aparece el primer esbozo de sistema operativo: <br />El monitor residente.<br />11<br />Sistemas Operativos I<br />
  13. 13. ventajas y desventajas<br />sistemas por lotes simples<br />Ventaja de agrupar por lotes y contratar operador:<br />Se reduce el tiempo de preparación.<br />Problemas que persisten:<br />El operador debe estar atento a la consola para comprobar si un trabajo ha terminado (normal o anormalmente). <br />Efectuar el volcado necesario y luego cargar el lector de tarjetas o de cintas con el siguiente trabajo<br />Todavía hay tiempos muertos de CPU.<br />Secuencia automática de trabajos monitor residente<br />Primeros sistemas operativos con procedimiento para transferir automáticamente el control de un trabajo al siguiente.<br />Para este fin se crea un pequeño programa llamado monitor residente, el cual siempre se encuentra (reside) en memoria. <br />Inicialmente se invocaba al monitor residente, el cual pasa transfiere el control al programa. <br />Cuando termina devuelve el control al monitor residente el cual pasa el control al siguiente programa.<br />Utiliza tarjetas de control $JOB (inicio de trabajo) $END (fin de trabajo).<br />12<br />Sistemas Operativos I<br />
  14. 14. el monitor residente<br />sistemas por lotes simples<br />13<br />Sistemas Operativos I<br />Tratamiento de<br />interrupciones<br />Manejadores de<br />dispositivos<br />Monitor<br />Carga y<br />secuenciación<br />de trabajos<br />Intérprete del<br />lenguaje<br />de control<br />ZONA DEL<br />PROGRAMA<br />DE USUARIO<br />Distribución de la memoria principal<br />El monitor residente tiene varias partes:<br />Interprete de tarjetas de control<br />Manejadores de dispositivo de E/S del sistema.<br />Problemas:<br />Incluso en la secuencia automática de trabajos la CPU todavía tiene periodos de inactividad, debido a la diferencia de velocidad entre la computadora y los dispositivos de E/S.<br />Solución:<br />Sustituir los lectores de tarjetas e impresoras de línea por cintas. <br />Los lectores de tarjetas e impresoras operaban fuera de línea, no lo hacían en la computadora principal.<br />Para el procesamiento fuera de línea se utilizaban dos métodos:<br /><ul><li>Lectores de tarjetas, impresoras de líneas que enviaban la salida a la cinta magnética..
  15. 15. Un pequeño computador dedicado a copiar de la cinta y en ella procesamiento satélite. </li></li></ul><li>problemática<br />sistemas por lotes simples<br />Problema: <br />Baja utilización de la CPU debido a los elevados tiempos de E/S<br />Soluciones:<br />Spooling<br />Multiprogramación<br />Utilización de la CPU (UtCPU):<br />UtCPU = tiempo_CPU_ocupada / tiempo_total<br />Tipos de carga:<br />Trabajos con secuencia de ráfagas de CPU y E/S.<br />14<br />Sistemas Operativos I<br />E/S<br />E/S<br />E/S<br />E/S<br />CPU<br />CPU<br />CPU<br />CPU<br />CPU<br />
  16. 16. Spooling (Simultaneous Peripheral Operation On Line)<br />sistemas por lotes simples<br />El disco actúa como un buffer de E/S:<br />Las tarjetas se leen de la lectora al disco (en lugar de a memoria directamente). Las imágenes de las tarjetas se almacenan en una tabla mantenida por el SO.<br />Cuando se ejecuta un trabajo, el SO satisface las peticiones de lectura, leyendo del disco. <br />Así mismo, cuando el trabajo solicita la impresión de una línea, esa línea se copia en un buffer del sistema y se escribe en el disco.<br />Cuando el trabajo termina, la salida se imprime realmente.<br />El spooling solapa la E/S de un trabajo con el cómputo de otros trabajos. Mientras ejecuta un trabajo, el SO:<br />Lee el siguiente trabajo de la lectora de tarjetas y lo almacena en un área del disco (la reserva de trabajos).<br />Envía a la impresora la salida del trabajo previo almacenada en el disco.<br />15<br />Sistemas Operativos I<br />
  17. 17. Spooling (Simultaneous Peripheral Operation On Line)<br />sistemas por lotes simples<br />16<br />Sistemas Operativos I<br />DISCO<br />Impresora<br />Lectora<br />Tarjetas<br />CPU<br />El spooling da origen a una importante estructura de datos: la reserva de trabajos. Como resultado del spooling, puede haber varios trabajos ya leídos esperando en el disco. <br />El SO puede entonces escoger qué trabajo ejecutará a continuación, con el fin de mejorar la utilización de la CPU. Es posible la planificación de trabajos. <br />El aspecto más importante de la planificación de trabajos es la capacidad de multiprogramar.<br />
  18. 18. sistemas por lotes multiprogramados<br />distribución de la memoria principal<br />sistemas por lotes simples<br />El spooling tiene sus limitaciones. <br />En general, un solo usuario no puede mantener la CPU ni los dispositivos de E/S ocupados todo el tiempo.<br />Con la multiprogramación, varios trabajos se mantienen en memoria al mismo tiempo, y la CPU se conmuta de un trabajo a otro para mejorar la utilización de la CPU y reducir el tiempo requerido para ejecutar los trabajos.<br />17<br />Sistemas Operativos I<br />Sistema operativo<br />Trabajo 1<br />Trabajo 2<br />Trabajo 3<br />
  19. 19. sistemas por lotes multiprogramados<br />alternancia en el uso del CPU<br />sistemas por lotes simples<br />18<br />Sistemas Operativos I<br />E/S<br />E/S<br />CPU<br />CPU<br />E/S<br />Trabajo 1<br />E/S<br />Trabajo 2<br />E/S<br />E/S<br />CPU<br />CPU<br />E/S<br />E/S<br />E/S<br />CPU<br />CPU<br />Trabajo 3<br />Utilización<br />CPU<br />La idea es la siguiente: <br />El SO mantiene varios trabajos en la memoria a la vez. Este conjunto de trabajos es un subconjunto de los que se mantienen en la reserva de trabajos.<br /> El SO escoge uno de los trabajos que está presente en la memoria y empieza su ejecución. <br />Tarde o temprano el trabajo tendrá que esperar mientras se lleva a cabo alguna operación como el montaje de una cinta o la terminación de una operación de E/S. Entonces, el SO selecciona otro trabajo y lo ejecuta. Cuando ese trabajo necesita esperar, la CPU se conmuta a otro trabajo y así sucesivamente.<br />En algún momento, el primer trabajo terminará su espera y recuperará la CPU. <br />Mientras haya algún trabajo que ejecutar, la CPU nunca estará ociosa.<br />
  20. 20. sistemas por lotes multiprogramados<br />funciones y problemática<br />sistemas por lotes simples<br />Funciones<br />El sistema operativo crece considerablemente en tamaño y aparecen nuevas funciones:<br />Planificación de trabajos y planificación de la CPU<br />Gestión de memoria.<br />Problemática<br />La ausencia de interacción usuario-máquina hace difícil la elaboración y depuración de programas<br />Un sistema por lotes con multiprogramación necesita ciertas características adicionales del hardware del computador, la más notable a destacar es que el hardware respalde las interrupciones de E/S y el DMA.<br />Con E/S dirigida por interrupciones y con DMA, el procesador puede enviar una orden de E/S para un trabajo y continuar con la ejecución de otro, mientras la E/S es efectuada por el controlador del dispositivo.<br /> Cuando termina la operación de E/S, el procesador es interrumpido y el control pasa a un programa de tratamiento de interrupciones del sistema operativo. <br />El sistema operativo le pasa entonces el control a otro trabajo.<br />Los S.O. Con multiprogramación son bastante más sofisticados en comparación con los monoprogramados o de un solo programa.<br />Para tener varios trabajos listos para ejecutar estos deben mantenerse en memoria principal, lo que requiere una adecuada gestión de memoria. <br />Además, si hay varios trabajos preparados para ser ejecutados, el procesador debe decidir cual de ellos va a ejecutar, lo que requiere un algoritmo de planificación de CPU. <br />19<br />Sistemas Operativos I<br />
  21. 21. tipos de sistema<br />sistemas de tiempo compartido<br />La técnica básica de un sistema de tiempo compartido es tener a varios usuarios utilizando simultáneamente el sistema mediante terminales, mientras que el S.O. intercala la ejecución de cada programa de usuario en ráfagas cortas de cómputo. <br />Tipos de sistema:<br />Mainframes con muchas terminales que distribuyen potencia de cálculo como una especie de “central eléctrica”.<br />Sistemas multiusuario que combinan la multiprogramación y la interacción usuario-máquina a través de terminales.<br />20<br />Sistemas Operativos I<br />IBM 7094 <br />ASR 33 Teletype (1967) <br />DEC VT-100 (1978)<br />DEC VT-52 (1975)<br />
  22. 22. objetivos<br />sistemas de tiempo compartido<br />Objetivos<br />Tiempos de respuesta aceptables.<br />Mejora de la interfaz usuario-máquina.<br />Multitarea: un usuario puede ejecutar varios procesos concurrentemente.<br />Tanto la multiprogramación por lotes como el tiempo compartido utilizan multiprogramación. <br />La diferencia radican en que: <br />Para tiempo compartido el objetivo principal es minimizar el tiempo de respuesta, las instrucciones al sistema operativo son ordenes dadas desde la terminal.<br />Para multiprogramación el objetivo principal es maximizar la utilización de CPU y las instrucciones al sistema operativo son ordenes dadas por un lenguaje de control de trabajos que se incluye junto con el trabajo.<br />21<br />Sistemas Operativos I<br />
  23. 23. funciones del sistema operativo<br />sistemas de tiempo compartido<br />Funciones del sistema operativo:<br />Gestión de procesos: <br />Madura el concepto de proceso y la planificación.<br />Gestión de memoria: <br />Nacen y se desarrollan las técnicas de memoria virtual.<br />Gestión de ficheros: <br />Nace la necesidad de sistemas de ficheros “en línea” y comienzan a desarrollarse los precedentes de los sistemas de ficheros actuales.<br />Necesidad de protección entre los diferentes usuarios y procesos existentes.<br />22<br />Sistemas Operativos I<br />
  24. 24. Dennis Ritchie y Ken Thompson utilizando consolas Teletype en computadores PDP-11 durante el primer desarrollo de Unix<br />Sistemas Operativos I<br />23<br />primeros sistemas Unix<br />Tipo de sistemas:<br />Minicomputadoras: máquinas de arquitectura más sencilla que los mainframes pero con mayor potencia de cálculo y menos usuarios.<br />Ejemplos: PDP-1 ... PDP-7 ... PDP-11.<br />Objetivos:<br />Adaptar los objetivos de los sistemas de tiempo compartido (MULTICS) a arquitecturas minicomputador.<br />Utilización de lenguajes de alto nivel para el diseño del sistema operativo.<br />Aportaciones de Unix:<br />Diseño sencillo y potente. Dos únicas abstracciones: proceso y fichero.<br />Introduce el modelo de sistema de ficheros actual.<br />Introduce un potente intérprete de órdenes.<br />Entorno de programación muy completo.<br />Base para el desarrollo de la primera red de computadoras y TCP/IP.<br />Introduce el concepto de sistema abierto.<br />
  25. 25. objetivos y características<br />sistemas operativos para PC<br />Objetivos:<br />Sencillez y comodidad del usuario: contrasta con los primeros sistemas, donde los altos precios imponían la optimización en la utilización de recursos.<br />Características primeros sistemas (MS-DOS, CP/M, ...):<br />Poco más que un sistema de ficheros y un cargador.<br />Características sistemas actuales (Windows, Linux, MacOS, ...):<br />Interfaz basada en sistema de ventanas y ratón (introducida por Macintosh).<br />Sistemas de ficheros tipo árbol (introducidos por Unix).<br />Capacidad multitarea.<br />Capacidad multimedia.<br />Capacidad Plug-and-Play.<br />Acceso a la red.<br />Progresiva introducción de mecanismos de protección (al estilo UNIX).<br />24<br />Sistemas Operativos I<br />C:>cd datos<br />C:datos>cd practica<br />C:datospractica>dir<br />27/03/1994 15:13 <DIR> .<br />27/03/1994 15:13 <DIR> ..<br />15/03/1990 10:54 466 ejemplo.bas<br />18/03/1993 08:12 1244 carta.doc<br />2 archivos 1710 bytes<br />2 directorios 5.242.880 bytes libres<br />C:datospractica>cd..<br />C:datos>cd..<br />C:>format a: /s<br />
  26. 26. sistemas paralelos<br />tendencias actuales<br />Sistemas multiprocesador:<br />Sistemas con más de una CPU en estrecha comunicación<br />Fuertemente acoplados:<br />Los procesadores comparten el bus, el reloj, los periféricos y la memoria. La comunicación entre procesadores se lleva a cabo normalmente a través de la memoria compartida.<br />Ventajas:<br />Incremento del rendimiento: más trabajo en menos tiempo.<br />Económicas: más baratos que varios equipos monoprocesador, al compartir los periféricos.<br />Fiabilidad: Si es posible distribuir las funciones correctamente entre varios procesadores, el fallo de un procesador no detendrá el sistema, sólo lo hará más lento. Degradación gradual.<br />Multiprocesamiento simétrico (SMP):<br />Cada procesador ejecuta una copia idéntica del sistema operativo y estas copias se comunican entre sí cuando es necesario.<br />La mayoría de los SO modernos soportan SMP.<br />Multiprocesamiento asimétrico:<br />A cada procesador se le asigna una tarea específica. <br />Un procesador maestro controla el sistema: <br />Planifica y asigna trabajo a los procesadores esclavos.<br />Común en los sistemas extremadamente grandes, donde el procesamiento de la E/S es una de las actividades que más tiempo consume.<br />25<br />Sistemas Operativos I<br />
  27. 27. sistemas distribuidos<br />tendencias actuales<br />Distribuir el cómputo entre varios procesadores físicos.<br />Los procesadores (o nodos) pueden tener diferentes tamaños y funciones.<br />Sistemas débilmente acoplados:<br />No comparten la memoria ni el reloj. <br />Cada procesador tiene su propia memoria local. <br />Los procesadores se comunican entre sí a través de diversas líneas de comunicación, como buses de alta velocidad o líneas telefónicas.<br />Ventajas:<br />Compartición de recursos: Los usuarios de un nodo pueden utilizar los recursos (ficheros, bases de datos, impresoras …) de otros nodos.<br />Computación más rápida: Ejecución concurrente de programas paralelos y migración de la carga.<br />Fiabilidad: Si un nodo falla, el resto puede seguir funcionando. <br />Comunicación: Si los nodos están conectados a través de una red de comunicaciones, los procesos y usuarios de distintos nodos pueden intercambiar información.<br />Sistemas Operativos en Red:<br />Un S.O. en red proporciona un entorno en el que los usuarios, quienes conocen los nodos, pueden acceder a recursos remotos ya sea iniciando una sesión en el nodo remoto o transfiriendo datos desde el nodo remoto.<br />Sistemas Operativos Distribuidos:<br />En un S.O. distribuido los usuarios acceden a recursos remotos del mismo modo que a los locales. <br />La migración de datos y procesos entre nodos está bajo el control del S.O.<br />26<br />Sistemas Operativos I<br />
  28. 28. sistemas de tiempo real<br />tendencias actuales<br />Se usan sistemas de tiempo real cuando los requisitos de tiempo de la operación de un procesador o del flujo de datos son estrictos.<br />A menudo se utilizan como dispositivos de control en aplicaciones dedicadas.<br />Un S.O. de tiempo real tiene restricciones de tiempo bien definidas. <br />El procesamiento debe efectuarse dentro de los intervalos definidos, o el sistema fallará.<br />Hay dos tipos de sistemas de tiempo real: <br />Críticos: <br />Un sistema de tiempo real crítico garantiza que las tareas críticas se terminarán a tiempo.<br />Acríticos:<br />Un tipo menos restrictivo es el sistema de tiempo real acrítico en el que una tarea de tiempo real crítica goza de prioridad respecto a otras tareas y conserva esa prioridad hasta que se lleva a cabo. <br />27<br />Sistemas Operativos I<br />

×