You are on page 1of 46

Captulo 2: Estructuras sistema operativo

Operating System Concepts with Java 7th Edition, Nov 15, 2006

Silberschatz, Galvin and Gagne 2007

Captulo 2: Estructuras sistema operativo


Servicios del sistema operativo Interfaz de usuario del sistema operativo Llamadas al sistema Tipos de llamadas al sistema Programas del sistema Diseo e implementacin del sistema operativo Estructura del sistema operativo Mquinas virtuales Generacin del sistema operativo Inicio del sistema

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Objetivos

Describir los servicios provistos a usuarios, procesos y otros sistemas por el sistema operativo Discutir las distintas formas de estructurar un sistema operativo Explicar como se instalan y configuran los sistemas operativos y cmo inician

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Servicios del sistema operativo

Servicios provistos por el SO (usuarios): Interfaz de usuario Casi todos los sistemas operativos tienen una IU Las hay de lnea de comandos (CLI), grficas (GUI), batch Ejecucin de programas El sistema debe ser capaz de cargar un programa en memoria y ejecutarlo, terminar ejecucin ya sea de manera normal o anormal (indicando un error) Operaciones E/S - Un programa en ejecucin puede requerir E/S, que puede involucrar un archivo o dispositivo de E/S. Manipulacin del sistema de archivos - Los programas necesitan leer y escribir archivos y directorios, crearlos y borrarlos, buscarlos, listar informacin acerca de ellos, manejar sus permisos.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Servicios de sistemas operativos (Cont.)

Servicios provistos por el SO (usuarios): Comunicaciones Los procesos pueden intercambiar informacin, en la misma computadora o entre computadoras distintas en una red Puede utilizar memoria compartida o paso de mensajes (paquetes que mueve el SO) Deteccin de errores SO siempre atento a posibles errores Puede ocurrir en el hardware de la memoria o el CPU, en dispositivos de E/S, en programas de usuario Para cada tipo de error, SO debe tomar la accin apropiada para asegurar cmputo consistente y correcto Herramientas de depurado pueden mejorar enormemente las habilidades de usuarios y programadores para utilizar el sistema eficientemente

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Servicios del sistema operativo (Cont.)

Servicios provistos por el SO (operacin eficiente - compartir recursos): Asignacin de recursos Cuando varios usuarios o trabajos se ejecutan concurrentemente, deben asignarse recursos a cada uno de ellos Muchos tipos de recursos - Algunos (como ciclos de CPU, memoria principal y almacenamiento para archivos) pueden incluir cdigo especial de asignacin, otros (dispositivos de E/S) pueden utilizar cdigo general de solicitud y liberacin. Contabilidad Para mantener registro de qu usuarios utilizan qu tanto de los recursos del sistema Proteccin y seguridad Los dueos de informacin almacenada en una computadora multi-usuario o en red deben controlar el uso de esa informacin, procesos concurrentes no deben interferir entre ellos Proteccin asegurar que todo acceso al sistema es controlado Seguridad del sistema de ajenos requiere autenticacin de usuarios, se extiende para defender dispositivos de E/S externos de intentos invlidos de acceso Si hemos de proteger y asegurar el sistema completo, debemos instalar precauciones a lo largo y ancho del sistema. Una cadena es tan fuerte, como su eslabn ms dbil.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Linea de comandos SO - CLI


CLI permite el ingreso de comandos
Implementados

en el kernel o por programas

del sistema Pueden ser distintos sabores shells Obtiene el comando del usuario y lo ejecuta Pueden ser incluidos o programas Si son programas, agregar nuevas caractersticas no implica modificar el shell

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Interfaz grfica de usuario SO - GUI

Interfaz amigable, metfora escritorio Usualmente ratn, teclado y monitor conos representan archivos, programas, acciones, etc. Los botones del ratn sobre objetos en la interfaz producen acciones (proveen informacin, opciones, ejecutan funciones, abrir directorios) Inventada en Xerox PARC Muchos sistemas incluyen interfaces CLI y GUI Microsoft Windows es GUI con CLI un shell de comandos Apple Mac OS X, interfaz Aqua GUI con kernel de UNIX tras bambalinas y shells disponibles Solaris es CLI con interfaces GUI opcionales (Java Desktop, KDE) Qu es Linux?

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Llamadas al sistema

