Servicios de Sistemas operativos Estructura del Sistema...

9
Módulo 2 Estructura del Sistema Operativo Sistemas Operativos – Estructura de Sistemas Operativos JRA © 2009 Estructuras de Sistemas Operativos Servicios de Sistemas operativos Interfaz de Usuario del Sistema Operativo Llamadas a Sistema Tipos de Llamadas a Sistema Programas de Sistemas Diseño e Implementación de un Sistema Operativo Estructura de un Sistema Operativo Máquinas Virtuales Depuración de un Sistema Operativo Generación de un Sistema Operativo Boot del Sistema Sistemas Operativos – Estructura de Sistemas Operativos JRA © 2009 Objectivos Describir los servicio de un sistema operativo que se ofrecen a usuarios, procesos y otros sistemas. Discutir las distintas formas de estructurar un sistema operativo. Explicar como son instalados los sistemas operativos, personalizados y como se inician. Sistemas Operativos – Estructura de Sistemas Operativos JRA © 2009 Servicios del Sistema Operativo Un conjunto de servicios del SO proveen funciones que son útiles al usuario: Interfaz de Usuario – Casi todos los SOs tienen una interfaz de usuario (UI) Varían entre Command-Line (CLI), Graphics User Interface (GUI), Batch Ejecución de Programas- El sistema debe poder cargar un programa en memoria y ejecutarlo, terminarlo en forma normal o anormal (indicando el error). Operaciones de E/S - Un programa ejecutando puede requerir E/S, las cuales pueden involucrar un archivo o un dispositivo de E/S. Manipulación del Sistema de Archivos - El sistema de archivos es de particular interés. Obviamente el programa necesita leer y escribir archivos y directorios, crearlos y borrarlos, borrarlos, listar información de archivos y la administración de permisos. Sistemas Operativos – Estructura de Sistemas Operativos JRA © 2009 Una Visión de los Servicios de un Sistema Operativo Sistemas Operativos – Estructura de Sistemas Operativos JRA © 2009 Servicios del Sistema Operativo (Cont) Un conjunto de servicios de SO provee funciones que son útiles al usuario (Cont): Comunicaciones – Los procesos pueden intercambiar información, en la red Las comunicaciones pueden ser vía memoria compartida o por medio de pasaje de mensajes (los paquetes son movidos por el SO) Detección de errores – Los SOs necesitan estar constantemente al margen de errores. Pueden ocurrir en la CPU y hardware de memoria, en dispositivos de E/S, en programas de usuario Para cada tipo de error el SO toma la operación apropiada para asegurar una computación correcta y consistente Las facilidades de depuración pueden mejorar las habilidades del usuario y programador para hacer eficiente el uso del sistema.

Transcript of Servicios de Sistemas operativos Estructura del Sistema...

Módulo 2

Estructura del Sistema Operativo

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Estructuras de Sistemas Operativos

� Servicios de Sistemas operativos

� Interfaz de Usuario del Sistema Operativo

� Llamadas a Sistema

� Tipos de Llamadas a Sistema

� Programas de Sistemas

� Diseño e Implementación de un Sistema Operativo

� Estructura de un Sistema Operativo

� Máquinas Virtuales

� Depuración de un Sistema Operativo

� Generación de un Sistema Operativo

� Boot del Sistema

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Objectivos

� Describir los servicio de un sistema operativo que se ofrecen a usuarios, procesos y otros sistemas.

� Discutir las distintas formas de estructurar un sistema operativo.

� Explicar como son instalados los sistemas operativos, personalizados y como se inician.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Servicios del Sistema Operativo

� Un conjunto de servicios del SO proveen funciones que son útiles al

usuario:

� Interfaz de Usuario – Casi todos los SOs tienen una interfaz de usuario (UI)

� Varían entre Command-Line (CLI), Graphics User Interface (GUI), Batch

� Ejecución de Programas- El sistema debe poder cargar un programa en memoria y ejecutarlo, terminarlo en forma normal o anormal (indicando el error).

� Operaciones de E/S - Un programa ejecutando puede requerir E/S, las cuales pueden involucrar un archivo o un dispositivo de E/S.

