Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fernanda Soto
fmsoto@utpl.edu.ec
ANTES DE INICIAR
Presentación en pares
• Nombres completos
• ¿Porqué están aquí?
• ¿Cuáles son sus expectativas en la materia?
CAPÍTULO 1
RECURSOS
• Capítulos 1 y 2 del texto base
• OCW – UPM Cap1 – Introducción.ppt
• Video evolución de los SO
¿Qué es un Sistema Operativo?
Usuarios
Programas
de aplicación
SO
HW (CPU, memoria,
dispositivos E/S)
¿Qué hace un Sistema Operativo?
• Programa de inicio
• Inicializa los registros de la CPU hasta las controladoras de
dispositivos, memoria.
• SO
Organización de un Computador
INTERRUPCIONES
• La ocurrencia de un suceso
normalmente se indica mediante una
interrupción que son una parte
importante de la arquitectura de una
computadora.
• La interrupción transfiere el control a
la rutina de servicio apropiada a la
interrupción.
Estructura de Almacenamiento
• No es posible almacenar en
memoria principal todos
los programas y datos.
• Los sistemas de
almacenamiento se pueden
organizar en jerarquías, según la
velocidad y el costo (los niveles
superiores son caros pero
rápidos, volátiles o no)
Estructura de E/S
Tipos de SO
Arquitectura de un SO
2) Sistemas multiprocesador
Se los conoce como sistemas paralelos o sistemas fuertemente
acoplados, disponen de dos o más procesadores.
Ventajas:
• Mayor rendimiento: Se realiza más trabajo en menos tiempo.
• Economía de escala: Resultan más baratos que su equivalente con
múltiples sistemas de un solo procesador, compartición de
recursos.
• Mayor fiabilidad: El fallo de un procesador no hace que el sistema
deje de funcionar solo lo hace más lento.
2) Sistemas multiprocesador
Asimétrico - SunOS
• Cada procesador se asigna a una tarea específica.
• Maneja un esquema maestro-esclavo
Simétrico (SMP) - Solaris, Windows XP, Mac OS, Linux
• Más utilizado
• Cada procesador realiza tareas correspondientes al SO.
• Todos los procesadores son iguales.
• Pueden ejecutar simultáneamente muchos procesos.
Arquitectura de un SO
3) Sistemas en clúster
• Múltiples CPU’s
• Están formados por dos o más sistemas individuales acoplados.
• La mejor definición de clúster es que las computadoras comparten
el almacenamiento y se conectan entre sí a través de una red de área
local.
• Se utilizan para ofrecer servicios con alta disponibilidad.
• El clúster se puede estructurar simétrica o asimétricamente.
• Otras formas de clúster: paralelo y conectados a una red WAN.
• En algunas tecnologías de clúster se cuenta con DLM (Distributed
Lock Manager) y/o SAN (Storage Area Network).
Arquitectura de un SO
• Sistemas operativos para mainframe
•Batch, transacciones, tiempo compartido
•OS/390
Un proceso es:
• Un programa en ejecución.
• Una entidad activa.
• La unidad de trabajo del sistema.
Un proceso necesita para llevar a cabo su tarea algunos recursos, los cuales
son asignados en el momento en que se crea o cuando se está ejecutando el
proceso.
4) Sistemas de E/S
Uno de los propósitos de un SO es ocultar al usuario las peculiaridades de los
dispositivos hardware específicos.
El subsistema de E/S consta de varios componentes:
• Un componente de gestión de memoria que incluye almacenamiento en
búfer, gestión de caché y gestión de colas.
•Una interfaz general para controladores de dispositivo.
• Controladores para dispositivos hardware específicos.
Seguridad:
• Defender al sistema frente a ataques internos y externos.
• Los ataques incluyen virus, gusanos, denegación de servicios, etc.
2) Sistemas Multimedia
• Surgen con la incorporación de datos multimedia.
• Las aplicaciones multimedia incluyen archivos de audio, películas de DVD,
videoconferencias, webcat. Por ejemplo: Musix, Aranda, EAR OS
Sistemas de mano
3) Sistemas de mano
• Los sistemas de mano incluyen los PDA, Palm, Pocket-Pc, celulares.
• Los dispositivos tiene muy poca memoria, procesadores lentos y pantallas de
visualización pequeñas.
• Usan SO embebidos de propósito especial.
• Los problemas básicos que enfrentan es la poca memoria, los procesadores
lentos y la E/S.
ENTORNOS INFORMÁTICOS
2) Sistema cliente-servidor
• Los sistemas servidor satisfacen las solicitudes generadas por los sistemas
cliente.
• Se lo puede considerar como un sistema distribuido especializado.
• Los sistemas servidor pueden ser:
• Servidor de cálculo: Proporciona una interfaz a la que un cliente
puede enviar una solicitud para realizar una acción.
• Servidor de archivos: Proporciona una interfaz de sistema de archivos
mediante la que los clientes pueden crear, actualizar, leer y eliminar
archivos.
ENTORNOS INFORMÁTICOS
• Las llamadas al Sistema proporcionan una interfaz con la cual se puede invocar a
los servicios que el SO ofrece.
• Es la única forma en la que un programa puede solicitar operaciones al
SO.
Ejemplo:
Windows:
Handle = Open File(“minifichero”, ofstruct, OF_READ)
UNIX:
Fd = open(“mifichero”, O_RDONLY);
TIPOS DE LLAMADAS AL SISTEMA
De forma general se agrupan en 5 categorías.
• Control de Procesos:
• Terminar, Abortar
• Cargar, ejecutar
• Crear o terminar procesos.
• Obtener y definir atributos del proceso
• Esperar para obtener tiempo
• Esperar o señalizar suceso
• Asignar y liberar memoria.
• Administración de Archivos:
• Crear, borrar archivos
• Abrir Cerrar
• Leer, escribir, reposicionar
• Obtener atributos de archivo
• Definir atributos de Archivo
TIPOS DE LLAMADAS AL SISTEMA
• Administración de Dispositivos:
• Solicitar y liberar dispositivo
• Leer, escribir, reposicionar
• Obtener atributos de dispositivo, definir atributos de dispositivo
• Conectar y desconectar dispositivos lógicamente.
• Mantenimiento de la Información:
• Obtener la hora o la fecha, definir la hora o fecha
• Obtener o establecer Información del Sistema
• Obtener los atributos de procesos, archivos o dispositivos
• Comunicación
• Crear eliminar conexiones de comunicación, enviar, recibir mensajes,
transferir información de estado, conectar y desconectar dispositivos
remotos.
• Existen dos modelos comunes: paso de mensajes (los procesos pueden
intercambiar mensajes entre sí para transferir información esto puede ser
directa o indirectamente) y memoria compartida (los procesos usan las
llamadas al sistema shared memory create y shared memory attach)
para crear y obtener acceso a regiones de la memoria que son propiedad de
otros procesos.
PROGRAMAS DEL SISTEMA
Los programas del sistema proporcionan un cómodo entorno para
desarrollar y ejecutar programas.
• Administración de Archivos: crean, borran, copian, cambian de
nombre, imprimen etc. De forma general manipulan archivos.
• Información de Estado: solicitan al sistema la fecha, la hora, cantidad
de memoria, espacio en disco, usuario.
•Modificación de Archivos: editores de texto para crear y modificar el
contenido (emacs, edit, etc).
•Soporte de Lenguajes de Programación: compiladores,
ensambladores, depuradores en interpretes para los lenguajes de
programación (C, C++, Java).
•Carga y Ejecución de Programas: los programas deben cargarse en
memoria para poder ejecutarse.
•Comunicaciones: conexiones virtuales entre procesos, usuarios y
computadores (telnet, ftp, etc.).
DISEÑO E IMPLEMENTACIÓN DE SO
Objetivos del Diseño
•Objetivos de Usuario: los usuarios desean ciertas propiedades como:
sistema cómodo, fácil de utilizar y aprender, fiable, seguro y rápido.
•Objetivos del Sistema: el sistema debería ser fácil de diseñar,
implementar y mantener, flexible, fiable, libre de errores y eficiente.
“No existe una solución única para el problema de definir los requisitos de un
sistema operativo”
Mecanismos y Políticas
Separar las políticas de los mecanismos ayuda en la flexibilidad del
sistema.
Mecanismos: determinan como hacer algo.
Políticas: determinan que hacer.
Las decisiones sobre políticas son importantes para la asignación, cuando es necesario decidir
si un recurso se asigna o no, se debe tomar una decisión política, cuando la pregunta es como se
asigna el recurso estamos hablando de un mecanismo
DISEÑO E IMPLEMENTACIÓN DE SO
Implementación
Tradicionalmente los SO tenían que escribirse en lenguaje ensamblador
hoy en día se escriben en Lenguaje de Alto Nivel como C o C++.
Ventajas:
•El código puede escribirse más rápido, es más compacto y es más fácil
de entender y depurar.
•El SO es más fácil de portar (trasladar a algún otro hardware)
Desventajas
•Se reducen a los requisitos de velocidad y espacio de almacenamiento,
hoy en día esto ya no es problema importante.
ESTRUCTURA DEL SO
Microkernels (UNIX)
• Al expandirse el SO Unix el kernel se hizo grande y difícil de
gestionar.
• Desarrollaron un SO denominado Mach que modularizaba el
kernel usando el llamado microkernel (Universidad de Carnegie
Mellon).
• Mach estructura el SO eliminando todos los componentes no
esenciales del kernel e implementándolos como programas del
sistema y de nivel de usuario Kernel más Pequeño.
• Normalmente los microkernels proporcionan una gestión de
memoria y de procesos mínima, además un mecanismo de
comunicaciones.
ESTRUCTURA DEL SO
Microkernels (UNIX)
• Su función principal es proporcionar un mecanismo de
comunicaciones entre el programa cliente y los distintos servicios que
se ejecutan en el espacio de usuario.
• Ventajas
• Facilidad de ampliar el SO
• El SO resultante es fácil de portar de un diseño de
Hardware a otro.
• Proporciona seguridad y fiabilidad (los servicios se ejecutan
como procesos de usuario en lugar de procesos del kernel)
• Desventajas
• Pueden tener un rendimiento peor que otras soluciones
debido a la carga adicional de procesamiento por las
funciones del Sistema.
ESTRUCTURA DEL SO
Módulos
• Usar técnicas de programación orientada a objetos para crear un
kernel modular.
• El kernel dispone de un conjunto de componentes fundamentales y
enlaza dinámicamente los servicios adicionales en el arranque o en
tiempo de ejecución.
• El kernel proporciona servicios básicos y además permite
implementar ciertas características dinámicamente.
Ejemplos:
•VMware:
• Se ejecuta como una
aplicación sobre un
SO host (Windows o
Linux).
• Permite al sistema
Host ejecutar de
forma concurrente
varios sistemas
operativos huésped
diferentes como
máquinas virtuales
independientes.
MÁQUINAS VIRTUALES
Ejemplos:
•Máquina Virtual Java:
• La JVM es una especificación de una computadora
abstracta .
• Puede implementarse por software encima de un SO host
(Windows, Linux, Mac OS X) o como parte de un
explorador Web.
• Alternativamente puede implementarse por hardware en un
chip específicamente diseñado para ejecutar programas
Java.
Bibliografía
• Silberchatz, Galvin, Gagne; “Fundamentos de Sistemas Operativos”,
Séptima Edición; Editorial Mc Graw Hill.