Estructuras de Sistemas Operativos: Facultad de Ciencias de La Ingeniería
Estructuras de Sistemas Operativos: Facultad de Ciencias de La Ingeniería
Estructuras de
Sistemas Operativos
Facultad de Ciencias de la Ingeniería
Ingeniería Informática y Ciencias de la
Computación
Operating System Concepts – 9th Edit9on Silberschatz, Galvin and Gagne ©2013
Contenido
Servicios del Sistema Operativo
Interfaz de Usuario del Sistema Operativo
Llamadas al sistema
Programas del sistema
Diseño e implementación del Sistema Operativo
Estructura de Sistemas Operativos
Máquinas Virtuales
Operating System Concepts – 9th Edition 1.2 Silberschatz, Galvin and Gagne ©2013
Servicios del Sistema Operativo
Operating System Concepts – 9th Edition 1.3 Silberschatz, Galvin and Gagne ©2013
Servicios del Sistema Operativo
Servicios del Sistema Operativo
Program execution
Resource allocation
I/O operations
File-system manipulation
Accounting
Communications
Operating System Concepts – 9th Edition 1.4 Silberschatz, Galvin and Gagne ©2013
Servicios del Sistema Operativo
Operating System Concepts – 9th Edition 1.6 Silberschatz, Galvin and Gagne ©2013
Servicios del Sistema Operativo
Operating System Concepts – 9th Edition 1.7 Silberschatz, Galvin and Gagne ©2013
Servicios del Sistema Operativo
Operating System Concepts – 9th Edition 1.8 Silberschatz, Galvin and Gagne ©2013
Servicios del Sistema Operativo
Operating System Concepts – 9th Edition 1.9 Silberschatz, Galvin and Gagne ©2013
Interfaz de Usuario del Sistema Operativo
User interface
User-friendly desktop metaphor interface Usually mouse, keyboard,
and monitor
Icons represent files, programs, actions, etc
Various mouse buttons over objects in the interface cause various
actions (provide information, options, execute function, open directory
(known as a folder)
Invented at Xerox PARC (researches 70 -> Xerox Alto 1973 first GUI)
Many systems now include both CLI and GUI interfaces Microsoft
Windows is GUI with CLI “command” shell
Apple Mac OS X is “Aqua” GUI interface with UNIX kernel
underneath and shells available
Unix and Linux have CLI with optional GUI interfaces
UNIX: CDE Common Desktop Enviroment
X-Windows (Solaris, AIX)
LINUX: KDE (K Desktop Enviroment)
Operating System Concepts – 9th Edition
GNOME1.11 (Project GNU) Silberschatz, Galvin and Gagne ©2013
Interfaz de Usuario del Sistema Operativo
User interface
Apple Mac OS X is “Aqua” GUI interface
Operating System Concepts – 9th Edition 1.12 Silberschatz, Galvin and Gagne ©2013
Interfaz de Usuario del Sistema Operativo
User interface
Unix: CDE Common Desktop Enviroment,
X-Windows (Solaris, AIX)
Operating System Concepts – 9th Edition 1.13 Silberschatz, Galvin and Gagne ©2013
Interfaz de Usuario del Sistema Operativo
User interface
LINUX: KDE (K Desktop Enviroment)
GNOME (Project GNU)
Operating System Concepts – 9th Edition 1.14 Silberschatz, Galvin and Gagne ©2013
Interfaz de Usuario del Sistema Operativo
User interface
Microsoft Windows
Operating System Concepts – 9th Edition 1.15 Silberschatz, Galvin and Gagne ©2013
Interfaz de Usuario del Sistema Operativo
Touchscreen Interfaces
Touchscreen devices require new interfaces
Mouse not possible or not desired
Actions and selection based on gestures
Virtual keyboard for text entry
Voice commands.
Operating System Concepts – 9th Edition 1.16 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.17 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
el kernel
administra los
recursos de
memoria y
tareas; y
provee una
interface de
llamadas de
sistema para
que los
programas
tengan acceso
a los
recursos.
Cuando un proceso requiere de alguna acción privilegiada (modo de
kernel), acede a ellas realizando una llamada al sistema.
Las llamadas al sistema ofrece a los programas unos servicios en forma
de una interfaz de programación o API (application programming
interface). Las llamadas al sistema tipicamente están escritas en C y C++
Operating System Concepts – 9th Edition 1.18 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
APIS ENSAMBLADOR
Operating System Concepts – 9th Edition 1.19 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
shell
Llamadas al
sistema es la
forma en la cual
programas tienen
acceso a las
funcionalidades del
kernel
Operating System Concepts – 9th Edition 1.20 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
UNIX tiene una llamada al sistema conocida como read con tres
parámetros: uno para especificar el archivo, uno para decir en
dónde se van a colocar los datos y uno para indicar cuantos
bytes se deben leer”
Una llamada desde un programa en C podría tener la
siguiente apariencia:
Operating System Concepts – 9th Edition 1.22 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.23 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.24 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.25 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.26 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.27 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.28 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.31 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Process control
File management
Device management
Information maintenance
Operating System Concepts – 9th Edition 1.32 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.33 Silberschatz, Galvin and Gagne ©2013
Llamadas al Sistema
Operating System Concepts – 9th Edition 1.34 Silberschatz, Galvin and Gagne ©2013
Programas del Sistema
Operating System Concepts – 9th Edition 1.35 Silberschatz, Galvin and Gagne ©2013
Programas del Sistema
Operating System Concepts – 9th Edition 1.36 Silberschatz, Galvin and Gagne ©2013
Programas del Sistema
Modificación de archivos
Editores
Búsqueda dentro de archivos y transformaciones de texto
Herramienas para programadores - Compiladores,
Ensambladores, debuggers, intérpretes, etc.
Carga y ejecución de programas – Cargadores absolutos y
relocalizables, editores de encadenamiento, cargadores de
overlay, debugging para lenguajes de alto nivel y de máquina
Comunicaciones – mecanismo para crear conexiones virtuales
entre procesos, usuarios y computadoras
Envío de mensajes entre pantallas, web browsers, email,
rlogin, ftp, etc.
Operating System Concepts – 9th Edition 1.37 Silberschatz, Galvin and Gagne ©2013
Programas del Sistema
Programas de aplicación
Don’t pertain to system
Run by users
Not typically considered part of OS
Launched by command line, mouse click, finger poke
Background Services Launch at boot time Some for system
startup, then terminate
Some from system boot to shutdown
Provide facilities like disk checking, process scheduling, error
logging, printing
Run in user context not kernel context
Known as services, subsystems, daemons
Operating System Concepts – 9th Edition 1.38 Silberschatz, Galvin and Gagne ©2013
Diseño e implementación del Sistema Operativo
Operating System Concepts – 9th Edition 1.39 Silberschatz, Galvin and Gagne ©2013
Diseño e implementación del Sistema Operativo
Proceso:
A. Requisitos: Definir metas y especificaciones
Consideraciones: hardware, tipo de sistema
MSDOS: Ensamblador Intel 8088
LINUX: C Intel 80X86, Motorola, SPARC, MIPS, RX00
Metas del Usuario: facilidad de uso y aprendizaje, fiable,
seguro y rápido
Metas del Sistema: facilidad de diseño, implementación y
mantenimiento, flexible, fiable, libre de errores y eficiente
Operating System Concepts – 9th Edition 1.40 Silberschatz, Galvin and Gagne ©2013
Diseño e implementación del Sistema Operativo
B. Políticas y Mecanismos
Principio fundamental: Separar – Técnica Modular
Política: ¿Qué se hará?
A nivel de programación de usuario (Ej: prioridad:
Programas I/O VS. Programas de uso de CPU )
Interfaz
Gestión de Procesos: Distribuidos, embebidos, de Tiempo
real, de tiempo compartido, por lotes (batch)
Mecanismo: ¿Cómo hacerlo?
Con herramientas de rápido desarrollo, compacto, fácil de
entender y depurar -> Cuellos de botella: Monitoreo
C. Implementación
Los primeros en lenguaje ensamblador
Posteriormente con el desarrollo de lenguaje de alto nivel C,
C++ (Unix, Linux, Windows XP)
Operating System Concepts – 9th Edition 1.41 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Operating System Concepts – 9th Edition 1.42 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Monolíticos/Simple structure
La mayor parte de los sistemas operativos históricamente
han sido monolíticos.
Monolítico significa que hay un sólo proceso privilegiado
que opera en modo supervisor, y dentro del cual se
encuentran todas las rutinas para las diversas tareas que
realiza el sistema operativo, es decir, todo el S.O se ejecuta
como un solo programa en modo Kernel.
Operating System Concepts – 9th Edition 1.43 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Monolíticos/Simple structure
Traditional UNIX System Structure
Operating System Concepts – 9th Edition 1.44 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Monolíticos/Simple structure
Ventaja:
simplificación de una gran cantidad de mecanismos de
comunicación, que lleva a una mayor velocidad de
ejecución (al requerir menos cambios de contexto (modo
kernel y modo usuario) para cualquier operación
realizada).
Además, al manejarse la comunicación directa como
paso de estructuras en memoria, el mayor acoplamiento
permite más flexibilidad al adecuarse para nuevos
requisitos (al no tener que modificar no sólo al núcleo y a
los procesos especiales, sino también la interfaz pública
entre ellos).
Operating System Concepts – 9th Edition 1.45 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Layered Approach (Sistema en Capas / Modulares)
Dividir al S.O en capas* más pequeñas. Esto permite un
mejor control de la computadora y sobre las aplicaciones
Ventajas: Simplicidad de construcción y depuración por
lo que el diseño e implementación del sistema se
simplifica
Desventaja: Definir apropiadamente los diferentes
niveles. Tiempo de respuesta
de las llamadas del sistema
Operating System Concepts – 9th Edition 1.46 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Microkernel
A mediados de los 80 investigadores de la Universidad de
Carniege Mellon desarrollaron un S.O denominado MACH
que modulariza el kernel, es decir que elimina los
componentes “no escenciales” del kernel.
Esos componentes son programas del sistema y de nivel de
usuario. El resultado es un kernel más pequeño.
Mac OS X kernel (Darwin) partly based on Mach
Un sistema microkernel normalmente contine los siguientes
componentes:
Gestión de memoria
Gestión de Procesos
Mecanismos de Comunicaciones (message passing) /
Interrupciones
Operating System Concepts – 9th Edition 1.47 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Microkernel
El núcleo del sistema operativo se mantiene en el mínimo
posible de funcionalidad, descargando en procesos
especiales sin privilegios las tareas que implementan el
acceso a dispositivos y las diversas políticas de uso del
sistema.
Operating System Concepts – 9th Edition 1.48 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Microkernel
Ventaja:
Los sistemas microkernel siguen esquemas lógicos más
limpios.
Permiten implementaciones que facilitan la comprensión
por separado de cada una de sus piezas.
Pueden auto-repararse con mayor facilidad, dado que en
caso de fallar uno de los componentes (por más que
parezca ser de muy bajo nivel), el núcleo puede reiniciarlo
o incluso reemplazarlo.
Fiable (tolerante a fallos y recuperabilidad)
Mayor Seguridad
Desventaja:
Carga de procesamiento adicional por las funciones del
sistema
Operating System Concepts – 9th Edition 1.49 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Microkernel
El núcleo del sistema operativo se mantiene en el mínimo
posible de funcionalidad, descargando en procesos
especiales sin privilegios las tareas que implementan el
acceso a dispositivos y las diversas políticas de uso del
sistema.
Operating System Concepts – 9th Edition 1.50 Silberschatz, Galvin and Gagne ©2013
Estructura de Sistemas Operativos
Sistemas Híbridos (monolíticos – Microkernel)
Sistemas que son mayormente monolíticos pero manejan
algunos procesos que parecerían centrales a través de
procesos de nivel usuario como los microkernel; por ejemplo,
los sistemas de archivos en espacio de usuario, FUSE, en
Linux.
MacOS X: Capas y
Microkernel
Operating System Concepts – 9th Edition 1.51 Silberschatz, Galvin and Gagne ©2013
End of Chapter 2
Operating System Concepts – 9th Edit9on Silberschatz, Galvin and Gagne ©2013