Вы находитесь на странице: 1из 9

Estructuras de Sistemas Operativos

Servicios de Sistemas operativos

Estructura del Sistema Operativo

Interfaz de Usuario del Sistema Operativo Llamadas a Sistema Tipos de Llamadas a Sistema Programas de Sistemas Diseo e Implementacin de un Sistema Operativo Estructura de un Sistema Operativo

Mdulo 2

Mquinas Virtuales Depuracin de un Sistema Operativo Generacin de un Sistema Operativo Boot del Sistema

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

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.

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) Varan entre Command-Line (CLI), Graphics User Interface (GUI), Batch Ejecucin 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. Manipulacin del Sistema de Archivos - El sistema de archivos es de particular inters. Obviamente el programa necesita leer y escribir archivos y directorios, crearlos y borrarlos, borrarlos, listar informacin de archivos y la administracin de permisos.

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Una Visin de los Servicios de un Sistema Operativo

Servicios del Sistema Operativo (Cont)


Un conjunto de servicios de SO provee funciones que son tiles al usuario (Cont):
Comunicaciones Los procesos pueden intercambiar informacin, en la red Las comunicaciones pueden ser va memoria compartida o por medio de pasaje de mensajes (los paquetes son movidos por el SO) Deteccin 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 operacin apropiada para asegurar una computacin correcta y consistente Las facilidades de depuracin pueden mejorar las habilidades del usuario y programador para hacer eficiente el uso del sistema.

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Servicios del Sistema Operativo (Cont)


Otro conjunto de funciones del SO existen para asegurar una operacin eficiente del propio sistema va recursos compartidos. Alocacin de Recursos Cuando corren concurrentemente mltiples usuarios o mltiples 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 cdigo especial de alocacin, otros (como dispositivos de E/S) pueden tener cdigo general de requerimiento y liberacin. Contabilidad Lleva la pista como, cuanto y que clases de recursos de computadora usan los usuarios.

Servicios del Sistema Operativo (Cont)


Otro conjunto de funciones del SO existen para asegurar una operacin eficiente del propio sistema va recursos compartidos. Proteccin y seguridad Los propietarios de la informacin almacenada en sistema de computadoras multiusuarios o de red pueden querer controlar el uso de esa informacin, los cprocesos concurrentes no deben interferir uno con otro. Proteccin implica asegurar que todos los accesos a recursos del sistema estn controlados. Seguridad del sistema frente a los de afuera requiere autenticacin, extensin para defender los dispositivos externos de E/S de intentos de accesos no vlidos. Si un sistema debe ser protegido y seguro, deben ser tomadas precauciones pues una cadena es tan fuerte como el ms dbil de los eslabones.

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Interfaz de Usuario del Sistema Operativo - CLI


La interfaz de lneas de comando (Command Line Interface - CLI) o intrprete de comando permite entrar comandos en forma directa Algunas veces implementadas en el kernel, otras como programas de sistema A veces mltiples variantes shells En primer lugar espera un comando del usuario y luego lo ejecuta

Interfaz de Usuario Grfica 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 informacin, 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)

Algunas veces estn embebidos, otras son solo nombres de programas

En este ltimo caso, agregar nuevas caractersticas no requiere modificaciones en la shell.

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Intrprete de Comando Bourne Shell

La GUI Mac OS X

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Llamadas al Sistema
Son la interfaz de programacin a los servicios provistos por el SO Tipicamente escritas en lenguajes de alto nivel (C o C++) Mayoritariamente accedidas por programas va Application Program Interface (API) ms que por el uso llamadas a sistema directas Las tres API ms 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 mquina virtual Java (JVM)

Ejemplo de Llamada a Sistema


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

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Ejemplo de una API Standard


Considere la funcin ReadFile() en la Win32 APIuna funcin para leer de un archivo

Implementacin de Llamadas a Sistema


Tipicamente se asocia un nmero con cada llamada al sistema La interfaz de las llamadas a sistema mantiene una tabla indexada de acuerdo con estos nmeros 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 algn valor El llamador no necesita conocer nada acerca de como est implementada la llamada a sistema

Una descripcin de los f the parmetros pasados a ReadFile() HANDLE fileel archivo a ser ledo LPVOID bufferun buffer donde el dato ser ledo y previamente escrito DWORD bytesToRead el nmero de bytes a ser ledos en el buffer LPDWORD bytesRead el nmero de bytes ledos durante la ltima lectura LPOVERLAPPED ovlindica si es usada una E/S solapada

Solo necesita invocar la API y entender lo que har el SO como resultado de la llamada La mayora de los detalles de la interfaz del SO estn escondidos para el programador por la API Manejada por libreras run-time (conjunto de funciones construdas en libreras includas con el compilador)

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Relacin API Llamada a Sistema del SO

