Download Servicios de los sistemas operativos
Document related concepts
no text concepts found
Transcript
Capitulo 2: Estructuras del sistema operativo Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009 Capitulo 2: Estructuras del sistema operativo Servicios del sistema oeprativo Interface de usuario del sistema operativo Llamadas al sistema (System Calls) Tipos de System Calls Programas de sistemas Diseño e implemntacion de un sistema operativo Estructura del sistema operativo Maquinas virtuales Debug de un sistema operativo Generacion de un sistema operativo Carga (System Boot) Operating System Concepts – 8th Edition 2.2 Silberschatz, Galvin and Gagne ©2009 Objectivos Describir los servicios que un sistema operativo provee a los usuarios, procesos y otros sistemas Discutir las diversas forma que tenemos para implementar los sistemas operativos Explicar como los sistemas operativos se instalan y se hacen unicos para un hardware determinado y como es que estos se cargan o arrancan Operating System Concepts – 8th Edition 2.3 Silberschatz, Galvin and Gagne ©2009 Servicios de los sistemas operativos Un juego de servicios del sistema operativo son de ayuda al usuario: La interface de usuario – Casi todos los sistemas operativos tienen una interface de usuario (UI) Varia desde interface de linea de comando (CLI), a interface grafica de usuario, o ejecucion batch Ejecucion de programa - El sistema debe ser capaz de cargar el programa en la memoria y correr el programa, terminar la ejecucion; sea este el caso en operacion normal o anormal (indicando errores) Operaciones I/O - Un programa que esta corriendo requiere de entradas y salidas (I/O), lo cual puede involucar hacer uso de un archivo o de un dispositivo de I/O Manipulacion del sistema de archivos (file-system) - El file system es de particular interes. Obviamente los programas necesitan leer y escribir archivos en los directorios, crear y borrarlos, buscarlos, listar la informacion de archivos y hacer uso de la politica de acceso (permisos). Operating System Concepts – 8th Edition 2.4 Silberschatz, Galvin and Gagne ©2009 Una vista de los servicios del sistema operativo Operating System Concepts – 8th Edition 2.5 Silberschatz, Galvin and Gagne ©2009 Servicios del sistema operativo Un juego de servicios del sistema opeativo son de ayuda al usuario debido a (Cont): Comunicaciones – Los procesos pueden intercambiar informacion, en el mismo computador o entre computadores conectados a una red Las comunicaciones pueden ser via memoria compartida (shared memory) a traves del paso de mensajes (message passing ) son paquetes que se mueven Deteccion de errores – OS necesita en todo momento estar alerta para detectar posibles errores Errores puede ocurrir que la CPU, memoria, lineas de entrada salida (I/O) , y en los programas de usuario Para cada tipo de errores, el OS debe tomar una accion apropiada para asegurar el calculos computacionales correctos y consistentes Herramientas de debug pueden mejorar grandemente las habilidades de los que programan sobre ese OS de esta manera el trabajo es eficiente Operating System Concepts – 8th Edition 2.6 Silberschatz, Galvin and Gagne ©2009 Servicios del sistema operativo (Cont) Otro juego de funciones del OS existen para asegurar la eficiente operacion del sistema en si …via recursos compartidos Alocacion de recursos (resource allocation) – Cuando multiples usuarios o multiples trabajos corren concurrentemente, recursos deben ser alocados para cada uno de ellos Varios tipos de recursos - Algunos (como CPU, memoria principal, y archivos de almacenamiento) tienen un codigo de alocacion especial, otros (como dispositivos I/O) pueden tener requerimientos generales y codigo libre Accounting – Mantener un registro de que hace cada usuario con el recurso asignad. Proteccion y seguridad – Los dueños de la informacion de plataformas multiusuario o de redes pueden desear controlar el uso de la informacion, procesos concurrentes deberian no interferir con ello Proteccion innvolucra que todos los accesos a los recursos del sistema deben ser controlados Seguridad del sistema frente a extraños. Para ello deben haber mecanismo de autenticacion, tambien deben defenderse los dispositivos I/O de intentos de acceso ilegales Si un sistema va a ser protegido y seguro, hay precausiones que deben ser institucionalizadas. Una cadena es tam fuerte como el mas de sus elabones Silberschatz, Galvin and Gagne ©2009 2.7 Operating System Conceptsdebil – 8th Edition Interface de linea de comando - CLI Interface de linea de comando (CLI) o interprete de comando permite una entrada directa de comando Algunas veces esta implementada en el kernel, algunas veces implementada en los programas de sistema Algunas veces se ha implementado varios tipos de CLI (shells) Lo que hace basicamente es buscar un comando ingresado por el usuario y lo ejecuta – Algunas veces los comandos son parte del kernel y a veces son archivos externos contenidos en carpetas del OS » Al final, adicional nuevas caracteristicas no requiere de modificaciones a la shell Operating System Concepts – 8th Edition 2.8 Silberschatz, Galvin and Gagne ©2009 Interface grafica de usuario - GUI Interface amigable (desktop) similar a lo que tenemos en un escritorio de trabajo Icons representan files, programas, acciones, etc Varios botones del mouse sobre los objetos causan varias acciones (menus de contexto) que sirven para proveer informacion, opciones, ejecutar funciones, abrir directorios (conocidos tambien como carpetas folder) Inventado por Xerox PARC Muchos sistemas ahora incluyen interfaces CLI y GUI Microsoft Windows es una GUI con el “command” que es la CLI (shell) Apple Mac OS X usa “Aqua” como interface GUI con un kernel UNIX como base y shells disponibles Solaris es un CLI con interfaces GUI opcionales (Java Desktop, KDE) Operating System Concepts – 8th Edition 2.9 Silberschatz, Galvin and Gagne ©2009 Bourne Shell Operating System Concepts – 8th Edition 2.10 Silberschatz, Galvin and Gagne ©2009 Mac OS X GUI Operating System Concepts – 8th Edition 2.11 Silberschatz, Galvin and Gagne ©2009 Llamadas a sistema Es programar interfaces para servicios proveidos por el OS Tipicamente estan escritos en lenguajes de alto nivel (C or C++) La mayoria de ellos son accedidos pro programas via APIs Application Program Interface (API) en vez de accesos directos al sistem call en si Las tres APIs mas comunmente usadas son Win32 API para Windows, POSIX API para sistemas basados en POSIX (lo que incluye practicamente todas las versiones de UNIX, Linux, y Mac OS X), y Java API para la maquina virtual Java (JVM) Porque usar los APIs en vez de usar los system calls? Operating System Concepts – 8th Edition 2.12 Silberschatz, Galvin and Gagne ©2009 Ejemplo de un System Call Secuencia de System call que copia el contenido de un archivo en otro Operating System Concepts – 8th Edition 2.13 Silberschatz, Galvin and Gagne ©2009 Ejemplo de un API Considere la funcion ReadFile() en Win32 API— que es una funcion que permite la lectura de informacion desde un archivo La descripcion de los paramatros pasados a ReadFile() son: HANDLE file—el archivo a ser leido LPVOID buffer—un buffer donde la data debe ser leida y desde donde sera escrita DWORD bytesToRead—el numero de bytes a ser leido en el buffer LPDWORD bytesRead—el numero de bytes leidos en la ultima lectura LPOVERLAPPED ovl—indica si hay se puede usar el archivo mas de una vez Operating System Concepts – 8th Edition 2.14 Silberschatz, Galvin and Gagne ©2009 Implementacion de los System Call Tipicamente, existe un numero asociado a cada system call La interface System-call mantiene una tabla indexada de acuerdo a esos numeros La interface de un “system call” trata de invoca al codigo dentro del kernel y retorna el estatus del “system call” y los valores de retorno (si existen) El programa que invoca al “system call” no requiere saber como se ha implementado Solo necesita respetar los parametros del API y entender que hace el OS para producir un resultado El API oculta al programador varios detallas que emplea para llamar a la interface de OS Manejado por la libreria de soporte (run-time) que es un conjunto de funciones construidas sobre las librearias incluidas con los compiladores Operating System Concepts – 8th Edition 2.15 Silberschatz, Galvin and Gagne ©2009 API – System Call – Relacion con OS Operating System Concepts – 8th Edition 2.16 Silberschatz, Galvin and Gagne ©2009 Ejemplo de una libreria estandard en C Un programa en C invoca a printf() (libreria en C), que a su vez llama al system call “write()” Operating System Concepts – 8th Edition 2.17 Silberschatz, Galvin and Gagne ©2009 Paso de parametros a un “system call” Generalmente cuando se ejecuta un system call hay que pasar valores para lograr una accion determinada sobre unos datos especificos. Pocos system call no requieren de uso de parametros La informacion que producen varia dependiendo del OS y la llamada Tres metodos generales son usados para pasar parametros al OS La mas simple: pasar parametros a traves de los registros En algunos casos, puede ser mas parametros que el numero de registros Parametros almacenados en un block, o tabla, en memoria, y direcciones de bloque son pasados en un regostro Este enfoque lo usa Linux y Solaris Los parametros pueden ser apilados (pushed) en una pila por el programa y son desapilados (popped ) de la pila por el sistema operativo Los metodos de bloque y pila no tienen limites en la cantidad y longitud de parametros que se pasan Operating System Concepts – 8th Edition 2.18 Silberschatz, Galvin and Gagne ©2009 Parametros pasados via tabla Operating System Concepts – 8th Edition 2.19 Silberschatz, Galvin and Gagne ©2009 Tipos de System Calls Control de procesos Manejo de archivo Manejo de dispositivos Mantenimiento de la informacion Comunicaciones Proteccion Operating System Concepts – 8th Edition 2.20 Silberschatz, Galvin and Gagne ©2009 Ejemplos de System Calls Operating System Concepts – 8th Edition 2.21 Silberschatz, Galvin and Gagne ©2009 Ejecucion de MS-DOS (a) Cuando inicia el OS (b) Con un programa corriendo Operating System Concepts – 8th Edition 2.22 Silberschatz, Galvin and Gagne ©2009 Multiples programas corriendo en FreeBSD Operating System Concepts – 8th Edition 2.23 Silberschatz, Galvin and Gagne ©2009 Programas de sistema Los programas de sistema proveen un entorno conveniente para el desarrollo y la ejecucion de programas. Pueden ser divididos en: Manipulacion de archivos (File manipulation) Informacion de estado (Status information) Modificacion de archivo (File modification) Soporte para lenguajes de programacion Carga de programas y ejecucion Comunicaciones Programas de aplicacion Para la mayoria de usuarios la operacion del sistema operativo esta definida por los programas de sistemas y no por los system calls Operating System Concepts – 8th Edition 2.24 Silberschatz, Galvin and Gagne ©2009 Programas de sistemas Proveer un entorno conveniente para el desarrollo de programas y su ejecucion Algunos de ellos son simplemente interfaces de usuarios hacia system calls; otros son considerablemente mas complejos File management - Crear, borrar, copias, renombrar, imprimir, listar, y generalmente manipular files y directorios Informacion de estado Algunos preguntan al sistema para obtener informacion – fecha, hora, cantidad de memoria disponible, espacio en disco, numero de usuarios Otros proveen informacion para debug, usuarios actuales en el sistema, informacion de rendimiento Tipicamente esos programas formatean e imprimen la salida al terminal y a otros dispositivos de salida Algunos sistemas implementan un registro – usado para almacenar y para obtener informacion de configuracion Operating System Concepts – 8th Edition 2.25 Silberschatz, Galvin and Gagne ©2009 Programas del sistema (cont’d) Modificacion de archivos (File modification) Editores de texto para crear y modificar archivos Comandos especiales para buscar contenidos de archivos Soporte para lenguajes de programacion compilers, assemblers, debuggers e interpretes Programas cargados y ejecutados- Cargadores absolutos, enlazadores, sistemas de debug para lenguajes de alto nivel Communicaciones – Provee el mecanismo para crear conexiones virtuales entre procesos, usuarios y sistemas de computadora Permite a los usuarios enviar mensajes de una a otra pantalla, navegar por el internet, enviar correos electronicos, acceso remoto, transferir archivos de una a otra maquina. Operating System Concepts – 8th Edition 2.26 Silberschatz, Galvin and Gagne ©2009 Diseño e implementacion de un sistema operativo No existe una solucion unica para diseñar e implementar OS para hay enfoques que han probado ser exitosos La estructura interna de un OS puede variar ampliamente Se empieza definiendo objetivos y especificaciones Afecta la eleccion de hardware y el tipo de sistema Definir los objetivos de los usuarios y los objetivos de los usuarios Objetivos de los usuarios – los sistemas operativos deben ser convenientes para ser usuados, faciles de ser aprendidos, confiables, seguros y rapidos Objetivos de sistema – el OS debe poder diseñarse, implementarse, mantenerse, asi como ser flexible, confiable, kibre de errores y eficiente Operating System Concepts – 8th Edition 2.27 Silberschatz, Galvin and Gagne ©2009 Diseño e implementacion de un OS (Cont) Importante, separar los principios Politica (Policy): Que debe ser hecho? Mecanismos (Mechanism): Como debe ser hecho? Los mecanismos determinan como hacer las cosas, las politicas determinan que y cuando seran hechos La separacion de la politica de los mecanismos es un principio muy importante, eso permite maxima flexibilidad si es que las decisiones de la politica son cambiadas despues Operating System Concepts – 8th Edition 2.28 Silberschatz, Galvin and Gagne ©2009 Estructura simple MS-DOS – escrito para proveer la mayor funcionalidad posible en el espacion mas pequeño No se dividio en modulos Pese a que MS-DOS tiene alguna estructura, sus interfaces y niveles de funcionalidad no estan bien separados Operating System Concepts – 8th Edition 2.29 Silberschatz, Galvin and Gagne ©2009 Estructura de capas MS-DOS Operating System Concepts – 8th Edition 2.30 Silberschatz, Galvin and Gagne ©2009 Enfoque basado en capas El sistema operativo se divide en un numero de capas (niveles), cada capa se construye encima de las capas inferiores. La capa mas baja o base (capa 0), es el hardware; la capa mas alta (capa N) es la interface de usuario. Con modalidad, las capas son construidas de tal manera que cada una usa solo sus funciones (operaciones) y servicios de las capas inferiores. Operating System Concepts – 8th Edition 2.31 Silberschatz, Galvin and Gagne ©2009 Estructura tradicional de un Sistema UNIX Operating System Concepts – 8th Edition 2.32 Silberschatz, Galvin and Gagne ©2009 UNIX UNIX – limitado por las funcionalidades del hardware, el UNIX original tenia una estructura bastante limitada. El OS UNIX consistia de dos partes separadas Programas de sistema El kernel Consiste de todas las cosas que estan debajo de la interface de los system-call y que esta por encima del hardware Provee el file system, administracion del CPU, manejo de memoria, y otras funciones del sistema operativo Operating System Concepts – 8th Edition 2.33 Silberschatz, Galvin and Gagne ©2009 Sistema Operativo basado en capas Operating System Concepts – 8th Edition 2.34 Silberschatz, Galvin and Gagne ©2009 Estructura de un sistema microkernel Mueve todo lo posible desde el kernel hacia el espacion de usuario La comunicaciones toma lugar entre los modulos de usuario usando paso de mensajes Beneficios: Facil de extender el microkernel Facil de llevar el OS a nuevas arquitecturas Mas confiables (menos codigo esta corriendo en modo kernel) Mas seguro Problemas: Rendimiento baja por el overhead de la comunicacion del espacio de usuario hacia el espacio del kernel Operating System Concepts – 8th Edition 2.35 Silberschatz, Galvin and Gagne ©2009 Estrcutura Mac OS X Operating System Concepts – 8th Edition 2.36 Silberschatz, Galvin and Gagne ©2009 Modulos Los sistemas operativos modernos implementan modulos kernel Efoque usando orientacion a objetos Cada componente del core es separado Cada componente puede hablar con otro componente siempre y cuando use las interfaces conocidas Cada componente es cargable si es necesario dentro del kernel En general, este enfoque es parecido al enfoque por capas pero es mas flexible Operating System Concepts – 8th Edition 2.37 Silberschatz, Galvin and Gagne ©2009 Enfoque modular Solaris Operating System Concepts – 8th Edition 2.38 Silberschatz, Galvin and Gagne ©2009 Maquinas virtuales Una virtual machine toma el enfoque por capas para funcionar. El trata el hardware y al sistema operativo como si todo fuera hardware Una maquina virtual provee una interface identica a la que provee el hardware al sistema operativo El sistema operativo host crea la ilusion que el proceso tiene su propio procesador y memoria virtual Cada guest proveido con una copia (virtual) de la computadora Operating System Concepts – 8th Edition 2.39 Silberschatz, Galvin and Gagne ©2009 Maquinas virtuales historia y beneficios Al principio aparecieron comercialmente en los mainframes de IBM en 1972 Fundamentalmente, multiple ejecucion de entornos (diferentes sistemas operativos) pueden compartir el mismo hardware Algunos pueden compartir archivos Puede comnutarse de una a otro Muy utiles para desarrollo y pruebas de nuevo software “Open Virtual Machine Format”, la existencia de un formato hace posible que una VM pueda correr en diferentes VM Operating System Concepts – 8th Edition 2.40 Silberschatz, Galvin and Gagne ©2009 Maquinas virtuales (Cont) Non-virtual Machine Virtual Machine (a) Nonvirtual machine (b) virtual machine Operating System Concepts – 8th Edition 2.41 Silberschatz, Galvin and Gagne ©2009 VMware Architecture Operating System Concepts – 8th Edition 2.42 Silberschatz, Galvin and Gagne ©2009 The Java Virtual Machine Operating System Concepts – 8th Edition 2.43 Silberschatz, Galvin and Gagne ©2009 Debug de un sistema operativo Debugging es encontrar y solucionar errores o bugs OSes generan log files que contienen informacion de errores La falla de una aplicacion puede generar core dump que es un archivo que captura la memoria del proceso La falla de un sistema operativo puede generar crash dump que es un arvhivo que contiene la memoria del kernel Dtrace en Solaris, FreeBSD, Mac OS X permite instrumentacion de un sistema en produccion Operating System Concepts – 8th Edition 2.44 Silberschatz, Galvin and Gagne ©2009 Solaris 10 dtrace Following System Call Operating System Concepts – 8th Edition 2.45 Silberschatz, Galvin and Gagne ©2009 Generacion de un sistema operativo Los sistemas opeartivos son diseñados para correr en cualquier clase de maquina: el sistema de ser configurado para cada maquina especifica El programa SYSGEN obtiene informacion concerniente a la configuracion especifica del hardware de sistema Booting – arranque de la computadora que empieza por la carga del kernel Bootstrap program – codigo almacenado en la ROM que es capaz de localizar el kernel, cargarlo en la memoria y empezar su ejecucion Operating System Concepts – 8th Edition 2.46 Silberschatz, Galvin and Gagne ©2009 System Boot El sistema operativo debe estar disponible para el hardware, entonces el hardware debe empezarlo a correr Bootstrap loader, es una pieza de programa pequeña que localiza el kernel, lo carga en la memoria y lo empieza Algunas veces es un proceso de dos pasosdonde boot block esta localizado en una posicion fija Cuando el sistema arranca, la ejecucion empieza en una posicion fija de memoria El firmware almacena el codigo inicial de boot Operating System Concepts – 8th Edition 2.47 Silberschatz, Galvin and Gagne ©2009 End del capitulo 2 Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009