� Manipulación del Sistema de Archivos - El sistema de archivos es de particular interés. Obviamente el programa necesita leer y escribir archivos y directorios, crearlos y borrarlos, borrarlos, listar información de archivos y la administración de permisos.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Una Visión de los Servicios de un Sistema Operativo

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Servicios del Sistema Operativo (Cont)

� Un conjunto de servicios de SO provee funciones que son útiles al

usuario (Cont):

� Comunicaciones – Los procesos pueden intercambiar información, en la red

� Las comunicaciones pueden ser vía memoria compartida o por medio de pasaje de mensajes (los paquetes son movidos por el SO)

� Detección de errores – Los SOs necesitan estar constantemente al margen de errores.

� Pueden ocurrir en la CPU y hardware de memoria, en dispositivos de E/S, en programas de usuario

� Para cada tipo de error el SO toma la operación apropiada para

asegurar una computación correcta y consistente

� Las facilidades de depuración pueden mejorar las habilidades del usuario y programador para hacer eficiente el uso del sistema.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Servicios del Sistema Operativo (Cont)

� Otro conjunto de funciones del SO existen para asegurar una operación eficiente del propio sistema vía recursos compartidos.

� Alocación de Recursos – Cuando corren concurrentemente múltiples usuarios o múltiples tareas los recursos deben ser alocados a cada uno de ellos.

�Muchos tipos de recursos - Algunos (tales como ciclos de CPU, memoria principal y almacenaje de archivos ) pueden tener código especial de alocación, otros (como dispositivos de E/S) pueden tener código general de requerimiento y liberación.

� Contabilidad – Lleva la pista como, cuanto y que clases de recursos de computadora usan los usuarios.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Servicios del Sistema Operativo (Cont)

� Otro conjunto de funciones del SO existen para asegurar una operación eficiente del propio sistema vía recursos compartidos.

� Protección y seguridad – Los propietarios de la información almacenada en sistema de computadoras multiusuarios o de red pueden querer controlar el uso de esa información, los cprocesos concurrentes no deben interferir uno con otro.

�Protección implica asegurar que todos los accesos a recursos del sistema están controlados.

�Seguridad del sistema frente a los de afuera requiere autenticación, extensión para defender los dispositivos externos de E/S de intentos de accesos no válidos.

�Si un sistema debe ser protegido y seguro, deben ser tomadas precauciones pues una cadena es tan fuerte como el más débil de los eslabones.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Interfaz de Usuario del Sistema Operativo - CLI

La interfaz de líneas de comando (Command Line Interface - CLI) o intérprete de comando permite entrar comandos en forma

directa

�Algunas veces implementadas en el kernel, otras como programas de sistema

�A veces múltiples variantes – shells

�En primer lugar espera un comando del usuario y luego

lo ejecuta

– Algunas veces están embebidos, otras son solo nombres de programas

» En este último caso, agregar nuevas

características no requiere modificaciones en la shell.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Interfaz de Usuario Gráfica del Sistema Operativo - GUI

� Interfaz desktop “amigable”

� Usualmente mouse, teclado y monitor

� Los Iconos representan archivos, programas, acciones, etc

