sistemas operativos

46
Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Capítulo 2: Estructuras sistema operativo

Transcript of sistemas operativos

Page 1: sistemas operativos

Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Capítulo 2: Estructuras sistema operativo

Page 2: sistemas operativos

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

Page 3: sistemas operativos

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

Page 4: sistemas operativos

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.

Page 5: sistemas operativos

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

Page 6: sistemas operativos

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.

Page 7: sistemas operativos

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

Page 8: sistemas operativos

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?

Page 9: sistemas operativos

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?

Page 10: sistemas operativos

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

Page 11: sistemas operativos

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

Page 12: sistemas operativos

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

Page 13: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Relación: API – Llamada al sistema – SO

Page 14: sistemas operativos

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)

Page 15: sistemas operativos

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

Page 16: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Paso de parámetros en tabla

Page 17: sistemas operativos

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

Page 18: sistemas operativos

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

Page 19: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

FreeBSD ejecutando varios programas

Page 20: sistemas operativos

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

Page 21: sistemas operativos

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

Page 22: sistemas operativos

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

Page 23: sistemas operativos

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

Page 24: sistemas operativos

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

Page 25: sistemas operativos

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

Page 26: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

MS-DOS estructura en capas

Page 27: sistemas operativos

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

Page 28: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Sistema operativo por capas

Page 29: sistemas operativos

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.

Page 30: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Estructura del sistema UNIX

Page 31: sistemas operativos

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

Page 32: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Estructura de Mac OS X

Page 33: sistemas operativos

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

Page 34: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Enfoque modular en Solaris

Page 35: sistemas operativos

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)

Page 36: sistemas operativos

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

Page 37: sistemas operativos

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

Page 38: sistemas operativos

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.

Page 39: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Arquitectura de VMware

Page 40: sistemas operativos

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:

Page 41: sistemas operativos

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

Page 42: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Ambiente de desarrollo Java

Page 43: sistemas operativos

2. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Java Operating Systems

El sistema operativo JX

Page 44: sistemas operativos

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

Page 45: sistemas operativos

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

Page 46: sistemas operativos

Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Fin del Capítulo 2