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