Introducción a los sistemas operativos -...
Transcript of Introducción a los sistemas operativos -...
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Introducción a los sistemas operativos
Gunnar Wolf
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Índice
1 ¿Qué son y qué hacen?
2 Historia y evolución
3 Computadoras personales
4 Estructuras básicas
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
¿Qué es un sistema operativo?
El sistema base de una computadora
El programa que siempre correGestor de los recursos del sistemaLo que define qué es compatible y qué no dentro de unadeterminada arquitecturaEl programa menos importante de todos
No realiza trabajo útil, sino que permite que otros lo hagan
. . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
¿Qué es un sistema operativo?
El sistema base de una computadoraEl programa que siempre corre
Gestor de los recursos del sistemaLo que define qué es compatible y qué no dentro de unadeterminada arquitecturaEl programa menos importante de todos
No realiza trabajo útil, sino que permite que otros lo hagan
. . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
¿Qué es un sistema operativo?
El sistema base de una computadoraEl programa que siempre correGestor de los recursos del sistema
Lo que define qué es compatible y qué no dentro de unadeterminada arquitecturaEl programa menos importante de todos
No realiza trabajo útil, sino que permite que otros lo hagan
. . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
¿Qué es un sistema operativo?
El sistema base de una computadoraEl programa que siempre correGestor de los recursos del sistemaLo que define qué es compatible y qué no dentro de unadeterminada arquitectura
El programa menos importante de todosNo realiza trabajo útil, sino que permite que otros lo hagan
. . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
¿Qué es un sistema operativo?
El sistema base de una computadoraEl programa que siempre correGestor de los recursos del sistemaLo que define qué es compatible y qué no dentro de unadeterminada arquitecturaEl programa menos importante de todos
No realiza trabajo útil, sino que permite que otros lo hagan
. . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
¿Qué es un sistema operativo?
El sistema base de una computadoraEl programa que siempre correGestor de los recursos del sistemaLo que define qué es compatible y qué no dentro de unadeterminada arquitecturaEl programa menos importante de todos
No realiza trabajo útil, sino que permite que otros lo hagan
. . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
. . . ¿Qué no es?
Los programas básicos para administrar archivosLa forma en que el usuario lanza programasEl ambiente con que interactúa el usuario
Entorno gráficoLínea de comando. . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
¿Qué brinda al programador?
AbstracciónEmbellecimiento -FinkelVirtualización -Arpaci-Dusseau
Gestión de recursosAislamiento y protección
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Abstracción
Proporciona abstracciones consistentes y simplificaciones a losprocesos del usuario
Archivos y directoriosFlujos de caracteres (entrada/salida)Dispositivos, conexiones de red, contacto con el mundo exteriorEl concepto mismo de proceso
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Gestión de recursos
Administra los recursos existentes en la computadora, permitiendola ejecución a los diversos procesos
Cómo comparten los diversos procesos los recursos existentes(y rivales)Políticas de asignación (y recuperación) justas
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Aislamiento y protección
Protección de los datos, de los recursos, de los procesos
Entre procesosEntre usuariosAnte procesos mal comportadosAnte procesos maliciosos
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Ahora sí. . . ¿Qué es un sistema operativo?
El principal programa que corre en una computadora depropósito generalProvee una serie de abstracciones básicas a los programas
Pueden haber diferentes sistemas operativos, definiendodistintas interfaces, sobre el mismo hardwareUn mismo sistema operativo puede adecuarse a distintasarquitecturas de hardware
Ofrece una infraestructura de gestión, aislamiento y protecciónde recursosPermite la implementación de entornos operativos
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Índice
1 ¿Qué son y qué hacen?
2 Historia y evolución
3 Computadoras personales
4 Estructuras básicas
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Construyendo a través de la historia
Para comprender lo que hoy gestionan los sistemas operativos,comencemos viendo cómo es que llegaron a gestionarlo.
Vamos con un repaso histórico de la historia de la computación,enfocados a las inovaciones de cada etapa
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
En el principio. . .
Arquitectura von Neumann (programa almacenado)Programación directa y explícita para el hardwareTiempo de programación → tiempo no productivo →desperdicio de recursos
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Sistemas de proceso por lotes (batch processing)
Los programadores codifican su código en un medio dealmacenamiento (tarjetas perforadas)Entregan los tambaches (batches) a los operadoresLos operadores cargan secuencialmente los trabajos, entreganlos resultados conforme se presentan
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Sistemas monitor en el proceso por lotes
Implementan protección evitando la corrupción de otrostrabajos
Interactuar con el lector de tarjetas (corrompiendo el siguienteprograma)Temporizadores y alarmas para evitar ciclos infinitos
Estas medidas de protección requieren modificación delhardware
Noción de instrucciones privilegiadas
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Sistemas en lotes con spool
¿Spool? Bobina, o Simultaneous Peripherial OperationsOn-LineCintas magnéticas
Carga intermedia de tarjeta a cintaResultados a cinta para posterior impresión
Liberando los trabajos más lentosEmpleo de equipos periféricos especializados
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Sistemas multiprogramados
Diferentes etapas en la vida de un proceso: limitado por CPU,limitado por entrada-salidaPara maximizar el uso de recursos, ejecutar simultáneamentevarios procesos
Requiere cambios fuertes en el hardwareProtección de recursos — Espacio de memoriaRecursos estrictamente secuenciales requieren bloqueos paraofrecer acceso exclusivo
El monitor es invocado con mucha mayor frecuencia por lostemporizadores
Cambios de contexto
Interacción con el equipo: Se mantiene como el modelo enlotes
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Sistemas de tiempo compartido
1960s: Sistemas interactivos y multiusuariosManejo de terminales para la interacción (teletipos, CRTs)Abstracciones de almacenamiento: Archivos, directorios endiscosVentajas al programador:
Interacción directa con el equipoEdición interactivaCompilación parcialEjecución inmediataBibliotecas de sistema
Complejidad técnicaRequisito de múltiples cambios de contexto por segundo
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Tipos de multitarea
Cooperativa o no apropiativa (cooperative multitasking) Cadaproceso tiene control del CPU hasta que efectúa unallamada al sistema o indica al sistema que puedetomar el control (yield)
Preventiva o apropiativa (preemptive multitasking) El reloj delsistema interrumpe la ejecución de cada procesotransfiriendo forzosamente el control al sistemaoperativo
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Clases de procesos
¿Qué procesos son más importantes?
Procesos interactivos El usuario tiene la experiencia de la demoraDel sistema Procesos no postergablesPor nivel de usuario Hay usuarios más importantes que otros. . . Asegún el sapo Cada situación puede ameritar una política
diferente
Los procesos se organizan en colas de prioridad según las políticasrequeridas por cada sistema
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Índice
1 ¿Qué son y qué hacen?
2 Historia y evolución
3 Computadoras personales
4 Estructuras básicas
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Nacimiento de las computadoras personales
En los 1970s comienzan a aparecer las computadoraspersonalesEn un principio, programadas a través de switches, conresultados a través de LEDs
Figura: Microcomputadora Altair 8800 (1975, ≈ US$600)
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
La era de los 8 bits (≈ 1977− 1985)
Microprocesadores de 8 bits yminiaturización
Salida a video (tipo TV)Entrada por tecladoEntrada opcional por cinta,primeros diskettes (discosflexibles)
Programación en BASIC (intérpreteen ROM) Figura: Commodore Pet
2001 (1977)
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
La era de los 8 bits (≈ 1977− 1985)
Comienzan a manejarse dispositivos: Unidades de cinta,unidades de disco, impresoras, modems, etc.Muchas arquitecturas mutuamente incompatiblesSeparan el entorno de desarrollo del entorno de ejecución
Nace la distribución de binarios
Explosión de la industria de los videojuegos
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
La microcomputadora seria: Familia PC (1981)
Figura: ComputadoraIBM PC modelo 5150(1981)
Primer computadora de unaempresa seria, orientada a su usoen ambiente empresarial
Sin color ni audio. . . ¿Para qué?
Entorno primario de ejecución:Línea de comando (PC-DOS,MS-DOS)Al día de hoy sigue siendo laarquitectura predominante
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Entorno gráfico (WIMP) (1984)
Figura: AppleMacintosh (1984)
Ventanas, iconos, menúes,apuntador (Windows, Icons,Menus, Pointer)1984: Apple Macintosh, primersistema WIMP con éxito comercialMultiprocesos, no multitarea
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Multitarea preventiva (1985)
Multitarea preventiva real:1985 (Amiga, Atari ST)
Sin hardware deprotección de memoria
Los programadores tienenque considerar laconcurrencia Figura: Commodore Amiga
500 (1987)
Figura: La meditación del gurú
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Multitarea preventiva (1985)
Multitarea preventiva real:1985 (Amiga, Atari ST)
Sin hardware deprotección de memoria
Los programadores tienenque considerar laconcurrencia Figura: Commodore Amiga
500 (1987)
Figura: La meditación del gurúGunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
La profesionalización del escritorio
Fines de los 1980 — Intel 80486, Motorola 68040, PowerPC:Hardware tan capaz como el de las estaciones de trabajoReducción de las arquitecturas alternativasReemplazo paulatino de los sistemas operativos por otros máscapaces (o mejor mercadeados)
Mención breve de casos: DOS, Windows y OS/2; AmigaOS yAtari ST; NeXT y MacOS
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Convergen Unix y las computadoras humildes
Unixes históricos para computadoras personales: Xenix, A/UX,SCO.
Muy limitados por su hardwarePrecio desproporcionadamente alto; mejor ir por una estaciónde trabajo
Génesis del software libre ideológico: GNU (1984)386/BSD: Primer sistema casi libreLinux (1991+); GNU/LinuxEl mundo *BSD. . . Eventual muerte de las estaciones de trabajo
Apollo, Digital, Sun, SGI, HP (PA/RISC), . . .
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
El mercado de los dispositivos (appliances)
1990s: Agendas digitales inteligentesQue se van inflando en computadoras completas
2000s: Ruteadores, modems inteligentes, controladores de TV(set-top boxes)2007+: Teléfonos celulares inteligentes, tabletas — Por finexitosos (tras incontables fracasos)
¿Cuál es la diferencia entre estos equipos y nuestras computadorasde escritorio?
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Arquitecturas hardware en boga hoy
En escritorios y servidores: Derivada de PC (Intel x86)En dispositivos embebidos ARM (ocasionalmente MIPS)
ARM como alternativa de bajo consumo para servidoresSigue habiendo un importante espacio a controladores que norequieren sistema operativo (p.ej. Arduino)
Probablemente siempre lo habrá
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Índice
1 ¿Qué son y qué hacen?
2 Historia y evolución
3 Computadoras personales
4 Estructuras básicas
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Continuando con la introducción. . .
Seguimos con. . .
Algunos conceptos base que se presentarán repetidamente a lolargo del curso.
Algunos conceptos sin demasiada hilación temática — pero que seharán fundamentales
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Separación espacio núcleo y espacio usuario
Evolución de los tipos de modo protegido de los sistemasmonitores
¿Dos modos? ¿Más modos?Código con diferentes roles
Lo que hace el sistema operativo vs. las aplicaciones del usuario
¿Cómo se salta entre un modo y otro?
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Organización del sistema operativo
¿Hasta dónde llega el sistema operativo?¿Hasta dónde llega el código que corre en modo protegido/espacio
núcleo?
Monolítico Todas las operaciones privilegiadas en el mismosuper-proceso.
Microkernel Un núcleo con el mínimo posible de funcionalidad,descargando en procesos especiales ciertas tareas
Híbridos Sistemas que entran mayormente en una categoría,pero tienen alguna excepción
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Monolíticos
La mayor parte de los sistemas históricamenteMás fáciles de diseñar
(¡No es lo mismo que diseño más simple!)
Estructuras compartidas directamente entre subsistemasMás rápidos (menos cambios de contexto)Difícil transición a un entorno multiprocesador
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Monolíticos: Esquematizando
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Microkernel
Se delegan a espacio usuario todos los procesos que seaposible
p.ej. sistemas de archivos, planificación de procesos,administración de memoria, dispositivos, modelo deseguridad. . .
Código resultante más limpioInterfaces claras, separación de responsabilidadesSeguridad: Verificabilidad, auto-reparaciónMás fácil pasar a multiprocesador
Más lentosTípicamente basados en paso de mensajesRequieren más cambios de contexto
Más difíciles de implementar correctamente
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Microkernel: Esquematizando
Gunnar Wolf Introducción a los sistemas operativos
¿Qué son y qué hacen?Historia y evolución
Computadoras personalesEstructuras básicas
Diseño híbrido
Hay componentes que pueden migrarse limpiamente de unesquema monolítico a uno microkernelPero hay componentes para los cuales dicha tarea resulta muycara
Incluso en sistemas diseñados originalmente como microkernel
Hoy en día encontraremos concepciones híbridas, concaracterísticas de ambos
Gunnar Wolf Introducción a los sistemas operativos