Sei sulla pagina 1di 50

Servicios y Estructuras de Diseño de los

Sistemas Operativos

Ing. Luis Eduardo Sepúlveda Rodríguez. M.Sc


Contenido
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Contenido |

● Servicios del Sistema Operativo ● Estructura del Sistema Operativo

● Las llamadas del sistema ● Depuración del Sistema Operativo

● Tipos de llamadas del sistema ● Generación del Sistema Operativo

● Programas del sistema ● Sistema de arranque

● Diseño e implementación del Sistema


Operativo

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 2
Servicios del Sistema Operativo
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo |

En forma resumida, un sistema operativo ofrece servicios en las áreas siguientes:

● Interfaz de usuario

● Ejecución de programas

● Operaciones de Entrada/Salida

● Manipulación de los archivos

● Comunicaciones

● Detección de errores

● Asignación de recursos

● Protección y seguridad

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 4
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Interfaz de Usuario |

Interfaz de Usuario

● Casi todos los sistemas operativos tienen una


IU

• Las hay de línea de comandos (CLI),


gráficas (GUI), batch

● Por lo general, los sistemas operativos tienen


una interfaz de usuario (UI – User Interface).

• Interfaz de Línea de Comando (CLI –


Command Line Interface)

• Interfaz Gráfica de Usuario (GUI –


Graphics User Interface)

• Por lotes (Batch)

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 5
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Interfaz de Usuario |

CLI o intérprete de comandos

● Permite la entrada directa de comandos

● En primer lugar obtiene un comando del


usuario y lo ejecuta

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 6
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Interfaz de Usuario |

Bourne Shell Command Interpreter


Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 7
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Interfaz de Usuario |

● Interfaz de fácil uso, implementa una metáfora de escritorio

• Por lo general utiliza el ratón, el teclado y el monitor.

• Los iconos representan archivos, programas, acciones, etc.

• Los botones del ratón sobre los objetos causas diversas acciones (proporcionar información,
ejecutan funciones, abren directorios, etc.)

• Inventado en Xerox PARC

● Muchos sistemas incluyen ahora tanto CLI y las interfaces GUI

• Microsoft Windows y Apple Mac OS X tienen GUI principalmente y CLI opcionalmente.

• UNIX y GNU/Linux tiene CLI principalmente y opcionalmente GUI (CDE, KDE, GNOME)

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 8
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Ejecución de Programas |

Ejecución de Programas

● El sistema operativo debe ser capaza de


cargar un programa en memoria, leer
archivos relacionados y preparar los
dispositivos de E/S para realizar la ejecuión y
posterior terminación del programa, ya sea
nomal o anormal (indicando un error).

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 9
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Operaciones de Entrada y Salida |

Operaciones de Entrada y Salida

● Un programa en ejecución puede requerir


operaciones de E/S, que puede involucrar
desde archivos hasta dispositivos de E/S.

● Cada dispositivo E/S requiere un conjunto


propio y peculiar de instrucciones o señales
de control para su funcionamiento.

● El sistema operativo tiene en cuenta estos


detalles de modo que el programador pueda
pensar en forma más abstracta, es decir,
lectuas y escrituras simples.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 10
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Manipulación de los archivos |

Manipulación de los archivos

● El sistema de archivos es de gran


importancia en cualquier Sistema Operativo,
debido a que allí se implemente la
persistencia de información para el usuario.

● Los programas necesitan leer y escribir


archivos y directorios; crearlos y borrarlos;
buscarlos, listar información acerca de ellos,
además de manejar sus propiedades y
permisos.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 11
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Comunicaciones |

Comunicaciones

● Los procesos pueden intercambiar


información, ya sea en el mismo equipo o
entre equipos a través de una red.

● Las comunicaciones pueden ser a través de


memoria compartida o mediante el paso de
mensajes (paquetes de información movidos
por el sistema operativo)

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 12
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Detección de errores |

Detección de errores

El SO necesita estar constantemente al tanto de


los posibles errores