� Varios botones del mouse sobre objetos en la interfaz causa varias acciones (proveen información, opciones, ejecuta funciones, abre

directorios (conocidos como carpetas o folder)

� Inventada por Xerox PARC

� Casi todos los sistemas incluyen interfaces CLI y GUI

� Microsoft Windows es GUI con una CLI que es una shell de “comando”

� Apple Mac OS X como interfaz GUI “Aqua” soportada por un kernel UNIX por debajo y sus shells disponibles.

� Solaris es CLI con una interfaz GUI opcional (Java Desktop, KDE)

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Intérprete de Comando Bourne Shell

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

La GUI Mac OS X

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Llamadas al Sistema

� Son la interfaz de programación a los servicios provistos por el SO

� Tipicamente escritas en lenguajes de alto nivel (C o C++)

� Mayoritariamente accedidas por programas vía Application

Program Interface (API) más que por el uso llamadas a sistema

directas

� Las tres API más comunes son Win32 para Windows, POSIX API

para sistemas POSIX (incluyendo virtualmente todas las versiones

de UNIX, Linux, y Mac OS X), y Java API para la máquina virtual Java (JVM)

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Ejemplo de Llamada a Sistema

� Llamada a sistema para copiar el contenido de un archivo a otro.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Ejemplo de una API Standard

� Considere la función ReadFile() en la Win32 API—una función para leer de un archivo

� Una descripción de los f the parámetros pasados a ReadFile()

� HANDLE file—el archivo a ser leído

� LPVOID buffer—un buffer donde el dato será leído y previamente escrito

� DWORD bytesToRead— el número de bytes a ser leídos en el buffer

� LPDWORD bytesRead— el número de bytes leídos durante la última lectura

� LPOVERLAPPED ovl—indica si es usada una E/S solapada

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Implementación de Llamadas a Sistema

� Tipicamente se asocia un número con cada llamada al sistema

� La interfaz de las llamadas a sistema mantiene una tabla indexada de acuerdo con estos números

� La interfaz de las llamadas a sistema invoca la llamada a sistema entendida en el kernel del SO y retorna el estado de la llamada a sistema y retorna algún valor

� El llamador no necesita conocer nada acerca de como está implementada la llamada a sistema

� Solo necesita invocar la API y entender lo que hará el SO como resultado de la llamada

� La mayoría de los detalles de la interfaz del SO están escondidos para el programador por la API

� Manejada por librerías run-time (conjunto de funciones construídas en librerías incluídas con el compilador)

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Relación API – Llamada a Sistema del SO

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Ejemplo de Librería Standard C� Un programa C invocando la llamada de librería printf(), la cual llama

a la llamada a sistema write()

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Pasaje de Parámetros en Llamadas a Sistema

� Frecuentemente es requerida más información que simplemente identificar la llamada a sistema deseada.

� El tipo exacto y la cantidad de información varía de acuerdo al SO la llamada

� Se usan tres métodos para pasar parámetros al SO

� El más simple: pasar los parámetros en registros

� En algunos casos, puede haber más parámetros que registros

� Parámetros almacenados en un bloque, o tabla, en memoria, y la dirección del bloque pasada como parámetro en un registro.

� Es así en Linux y Solaris

� Parámetros ubicados , o pushed, en un stack por el programa y popped del stack por el SO.

� Lo métodos por bloque y stack no limitan el número de parámetros a ser pasados

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Parámetros Pasados vía Tabla

X: parámetros

X

load @X

código para system call 13

registro

se usan los parámetros desde la tabla X

Sistema operativoPrograma de

usuario

system call 13

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Tipos Llamadas a Sistema

� Control de procesos

� Administración de archivos

� Administración de dispositivos

� Mantenimiento de Información

� Comunicaciones

� Protección

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Examples of Windows and Unix System Calls

Blue box from page 51

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009 23

Ejecución MS-DOS

Inicio Programa ejecutando

memorialibre

memoria libre

kernel

proceso

kernel

intérpretede comandos

intérpretede

comandos

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Múltiples Programas Ejecutando en FreeBSD

proceso D

intérprete

proceso C

memoria libre

proceso B

kernel

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Programas de Sistema

� Los programas de sistema proveen un medio conveniente para el

desarrollo de programas y ejecución. Pueden ser divididos en:

Manipulación de archivos

Información de estado

Modificación de archivos

Soporte de lenguajes de programación

Carga de programas y ejecución

Comunicaciones

Programas de aplicación

La visión que tienen la mayoría de los usuarios del sistema operativo está dada por los programas de sistema y no por las

llamadas a sistema (system calls).

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Programas de Sistema

� Proveen un medio conveniente para el desarrollo de programas y su ejecución

� Algunos de ellos son simples interfaces a llamadas a sistema, otros son considerablemente más complejos

� Administración de archivos - Crea, borran, copian, renombran, imprimen, vuelcos, listan, y generallmente manipulan archivos y directorios

� Información de estado

� Algunos requieren del sistema información - fecha, hora, cantidad de memoria disponible, espacio de disco, número de usuarios

� Otros proveen detalles de rendimiento, bitácoras e información de depuración

� Tipicamente estos programas dan forma e imprimen salidas a terminales o a otros dispositivos de salida.

� Algunos sistemas implementan un registro - usado para almacenar y recuperar información de configuración

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Programas de Sistema (cont)

� Modificación de archivos

� Editores de texto crean y modifican archivos

� Comandos especiales para buscar contenidos de archivos o realizar transformaciones de texto

� Soporte de lenguajes de programación - Compiladores, ensambladores, depuradores e intérpretes

� Carga y ejecución de programas – Cargadores absolutos, cargadores reubicables, editores de enlace, y cargadores de overlay, sistemas depuradores para lenguajes máquina y alto nivel

� Comunicaciones – Proveen el mecanismo para crear conexiones virtuales entre procesos, usuarios y sistemas de cómputo

� Permite a los usuarios enviar mensajes, navegar páginas web, enviar mensajes de correo electrónico, conectarse remotamente, transferir archivos de una máquina a otra.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Diseño e Implementación de un Sistema Operativo

� El diseño e implementación de SO no está estructurado pero hay

algunos enfoques han resultado exitosos

� La estructura interna de los diferentes SOs puede variar ampliamente

� Se comienza por definir los objetivos y las especificaciones

� Afectado por la elección del hardware, tipo de sistema

� Objetivos de los Usuarios y los objetivos del Sistema

� Objetivos de los Usuarios – El SO debe ser conveniente para su

uso, fácil de aprender, confiable, seguro y rápido

� Objetivos del Sistema – El SO debería ser fácil de diseñar,

implementar y mantener, también flexible, confiable, libre de

errores y eficiente

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Diseño e Implementación de un Sistema Operativo

� Importante principio de separación

Política: ¿Qué deberá hacerse?

Mecanismo: ¿Cómo hacerlo?

� Los mecanismos determinan como hacer algo, las políticias deciden

que debe hacerse

� La separación de política de mecanismo es un principio muy

importante, permite máxima flexibilidad si las decisiones

políticas son cambiadas más tarde

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Estructura Simple

� MS-DOS – escrito para proveer máxima funcionalidad en el menor

espacio

� No está dividido en módulos

� Aunque MS-DOS tiene cierta estructura, sus interfaces y niveles

de functionalidad no están bien separados

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Capas de la Estructura MS-DOS

programa de

aplicación

programa del sistema residente

drivers de dispositivos en ROM BIOS

drivers de dispositivos en MS-DOS

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009 32

Enfoque por Capas

� El sistema operativo está dividido en un número de capas

(niveles), cada una construída sobre el tope de otra. La capa

inferior (nivel 0), es el hardware; la mas alta (capa N) es la

interfaz de usuario.

� En forma modular, las capas son seleccionadas de manera que

cada una usa funciones (operaciones) y servicios de las capas

inferiores.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Estructura de UNIX

signalsmanejo terminal

sistema I/O caracter drivers terminal

sistema de archivos swapping

sistema I/O bloque

drivers disco y cinta

planificación CPU reemplazo de páginas

demanda de páginasmemoria virtual

interfaz de system-call al kernel

interfaz kernel al hardware

controladores terminal

terminales

controladores disp

discos y cintascontroladores memoria

memoria física

shells y comandoscompiladores e intérpretes

librerías de sistema

USUARIOS

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009 34

UNIX

� UNIX – está limitado por la funcionalidad del hardware, el sistema operativo UNIX original tenía una estructura limitada.

El SO UNIX consiste de dos partes separables.

� Programas de sistema

� El kernel

�Consiste de todo lo que esta debajo de la interfaz de los system calls y encima del hardware

�Contiene el sistema de archivos, la planificación de CPU, manejo de memoria, y otras funciones del sistema operativo; un gran número de funciones en un solo nivel.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Sistema Operativo por Capas

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009 36

Sistema Operativo por Capas

Capa M-1

Capa M

nuevas operaciones

operaciones ocultas

operaciones existentes

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Estructura de Sistema Microkernel

� Mueve tanto como se pueda al espacio de usuario

� Las comunicaciones tienen lugar entre módulos de usuarios por

medio de pasajes de mensajes

� Beneficios:

� Más fácil de extender

� Más fácil de portar el SO a nuevas arquitecturas

� Mas confiable (menos código corre el el modo kernel)

� Más seguro

� Detrimentos:

� Sobrecarga de rendimiento en la comunicación del espacio de usuario al espacio de kernel

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Estructura de Mac OS X

Ambiente de aplicacionesy servicios comunes

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Módulos

� Los más modernos SOs implementan el kernel en módulos

� Usa un enfoque orientado a objetos

� Cada componente del núcleo está separado

� Los protocolos de comunicación entre ellos son sobre interfaces conocidas

� Cada uno es cargado en la medida que sea necesitado dentro

del kernel

� En resumen, similar a capas pero más flexible

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Enfoque Modular en Solaris

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Máquinas Virtuales

� Una máquina virtual lleva la propuesta por capas a su conclusión

lógica. Trata el hardware y el kernel del sistema operativo como

si fuera todo hardware.

� Una máquina virtual provee una interfaz idéntica al hardware

primitivo subyacente.

� El sistema operativo crea la ilusión de múltiples procesos, cada

uno ejecutando en su propio procesador con su propia memoria

(virtual).

� Cada invitado es provisto con una copia (virtual) de la

computadora

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Historia y Beneficios de las Máqunas Virtuales

� Aparecieron comercialmente en las mainframes de IBM en 1972

� Fundamentalmente, múltiples ambientes de ejecución (diferentes

Sos) pueden compartir el mismo hardware

� Están protejidos uno de otro

� Puede permitirse, en forma controlada, compartir archivos

� Conmuta uno con otro sistemas físicos vía red

� Util para desarrollo, testing

� “Open Virtual Machine Format”, un formato standard de máquinas virtuales, permite a una VM correr dentro de diferentes plataformas

(host) de máquinas virtuales

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009 43

Modelos de Sistema

Máquina no virtual Máquina virtual

procesos procesos

procesos

procesos

kernel

kernel

kernel kernel

hardware

implementación de la máquina virtual

hardware

Interfaz de programación

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Para-virtualización

� Presenta invitados con un sistema similar pero no idéntico hardware

� Los invitados deben ser modificados para correr en un hardware

paravirtualizado

� Los invitados pueden ser un SO, o en el caso de Solaris 10 las

aplicaciones corren en containers

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Solaris 10 con Dos Containers

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Arquitectura de VMware

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

La Máquina Virtual Java

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Depuración del Sistema Operativo

� Depuración (debbuging) es encontrar y reparar errores, o bugs

� Los SOs generan archivos de log files conteniendo información de error

� Fallas de una aplicación puede generarar un vuelco de memoria (core

dump)

� Fallas en el SO puede generar un archivo con el vuelco del kernel (crash dump) conteniendo la memoria del kernel

� Más allá de las caídas, la sintonía del rendimiento puede optimizar el rendimiento del sistema.

� La ley de Kernighan: “Depurar es dos veces más duro que escribir el código

en primer lugar. Por lo tanto, si escribe el código tan habilmente como sea posible, usted es, por definición, no lo suficiente astuto como para depurarlo.”

� La herramienta Dtrace en Solaris, FreeBSD, Mac OS X permite depuración “en vivo” sobre sistemas de producción

� Dispara pruebas cuando se ejecuta el código, capturando el estado de los datos y enviandolos a los consumidores de esas pruebas

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Dtrace en Solaris 10 siguiendo un System Call

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009 50

Generación de Sistemas (SYSGEN)

� Los sistemas operativos son diseñados para ejecutar en

algunas clases de máquinas; el sistema debe ser configurado

para cada sitio de computación específico.

� El programa SYSGEN obtiene información concerniente a la

configuración específica del hardware.

� Booting – inicio de la computadora por carga del kernel.

� Programa Bootstrap – código almacenado en ROM que localiza

el kernel, lo carga en la memoria e inicia su ejecución.

Sistemas Operativos – Estructura de Sistemas OperativosJRA © 2009

Boot del Sistema

� El SO debe poner disponible al hardware, entonces el hardware

puede iniciarlo

� Pequeñas piezas de código – bootstrap loader, localiza el kernel, lo carga en memoria, y lo pone en marcha

� A veces es un proceso en dos pasos donde el boot block en una locación fija carga el bootstrap loader

� Cuando se le da energía y se inicializa el sistema, comienza la

ejecución a partir de una dirección fija de memoria

�Firmware es usado para contener el código inicial de boot Módulo 2

Fin del Módulo 2