Clase 1 Int A SO

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 38

Sistemas Operativos

Módulo 1
Repaso de arquitectura de computadoras
- Introducción a los sistemas operativos
- Aspectos claves de diseño e implementación

1
Repaso de Arquitectura de Computadoras

Procesador
• Registros internos para direcciones y datos
• Unidades de ejecución
• Arquitectura de 8, 16, 32 y 64bits
• Arquitecturas Risc y Cisc
Procesadores auxiliares
• Aritmetica de punto flotante
• Video
• Sonido
2
Repaso de Arquitectura de Computadoras

Memoria Principal (RAM)


• Almacena datos y programas
• Volátil y de rápido acceso
• Buffers para datos accesados frecuentemente
Módulos de I/O
• Discos (internos y externos)
• Equipos terminales
• Teclados, mouse, touch screens, scanners, etc
• Tarjetas de red, modems, faxes
3
Repaso de Arquitectura de Computadoras

Buses
• Proporciona comunicación entre componentes
• Existen buses de datos, de direcciones y control.
• La velocidad y tamaño del bus no necesariamente es
igual a la del CPU/Memoria
• Existe una relación entre el tamaño del bus de
direcciones y la capacidad máxima de RAM

4
Repaso de Arquitectura de Computadoras

Memoria Cache
• Mantienen la información accesada mas
frecuentemente
• Mejoran tiempo de respuesta
• Hit Rate indica que tan seguido encontramos los
datos.
• Latencia indica cuánto se dura en ir a buscar la
información en memoria.
• Existen caches de múltiples niveles que mejoran aún
más el rendimiento
5
Repaso de Arquitectura de Computadoras

Principio de Proximidad
• Los programas tienen a accesar datos que están
contiguos en memoria.
• Por ejemplo, es usual que el campo ¨nombre¨ sea
accesado al mismo tiempo que el campo ¨cédula¨
• Es un principio basado en probabilidad: cuando se
accesa un dato, es altamente probable que se vayan a
accesar datos que están contiguos.
• Aplica tanto para código ejecutable como para
datos.

6
Introducción a los Sistemas Operativos

Definición Sistema Operativo - Stallings

Es un programa que controla la ejecución de


aplicaciones y programas y que actúa como interfaz
entre aplicaciones y el hardware del computador

7
Introducción a los Sistemas Operativos

Definición Sistema Operativo - Silberschatz

Un programa que actúa como intermediario entre el


usuario y el hardware de una computadora.
El propósito es ofrecer un ambiente en el que un
usuario pueda ejecutar programas.

8
Introducción a los Sistemas Operativos

Definición Sistema Operativo - Tanenbaum

Presenta al usuario el equivalente a una máquina


extendida o una máquina virtual que sea más fácil de
programar que el hardware adyacente.

Su principal tarea es llevar un registro de la utilización


de recursos, dar paso a solicitudes y mediar entre
solicitudes en conflicto de los distintos programas y
usuarios.

9
Introducción a los Sistemas Operativos

Definición Sistema Operativo - Dietel

Son ante todo administradores de recursos; el principal


recurso que administran es el hardware: procesadores,
medios de almacenamiento y dispositivos de I/O.

10
Introducción a los Sistemas Operativos

Definición Sistema Operativo

• Programa que controla la ejecución de aplicaciones.

• Actúa como interfaz entre los programas y el


hardware.

• Administra los recursos del sistema.

11
Introducción a los Sistemas Operativos

Objetivos

i. Facilidad de uso para programadores y usuarios


finales.

ii. Eficiencia en la ejecución de múltiples tareas.

iii. Capacidad para evolucionar de acuerdo a las


necesidades de los usuarios.

12
Introducción a los Sistemas Operativos

i. Facilidad de uso, usuario final


• Eficiencia en la ejecución de programas
• Accesso y configuración de aplicaciones
• Uso de dispositivos (impresora, video, joystick)
• Herramientas adicionales (búsqueda, ayuda)
• Administración de archivos
• Seguridad y confiabilidad del sistema
• Capacidad de actualización a nuevas versiones

13
Introducción a los Sistemas Operativos

i. Facilidad de uso, usuario técnico


• Interfaz uniforme para accesso a recursos y
dispositivos.
• Soporte para el acceso y manipulación de archivos.
• Compatibilidad con versiones anteriores y futuras.
• Estadísticas y monitoreo de uso/rendimiento.
• Detección y respuesta a errores de hardware y
software.

14
Introducción a los Sistemas Operativos

ii. Eficiencia en la ejecución de tareas


• Administrador de los recursos.
• Asegurar que los procesos se lleven a cabo.

Administración: Recursos:

- Planeación - CPUs
- Control - Unidades de memoria
- Selección de prioridades - Dispositivos I/O
- Seguridad

15
Introducción a los Sistemas Operativos

iii.Facilidad de evolución
• Actualizaciones de hardware.
• Nuevas versiones de controladores de dispositivos.
• Servicios adicionales.
• Detección y resolución de fallas.
• Actualizaciones del Kernel

