You are on page 1of 24

Fundamentos de

Sistemas
Operativos
Arquitectura de un Sistema Operativo
Washington Ramírez
Arquitectura de un Sistema Operativo
• Introducción
• ¿Qué es un sistema operativo?
• Historia de los sistemas operativos
• Tipos de sistemas operativos
• Hardware de la computadora
• Estructura de un sistema operativo
Bibliografía básica:
• Andrew S. Tanenbaum, Sistemas Operativos Modernos, Tercera Edición, Pearson Educación,
México, 2009 ISBN: 978-607-442-046-3. Capítulo 1
• William Stallings, Sistemas operativos. Aspectos internos y principios de diseño, 5ta. Edición,
Madrid, 2005 ISBN: 84-205-4462-0. Capítulo 1-2
• Thomas Anderson & Michael Dahlin, Operating Systems Principles and Practice, Recursive Books,
2012 ISBN: 0985673516. Capítulo 1
Introducción
• Un Sistema operativo es un programa que administra
el hardware de una computadora.
• Proporciona las bases para los programas de
aplicación, y actúa como intermediario entre el
usuario y el hardware.
• Las tareas, pueden ser llevadas a cabo de varias
formas, lo que permite que algunos sistemas
Operativos se diseñen para ser prácticos, otros
eficientes y otros para ser ambas cosas.
¿Qué hace un Sistema Operativo?
• SO como máquina virtual - presenta al usuario una
máquina abstracta más fácil de programar que el
hardware de base, ocultando su complejidad, y
tratando homogéneamente diferentes objetos de
bajo nivel (archivos, procesos, dispositivos, etc.)
• SO como gestor de recursos - controla y protege los
recursos (procesadores, dispositivos de E/S,
memoria, etc.) de los programas y/o usuarios.
Breve historia de los S.O.
• En un principio, el SO era sólo un fragmento de código que se enlazaba
con los programas, se cargaba todo en memoria, y se ejecutaba con el
programa
• como una biblioteca en tiempo de ejecución.
• Problema: uso ineficiente de recursos caros (baja utilización de la CPU) ya
que el tiempo de preparación de una tarea era significativo.
• Veremos SOs:
• por lotes
• multiprogramados
• de tiempo compartido
• de tiempo real
• distribuidos
• paralelos
• de Internet
Sistemas Operativos Lotes
• Los sistemas batch fueron los primeros SO’s reales:
– El monitor estaba almacenado en memoria.
– Cargaba un trabajo en memoria (tarjetas).
– Ejecutaba el trabajo.
– Cargaba el siguiente.
– Las tarjetas de control en el archivo de entrada indicaban que hacer
Sistemas por Lotes (II)
• El problema principal se debía a las largas esperas entre lotes de trabajos.
• La 2ª generación de ordenadores introduce:
• Hardware separado para gestionar las E/S
• Aparece del concepto interrupción
• un programa puede seguir ejecutándose
• mientras se esta realizando una E/S.
• Nueva dificultad: ¿cómo gestionar la concurrencia? los SOs
multiprogramados.
• Debido a la lentitud de los dispositivos de E/S (por ejemplo, lectores de
tarjetas) se desaprovecha el tiempo de CPU.

Ejecutar Esperar Ejecutar Esperar


Programa A

Tiempo
(a) Monoprogramación
Sistemas por lotes con Multiprogramación (I)

• Cuando un trabajo necesite esperar una E/S, el


procesador puede cambiar a otro trabajo.
• Aparecen en los años 50.
Programa A Ejecutar Esperar Ejecutar Esperar

Programa B Esperar Ejecutar Esperar Ejecutar Esperar

Combinados Ejecutar A Ejecutar B Esperar Ejecutar A Ejecutar B Esperar

Tiempo
(b) Multiprogramación con dos programas Ejecutar Ejecutar
Programa A
Esperar Esperar

Programa B Ejecutar Ejecutar Esperar


Esperar Esperar

Programa C Ejecutar Ejecutar


Esperar Esperar Esperar

Ejecutar C Ejecutar B Ejecutar C


Combinados Ejecutar A Ejecutar B Esperar Ejecutar A Ejecutar B Ejecutar C
Esperar

Tiempo
(c) Mulitprogramación con tres programas
Sistemas por lotes con Multiprogramación (III)

• La mutilprogramación requiere organizar los trabajos de


forma que la CPU pase el mayor tiempo posible ocupada.
• El SO mantendrá varios trabajos en memoria a la vez. Habrá
que decidir que hacer con nuevos trabajos que lleguen
cuando la memoria esté llena.
• Cuando un trabajo en ejecución tiene que esperar una E/S, el
SO simplemente lo cambia por otro que pueda ejecutarse.
• Cuando la E/S de un trabajo en espera finaliza, el SO vuelve a
continuar con dicho trabajo.
• Esto recibe el nombre de job scheduling.
Ejemplo

TRABAJO 1 TRABAJO 2 TRABAJO 3


Tipo de trabajo Cálculo intensivo E/S intensiva E/S intensiva
Duración 5 min. 15 min. 10 min.
Memoria exigida 50 K 100 K 80 K
¿Necesita disco? NO NO SI
¿Necesita terminal? NO SI NO
¿Necesita impresora? NO NO SI
La Multiprogramación
• Los sistemas multiprogramados optimizan la productividad (throughput)
del sistema:
• Se benefician de que los dispositivos de E/S pueden operar
asíncronamente.
• Mantienen varios trabajos ejecutables cargados en memoria.
• Solapan procesamiento de E/S de un trabajo con cómputo de otro.
• Necesitan de interrupciones, o DMA.
• Efectos de la multiprogramación.

