sistemas operativos
-
Upload
julioramos30 -
Category
Documents
-
view
24 -
download
0
Transcript of sistemas operativos
Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Capítulo 2: Estructuras sistema operativo
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Capítulo 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 Diseño e implementación del sistema operativo Estructura del sistema operativo Máquinas virtuales Generación del sistema operativo Inicio del sistema
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th 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 cómo inician
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th 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 línea de comandos (CLI), gráficas (GUI), batch Ejecución de programas – El sistema debe ser capaz de cargar un
programa en memoria y ejecutarlo, terminar ejecución ya sea de manera normal o anormal (indicando un error)
Operaciones E/S - Un programa en ejecución puede requerir E/S, que puede involucrar un archivo o dispositivo de E/S.
Manipulación del sistema de archivos - Los programas necesitan leer y escribir archivos y directorios, crearlos y borrarlos, buscarlos, listar información acerca de ellos, manejar sus permisos.
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Servicios de sistemas operativos (Cont.) Servicios provistos por el SO (usuarios):
Comunicaciones – Los procesos pueden intercambiar información, en la misma computadora o entre computadoras distintas en una red
Puede utilizar memoria compartida o paso de mensajes (paquetes que mueve el SO)
Detección 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 acción apropiada para
asegurar cómputo 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 ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Servicios del sistema operativo (Cont.)
Servicios provistos por el SO (operación eficiente - compartir recursos): Asignación 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 código especial de asignación, otros (dispositivos de E/S) pueden utilizar código general de solicitud y liberación.
Contabilidad – Para mantener registro de qué usuarios utilizan qué tanto de los recursos del sistema
Protección y seguridad – Los dueños de información almacenada en una computadora multi-usuario o en red deben controlar el uso de esa información, procesos concurrentes no deben interferir entre ellos
Protección asegurar que todo acceso al sistema es controlado Seguridad del sistema de ajenos requiere autenticación de usuarios,
se extiende para defender dispositivos de E/S externos de intentos inválidos 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 eslabón más débil.
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th 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
características no implica modificar el shell
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Interfaz gráfica de usuario SO - GUI
Interfaz amigable, metáfora escritorio Usualmente ratón, teclado y monitor Íconos representan archivos, programas, acciones, etc. Los botones del ratón sobre objetos en la interfaz
producen acciones (proveen información, 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 ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Llamadas al sistema
Interfaz de programación para servicios del SO Escritas en lenguajes de alto nivel (C or C++) Se accede a través de una Interfaz de Programa de
Aplicación (API) Tres APIs comunes: Win32 Windows, POSIX virtualmente
todas las variantes de UNIX, Linux, and Mac OS X, y Java máquina virtual de Java (JVM)
¿Por qué utilizar APIs en lugar de llamadas al sistema?
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th 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 ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Ejemplo de API estándar
Considera el comando read() de Java
byte[] b – el buffer en el cuál leemos los datos int off – el desplazo inicial en b donde leemos los datos int len – el número máximo de bytes a leer
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Implementación de llamadas al sistema
Típicamente hay un número asociado con cada llamada Interfaz de llamada al sistema mantiene una tabla
indexada de acuerdo a estos números La interfaz invoca la llamada al sistema adecuada en el
kernel del SO y regresa su estado y valor de regreso No necesitas saber cómo está implementada
Sólo obedecer API y entender lo que el SO hará como resultado
API encapsula los detalles de implementación Manejados por bibliotecas de soporte en tiempo de
ejecución
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Relación: API – Llamada al sistema – SO
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Ejemplo de la biblioteca estándar C
Programa invoca la llamada printf(), que llama a write() (llamada al sistema)
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Paso de parámetros llamadas al sistema
Usual se requiera más información que nombre de llamada al sistema Tipo exacto y cantidad de información varía dependiendo
del SO y la llamada Existen tres métodos generales para pasar parámetros al SO
El más sencillo: pasar los parámetros en registros Pueden ser más parámetros que registros
Se almacenan los parámetros en un bloque, o tabla en memoria. Dirección del bloque se pasa como parámetro en un registro
Linux y Solaris hacen esto Los parámetros se empujan al stack por el programa y son
sacados por el SO Los métodos de bloque y stack no limitan el número o
longitud de los parámetros que se pasan
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Paso de parámetros en tabla
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Tipos de llamadas al sistema
Control de procesos Manejo de archivos Manejo de dispositivos Mantenimiento de información Comunicaciones
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Ejecución en MS-DOS
(a) Inicio del sistema (b) ejecutando un programa
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
FreeBSD ejecutando varios programas
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Programas de sistema
Programas de sistema proveen ambiente conveniente para desarrollo y ejecución de programas. Se dividen en: Manipulación de archivos Información de estado Modificación de archivos Soporte para lenguajes Cargado y ejecución de programas Comunicaciones Aplicación de programas
La visión de los usuarios está definida por los programas de sistema (y no por las llamadas al sistema).
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th 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 más complejos
Manejo de archivos – Crear, borrar, copiar, renombrar, imprimir, vaciado, lista y en general manipular archivos y directorios
Información de estados Información del sistema – fecha, hora, memoria disponible,
espacio en disco, número de usuarios Detalles de rendimiento, bitácoras e información de
depuración. Típicamente, 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 información de configuración
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Programas de sistema (cont’d) Modificación 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 programación – compiladores, intérpretes,
ensambladores y depuradores Cargado y ejecución de programas – Cargadores absolutos,
cargadores relocalizables, editores de ligado y sistemas de depurado para lenguajes de alto nivel y de máquina
Comunicaciones – Mecanismos para crear conexiones virtuales entre procesos, usuarios y computadoras Permiten a los usuarios enviar mensajes a la pantalla de otros,
navegar páginas web, enviar mensajes de correo, acceso remoto y transferir archivos de una máquina a otra
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Diseño e implementación de SO
Diseñar e implementar un SO es un problema “insoluble”, pero hay ideas que han probado ser exitosas
Estructura interna de distintos SO varía dramáticamente Iniciamos por definir metas y especificaciones Afecta la selección de hardware y tipo de sistema Metas de usuario y metas de sistema
Metas de usuario – SO debe ser conveniente, fácil de aprender, confiable, seguro y rápido
Metas del sistema – SO debe ser fácil de diseñar, implementar y mantener. Además: flexible, confiable, libre de errores y eficiente
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Diseño e implementación del SO (Cont.)
Principios importantes a separar Política: ¿Qué se va a hacer?
Mecanismo: ¿Cómo se hará? Los mecanismos determinan cómo hacer algo, las
políticas deciden qué se hará Esta separación ofrece mayor flexibilidad para
cambiar políticas más adelante
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Estructura simple
MS-DOS – escrito para proveer la mayor funcionalidad en el menor espacio No tiene módulos Aunque MS-DOS tiene algo de estructura, sus
interfaces y niveles de funcionalidad no están bien separados
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
MS-DOS estructura en capas
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Enfoque por capas SO dividido en niveles o capas, cada uno construido
sobre los anteriores. Capa más baja (layer 0), es el hardware; la más alta, la interfaz de usuario.
Las capas utilizan funciones (operaciones) y servicios exclusivamente de capas inferiores
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Sistema operativo por capas
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th 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 ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Estructura del sistema UNIX
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Estructura del sistema de Microkernel
Mueve mucho del kernel al espacio del “usuario” Comunicación entre módulos con paso de mensajes Beneficios:
Más fácil de extender un microkernel Más fácil portar el SO a otras arquitecturas Más confiable (menos código se ejecuta en modo
kernel) Más seguro
Problemas: Sobrecarga de comunicación entre los espacios de
usuario y kernel
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Estructura de Mac OS X
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Módulos
La mayoría de los SO modernos implementan módulos de kernel Enfoque orientado a objetos Cada componente base está separado Cada uno habla con los otros a través de interfaces
comunes Cada uno puede cargarse (al kernel) conforme se
necesita En general, similar a las capas, pero más flexible
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Enfoque modular en Solaris
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Máquinas virtuales
Máquina virtual lleva el enfoque de capas a su conclusión lógica: Tratar hardware y el kernel del SO como si ambos
fueran hardware Máquina virtual ofrece interfaz idéntica para cualquier
hardware que esté abajo El SO crea ilusión de múltiples procesos, cada uno
ejecutando en su propio procesador con su propia memoria (virtual)
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Máquinas virtuales (Cont.)
Los recursos de la computadora física se comparten para crear las máquinas virtuales Planificación de CPU produce ilusión 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 máquina virtual de la consola del operador
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Máquinas virtuales (Cont.)
(a)
Máquina no virtual Máquina virtual
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Máquinas virtuales (Cont.)
Máquina virtual provee protección completa de los recursos del sistema: cada máquina virtual está aislada de las demás. Por el aislamiento no pueden compartir recursos
directamente. Máquina virtual es un excelente vehículo para hacer
investigación en SO. El desarrollo se lleva a cabo en la máquina virtual, sin
afectar la operación normal del sistema. Máquina virtual es difícil de implementar debido al gran
esfuerzo de proveer un duplicado exacto de la máquina.
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Arquitectura de VMware
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Java
Java consiste de Especificación del lenguaje de programación Interfaz de programación de aplicación (API) Especificación de máquina virtual:
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
La máquina virtual Java
Portabilidad de Java en varias plataformas
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Ambiente de desarrollo Java
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Java Operating Systems
El sistema operativo JX
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Generación de sistemas operativos SO se diseñan para correr en una clase de máquinas;
pero debe configurarse para cada sitio específico El programa SYSGEN (SYStem GENeration) obtiene
información sobre configuración del hardware Booting – iniciar una computadora cargando el kernel Programa de bootstrap – código almacenado en ROM
que puede localizar el kernel, cargarlo en memoria e iniciar su ejecución Usualmente los cargadores son de varias etapas
2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Inicio del sistema (boot)
El SO debe estar disponible (disco duro, live CD, memoria USB, etc.) Pequeña pieza de código – 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 ejecución inicia en una posición fija de memoria Firmware tiene el código inicial de arranque
Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Fin del Capítulo 2