Servicios y Estructuras de los Sistemas Operativos

Page 1

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

3.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

3.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áPicas (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áPica de Usuario (GUI – Graphics User Interface) •  Por lotes (Batch) Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

3.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

•  Esperar por tiempo, esperar evento

•  Finalizar, abortar

•  Asignar y liberar memoria

•  Cargar, ejecutar

•  Volcado de memoria si hoy error

•  Obtener atributos del proceso

•  Depurador para determinar errores

•  Establecer atributos del proceso

•  Cerraduras para gestionar el acceso a los datos compartidos entre los procesos

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

3.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

3.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 conPiguració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

3.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

3.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 denar acceso a usuarios

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

3.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

3.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

3.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 dePinir metas y especiPicaciones ●  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, conPiable, seguro y rápido. •  Metas del sistema: el sistema operativo debe ser fácil de diseñar, implementar y mantener. Así como ser Plexible, conPiable, libre de errores y ePiciente.

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

3.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 Plexibilidad para que las decisiones políticas se van a cambiar más tarde (ejemplo -­‐ temporizador) ●  La especiPicació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

3.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

●  Aunque MS-­‐DOS tiene algo de estructura, sus interfaces y niveles de funcionalidad no están bien separados

Programas de aplicación

Programas de Sistema

MS-­‐DOS Driver de disposi/vos

ROM – BIOS -­‐ Disposi/vos

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

3.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 ePicientes debido a su forma de operación.

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

3.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 interfaz de usuario.

Capa N Capa N-1 Capa …

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

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

Capa 0

3.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 superior. ●  En esta estructura se basan la mayoría de los sistemas operativos actuales.

Capa N Capa N-1 Capa …

Capa 0

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

3.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

3.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

3.40


Estructura Microkernel ●  Mueve mucho del kernel al espacio del “usuario” ●  La comunicación entre módulos se realiza con paso de mensajes ●  BenePicios:

Entorno de aplicaciones y servicios comunes

•  Más fácil portar el SO a otras arquitecturas •  Más conPiable (menos código se ejecuta en modo kernel) •  Más seguro

Entorno del Kernel

•  Más fácil de extender un microkernel

BSD

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

3.41


Módulos ●  La mayoría de los SO modernos implementan módulos de kernel •  Enfoque orientado a objetos •  Cada componente base está separado •  Cada uno habla con los otros a través de interfaces comunes

Scheduling classes

Device and bus drivers

File systems

Solaris Kernel

Miscellaneous moudeles

Loadable system calls

•  Cada uno puede cargarse (al kernel) conforme se necesita

●  En general, similar a las capas, pero más Plexible

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

Streams modules

Executable formats

3.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

3.43


Máquinas virtuales (Cont.) ●  Los recursos de la computadora Písica se comparten para crear las máquinas virtuales •  La planiPicació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

3.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

Sin máquina virtual Basado en Operating System Concepts – 9th Edition de Silberschatz, Galvin and Gagne ©2013

Hardware

Con máquina virtual 3.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 diPí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

3.46


Virtualizació alojada Aplicación

Aplicación

Sistema Opera/vo Huésped Free BSD CPU virtual RAM virtual Disposi/vos virtuales

Aplicación

Aplicación

Sistema Opera/vo Huésped Windows NT CPU virtual RAM virtual Disposi/vos virtuales

Sistema Opera/vo Huésped Windows XP CPU virtual RAM virtual Disposi/vos virtuales

Capa de Virtualización

Sistema Opera/vo Anfitrión ( GNU/Linux)

CPU

Hardware Memoria

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

E/S

3.47


Arquitectura de Windows XP

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

3.48


BibliograPía ●  STALLING W. Operating Systems: Internals and Design Principles. 7th Edition. 2011. ¡

SILBERSCHATZ A, GALVIN P, GAGNE G. Opera/ng System Concepts. 8th Edi/on. 2009.

¡

VIÑAS R, LLINAS F. Sistema Opera/vo 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

3.49


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.