Está en la página 1de 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

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Objectivos
 Describir los servicio de un sistema operativo que

Servicios del Sistema Operativo


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

usuario:

se ofrecen a usuarios, procesos y otros sistemas.

 Discutir las distintas formas de estructurar un

sistema operativo.

 Varan

operativos, personalizados y como se inician.

Sistemas Operativos Estructura de Sistemas Operativos

Una Visin de los Servicios de un Sistema Operativo

entre Command-Line (CLI), Graphics User Interface (GUI),

Batch

 Explicar como son instalados los sistemas

JRA 2009

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

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.

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

Servicios del Sistema Operativo (Cont)


 Otro conjunto de funciones del SO existen para asegurar una

operacin eficiente del propio sistema va recursos


compartidos.


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.

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.

Contabilidad Lleva la pista como, cuanto y que clases de


recursos de computadora usan los usuarios.

 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.

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

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

Interfaz de Usuario Grfica del Sistema Operativo - GUI


 Interfaz desktop amigable

 Algunas

veces implementadas en el kernel, otras como


programas de sistema

A

primer lugar espera un comando del usuario y luego


lo ejecuta

En este ltimo caso, agregar nuevas


caractersticas no requiere modificaciones en la
shell.

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Intrprete de Comando Bourne Shell

JRA 2009

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

Algunas veces estn embebidos, otras son solo


nombres de programas

JRA 2009

veces mltiples variantes shells

 En

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

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 Operativos

La GUI Mac OS X

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Llamadas al Sistema
 Son la interfaz de programacin a los servicios provistos por el SO

Ejemplo de Llamada a Sistema


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

 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)

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Ejemplo de una API Standard




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


archivo

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

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


JRA 2009

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

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

Sistemas Operativos Estructura de Sistemas Operativos

 Manejada

por libreras run-time (conjunto de funciones construdas


en libreras includas con el compilador)

JRA 2009

Relacin API Llamada a Sistema del SO

Sistemas Operativos Estructura de Sistemas Operativos

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

Parmetros Pasados va Tabla

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

X
X: parmetros

 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

registro

se usan los
parmetros
desde la
tabla X

load @X
system call 13

Programa de
usuario
JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Tipos Llamadas a Sistema

cdigo para
system call
13

Sistema operativo
Sistemas Operativos Estructura de Sistemas Operativos

Examples of Windows and Unix System Calls

 Control de procesos

Blue box from page 51

 Administracin de archivos
 Administracin de dispositivos
 Mantenimiento de Informacin
 Comunicaciones
 Proteccin

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Ejecucin MS-DOS
Inicio

Sistemas Operativos Estructura de Sistemas Operativos

Mltiples Programas Ejecutando en FreeBSD

Programa ejecutando

proceso D

memoria
libre

memoria libre

memoria
libre

proceso C

proceso
intrprete

intrprete
de
comandos

intrprete
de comandos

kernel

kernel

proceso B

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

Programas de Sistema
 Proveen un medio conveniente para el desarrollo de programas y su

ejecucin

desarrollo de programas y ejecucin. Pueden ser divididos en:

Manipulacin de archivos
Informacin de estado

 Administracin de archivos - Crea, borran, copian, renombran, imprimen,

Modificacin de archivos
Soporte de lenguajes de programacin

vuelcos, listan, y generallmente manipulan archivos y directorios


 Informacin de estado

Carga de programas y ejecucin


Comunicaciones

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

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

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Diseo e Implementacin de un Sistema Operativo


 El diseo e implementacin de SO no est estructurado pero hay

algunos enfoques han resultado exitosos

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


Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Programas de Sistema (cont)


 Modificacin de archivos

 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

 Comunicaciones Proveen el mecanismo para crear conexiones virtuales

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

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.

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Algunos de ellos son simples interfaces a llamadas a sistema, otros son


considerablemente ms complejos

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Estructura Simple

Diseo e Implementacin de un Sistema Operativo


 Importante principio de separacin

 MS-DOS escrito para proveer mxima funcionalidad en el menor

espacio

Poltica: Qu deber hacerse?


Mecanismo: Cmo hacerlo?
 Los mecanismos determinan como hacer algo, las polticias deciden

que debe hacerse




JRA 2009

No est dividido en mdulos

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


de functionalidad no estn bien separados

La separacin de poltica de mecanismo es un principio muy


importante, permite mxima flexibilidad si las decisiones
polticas son cambiadas ms tarde

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.

programa de
aplicacin

 En forma modular, las capas son seleccionadas de manera que

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


inferiores.

programa del sistema


residente

drivers de dispositivos en
MS-DOS

drivers de dispositivos en ROM


BIOS

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

UNIX

Estructura de UNIX

 UNIX est limitado por la funcionalidad del hardware, el sistema

USUARIOS

operativo UNIX original tena una estructura limitada.


El SO UNIX consiste de dos partes separables.

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

32

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

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.

planificacin CPU
reemplazo de pginas
demanda de pginas
memoria virtual

interfaz kernel al hardware


controladores terminal
terminales

JRA 2009

controladores disp
discos y cintas

controladores memoria
memoria fsica

Sistemas Operativos Estructura de Sistemas Operativos

Sistema Operativo por Capas

34

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistema Operativo por Capas

Capa
M

nuevas
operaciones

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

Estructura de Mac OS X

 Mueve tanto como se pueda al espacio de usuario


 Las comunicaciones tienen lugar entre mdulos de usuarios por
Ambiente de aplicaciones
y servicios comunes

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

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

JRA 2009

Mdulos

Sistemas Operativos Estructura de Sistemas Operativos

Enfoque Modular en Solaris

 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

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

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

JRA 2009

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

computadora

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

virtuales, permite a una VM correr dentro de diferentes plataformas


(host) de mquinas virtuales

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Modelos de Sistema

Para-virtualizacin
 Presenta invitados con un sistema similar pero no idntico hardware

Mquina virtual

Mquina no virtual

 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

procesos

aplicaciones corren en containers


procesos

procesos

procesos

Interfaz de
programacin

kernel
hardware

JRA 2009

kerne
l

kernel

kernel

implementacin de la
mquina virtual

hardware

Sistemas Operativos Estructura de Sistemas Operativos

43

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Solaris 10 con Dos Containers

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

Arquitectura de VMware

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

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




JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

Dispara pruebas cuando se ejecuta el cdigo, capturando el estado de


los datos y enviandolos a los consumidores de esas pruebas
Sistemas Operativos Estructura de Sistemas Operativos

Generacin de Sistemas (SYSGEN)

Dtrace en Solaris 10 siguiendo un System Call

 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.

Sistemas Operativos Estructura de Sistemas Operativos

JRA 2009

JRA 2009

Sistemas Operativos Estructura de Sistemas Operativos

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

JRA 2009

es usado para contener el cdigo inicial de boot

Sistemas Operativos Estructura de Sistemas Operativos

Fin del Mdulo 2

Mdulo 2

50

También podría gustarte