16
Introducción a los Sistemas Operativos
Cumplen los sistemas operativos actuales esos objetivos?
• Facilidad de uso?
• Eficiencia en la administración de tareas?
• Facilidad para evolución?

17
Aspectos claves de diseño e implementación

Punto de vista de software


• Sumamente complejos.
• Su evolución lleva mas de 40 años.
• Principales conceptos aun se mantienen.
Principales avances teóricos
• Procesos (como unidad de trabajo)
• Gestión de memoria
• Protección y seguridad de información
• Planificación y control de recursos
• Estructuración de Sistemas
18
Aspectos claves de diseño e implementación
Desarrollos en los Sistemas Operativos Modernos

La complejidad crece al pasar el tiempo


• OS/360: 1 millón de instrucciones de máquina*
• Multics: 20 millones de instrucciones de máquina*
• Windows 2000: 32 millones de líneas de código*
• Debian: 55 millones de líneas de código*
• Windows XP: 45 millones de líneas de código*
• Mac OS X : 86 millones de líneas de código*

(*) Datos aproximados


19
Aspectos claves de diseño e implementación
Desarrollos en los Sistemas Operativos Modernos
Puesto que un sistema operativo es una colección de herramientas alrededor
de un núcleo, estas cifras son muy variables y poco representativas. Por ello
es más interesante centrar la atención en los núcleos de cada sistema, los
llamados kernels, que son el corazón de los sistemas.

El núcleo de Windows 7 tiene 2.085.772 líneas (en 1981, MS-DOS 1.0 tenía 4.000)
El núcleo de Linux supera los 15 millones de líneas (en 1994, Linux 1.0 tenía 176.250)
El núcleo de Mac OS X (xnu) ronda el millón de líneas de código
El núcleo de QNX tiene alrededor de 100.000 líneas de código

¿Significan estas cifras que el núcleo de un sistema es mejor que otro? En


absoluto. Cada sistema operativo ha adoptado una estrategia diferente por lo
que respecta a su núcleo, y mientras el de Linux es un kernel monolítico y
con muchísimos módulos, los núcleos de Mac y Windows son híbridos que se
acercan más a los micronúcleos.

20
Aspectos claves de diseño e implementación
Desarrollos en los Sistemas Operativos Modernos

Arquitectura micronúcleo o microkernel


• Contrario a modelos monolíticos
• Asigna solo unas cuantas funciones esenciales al
núcleo
• El resto de los servicios son procesos como
cualquier otro
• Permiten la configuración del sistema de acuerdo a
su función (web server, base datos, etc)

21
Aspectos claves de diseño e implementación
Desarrollos en los Sistemas Operativos Modernos

Procesamiento Simétrico
• Arquitectura de múltiples procesadores
• Procesadores comparten recursos (memoria, E/S, etc)
• Todos los procesadores pueden realizar las mismas
funciones
• El sistema operativo debe soportar el concepto de
múltiples procesadores y ayudar a administrarlos
• Transparente al usuario

22
Aspectos claves de diseño e implementación
Desarrollos en los Sistemas Operativos Modernos

Ventajas del Procesamiento Simétrico


• Rendimiento
- Más de un proceso se ejecuta simultáneamente
• Disponibilidad
- El fallo de un procesador no implica el fallo de la máquina
completa
• Crecimiento incremental
- Se puede mejorar el rendimiento agregando un sistema adicional
• Precio Escalado
- Fabricantes pueden ofrecer diferentes productos de acuerdo a las
necesidades

23
Aspectos claves de diseño e implementación
Desarrollos en los Sistemas Operativos Modernos

Sistemas Operativos Distribuidos


• Múltiples computadoras dan la noción de un solo
espacio de memoria y un solo conjunto de
dispositivos.
• Clusters permiten agregar capacidad de procesamiento
o reemplazar elementos sin necesidad de bajar el
sistema
• Google: 100.000 servidores*
- Fallas de hardware son manejadas por el software automáticamente.
- Mantienen la mayor parte de la información en RAM

24
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.

25
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.

26
Sistemas Operativos: Definiciones e Historia
Kernel ://

27
Sistemas Operativos: Definiciones e Historia
Kernel ://

Espacios

Espacio de Usuario
App1 App2 App3

syscalls
Sistema Operativo
Hardware
Espacio de Kernel

28
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.
29
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.

30
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).

31
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 vacío – 50 toneladas

Funcionó hasta 1955, estimándose que realizó la


misma cantidad de operaciones matemáticas hasta
antes de 1945 en el mundo 32
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 Aritmético - Lógica (ALU)


- Unidad de Control
- Memory
- I/O (Input / Output)
33
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

34
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.

35
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.

36
Sistemas Operativos: Definiciones e Historia
Historia ://
Años 60

Desarrollos Importantes
-COBOL
-BASIC
-Mouse
-LOGO 1960 – DEC PDP1
-Unix

1968 – Apollo Guidance Computer


1964 – IBM
System/360 37
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ó Ken Thompson y Dennis Ritchie Andrew Tannenbaum Linus Torvalds

38

También podría gustarte