Ejemplo de Librera Standard C


Un programa C invocando la llamada de librera printf(), la cual llama a la llamada a sistema write()

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Pasaje de Parmetros en Llamadas a Sistema


Frecuentemente es requerida ms informacin que simplemente identificar la llamada a sistema deseada. El tipo exacto y la cantidad de informacin vara de acuerdo al SO la llamada Se usan tres mtodos para pasar parmetros al SO El ms simple: pasar los parmetros en registros En algunos casos, puede haber ms parmetros que registros Parmetros almacenados en un bloque, o tabla, en memoria, y la direccin del bloque pasada como parmetro en un registro. Es as en Linux y Solaris Parmetros ubicados , o pushed, en un stack por el programa y popped del stack por el SO. Lo mtodos por bloque y stack no limitan el nmero de parmetros a ser pasados

Parmetros Pasados va Tabla


X
X: parmetros registro

load @X system call 13

se usan los parmetros desde la tabla X

cdigo para system call 13

Programa de usuario
JRA 2009 Sistemas Operativos Estructura de Sistemas Operativos JRA 2009

Sistema operativo
Sistemas Operativos Estructura de Sistemas Operativos

Tipos Llamadas a Sistema


Control de procesos Administracin de archivos Administracin de dispositivos Mantenimiento de Informacin Comunicaciones Proteccin

Examples of Windows and Unix System Calls


Blue box from page 51

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Ejecucin MS-DOS
Inicio Programa ejecutando

Mltiples Programas Ejecutando en FreeBSD


proceso D memoria libre proceso C

memoria libre memoria libre proceso

intrprete

intrprete de comandos

intrprete de comandos

proceso B

kernel

kernel

kernel
JRA 2009 Sistemas Operativos Estructura de Sistemas Operativos

23

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Programas de Sistema
Los programas de sistema proveen un medio conveniente para el desarrollo de programas y ejecucin. Pueden ser divididos en: Manipulacin de archivos Informacin de estado Modificacin de archivos Soporte de lenguajes de programacin Carga de programas y ejecucin Comunicaciones Programas de aplicacin La visin que tienen la mayora de los usuarios del sistema operativo est dada por los programas de sistema y no por las llamadas a sistema (system calls).

Programas de Sistema
Proveen un medio conveniente para el desarrollo de programas y su ejecucin Algunos de ellos son simples interfaces a llamadas a sistema, otros son considerablemente ms complejos Administracin de archivos - Crea, borran, copian, renombran, imprimen, vuelcos, listan, y generallmente manipulan archivos y directorios Informacin de estado Algunos requieren del sistema informacin - fecha, hora, cantidad de memoria disponible, espacio de disco, nmero de usuarios Otros proveen detalles de rendimiento, bitcoras e informacin de depuracin 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 informacin de configuracin

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Programas de Sistema (cont)


Modificacin 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 programacin - Compiladores, ensambladores, depuradores e intrpretes Carga y ejecucin de programas Cargadores absolutos, cargadores reubicables, editores de enlace, y cargadores de overlay, sistemas depuradores para lenguajes mquina y alto nivel Comunicaciones Proveen el mecanismo para crear conexiones virtuales entre procesos, usuarios y sistemas de cmputo Permite a los usuarios enviar mensajes, navegar pginas web, enviar mensajes de correo electrnico, conectarse remotamente, transferir archivos de una mquina a otra.

Diseo e Implementacin de un Sistema Operativo


El diseo e implementacin 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 eleccin 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, fcil de aprender, confiable, seguro y rpido Objetivos del Sistema El SO debera ser fcil de disear, implementar y mantener, tambin flexible, confiable, libre de errores y eficiente

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Diseo e Implementacin de un Sistema Operativo


Importante principio de separacin Poltica: Qu deber hacerse? Mecanismo: Cmo hacerlo? Los mecanismos determinan como hacer algo, las polticias deciden que debe hacerse La separacin de poltica de mecanismo es un principio muy importante, permite mxima flexibilidad si las decisiones polticas son cambiadas ms tarde

Estructura Simple
MS-DOS escrito para proveer mxima funcionalidad en el menor espacio No est dividido en mdulos Aunque MS-DOS tiene cierta estructura, sus interfaces y niveles de functionalidad no estn bien separados

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Capas de la Estructura MS-DOS

Enfoque por Capas


El sistema operativo est dividido en un nmero de capas (niveles), cada una construda 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.

programa de aplicacin

programa del sistema residente

drivers de dispositivos en MS-DOS

drivers de dispositivos en ROM BIOS

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

32

Estructura de UNIX
USUARIOS
shells y comandos compiladores e intrpretes libreras de sistema interfaz de system-call al kernel
signals manejo terminal sistema I/O caracter drivers terminal sistema de archivos swapping sistema I/O bloque drivers disco y cinta planificacin CPU reemplazo de pginas demanda de pginas memoria virtual

