01-Introducción4x Sistemas Operativos
01-Introducción4x Sistemas Operativos
01-Introducción4x Sistemas Operativos
Contenido
Introducción ●
●
¿Sistemas operativos? y… ¿distribuidos?
Organización de una computadora.
1 ●
●
Arquitectura del sistema informático.
Operaciones del sistema operativo.
● Administración de recursos.
● Seguridad y protección.
● Virtualización.
● Estructuras de datos del kernel.
Gustavo Distel ● Entornos informáticos.
gd@cs.uns.edu.ar
● Sistemas operativos libres y de código abierto.
DCIC - UNS
2
SOYD 2020 ᛫ Gustavo C. Distel
● Es un intermediario entre el usuario de una computadora y su hardware. Se encuentran en infinidad de dispositivos y en una gran variedad de formas en
las que pueden llevar a cabo sus tareas
● Proporciona un entorno en el cual los usuarios puedan ejecutar programas
de una manera práctica y eficiente.
● Es software que administra el hardware de una computadora.
● Provee las bases para los programas de aplicación.
3 4
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
¿Sistemas operativos? ¿Qué hace un sistema operativo?
● Son de gran tamaño, complejos y generalmente se desarrollan y usan Un sistema informático puede dividirse en cuatro componentes:
durante muchos años.
● Usuarios
● Ej: el código fuente de Linux tiene 17 millones de líneas de código.
● Programas de aplicación: definen la forma
● En número de libros sería: si cada libro tiene 1000 páginas y cada página en que se emplean los recursos para
resolver los problemas informáticos.
tiene 50 líneas → ¡alrededor de 170 libros!
● Sistema operativo: controla y coordina el
uso del hardware entre los diversos
programas de aplicación.
5 6
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
7 8
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
¿Por qué estudiar Sistemas Operativos? Y… ¿Sistemas Distribuidos?
● Colección de sistemas informáticos físicamente separados y posiblemente heterogéneos, que
● Aunque hay muchos profesionales de Informática, solo un pequeño porcentaje de
están conectados en red para proporcionar a los usuarios acceso a los recursos que el sistema
ellos participa en la creación o modificación de un sistema operativo. ¿Por qué, mantiene.
entonces, estudiar los SO y cómo funcionan?
○ El acceso a un recurso compartido aumenta la velocidad de computación, la funcionalidad, la
○ Porque, como casi todo el código se ejecuta sobre un SO, el conocimiento de disponibilidad de datos y la confiabilidad.
cómo funcionan los sistemas operativos es crucial para una programación
adecuada, eficiente, efectiva y segura. ○ Los sistemas distribuidos dependen de la red para su funcionamiento
● Red: ruta de comunicación entre dos o más sistemas.
■ Programación concurrente.
○ Protocolo TCP/IP y redes LAN, WAN.
■ Administración de recursos.
● Un sistema operativo de red actúa de forma autónoma, es consciente de la red y puede
■ Análisis de rendimiento. comunicarse con otras computadoras en red.
■ Interfaces. ● Un sistema operativo distribuido proporciona un entorno menos autónomo; las diferentes
computadoras generan la ilusión de que un solo sistema operativo controla la red.
■ Lidiar con un software grande.
■ Y mucho más…
9 10
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Aplicaciones de red:
● World Wide Web y redes peer-to-peer
● Juegos online multijugador masivos y comunidades de realidad virtual
● Bases de datos distribuidas y sistemas de gestión de bases de datos distribuidas
● Sistemas de archivos de red
● Sistemas de procesamiento de información distribuidos (ej.: sistemas bancarios y sistemas de reserva de líneas
aéreas)
Computación paralela:
● Computación científica (Computación en clúster y grid computing, proyectos de computación voluntaria)
● Representación distribuida en gráficos de computadora
11 12
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Organización de una computadora Organización de una computadora
Estructura del kernel I/O
● Cada device controller (controlador del dispositivo) está a cargo de un tipo específico de dispositivo
(ej.: una unidad de disco, dispositivo de audio, pantalla gráfica).
● Un device controller mantiene algunos buffers locales y un conjunto de registros de propósito
especial. A su vez es responsable de mover los datos entre los dispositivos periféricos que controla
y su buffer local.
● Normalmente, los SO tienen un device driver por cada device controller, el cual lo interpreta y
proporciona al resto del SO una interfaz uniforme con el dispositivo.
● La CPU y los device controller pueden ejecutarse en paralelo, compitiendo por ciclos de memoria.
Para garantizar un acceso ordenado a la memoria compartida, un controlador de memoria
sincroniza el acceso.
13 14
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
15 16
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Organización de una computadora Organización de una computadora
Interrupciones - Línea de tiempo Interrupciones
● Dado que ocurren con mucha frecuencia deben manejarse rápidamente.
● Para proporcionar la velocidad necesaria se puede usar una tabla de punteros para las rutinas de
interrupción.
● La rutina de interrupción se llama indirectamente a través de la tabla, sin necesidad de una rutina
intermedia.
● La tabla de punteros se almacena en poca memoria (primeras 100 ubicaciones). Estas ubicaciones
contienen las direcciones de las rutinas de servicio de interrupción para los distintos dispositivos.
● Esta tabla de direcciones se denomina vector de interrupción y se indexa por un número único,
asignado con la solicitud de interrupción, para proporcionar la dirección de la rutina de servicio de
interrupción.
● Windows y Unix lo realizan de esta manera.
17 18
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
19 20
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Organización de una computadora Organización de una computadora
Interrupciones - Implementación Estructura de almacenamiento
● En un SO moderno necesitamos funciones de manejo de interruptores más sofisticadas: ● Memoria principal (RAM):
○ La posibilidad de demorar el manejo de interrupciones durante un procesamiento crítico. ○ La CPU carga instrucciones sólo desde la memoria, por lo tanto cualquier programa debe
cargarse primero en memoria para ejecutarse (ciclo de instrucción-ejecución)
○ Una forma eficiente de despachar al manejador de interrupciones.
○ La memoria principal suele ser pequeña para almacenar todos los programas y datos
○ Interrupciones de varios niveles, para que el SO pueda distinguir entre interrupciones de necesarios de forma permanente. Y, a su vez, es volátil.
prioridad alta y baja y pueda responder con el grado de urgencia adecuado.
● Memoria secundaria:
● En el hardware de una computadora moderna, estas tres características son proporcionadas por la
CPU y el hardware del controlador de interrupción. ○ Extensión de la memoria principal, ejemplo: HDD/SSD/flash memory/Cinta.
● La mayoría de las CPU tienen dos líneas de solicitud de interrupción. ○ Almacena grandes cantidades de datos de forma permanente.
○ Interrupción no enmascarable: reservada para eventos tales como errores de memoria no
recuperables. ● La amplia variedad de sistemas de almacenamiento se puede organizar en una jerarquía de
acuerdo con la capacidad de almacenamiento y el tiempo de acceso.
○ Interrupción enmascarable: puede ser desactivada por la CPU antes de la ejecución de
secuencias de instrucciones críticas que no deben interrumpirse. ● Regla general: existe una relación entre el tamaño y la velocidad (memoria más pequeña y más
rápida cerca de la CPU). Y existe otra variable a considerar: el costo.
21 22
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
23 24
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Organización de una computadora Arquitectura del sistema informático
Estructura E/S Algunas definiciones
25 26
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
● El core es el componente que ejecuta instrucciones y tiene registros para almacenar datos ● Tradicionalmente, estos sistemas tienen dos (o más) procesadores, cada uno con una CPU de un
localmente. La CPU con su core es capaz de ejecutar un conjunto de instrucciones de propósito solo core.
general, incluidas las instrucciones de los procesos.
● La principal ventaja de los sistemas multiprocesador es el aumento del rendimiento (throughput):
● Estos sistemas también tienen otros procesadores de propósito especial, que pueden venir en al aumentar el número de procesadores, se espera hacer más trabajo en menos tiempo.
forma de procesadores específicos del dispositivo (controladores de disco, teclado y gráficos).
● Sin embargo, la relación de aceleración con N procesadores no es igual a N sino menor que N.
● Estos procesadores de propósito especial pueden ser o no administrados por el sistema operativo Cuando varios procesadores cooperan en una tarea, se incurre en cierta cantidad de gastos
y no convierten un sistema de un único procesador en multiprocesador. generales para que todas las piezas funcionen correctamente.
● Esta sobrecarga, sumada a la disputa por los recursos compartidos, reduce la ganancia esperada a
partir de los procesadores adicionales.
27 28
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Arquitectura del sistema informático Arquitectura del sistema informático
Sistemas multiprocesador Sistemas multiprocesador
● Los sistemas multiprocesador más comunes utilizan el multiprocesamiento simétrico (SMP): cada ● La definición de multiprocesador ha evolucionado y actualmente incluye sistemas multicore, en los
procesador de CPU del mismo nivel realiza todas las tareas (incluidas funciones del SO y procesos que múltiples cores informáticos residen en un solo chip.
de usuario).
● Los sistemas multicore pueden ser más eficientes que múltiples chips con cores únicos ya que la
comunicación en un chip es más rápida que la comunicación entre chips.
● Ventaja: muchos procesos pueden ejecutarse simultáneamente
(N procesos pueden ejecutarse si hay N CPUs) sin que el ● Un chip con múltiples núcleos utiliza mucha menos energía que los múltiples chips de un solo
rendimiento disminuya. núcleo, un problema de consideración para dispositivos móviles y portátiles.
● Desventaja: dado que las CPU están separadas, una puede estar ● Diseño dual-core con dos cores en el mismo chip:
inactiva y la otra sobrecargada, resultando en ineficiencias.
Éstas pueden evitarse si los procesadores comparten ciertas ○ cada núcleo tiene registros y caché L1.
estructuras de datos. ○ La caché L2 es local al chip pero es compartido por los dos
núcleos de procesamiento.
29 30
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
31 32
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Arquitectura del sistema informático Operaciones del sistema operativo
Cluster
● Un cluster puede estructurarse de forma asimétrica o simétrica. ● Para que una computadora comience a funcionar, cuando se enciende o reinicia, necesita tener un
programa inicial para ejecutarse: bootstrap.
○ Cluster asimétrico: una máquina está en modo de espera activa mientras que la otra ejecuta
las aplicaciones. La máquina de espera activa solo monitorea el servidor activo y si falla, la ● Por lo general, se almacena en hardware (en el firmware). Inicializa todos los aspectos del sistema,
máquina de espera activa se convierte en el servidor activo.
desde los registros de la CPU hasta los controladores de dispositivos y los contenidos de la
○ Cluster simétrico: dos o más hosts ejecutan aplicaciones y se monitorean entre sí. Esta memoria.
estructura es más eficiente ya que utiliza todo el hardware disponible.
● El bootstrap debe ubicar el kernel del sistema operativo, cargarlo en la memoria y ejecutarlo.
● Los cluster también se pueden utilizar para proporcionar entornos informáticos de alto
rendimiento. ● Una vez que el kernel se carga y se ejecuta, puede comenzar a proporcionar servicios al sistema y a
sus usuarios.
● Dichos sistemas pueden proporcionar una potencia computacional significativamente mayor que
los sistemas de un único procesador o incluso que los SMP, ya que pueden ejecutar una aplicación ● Algunos servicios se proporcionan fuera del kernel, por medio de programas del sistema que se
simultáneamente en todos los equipos del cluster.
cargan en la memoria en el momento del arranque; éstos se convierten en daemons del sistema,
● Sin embargo, la aplicación debe haberse escrito específicamente para aprovechar el cluster. que se ejecutan todo el tiempo que el kernel se está ejecutando.
33 34
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
● En lugar de dejar que la CPU permanezca inactiva mientras se lleva a cabo esta entrada interactiva,
el sistema operativo cambiará rápidamente la CPU a otro proceso.
37 38
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
● Aunque dos procesos pueden asociarse al mismo programa, se consideran dos secuencias de
ejecución separadas.
41 42
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
43 44
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Administración de recursos Administración de recursos
Gestión del sistema de archivos Gestión de almacenamiento masivo
● El SO es responsable de las siguientes actividades relacionadas con la administración de archivos: ● El sistema informático debe proporcionar almacenamiento secundario para poder realizar una
copia de la memoria principal.
○ Crear y borrar archivos.
● Los principales medios de almacenamiento son dispositivos HDD y NVM para programas y datos.
○ Crear y eliminar directorios para organizar archivos.
● La mayoría de los programas, incluidos compiladores, navegadores web, procesadores de texto y
○ Proveer primitivas para la manipulación de archivos y directorios. juegos, se almacenan en estos dispositivos hasta que se cargan en la memoria.
○ Mapear archivos en almacenamiento masivo. ● El almacenamiento secundario se utiliza con frecuencia, por lo cual debe ser usado eficientemente.
○ Realizar copias de seguridad de archivos en medios de almacenamiento estables (no Igualmente, hay almacenamientos que son más lentos y de menor costo (y a veces de mayor
volátiles). capacidad) como las unidades de cinta.
45 46
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
47 48
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Administración de recursos Protección y seguridad
Gestión de sistema de E/S
● Uno de los propósitos de un SO es ocultar las peculiaridades de los dispositivos de hardware ● Un sistema con múltiples usuarios y procesos debe regular el acceso a los datos. Es decir, los
específicos del usuario. recursos sólo pueden ser operados por aquellos procesos que hayan obtenido la autorización del
SO.
● Por ejemplo, en UNIX, las peculiaridades de los dispositivos de E/S están ocultas de la mayor parte
del SO por el subsistema de E/S, que consta de varios componentes: ● Por ejemplo, el hardware de memoria garantiza que un proceso sólo pueda ejecutarse dentro de
su propio espacio de direcciones. El timer garantiza que ningún proceso pueda obtener el control
○ Componente de gestión de memoria, que incluye almacenamiento en buffer, de la CPU sin renunciar al control al finalizar.
almacenamiento en caché y cola de impresión.
● La protección es cualquier mecanismo para controlar el acceso de los procesos o usuarios a los
○ Interfaz general device-driver. recursos definidos por un sistema informático.
○ Drivers para dispositivos de hardware específicos. ● La protección puede mejorar la confiabilidad al detectar errores latentes en las interfaces entre los
● Solo el device-driver conoce las peculiaridades del dispositivo específico al que está asignado. subsistemas de componentes.
● La detección temprana de errores de interfaz a menudo puede prevenir la contaminación de un
subsistema sano por otro subsistema con mal funcionamiento. Además, un recurso no protegido
no puede defenderse contra el uso (o mal uso) por parte de un usuario no autorizado o
incompetente.
49 50
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
51 52
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Virtualización Estructuras de datos del kernel
● Emulación: simular hardware de computadora en software, generalmente utilizada cuando el tipo ● Entre las estructuras de datos fundamentales, utilizadas extensivamente en SO, se encuentran:
de CPU de origen es diferente al tipo de CPU de destino.
○ Listas
○ Cada instrucción de máquina que se ejecuta de forma nativa en el sistema de origen debe
traducirse a la función equivalente en el sistema de destino, lo que con frecuencia resulta en ■ Listas simplemente enlazadas.
varias instrucciones de destino (costo en performance). ■ Listas doblemente enlazadas.
■ Listas enlazadas circulares.
○ Algunas ventajas:
■ Posibilidad de usar otros sistemas. ○ Pilas
■ Entornos de prueba. ○ Colas
● Virtualización: el SO es compilado de forma nativa para la CPU, ejecutando SOs invitados que ○ Árboles
también son compilados de forma nativa. ■ Árboles binarios.
○ Algunas Ventajas: ■ Árboles rojo-negro.
■ Reducción de costos. ○ Hashs
■ Seguridad.
■ Administración eficiente de la información. ○ Bitmaps
53 54
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
55 56
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Entornos informáticos Entornos informáticos
cliente-servidor peer-to-peer
● Los servidores satisfacen las solicitudes generadas por ● Los nodos se consideran pares (peer), y cada uno puede actuar como cliente o servidor,
los clientes. dependiendo de si está solicitando o proporcionando un servicio.
● Es un sistema distribuido especializado: ● Los servicios se proporcionan por varios nodos distribuidos, lo cual representa una ventaja sobre
los sistemas cliente-servidor tradicionales.
● Servidor de cálculo: proporciona una interfaz a la cual
un cliente puede enviar una solicitud para realizar una ● Para ser parte de una red peer-to-peer, un nodo primero debe unirse a la red. Una vez unido,
acción. En respuesta, el servidor ejecuta la acción y comienza a proporcionar servicios y también a solicitarlos.
envía los resultados al cliente.
● Dos maneras para determinar qué servicios están disponibles:
○ Un ejemplo de este sistema es un servidor que
ejecuta una base de datos en respuesta a la ○ Cualquier nodo que desee un servicio específico primero realiza
solicitud de datos de los clientes. una búsqueda para determinar qué nodo proporciona dicho
servicio.
● Servidor de archivos: proporciona una interfaz del sistema de archivos, en el cual los clientes pueden
crear, actualizar, leer y eliminar archivos. ○ No utilizar un servicio de búsqueda centralizado sino que, un
peer actúa como cliente y debe descubrir qué nodo proporciona
○ Un ejemplo de tal sistema es un servidor web que entrega archivos a clientes en sus un servicio deseado transmitiendo una solicitud del servicio a
navegadores web. todos los demás nodos de la red.
57 58
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
○ Software como servicio (SaaS): una o más aplicaciones (ej.: como procesadores de texto u
hojas de cálculo) disponibles a través de Internet.
○ Plataforma como servicio (PaaS): una pila de software lista para el uso de la aplicación a
través de Internet (ej.: un servidor de base de datos).
59 60
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel
Entornos informáticos Sistemas operativos Free y Open-Source
Sistemas embebidos en tiempo real
● Quizás sea la forma más frecuente de computadoras que existen; desde motores y robots hasta ● El estudio de los SO se ha simplificado gracias al free software y al open-source. Disponibles en
hornos de microondas. formato de código fuente en lugar de como código binario compilado.
● Tareas específicas y sistemas primitivos con funciones limitadas. ● El free software y el open-source software son dos ideas diferentes defendidas por distintos grupos
de personas.
● Por lo general, tienen poca o ninguna interfaz de usuario, dado que solo monitorean y administran
dispositivos de hardware, como motores de automóviles y brazos robóticos.
https://www.fsf.org/ https://www.fsf.org/
● Pueden ser computadoras de propósito general que ejecutan un SO estándar con una aplicación https://www.gnu.org/philosophy/ope
https://opensource.org/osd
dedicada y también pueden ser dispositivos de hardware con circuitos integrados específicos que n-source-misses-the-point.es.html
realizan sus tareas sin SO.
● El free software no sólo hace que el código fuente esté disponible, sino que también tiene licencia
● Sistemas operativos en tiempo real: para permitir su uso, redistribución y modificación sin costo. El software open-source no ofrece
necesariamente tales licencias. Por lo tanto, aunque todo free software es open source, algunos
○ Se usa cuando se han establecido requisitos específicos de tiempo en la operación de un softwares open-source no son "free".
procesador o en el flujo de datos.
● GNU/Linux es el sistema operativo open-source más famoso, con algunas distribuciones free y
○ Ejemplos: Sistemas de experimentos científicos, sistemas de imágenes médicas, sistemas de otras solamente open-source.
control industrial y ciertos sistemas de visualización.
● Microsoft Windows es un ejemplo bien conocido del enfoque de código cerrado. Windows es un
software propietario: Microsoft lo posee, restringe su uso y protege cuidadosamente su código
61 62
fuente.
SOYD 2020 ᛫ Gustavo C. Distel SOYD 2020 ᛫ Gustavo C. Distel