● Puede ocurrir en el hardware de la CPU y la


memoria, en los dispositivos de E/S, o en los
programas de usuario.

● Para cada tipo de error, el sistema operativo


debe tomar las medidas adecuadas para
garantizar la computación correcta y
consistente

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 13
Servicios del Sistema Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Asignación de recursos |

Asignación de recursos

● Cuando varios usuarios o varias tareas se


ejecutan simultáneamente, los recursos
deben asignarse a cada uno de ellos

● Existen muchos tipos de recursos - ciclos de


CPU, memoria principal, de almacenamiento
de archivos, dispositivos de E / S.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 14
Servicios del sistema operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Contabilidad |

Contabilidad

● Para mantener registro de qué usuarios


utilizan qué proporción de los recursos del
sistema.

● Permite supervisar los parámetros de


rendimiento tales como el tiempo de
respuesta

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 15
Servicios del sistema operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Protección y Seguridad |

Protección y seguridad

● Los propietarios de la información


almacenada en un sistema multiusuario o
computador en red pueden querer controlar
el uso de esa información.

• Protección implica garantizar que todos


los accesos a los recursos del sistema es
controlado

• Seguridad del sistema de los forasteros


requiere autenticación del usuario, se
extiende a la defensa de los dispositivos
de E / S externos de intentos de acceso
no válidos

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 16
Una vista de los Servicios de los Sistemas
Operativos
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Protección y Seguridad |

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 17
Llamadas al Sistema
Sistemas Operativos
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

● Interfaz de programación de los servicios proporcionados por el sistema operativo

● Normalmente escrito en un lenguaje de alto nivel (C o C ++)

● Generalmente accedido por los programas a través de una programación de aplicaciones de alto
nivel de interfaz (API) en lugar de utilización llamada al sistema directo

● Tres API más comunes son la API Win32 para Windows, POSIX API para sistemas basados en
POSIX (incluyendo casi todas las versiones de UNIX, Linux y Mac OS X), y la API de Java para la
máquina virtual Java (JVM).

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 19
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

● Ejemplo de llama de sistema para copiar el contenido de un archivo a otro.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 20
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

● Ejemplo de un API estándar

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 21
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

● Típicamente, se asocia un número con cada llamada del sistema

• La interfaz de llamada al sistema mantiene una tabla indexada de acuerdo a estos números

● La interfaz de llamada al sistema invoca la llamada al sistema previsto en el núcleo del sistema
operativo y devuelve el estado de la llamada al sistema y los valores de retorno

● La persona que llama no necesita saber nada acerca de cómo se implementa la llamada al sistema

• Sólo necesita obedecer la API y entender lo que el sistema operativo hará como una llamada

• La mayoría de los detalles de interfaz del Sistema Operativo son ocultados al programador por
la API

• Gestionado por la librerías de soporte en tiempo de ejecución (conjunto de funciones


incorporadas en las librerías incluidas en el compilador)

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 22
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

● Relación entre API, llama al sistema y el Sistema Operativo

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 23
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Tipos de llamadas al sistema

● Control de procesos

● Gestión de archivos

● Gestión de dispositivos

● Mantenimiento de información

● Comunicaciones

● Protección

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 24
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Tipos de llamadas al sistema

● Control de procesos

• Crear y terminar proceso • Volcado de memoria si hoy error

• Finalizar, abortar • Depurador para determinar errores

• Cargar, ejecutar • Cerraduras para gestionar el acceso a los datos


compartidos entre los procesos
• Obtener atributos del proceso

• Establecer atributos del proceso

• Esperar por tiempo, esperar evento

• Asignar y liberar memoria

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 25
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Tipos de llamadas al sistema

● Gestión de archivos

• Crear el archivo, borrar

• Archivo cerrar el archivo abierto

• Leer, escribir, cambiar la posición

• Obtener y establecer los atributos de archivo

• Conectar o desconectar lógicamente los dispositivos de almacenamiento

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 26
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Tipos de llamadas al sistema

● Mantenimiento de Información

