Publicado el 7 de Agosto del 2020
910 visualizaciones desde el 7 de Agosto del 2020
1,5 MB
9 paginas
Creado hace 14a (23/08/2010)
Estructura del Sistema
Operativo
Módulo 2
Estructuras de Sistemas Operativos
Servicios de Sistemas operativos
Interfaz de Usuario del Sistema Operativo
Llamadas a Sistema
Tipos de Llamadas a Sistema
Programas de Sistemas
Diseño e Implementación de un Sistema Operativo
Estructura de un Sistema Operativo
Máquinas Virtuales
Depuración de un Sistema Operativo
Generación de un Sistema Operativo
Boot del Sistema
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Objectivos
Servicios del Sistema Operativo
Describir los servicio de un sistema operativo que
se ofrecen a usuarios, procesos y otros sistemas.
Discutir las distintas formas de estructurar un
sistema operativo.
Explicar como son instalados los sistemas
operativos, personalizados y como se inician.
Un conjunto de servicios del SO proveen funciones que son útiles al
usuario:
Interfaz de Usuario – Casi todos los SOs tienen una interfaz de usuario
(UI)
Varían entre Command-Line (CLI), Graphics User Interface (GUI),
Batch
Ejecución de Programas- El sistema debe poder cargar un programa en
memoria y ejecutarlo, terminarlo en forma normal o anormal (indicando
el error).
Operaciones de E/S - Un programa ejecutando puede requerir E/S, las
cuales pueden involucrar un archivo o un dispositivo de E/S.
Manipulación del Sistema de Archivos - El sistema de archivos es de
particular interés. Obviamente el programa necesita leer y escribir
archivos y directorios, crearlos y borrarlos, borrarlos, listar información
de archivos y la administración de permisos.
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Una Visión de los Servicios de un Sistema Operativo
Servicios del Sistema Operativo (Cont)
Un conjunto de servicios de SO provee funciones que son útiles al
usuario (Cont):
Comunicaciones – Los procesos pueden intercambiar información, en
la red
Las comunicaciones pueden ser vía memoria compartida o por
medio de pasaje de mensajes (los paquetes son movidos por el SO)
Detección de errores – Los SOs necesitan estar constantemente al
margen de errores.
Pueden ocurrir en la CPU y hardware de memoria, en dispositivos
de E/S, en programas de usuario
Para cada tipo de error el SO toma la operación apropiada para
asegurar una computación correcta y consistente
Las facilidades de depuración pueden mejorar las habilidades del
usuario y programador para hacer eficiente el uso del sistema.
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Servicios del Sistema Operativo (Cont)
Servicios del Sistema Operativo (Cont)
Otro conjunto de funciones del SO existen para asegurar una
Otro conjunto de funciones del SO existen para asegurar una
operación eficiente del propio sistema vía recursos
compartidos.
Alocación de Recursos – Cuando corren
concurrentemente múltiples usuarios o múltiples tareas los
recursos deben ser alocados a cada uno de ellos.
Muchos tipos de recursos - Algunos (tales como ciclos
de CPU, memoria principal y almacenaje de archivos )
pueden tener código especial de alocación, otros (como
dispositivos de E/S) pueden tener código general de
requerimiento y liberación.
Contabilidad – Lleva la pista como, cuanto y que clases de
recursos de computadora usan los usuarios.
operación eficiente del propio sistema vía recursos
compartidos.
Protección y seguridad – Los propietarios de la
información almacenada en sistema de computadoras
multiusuarios o de red pueden querer controlar el uso de
esa información, los cprocesos concurrentes no deben
interferir uno con otro.
Protección implica asegurar que todos los accesos a
recursos del sistema están controlados.
Seguridad del sistema frente a los de afuera requiere
autenticación, extensión para defender los dispositivos
externos de E/S de intentos de accesos no válidos.
Si un sistema debe ser protegido y seguro, deben ser
tomadas precauciones pues una cadena es tan fuerte
como el más débil de los eslabones.
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Interfaz de Usuario del Sistema Operativo - CLI
Interfaz de Usuario Gráfica del Sistema Operativo - GUI
La interfaz de líneas de comando (Command Line Interface - CLI)
o intérprete de comando permite entrar comandos en forma
directa
Algunas veces implementadas en el kernel, otras como
programas de sistema
A veces múltiples variantes – shells
En primer lugar espera un comando del usuario y luego
lo ejecuta
– Algunas veces están embebidos, otras son solo
nombres de programas
» En este último caso, agregar nuevas
características no requiere modificaciones en la
shell.
Interfaz desktop “amigable”
Usualmente mouse, teclado y monitor
Los Iconos representan archivos, programas, acciones, etc
Varios botones del mouse sobre objetos en la interfaz causa varias
acciones (proveen información, opciones, ejecuta funciones, abre
directorios (conocidos como carpetas o folder)
Inventada por Xerox PARC
Casi todos los sistemas incluyen interfaces CLI y GUI
Microsoft Windows es GUI con una CLI que es una shell de “comando”
Apple Mac OS X como interfaz GUI “Aqua” soportada por un kernel
UNIX por debajo y sus shells disponibles.
Solaris es CLI con una interfaz GUI opcional (Java Desktop, KDE)
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Intérprete de Comando Bourne Shell
La GUI Mac OS X
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Llamadas al Sistema
Ejemplo de Llamada a Sistema
Son la interfaz de programación a los servicios provistos por el SO
Llamada a sistema para copiar el contenido de un archivo a otro.
Tipicamente escritas en lenguajes de alto nivel (C o C++)
Mayoritariamente accedidas por programas vía Application
Program Interface (API) más que por el uso llamadas a sistema
directas
Las tres API más comunes son Win32 para Windows, POSIX API
para sistemas POSIX (incluyendo virtualmente todas las versiones
de UNIX, Linux, y Mac OS X), y Java API para la máquina virtual
Java (JVM)
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Ejemplo de una API Standard
Implementación de Llamadas a Sistema
Considere la función ReadFile() en la Win32 API—una función para leer de un
archivo
Una descripción de los f the parámetros pasados a ReadFile()
HANDLE file—el archivo a ser leído
LPVOID buffer—un buffer donde el dato será leído y previamente escrito
DWORD bytesToRead— el número de bytes a ser leídos en el buffer
LPDWORD bytesRead— el número de bytes leídos durante la última lectura
LPOVERLAPPED ovl—indica si es usada una E/S solapada
Tipicamente se asocia un número con cada llamada al sistema
La interfaz de las llamadas a sistema mantiene una tabla indexada de
acuerdo con estos números
La interfaz de las llamadas a sistema invoca la llamada a sistema entendida
en el kernel del SO y retorna el estado de la llamada a sistema y retorna
algún valor
El llamador no necesita conocer nada acerca de como está implementada
la llamada a sistema
Solo necesita invocar la API y entender lo que hará el SO como
resultado de la llamada
La mayoría de los detalles de la interfaz del SO están escondidos para
el programador por la API
Manejada por librerías run-time (conjunto de funciones construídas
en librerías incluídas con el compilador)
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Relación API – Llamada a Sistema del SO
Ejemplo de Librería Standard C
Un programa C invocando la llamada de librería printf(), la cual llama
a la llamada a sistema write()
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Pasaje de Parámetros en Llamadas a Sistema
Parámetros Pasados vía Tabla
Frecuentemente es requerida más información que simplemente identificar
la llamada a sistema deseada.
El tipo exacto y la cantidad de información varía de acuerdo al SO la
llamada
Se usan tres métodos para pasar parámetros al SO
El más simple: pasar los parámetros en registros
En algunos casos, puede haber más parámetros que registros
Parámetros almacenados en un bloque, o tabla, en memoria, y la
dirección del bloque pasada como parámetro en un registro.
Es así en Linux y Solaris
Parámetros ubicados , o pushed, en un stack por el programa y popped
del stack por el SO.
Lo métodos por bloque y stack no limitan el número de parámetros a
ser pasados
X
registro
X: parámetros
load @X
system call 13
se usan los
parámetros
desde la
tabla X
código para
system call
13
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Programa de
usuario
Sistema operativo
Tipos Llamadas a Sistema
Examples of Windows and Unix System Calls
Control de procesos
Administración de archivos
Administración de dispositivos
Mantenimiento de Información
Comunicaciones
Protección
Blue box from page 51
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
JRA © 2009
Sistemas Operativos – Estructura de Sistemas Operativos
Ejecución MS-DOS
Múltiples Progr
+
Comentarios de: Estructura del Sistema Operativo (0)
No hay comentarios