UNIX
UNIX est limitado por la funcionalidad del hardware, el sistema operativo UNIX original tena 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 planificacin de CPU, manejo de memoria, y otras funciones del sistema operativo; un gran nmero de funciones en un solo nivel.

interfaz kernel al hardware controladores terminal terminales controladores disp discos y cintas controladores memoria memoria fsica
Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

34

Sistema Operativo por Capas

Sistema Operativo por Capas

nuevas operaciones

Capa M

operacion es ocultas

Capa M-1

operaciones existentes

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

36

Estructura de Sistema Microkernel


Mueve tanto como se pueda al espacio de usuario Las comunicaciones tienen lugar entre mdulos de usuarios por medio de pasajes de mensajes Beneficios: Ms fcil de extender Ms fcil de portar el SO a nuevas arquitecturas Mas confiable (menos cdigo corre el el modo kernel) Ms seguro Detrimentos: Sobrecarga de rendimiento en la comunicacin del espacio de usuario al espacio de kernel

Estructura de Mac OS X

Ambiente de aplicaciones y servicios comunes

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Mdulos
Los ms modernos SOs implementan el kernel en mdulos Usa un enfoque orientado a objetos Cada componente del ncleo est separado Los protocolos de comunicacin 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 ms flexible

Enfoque Modular en Solaris

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Mquinas Virtuales
Una mquina virtual lleva la propuesta por capas a su conclusin lgica. Trata el hardware y el kernel del sistema operativo como si fuera todo hardware. Una mquina virtual provee una interfaz idntica al hardware primitivo subyacente. El sistema operativo crea la ilusin de mltiples procesos, cada uno ejecutando en su propio procesador con su propia memoria (virtual). Cada invitado es provisto con una copia (virtual) de la computadora

Historia y Beneficios de las Mqunas Virtuales


Aparecieron comercialmente en las mainframes de IBM en 1972 Fundamentalmente, mltiples ambientes de ejecucin (diferentes Sos) pueden compartir el mismo hardware Estn protejidos uno de otro Puede permitirse, en forma controlada, compartir archivos Conmuta uno con otro sistemas fsicos va red Util para desarrollo, testing Open Virtual Machine Format, un formato standard de mquinas virtuales, permite a una VM correr dentro de diferentes plataformas (host) de mquinas virtuales

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Modelos de Sistema
Mquina no virtual Mquina virtual

Para-virtualizacin
Presenta invitados con un sistema similar pero no idntico hardware Los invitados deben ser modificados para correr en un hardware paravirtualizado

procesos procesos

Los invitados pueden ser un SO, o en el caso de Solaris 10 las aplicaciones corren en containers

procesos

procesos

Interfaz de programacin

kerne l

kernel

kernel

kernel hardware

implementacin de la mquina virtual

hardware

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

43

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Solaris 10 con Dos Containers

Arquitectura de VMware

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

La Mquina Virtual Java

Depuracin del Sistema Operativo


Depuracin (debbuging) es encontrar y reparar errores, o bugs Los SOs generan archivos de log files conteniendo informacin de error Fallas de una aplicacin 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 Ms all de las cadas, la sintona del rendimiento puede optimizar el rendimiento del sistema. La ley de Kernighan: Depurar es dos veces ms duro que escribir el cdigo en primer lugar. Por lo tanto, si escribe el cdigo tan habilmente como sea posible, usted es, por definicin, no lo suficiente astuto como para depurarlo. La herramienta Dtrace en Solaris, FreeBSD, Mac OS X permite depuracin en vivo sobre sistemas de produccin Dispara pruebas cuando se ejecuta el cdigo, capturando el estado de los datos y enviandolos a los consumidores de esas pruebas

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Dtrace en Solaris 10 siguiendo un System Call

Generacin de Sistemas (SYSGEN)


Los sistemas operativos son diseados para ejecutar en algunas clases de mquinas; el sistema debe ser configurado para cada sitio de computacin especfico. El programa SYSGEN obtiene informacin concerniente a la configuracin especfica del hardware. Booting inicio de la computadora por carga del kernel. Programa Bootstrap cdigo almacenado en ROM que localiza el kernel, lo carga en la memoria e inicia su ejecucin.

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

50

Boot del Sistema


El SO debe poner disponible al hardware, entonces el hardware puede iniciarlo Pequeas piezas de cdigo 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 locacin fija carga el bootstrap loader Cuando se le da energa y se inicializa el sistema, comienza la ejecucin a partir de una direccin fija de memoria Firmware es usado para contener el cdigo inicial de boot

Fin del Mdulo 2

Mdulo 2

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Вам также может понравиться