Este documento presenta definiciones y conceptos básicos sobre sistemas operativos. Explica que un sistema operativo actúa como interfaz entre los usuarios y el hardware, y define sus características principales como la conveniencia, eficiencia y habilidad para evolucionar. También clasifica los sistemas operativos en categorías como por lotes, tiempo real, multiprogramación y tiempo compartido. Finalmente, analiza la evolución de los sistemas operativos a lo largo de las generaciones tecnológicas.
2. hardware, software, firmware, usuarios Sistemas Operativos I 2 definición de sistema informático Un sistema informático es un conjunto de hardware y software con el complemento de elementos de firmware. Los usuarios son el elemento más importante de este sistema.
4. máquina extendida – gestor de recursos definiciones de S.O. 4 Sistemas Operativos I Máquina extendida Gestor de Recursos Los recursos de hardware son difíciles de manejar y programar (especialmente la E/S). El S.O. debe ocultar la complejidad del hardware y proporcionar una interfaz sencilla de utilizar. En una computadora los programas en ejecución deben compartir los recursos disponibles que son limitados (CPU, memoria, dispositivos de E/S, etc.). El S.O. establece la política que determina: A quién Cuándo Cuánto tiempo Cantidad de recursos Utilitarios Librerías Que se asigna Sistema Operativo Hardware Interface
5. general definición 5 Sistemas Operativos I Un S.O. es un programa que actúa como interfaz entre los usuarios y el hardware de la computadora.
6.
7.
8. generales Sistemas Operativos I 8 características de los S.O. Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora. Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible. Habilidad para evolucionar. Deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio. Encargado de administrar el hardware. Se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere: asignar a cada proceso una parte del procesador para poder compartir los recursos. Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera. Organizar datos para acceso rápido y seguro. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras. Procesamiento por bytes de flujo a través del bus de datos. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora. Técnicas de recuperación de errores. Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario. Generación de estadísticas. Permite que se puedan compartir el hardware y los datos entre los usuarios.
9.
10. Facilitar el uso de la máquina a los usuarios, proporcionando un entorno cómodo para el desarrollo y ejecución de programas y para el acceso a los recursos de la máquina.9 Sistemas Operativos I
13. fundamentales Sistemas Operativos I 12 S.O. funciones Hoy en día los sistemas poseen un conjunto de accesorios y aplicaciones que le dan mayor funcionalidad. Por ejemplo los Windows 95 I.E. en adelante tienen entre otras cosas: Bloc de Notas Word Pad Paint Calculadora Media Player Libreta de Direcciones Internet Explorer Outlook Express (Windows Mail) Panel de Control Explorador El Entorno de Red Símbolo del Sistema
15. Sistemas Operativos I 14 Evolución de los S.O. Como el desarrollo de los sistemas operativos está muy relacionado con el desarrollo de las arquitecturas de las computadoras, a los sistemas operativos se lo pueden clasificar en generaciones.
16. Sistemas Operativos I 15 primera generación 1945-1955 En esta etapa no existe el concepto de sistema operativo, todo lo debe realizar el programador, no hay un ente software intermedio entre la máquina y el programador. La tecnología era de tubos al vacío y la programación era en lenguaje de máquina. Los recursos del sistema eran asignados a una sola tarea, no era posible realizar tareas simultáneamente. En el último tiempo de esta generación aparecen las tarjetas perforadas.
17. Sistemas Operativos I 16 segunda generación 1945-1955 En esta generación la tecnología incluye a los transistores. La programación se ve apoyada por la creación de lenguajes ensambladores y lenguajes de alto nivel como Fortran y COBOL. Para optimizar el tiempo de utilización de la máquina se adoptó el Procesamiento por lotes. Para hacer la transferencia de los datos entre la computadora y la cinta se construyó un programa que se conoce como el primer sistema operativo, que minimizó el tiempo ocioso de las computadoras.
18. Sistemas Operativos I 17 tercera generación 1965-1980 En esta generación la tecnología corresponde a los circuitos integrados, que permitió construir máquinas más baratas y con mejor rendimiento. En esta generación aparecen los sistemas operativos con multiprogramación. También aparece la técnica de Spooling (Operación simultánea y en línea de periféricos). A medida que hay espacio en memoria se puede pasar al siguiente trabajo. Aparecen los primeros sistemas de Tiempo Compartido. Se le asigna a cada proceso un tiempo fijo de utilización de CPU.
19. Sistemas Operativos I 18 cuarta generación 1990- Con el crecimiento de las redes de computadoras nacen los sistemas operativos de red y sistemas operativos distribuidos. En los sistemas operativos de red cada computadora tiene su propio sistema operativo, pero pueden compartir recursos. En los sistemas operativos distribuidos hay una integración real de los recursos, la red es transparente a los usuarios, es decir los usuarios no necesariamente se dan cuenta que hay otras máquinas conectadas a la red.
20. clasificación Sistemas Operativos I 19 sistemas operativos por lotes Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la “secuenciabilidad” de la ejecución de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes: SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
21. por lotes ó batch: procesos secuenciales Sistemas Operativos I 20 sistemas operativos por lotes P1 P2 P3
22. clasificación Sistemas Operativos I 21 sistemas operativos de tiempo real Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, sus recursos están subutilizados con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. Muchos Sistemas Operativos de Tiempo Real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Algunos ejemplos de Sistemas Operativos de Tiempo Real: VxWorks, Solaris, Lyns OS y Spectra.
23. clasificación Sistemas Operativos I 22 sistemas operativos de multiprogramación Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización. Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una CPU. Sistemas Operativos como UNIX, Linux, Windows 9X, Windows ME, Windows NT, Windows XP, Windows Vista, MAC-OS, OS/2, soportan la multitarea.
24. se ejecuta un proceso por vez con prioridades Sistemas Operativos I 23 sistemas operativos de multiprogramación Prioridad Mayor P1 P2 P3 P4 Menor Ejecución Entrada/Salida Espera
25. Sistemas Operativos I 24 monoprogramaciónv.s. multiprogramación PROCESOS 1 Procesador A Monoprogramación B Tiempo de proceso t 1 PROCESOS C Multiprogramación D Tiempo de proceso t 2 t1=t2. Monoprogramación, un solo proceso a la vez, hasta terminarlo. Multiprogramación, varios procesos alternando su tiempo de uso del procesador.
26. clasificación Sistemas Operativos I 25 sistemas operativos de tiempo compartido Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
27. calendarización de CPU y multiprogramación Sistemas Operativos I 26 sistemas operativos de tiempo compartido P1 P2 P3 P4
28. La computadora atiende al usuario durante un tiempo determinado Sistemas Operativos I 27 Sistemas operativos de tiempo compartido Terminal Procesador Terminal Terminal
29. clasificación Sistemas Operativos I 28 sistemas operativos distribuidos Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Los opuestos a estos sistemas son por supuesto los clásicos Sistemas Operativos Centralizados.
30. clasificación Sistemas Operativos I 29 sistemas operativos de red Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
31. clasificación Sistemas Operativos I 30 sistemas operativos paralelos En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso. Ejemplos: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.
32. Cada proceso requiere una diferente cantidad de tiempo para ser ejecutado. Varios procesadores ejecutan un sistema multiproceso. Sistemas Operativos I 31 sistemas operativos paralelos Tiempo de proceso PROCESOS C B D A 4 Procesadores t 3 Multiproceso
33. servicios – forma de ofrecer servicios - estructura Sistemas Operativos I 32 tipos de clasificaciones
34. Sistemas Operativos I 33 por sus servicios En estaclasificación se tiene en cuenta: Al número de usuarios. La cantidad de tareasqueatiende. Al número de procesadores del servidor.
35. de red - distribuidos Sistemas Operativos I 34 por la forma de ofrecer servicios Se refiere a unavisióndesde el punto de vista del usuario, a cómo accede él a los servicios. S.O. de Red: interactúan con sistemas operativos de otras computadoras por medio de un medio de transmisión con el objeto de compartir y transferir archivos, y compartir recursos. S.O. Distribuidos: los sistemas operativos distribuidos abarcan los servicios de los de red, pero integrando a los recursos en una sola máquina virtual que el usuario accede en forma transparente.
36. Sistemas Operativos I 35 por su estructura Se deben tener en cuenta 2 requisitos: Requisitos de usuarios: sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso que se le quiere destinar. Requisitos del Software: se engloban aspectos para el mantenimiento, forma de operación, restricciones de uso, tolerancia a fallos, flexibilidad.
37. módulos entrelazados Sistemas Operativos I 36 monolíticos Es la estructura de los primerossistemasoperativos, constituídosgeneralmentepor un solo programacompuesto de un conjunto de módulosentrelazados, de maneraquecadaunopuedellamar a otro. Carecen de protecciones y privilegios al entrar a rutinasquemanejan los distintosrecursos. Por lo general carecen de flexibilidadparasoportardiferentesambientes de trabajo o tipos de aplicaciones. Módulo a Módulo d Módulo b Módulo e Módulo c Módulo f
38. Sistemas Operativos I 37 jerárquicos Al perfeccionarse los sistemas operativos fue necesario organizar el software, donde una parte contenía subpartes y esto está organizada en forma de niveles. Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera bien definida y con una clara interface con los otros elementos. Capa 5 - Programas de los Usuario Capa 4 - Buffers paradispositivosEntrada/Salida Capa 3 - Manejador de consola del operador Capa 2 - Administración de Memoria Capa 1 - Gestión CPU Capa 0 - Hardware
39. división por capas Sistemas Operativos I 38 jerárquicos Otra forma de ver la estructura jerárquica es la denominada de anillos concéntricos. Las capas internas son más privilegiadas que las externas, por lo que estarán más protegidas de accesos indeseados. Intérprete de Comandos Aplicaciones de Usuario Gestión de Información Gestión Memoria Gestión Gestión CPU Spool Entr/Salida
40. distintos sistemas operativos Sistemas Operativos I 39 máquina virtual El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser máquinas diferentes. Estas máquinas virtuales son simulaciones del hardware, con su modo núcleo/usuario, E/S, interrupciones, etc. UNIX MS-DOS Hardware Virtual Hardware Virtual Hardware
41. microkernel Sistemas Operativos I 40 cliente/servidor Proceso Cliente Proceso Cliente Servidor de Procesos Servidor de Terminales .......... Servidor de Archivos Servidor de Memoria Se traslada código a capas superiores dejando un núcleo o kernel mínimo. La mayor parte de las funciones del sistema operativo las convierte en procesos de usuario. Modo de Usuario Modo de Kernel Kernel o Núcleo