• Obtener y establecer la hora o la fecha del sistema

• Obtener y establecer datos del sistema

• Obtener datos de configuración del sistema

• Obtener y establecer procesos y los atributos de archivos o dispositivos.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 27
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Tipos de llamadas al sistema

● Comunicaciones

• Crear y eliminar la conexión de comunicación

• Enviar y recibir mensajes entre el cliente al servidor

• Modelo de memoria compartida (crear y tener acceso a las regiones de memoria)

• Información sobre el estado de transferencia

• Conectar y desconectar dispositivos remotos

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 28
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Tipos de llamadas al sistema

● Protección

• Control de acceso a recursos

• Obtener y establecer permisos

• Permitir y denegar acceso a usuarios

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 29
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Ejemplos de llamadas al sistema en Sistemas Windows y Unix

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 30
Llamadas al sistema
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Servicios del Sistema Operativo / Llamadas al sistema |

Ejemplos de llamada al sistema desde un programa en C

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 31
Diseño e implementación de un Sistema
Operativo
Sistemas Operativos
Diseño e implementación del Sistema
Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

● Diseñar e implementar un SO es un problema “insoluble”, pero hay ideas que han probado ser
exitosas

● La estructura interna de distintos SO puede variar dramáticamente

● Iniciamos por definir metas y especificaciones

● Afecta la selección de hardware y tipo de sistema

● Metas de usuario y metas de sistema

• Metas de usuario: el sistema operativo debe ser conveniente, fácil de aprender, confiable,
seguro y rápido.

• Metas del sistema: el sistema operativo debe ser fácil de diseñar, implementar y mantener. Así
como ser flexible, confiable, libre de errores y eficiente.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 33
Diseño e implementación del Sistema
Operativo
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

● Un principio importante es separar

• La política del SO: ¿Qué se hará?

• Los mecanismos del SO: ¿Cómo hacerlo?

● Los mecanismos determinan cómo hacer algo, las políticas deciden lo que se hará

● La separación de la política del mecanismo es un principio muy importante, permite la máxima


flexibilidad para que las decisiones políticas se van a cambiar más tarde (ejemplo - temporizador)

● La especificación y diseño de un sistema operativo es una tarea altamente creativa de la ingeniería


de software

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 34
Estructura simple - monolítica
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

MS-DOS: escrito para proveer la mayor funcionalidad en


el menor espacio

● No tiene módulos
Programas de aplicación

● Aunque MS-DOS tiene algo de estructura, sus


Programas de Sistema
interfaces y niveles de funcionalidad no están bien
separados

MS-DOS
Driver de dispositivos

ROM – BIOS - Dispositivos

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 35
Estructura simple - monolítica
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

● Primeros sistemas operativos.

● Se crean procedimientos separados que pueden llamarse unos a otros.

● Carecen de protecciones y privilegios.

● Eran muy eficientes debido a su forma de operación.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 36
Enfoque por capas - Jerárquica
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

● El SO está dividido en niveles o capas, cada uno


construido sobre los anteriores. La capa más baja
(layer 0), es el hardware; la más alta (layer N) es la Capa N
interfaz de usuario.
Capa N-1

Capa …
● Las capas se seleccionan de tal manera que cada una
utilice funciones (operaciones) y servicios
exclusivamente de capas inferiores
Capa 0

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 37
Enfoque por capas - Jerárquica
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

● Sistema dividido en niveles.

● Cada nivel le presta una serie de servicios al nivel Capa N


superior.
Capa N-1
● En esta estructura se basan la mayoría de los
sistemas operativos actuales. Capa …

Capa 0

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 38
UNIX
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

● UNIX: Estaba limitado por funcionalidad del hardware, el SO UNIX original tenía una estructura
limitada, con dos partes separadas:

• Programas de sistema

• El kernel

• Todo abajo de la interfaz de llamadas al sistema y arriba del hardware

• Provee: sistema de archivos, programación de CPU, manejo de memoria y otras


