Download UNAB - SO02 - Historia de los SO

Document related concepts

Anillo (seguridad informática) wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Sistema operativo wikipedia , lookup

Núcleo (informática) wikipedia , lookup

RC 4000 wikipedia , lookup

Transcript
ICC243
Sistemas Operativos
P02: Definiciones e Historia de los Sistemas
Operativos
Slide: 1
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Definición ://
App1
App2
App3
Sistema Operativo
Hardware
Sistema Operativo
Conjunto de programas o software destinado a permitir la comunicación del
usuario con un ordenador y gestionar sus recursos de manera cómoda y
eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona
el hardware de la máquina desde los niveles más básicos.
Sistemas Operativos – ICC243
[2]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Definición ://
Funciones básicas de un Sistema Operativo
Los sistemas operativos desempeñan una serie de funciones básicas
esenciales para la gestión de la máquina. Entre las más destacables, cada
una ejercida por un componente interno (módulo en núcleos monolíticos y
servidor en microkernels), podemos reseñar las siguientes:
* Gestión de los recursos de la máquina.
* Ejecución de servicios para los programas
* Ejecución de instrucciones (comandos) de los usuarios.
Sistemas Operativos – ICC243
[3]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Definición ://
A su vez, los servicios principales ofertados por un sistema operativo,
accesibles y manipulables a través de su API de programación, son los
siguientes:
* Gestión de procesos.
* Gestión de memoria.
* Gestión de la E/S (Entrada/Salida).
* Gestión de archivos y directorios.
* Comunicación y sincronización entre procesos.
* Seguridad y protección.
Sistemas Operativos – ICC243
[4]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Características ://
• Administración de tareas:
• Monotarea: Si solamente puede ejecutar un programa (aparte de los procesos
del propio S.O.) en un momento dado. Una vez que empieza a funcionar un
programa, continuará haciéndolo hasta su finalización o interrupción.
•Multiprogramación: Si es capaz de cargar múltiples programas a memoria,
pero permitiendo que uno solo se ejecute a la vez.
• Multitarea: Si es capaz de ejecutar varios programas al mismo tiempo.
Sistemas Operativos – ICC243
[5]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Características ://
• Administración de usuarios:
• Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo
tiempo.
• Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus
programas, accediendo a la vez a los recursos del ordenador. Normalmente
estos SS.OO. utilizan métodos de protección de datos, de manera que un
programa no pueda usar o cambiar los datos de otro usuario.
• Manejo de recursos:
• Centralizado: Si permite utilizar los recursos de un solo ordenador.
• Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos,
etc) de más de un ordenador al mismo tiempo.
Sistemas Operativos – ICC243
[6]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Kernel ://
Definición
Parte fundamental de un sistema operativo.
Es el software responsable de facilitar a los distintos programas
acceso seguro al hardware de la computadora o en forma más
básica, es el encargado de gestionar recursos, a través de servicios
de llamada al sistema.
El Kernel se encarga de decidir qué programa podrá hacer uso de un
dispositivo de hardware y durante cuanto tiempo, lo que se conoce
como multiplexado, implementando las abstracciones de hardware.
Sistemas Operativos – ICC243
[7]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Kernel ://
Sistemas Operativos – ICC243
[8]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Kernel ://
Espacios
Espacio de Usuario
App2
App3
syscalls
App1
Sistema Operativo
Hardware
Sistemas Operativos – ICC243
Espacio de Kernel
[9]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Kernel ://
Organización Interna
Kernels Monolíticos
Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles
(planificación, sistema de archivos, redes, controladores de dispositivos, gestión de
memoria, etc) dentro de un gran programa. El mismo puede tener un tamaño considerable, y
deberá ser recompilado por completo al añadir una nueva funcionalidad. Todos los
componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas
y a sus rutinas. Un error en una rutina puede propagarse a todo el núcleo. Todos sus
componentes se encuentran integrados en un único programa que ejecuta en un único
espacio de direcciones.
Sistemas Operativos – ICC243
[ 10 ]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Kernel ://
Microkernels
Se conoce como microkernel al tipo de kernel de un sistema operativo que provee un
conjunto de primitivas o llamadas al sistema mínimas, para implementar servicios
básicos como espacios de direcciones, comunicación entre procesos y planificación
básica. Todos los otros servicios (gestión de memoria, sistema de archivos,
operaciones de E/S, etc.), que en general son proveídos por el kernel, se ejecutan
como procesos servidores en espacio de usuario.
Sistemas Operativos – ICC243
[ 11 ]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Kernel ://
Organización interna:
* Kernel monolítico (Linux, BSD, skyOS, Windows, Syllable).
* Microkernel (BeOS, Mach, Mac OS X, newOS).
* Nanokernel (AdeOS, Eros, KeyKOS, Brix-OS).
* Sasos (Opal, Mungi, BriX).
* Exokernel (MIT exokernel).
http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html
Sistemas Operativos – ICC243
[ 12 ]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Historia ://
Años 40
A finales de los años 40, con la aparición de la primera generación de
computadoras, se realizaba lo que se llama el proceso en serie. Por
aquel entonces no existían los sistemas operativos, y los
programadores debían interactuar con el hardware del computador
sin ayuda externa. Esto hacía que el tiempo de preparación para
realizar una tarea fuera excesivo.
ENIAC – Primer Computador (1946)
18.000 tubos de vacio – 50 toneladas
Funcionó hasta 1955, estimándose que realizó la
misma cantidad de operaciones matematicas hasta
antes de 1945 en el mundo
Sistemas Operativos – ICC243
[ 13 ]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Historia ://
Años 40 – Von Neumann
La primera descripción de cómo un computador electrónico debía
almacenar programas y procesar información fue escrita por John
Von Neumann el 30 de Junio de 1946. Esta arquitectura comprendía:
- Unidad Aritmetico Lógica (ALU)
- Unidad de Control
- Memory
- I/O
Sistemas Operativos – ICC243
[ 14 ]
(Input / Output)
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Historia ://
Años 50
Para facilitar la interacción entre persona y computador, los sistemas
operativos hacen una aparición discreta y bastante simple, con
conceptos tales como:
- monitor residente
- proceso por lotes
- almacenamiento temporal.
EDVAC – Electronic Discrete Variable Automatic Computer
Una de las primeras computadoras en utilizar el sistema
binario para realizar operaciones básicas
Foto de Von Neumann (creador) y la EDVAC
Sistemas Operativos – ICC243
[ 15 ]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Historia ://
Años 60
Multiprogramación
En un sistema multiprogramado la memoria principal alberga a más de un programa de
usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en
ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación de
E/S, se pasa a ejecutar otro programa.
Tiempo compartido
Al realizar una operación de E/S los programas ceden la CPU a otro programa, al igual
que en la multiprogramación. Pero, a diferencia de ésta, cuando un programa lleva cierto
tiempo ejecutándose el sistema operativo lo detiene para que se ejecute otro aplicación.
Con esto se consigue repartir la CPU por igual entre los programas de los distintos
usuarios, y los programas de los usuarios no se sienten demasiado ralentizados por el
hecho de que los recursos sean compartidos y aparentemente se ejecutan de manera
concurrente.
Sistemas Operativos – ICC243
[ 16 ]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Historia ://
Años 60
Tiempo real
Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy
breves un gran número de sucesos, en su mayoría externos al ordenador. Si el sistema
no respeta las restricciones de tiempo en las que las operaciones deben entregar su
resultado se dice que ha fallado .
Multiprocesador
Permite trabajar con máquinas que poseen más de un procesador. En un multiprocesador
los procesadores comparten memoria y reloj.
Sistemas Operativos – ICC243
[ 17 ]
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Historia ://
Años 60
Desarrollos Importantes
-COBOL
-BASIC
-Mouse
-LOGO
-Unix
1960 – DEC PDP1
1968 – Apollo Guidance Computer
Sistemas Operativos – ICC243
[ 18 ]
1964 – IBM System/360
Prof. Jonathan Makuc
Sistemas Operativos: Definiciones e Historia
Historia ://
Cronología de la línea Unix
- MULTICS: primero en implementar time-sharing (multitarea)
- UNIX: iniciado debido a la complejidad de MULTICS, gracias a la invención
de C
- MINIX: Escrito por Tannenbaum como respuesta para un sistema minimalista
que pudiera usar en su curso de SO de pregrado.
- LINUX: Creado a partir de UNIX encuentra su cabida en el proyecto GNU
Fernando Corbató
Sistemas Operativos – ICC243
Ken Thompson y Dennis Ritchie
[ 19 ]
Andrew Tannenbaum
Linus Torvalds
Prof. Jonathan Makuc
ICC243
Sistemas Operativos
P02: Definiciones e Historia de los Sistemas
Operativos
Slide: 20
Prof. Jonathan Makuc