Está en la página 1de 46

Silberschatz, Galvin and Gagne 2007

Operating System Concepts with Java 7


th
Edition, Nov 15, 2006
Captulo 2: Estructuras sistema operativo
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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.
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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.
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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?
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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?
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Ejemplo de llamada al sistema
!
Secuencia de llamada al sistema para copiar el contenido de un archivo
a otro archivo
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Relacin: API Llamada al sistema SO
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Ejemplo de la biblioteca estndar C
!
Programa invoca la llamada printf(), que llama a write() (llamada al
sistema)
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Paso de parmetros en tabla
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Tipos de llamadas al sistema
!
Control de procesos
!
Manejo de archivos
!
Manejo de dispositivos
!
Mantenimiento de informacin
!
Comunicaciones
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Ejecucin en MS-DOS
(a) Inicio del sistema (b) ejecutando un programa
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
FreeBSD ejecutando varios programas
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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).
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
MS-DOS estructura en capas
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Sistema operativo por capas
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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.
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Estructura del sistema UNIX
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Estructura de Mac OS X
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Enfoque modular en Solaris
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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)
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Mquinas virtuales (Cont.)
(a)
Mquina no virtual Mquina virtual
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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.
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Arquitectura de VMware
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Java
!
Java consiste de
!
Especificacin del lenguaje de programacin
!
Interfaz de programacin de aplicacin (API)
!
Especificacin de mquina virtual:
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
La mquina virtual Java
Portabilidad de Java en varias plataformas
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Ambiente de desarrollo Java
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Java Operating Systems
El sistema operativo JX
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
2.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
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
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Fin del Captulo 2

También podría gustarte