introducción a los sistemas operativos -...

46
¿Qué son y qué hacen? Historia y evolución Computadoras personales Estructuras básicas Introducción a los sistemas operativos Gunnar Wolf Gunnar Wolf Introducción a los sistemas operativos

Upload: buidieu

Post on 06-Oct-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

¿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

¿Qué son y qué hacen?Historia y evolución

Computadoras personalesEstructuras básicas

Diseño híbrido: Esquematizando

Gunnar Wolf Introducción a los sistemas operativos