Interfaz de programacin para servicios del SO Escritas en lenguajes de alto nivel (C or C++) Se accede a travs de una Interfaz de Programa de Aplicacin (API) Tres APIs comunes: Win32 Windows, POSIX virtualmente todas las variantes de UNIX, Linux, and Mac OS X, y Java mquina virtual de Java (JVM) Por qu utilizar APIs en lugar de llamadas al sistema?

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Ejemplo de llamada al sistema

Secuencia de llamada al sistema para copiar el contenido de un archivo a otro archivo

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Ejemplo de API estndar

Considera el comando read() de Java

byte[] b el buffer en el cul leemos los datos int off el desplazo inicial en b donde leemos los datos int len el nmero mximo de bytes a leer

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Implementacin de llamadas al sistema

Tpicamente hay un nmero asociado con cada llamada Interfaz de llamada al sistema mantiene una tabla indexada de acuerdo a estos nmeros La interfaz invoca la llamada al sistema adecuada en el kernel del SO y regresa su estado y valor de regreso No necesitas saber cmo est implementada Slo obedecer API y entender lo que el SO har como resultado API encapsula los detalles de implementacin Manejados por bibliotecas de soporte en tiempo de ejecucin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Relacin: API Llamada al sistema SO

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Ejemplo de la biblioteca estndar C

Programa invoca la llamada printf(), que llama a write() (llamada al sistema)

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Paso de parmetros llamadas al sistema

Usual se requiera ms informacin que nombre de llamada al sistema Tipo exacto y cantidad de informacin vara dependiendo del SO y la llamada Existen tres mtodos generales para pasar parmetros al SO El ms sencillo: pasar los parmetros en registros Pueden ser ms parmetros que registros Se almacenan los parmetros en un bloque, o tabla en memoria. Direccin del bloque se pasa como parmetro en un registro Linux y Solaris hacen esto Los parmetros se empujan al stack por el programa y son sacados por el SO Los mtodos de bloque y stack no limitan el nmero o longitud de los parmetros que se pasan

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Paso de parmetros en tabla

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Tipos de llamadas al sistema


Control de procesos Manejo de archivos Manejo de dispositivos Mantenimiento de informacin Comunicaciones

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Ejecucin en MS-DOS

(a) Inicio del sistema

(b) ejecutando un programa

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

FreeBSD ejecutando varios programas

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Programas de sistema

Programas de sistema proveen ambiente conveniente para desarrollo y ejecucin de programas. Se dividen en: Manipulacin de archivos Informacin de estado Modificacin de archivos Soporte para lenguajes Cargado y ejecucin de programas Comunicaciones Aplicacin de programas La visin de los usuarios est definida por los programas de sistema (y no por las llamadas al sistema).

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Programas de sistema

Ambiente apropiado para desarrollar y ejecutar programas Algunos interfaces de usuario a las llamadas del sistema; otros son ms complejos Manejo de archivos Crear, borrar, copiar, renombrar, imprimir, vaciado, lista y en general manipular archivos y directorios Informacin de estados Informacin del sistema fecha, hora, memoria disponible, espacio en disco, nmero de usuarios Detalles de rendimiento, bitcoras e informacin de depuracin. Tpicamente, dan formato e imprimen la salida en una terminal o en otro dispositivo de salida Algunos sistemas implementan un registro utilizado para almacenar y recuperar informacin de configuracin

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Programas de sistema (contd)

Modificacin de archivos Editores de texto para crear y modificar archivos Comandos especiales para buscar contenidos de archivos o realizar transformaciones del texto Soporte lenguajes de programacin compiladores, intrpretes, ensambladores y depuradores Cargado y ejecucin de programas Cargadores absolutos, cargadores relocalizables, editores de ligado y sistemas de depurado para lenguajes de alto nivel y de mquina Comunicaciones Mecanismos para crear conexiones virtuales entre procesos, usuarios y computadoras Permiten a los usuarios enviar mensajes a la pantalla de otros, navegar pginas web, enviar mensajes de correo, acceso remoto y transferir archivos de una mquina a otra

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Diseo e implementacin de SO

Disear e implementar un SO es un problema insoluble, pero hay ideas que han probado ser exitosas Estructura interna de distintos SO vara dramticamente Iniciamos por definir metas y especificaciones Afecta la seleccin de hardware y tipo de sistema Metas de usuario y metas de sistema Metas de usuario SO debe ser conveniente, fcil de aprender, confiable, seguro y rpido Metas del sistema SO debe ser fcil de disear, implementar y mantener. Adems: flexible, confiable, libre de errores y eficiente

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Diseo e implementacin del SO (Cont.)