Monoprogramación Multiprogramación
Uso del procesador 22% 43%
Uso de la memoria 30% 67%
Uso del disco 33% 67%
Uso de la impresora 33% 67%
Tiempo transcurrido 30 min. 15 min.
Tasa de productividad 6 trabajos/hora 12 trabajos/hora
Tiempo medio de respuesta 18 min. 10 min.
Sistemas O. de Tiempo Compartido (I)

• Soportan el uso “interactivo” del sistema:


• Cada usuario tiene la ilusión de disponer de la
máquina completa.
• Tratan de optimizar el tiempo de respuesta.
• Basados en asignar fracciones de tiempo - se reparte
el tiempo de CPU de forma equitativa entre los
procesos.
• Permiten la participación activa de los usuarios en la
edición, depuración de programas, y ejecución de los
procesos.
Sistemas O. de Tiempo Compartido (II)

• Utiliza la multiprogramación para gestionar varias tareas interactivas.


• El tiempo del procesador se comparte entre los diversos usuarios.
• Múltiples usuarios acceden simultáneamente al sistema por medio de
terminales.
• El computador interactivo suministra comunicación on-line entre usuario y
sistema mediante un terminal.
• Aparece el concepto de sistema de ficheros.

Multiprogramación por lotes frente a


tiempo compartido.
Multiprogramación
Tiempo compartido
por lotes
Maximizar la
Minimizar tiempo de
Objetivo principal utilización del
respuesta
procesador
Sistemas Operativos de Tiempo-Real

• Los STRs se suelen usar en aplicaciones especializadas, p.ej. sistemas de


control, ...
• Garantizar la respuesta a sucesos físicos en intervalos de tiempo fijos.
• Problema: poder ejecutar las actividades del sistema con el fin de
satisfacer todos los requisitos críticos de las mismas.
• Con el uso de aplicaciones multimedia sobre PC’s, todos los SO’s tienen
requisitos de tiempo-real.

Permite manejar y proporcionar una


buena regulación sobre el medio en el
que opera, es aquel en el que no le dan
importancia al usuario y si al archivo.
Sistemas Operativos Distribuidos
• Un sistema distribuido es un sistema
multicomputador pero que no tiene una memoria
común, ni reloj.
• El objetivo básico es compartir recursos distribuidos:
hardware (impresoras,discos, ...) o software (correo,
IRC, Web, etc).
• Permiten un aumento de la fiabilidad del sistema. Si
una parte falla, el resto de sistema puede seguir su
ejecución, al menos, parcialmente.
Sistemas Operativos Paralelos
• SOs para sistemas multiprocesadores – sistemas de
computador con varios procesadores que comparten
una única memoria y un reloj.
• Estos sistemas sustentan aplicaciones paralelas cuyo
objetivo es obtener aumento de velocidad de tareas
computacionalmente complejas, p. ej. predicción
meteorológica, simulaciones de explosiones atómicas,
etc.
• Multiprocesamiento Simétrico (SMP) – todos los
procesadores pueden ejecutar código del SO y de las
aplicaciones.
Sistemas Operativos de Internet

• Algunos vendedores mantienen que el PC es más


complicado y caro de lo necesario: tiene el
hardware/software necesario para mantener gran
funcionalidad que nunca se utiliza.
• Proponen el computador de red que suministra la
funcionalidad mínima para ejecutar un navegador
de Internet, el cual cargará los applets que
suministran la funcionalidad necesaria (SO y
aplicaciones).
Sistemas Operativos para WID
• WID = Wireless Information Devices
• Los WID son pequeños y móviles
• Es muy comprometido reducir un SO de PC
para ellos: su SO debe gestionar muy bien sus
escasos recursos; en especial: su limitada
potencia eléctrica, de CPU y escasa memoria.
El Hardware
• La realidad tangible es el hardware del
computador, que contiene elementos de:
• Procesamiento: CPU, DMA, procesadores de E/S
• Memoria: RAM, disco, cintas,..
• Dispositivos de E/S: teclado, ratón, pantalla,
impresora,..
• Dispositivos de comunicaciones: red ethernet,
líneas serie y paralelas, ...
Las Abstracciones
• Abstracción=considerar una cualidad, estado, acción o
fenómeno con independencia del objeto en que existe o
por que existe”.
• El SO simplifica el hardware construyendo una serie de
abstracciones:
• Proceso: una CPU dedicada a un programa.
• Memoria virtual: simula una RAM infinita.
• Archivo: memoria permanente de datos con tipo.
• Canal: dispositivo E/S de datos con tipo.
• Shell: interfaz de usuario programable …
Las Técnicas
• Ideamos técnicas para construir abstracciones
• Planificadores de recursos: CPUs, discos, etc.
• Gestión de memoria: paginación, ...
• Sistema de archivos: designación, ...
• Interrupciones, sondeo
• Bufering
• Hebras (threads).
• Dominios, listas de acceso, capacidades,
criptosistemas de clave pública, ...
Estructura y Funcionamiento General
• Un sistema de cómputo moderno es un sistema
complejo
• Para administrar todos estos dispositivos y
proporcionar una interfaz sencilla del hardware ->
capa software: sistema operativo
Estructura y Funcionamiento General
Estructura y Funcionamiento General
• Un sistema de cómputo moderno es un sistema
complejo
• Para administrar todos estos dispositivos y
proporcionar una interfaz sencilla del hardware ->
capa software: sistema operativo

You might also like