operaciones del SO. Un gran número de funciones para una capa.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 39
Estructura del sistema UNIX
| Servicios y Estructuras de Diseño de los Sistemas Operativos / Diseño del Sistema Operativo |

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 40
Estructura Microkernel

● Mueve mucho del kernel al espacio del “usuario”

● La comunicación entre módulos se realiza con paso de mensajes

● Beneficios:
Entorno de aplicaciones y servicios
• Más fácil de extender un microkernel comunes

• Más fácil portar el SO a otras arquitecturas

Entorno del Kernel


• Más confiable (menos código se ejecuta en modo kernel)
BSD
• Más seguro
Mach
● Problemas:

• Sobrecarga de comunicación entre los espacios de usuario y


kernel

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 41
Módulos

● La mayoría de los SO modernos implementan módulos


de kernel

• Enfoque orientado a objetos


Scheduling
classes
Device and bus
• Cada componente base está separado drivers File systems

• Cada uno habla con los otros a través de interfaces


comunes Solaris
Kernel
Miscellaneous Loadable
system calls
• Cada uno puede cargarse (al kernel) conforme se moudeles

necesita
Streams Executable
● En general, similar a las capas, pero más flexible modules formats

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 42
Máquinas virtuales

● Una máquina virtual lleva el enfoque de capas a su conclusión lógica. Trata el hardware y el kernel
del SO como si fueran hardware ambos

● Una máquina virtual ofrece una interfaz idéntica para cualquier hardware que esté abajo

● El sistema operativo crea la ilusión de múltiples procesos, cada uno ejecutando en su propio
procesador con su propia memoria (virtual)

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 43
Máquinas virtuales (Cont.)

● Los recursos de la computadora física se comparten para crear las máquinas virtuales

• La planificación de la CPU produce la ilusión de que los usuarios tienen su propio procesador

• Colas (spooling) y el sistema de archivos pueden ofrecer lectores de tarjetas e impresoras


virtuales

• Una terminal de usuario en un sistema de tiempo compartido, sirve como la máquina virtual
de la consola del operador

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 44
Máquinas virtuales (Cont.)

Procesos Procesos Procesos


Procesos

Procesos Procesos Procesos

Procesos
Procesos Procesos Procesos

Procesos Kernel Kernel Kernel

VM 1 VM 2 VM 3
Kernel
Implementación de Máquina Virtual

Hardware
Hardware

Sin máquina virtual Con máquina virtual

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 45
Máquinas virtuales (Cont.)

● El concepto de máquinas virtuales provee protección completa de los recursos del sistema, ya que
cada máquina virtual está aislada de las demás. Sin embargo, por el aislamiento no pueden
compartir recursos directamente.

● Una máquina virtual es un excelente vehículo para hacer investigación en SO. El desarrollo se lleva
a cabo en la máquina virtual, sin afectar la operación normal del sistema.

● El concepto de máquina virtual es difícil de implementar debido al gran esfuerzo de proveer un


duplicado exacto de la máquina.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 46
Virtualización alojada

Aplicación Aplicación Aplicación Aplicación

Sistema Sistema Sistema


Operativo Operativo Operativo
Huésped Huésped Huésped
Free BSD Windows NT Windows XP
CPU virtual CPU virtual CPU virtual
RAM virtual RAM virtual RAM virtual
Dispositivos Dispositivos Dispositivos
virtuales virtuales virtuales

Capa de Virtualización

Sistema Operativo Anfitrión ( GNU/Linux)

Hardware

CPU Memoria E/S

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 47
Arquitectura de Windows XP

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 48
Bibliografía

● STALLING W. Operating Systems: Internals and Design Principles. 7th Edition. 2011.

● SILBERSCHATZ A, GALVIN P, GAGNE G. Operating System Concepts. 8th Edition. 2009.

● VIÑAS R, LLINAS F. Sistema Operativo GNU/Linux básico. UOC. 2003.

● ESTEVE J, BOLDRITO R, Administración avanzada de GNU/LINUX. UOC. 2004.

Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013 50

Potrebbero piacerti anche