Principios importantes a separar Poltica: Qu se va a hacer? Mecanismo: Cmo se har? Los mecanismos determinan cmo hacer algo, las polticas deciden qu se har Esta separacin ofrece mayor flexibilidad para cambiar polticas ms adelante

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Estructura simple

MS-DOS escrito para proveer la mayor funcionalidad en el menor espacio No tiene mdulos Aunque MS-DOS tiene algo de estructura, sus interfaces y niveles de funcionalidad no estn bien separados

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

MS-DOS estructura en capas

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Enfoque por capas

SO dividido en niveles o capas, cada uno construido sobre los anteriores. Capa ms baja (layer 0), es el hardware; la ms alta, la interfaz de usuario. Las capas utilizan funciones (operaciones) y servicios exclusivamente de capas inferiores

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Sistema operativo por capas

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

UNIX

UNIX SO UNIX original una estructura limitada, con dos partes separadas Programas de sistema Kernel Todo abajo de la interfaz de llamadas al sistema y arriba del hardware Provee: sistema de archivos, CPU scheduling, manejo de memoria y otras operaciones del SO. Demasiadas funciones para una capa.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Estructura del sistema UNIX

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Estructura del sistema de Microkernel


Mueve mucho del kernel al espacio del usuario Comunicacin entre mdulos con paso de mensajes Beneficios: Ms fcil de extender un microkernel Ms fcil portar el SO a otras arquitecturas Ms confiable (menos cdigo se ejecuta en modo kernel) Ms seguro Problemas: Sobrecarga de comunicacin entre los espacios de usuario y kernel

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Estructura de Mac OS X

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Mdulos

La mayora de los SO modernos implementan mdulos de kernel Enfoque orientado a objetos Cada componente base est separado Cada uno habla con los otros a travs de interfaces comunes Cada uno puede cargarse (al kernel) conforme se necesita En general, similar a las capas, pero ms flexible

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Enfoque modular en Solaris

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Mquinas virtuales

Mquina virtual lleva el enfoque de capas a su conclusin lgica: Tratar hardware y el kernel del SO como si ambos fueran hardware Mquina virtual ofrece interfaz idntica para cualquier hardware que est abajo El SO crea ilusin de mltiples procesos, cada uno ejecutando en su propio procesador con su propia memoria (virtual)

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Mquinas virtuales (Cont.)

Los recursos de la computadora fsica se comparten para crear las mquinas virtuales Planificacin de CPU produce ilusin 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 mquina virtual de la consola del operador

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Mquinas virtuales (Cont.)

Mquina no virtual

Mquina virtual

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Mquinas virtuales (Cont.)

Mquina virtual provee proteccin completa de los recursos del sistema: cada mquina virtual est aislada de las dems. Por el aislamiento no pueden compartir recursos directamente. Mquina virtual es un excelente vehculo para hacer investigacin en SO. El desarrollo se lleva a cabo en la mquina virtual, sin afectar la operacin normal del sistema. Mquina virtual es difcil de implementar debido al gran esfuerzo de proveer un duplicado exacto de la mquina.

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Arquitectura de VMware

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Java

Java consiste de Especificacin del lenguaje de programacin Interfaz de programacin de aplicacin (API) Especificacin de mquina virtual:

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

La mquina virtual Java


Portabilidad de Java en varias plataformas

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Ambiente de desarrollo Java

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Java Operating Systems


El sistema operativo JX

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Generacin de sistemas operativos


SO se disean para correr en una clase de mquinas; pero debe configurarse para cada sitio especfico El programa SYSGEN (SYStem GENeration) obtiene informacin sobre configuracin del hardware Booting iniciar una computadora cargando el kernel Programa de bootstrap cdigo almacenado en ROM que puede localizar el kernel, cargarlo en memoria e iniciar su ejecucin Usualmente los cargadores son de varias etapas

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Inicio del sistema (boot)

El SO debe estar disponible (disco duro, live CD, memoria USB, etc.) Pequea pieza de cdigo bootstrap loader, localiza el kernel, lo carga en memoria e inicia A veces es un proceso de dos pasos, donde un bloque de arranque en una localidad fija carga el bootstrap Cuando arranca la computadora, la ejecucin inicia en una posicin fija de memoria Firmware tiene el cdigo inicial de arranque

Operating System Concepts with Java 7th Edition, Nov 15, 2006

2.

Silberschatz, Galvin and Gagne 2007

Fin del Captulo 2

Operating System Concepts with Java 7th Edition, Nov 15, 2006

Silberschatz, Galvin and Gagne 2007

You might also like