Está en la página 1de 18

Sistemas Operativos

Estructura del Sistema Operativo

Contenido

• Servicios del sistema operativo


• Interfaz de Usuario del sistema operativo
• Llamadas al sistema
• Tipos de llamadas al sistema
• Programas del sistema
• Estructura del Sistema operativo
• Inicio del sistema

1
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 como inician.

Servicios del Sistema operativo


 Los sistemas operativos proveen un entorno de ejecución de
programas y servicios a los programas y usuarios.
 Un conjunto de servicios provistos por el Sistema Operativo
ayudan a los usuarios:
 Interfaz de usuario. Casi todos los sistemas operativos tienen
una interfaz de usuario(User Interface o UI).
Las hay de varios tipos: Command-Line (CLI), Graphics User
Interface (GUI), Batch
 Ejecución de programas. El Sistema debe ser capaz de cargar
un programa en memoria y ejecutarlo, terminar su 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 dispositivos de E/S.

2
Servicios del Sistema operativo (Cont.)
 Los sistemas operativos proveen un entorno de ejecución de programas y
servicios a los programas y usuarios (Cont.):
 Manipulación del File-system – El Sistema de archivos es de particular
interés. Los programas necesitan leer y escribir archivos y directorios,
poder crearlos, borrarlos, realizar búsquedas, listar información acerca de
ellos, manejar sus permisos.
 Comunicaciones – Los procesos puede intercambiar información en la
misma computadora o entre computadoras de una red.
 Esta comunicación puede ser a través de una memoria compartida o por
intercambio de mensajes (paquetes enviados por el so)
 Detección de errores – El SO está constantemente atento a posibles
errores
 Puede ocurrir en el hardware de memoria o en el CPU, en dispositivos de
E/S o en programas de usuarios.
 Para cada tipo de error, el SO debera tomar la acción apropiada para
asegurar un computo consistente y correcto.
 Facilidades de depuración para los usuarios y programadores, para realizar
un uso eficiente del Sistema.

Servicios del Sistema operativo (Cont.)


 Otro conjunto de funciones del SO existe para asegurar la operación
eficiente del Sistema a través de compartir recursos.
 Asignación de recursos – cuando múltiples usuarios o múltiples jobs se
ejecuten concurrentemente, deben asignarse recursos a cada uno de
ellos.
Mucho tipos de recursos - CPU cycles, main memory, file storage,
dispositivos I/O.
 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 multiusuario o en red deben controlar el uso de esa
información. Procesos concurrentes no deben interferir entre ellos.
Protección asegura que todo acceso a los recursos del Sistema este
controlado.
Seguridad del sistema frente a personas externas que requieran
autentificación de usuarios, se extiende para defender a
dispositivos de E/S externos de intentos inválidos de acceso.

3
Servicios del Sistema operativo - Ejemplo

Interfaz de usuario SO - CLI


CLI o command interpreter permite el ingreso directo de
comandos.
 Algunas veces implementados en el kernel, otras como
programas del Sistema.
 Algunas veces hay distintas implementaciones de
“intérpretes” que se conocen como – shells
 Obtiene el comando del usuario y lo ejecuta.
 Algunas veces son comandos incorporados, otras veces en
programas del Sistema.
Con respecto a este último, agregar nuevas
características no requieren la modificación de la shell.

4
Bourne Shell Command Interpreter

Interfaz de usuario SO - GUI


 Interfaz amigable
Mouse, teclado y monitor
 Íconos representando archivos, programas, acciones, etc.
 Los botones del mouse sobre objetos de la interfaz producen
acciones (obtener información, opciones, ejecutar funciones, abrir
directorios(carpetas).
 Inventada por Xerox PARC.
 Muchos sistemas hoy en día incorporan ambas interfaces CLI y GUI
 Microsoft Windows tiene GUI y CLI “command” shell
 Apple Mac OS X y su GUI “Aqua” (kernel de UNIX) y muchas shells
disponibles.
 Unix y Linux tienen una CLI con varias GUI disponibles
opcionalmente (CDE, KDE, GNOME).

5
Interfaz Touchscreen
 Dispositivos táctiles requieren nuevas
interfaces
 No necesita o no se desea el
Mouse.
 Acciones y selección basado en
gestos.
 Teclado virtual para el ingreso
de texto.
 Comandos de voz

The Mac OS X GUI

6
Llamadas al Sistema (System Call)
 Interfaz de programación para los servicios que ofrece el SO.
 Por lo general escritas en un lenguaje de alto nivel(C o C++).
 Se accede a través de una Application Programming Interface
(API) en lugar de utilizar directamente las llamadas al Sistema.
 Las tres API más comunes son Win32 API para Windows, POSIX
API para sistemas basados en POSIX (incluyendo virtualmente
todas las versiones de UNIX, Linux y Mac OS X), y Java API para
la máquina virtual Java (JVM).

Ejemplo de llamadas al Sistema

 Secuencia de una llamada al Sistema para copiar el contenido de un


archivo en otro.

7
Implementación de una llamada al sistema

 Por lo general hay un número asociado a cada llamada


 La interface de llamadas al sistema mantiene una tabla
indexada con el contenido de estos números.
 La interfaz de la llamada invoca la llamada en el kernel del SO y
retorna el estado de la ejecución de la llamada al sistema y
cualquier posible valor de retorno.
 El que invoca la llamada no necesita saber como esta
implementada la misma.
 Solo llama a la API y deberá entender el formato de respuesta
que pueda retornar el SO.
 Los detalles de como se hace están ocultos al programador.

Relación: API – System Call – SO

8
Tipos de llamadas de sistema
 Control de procesos
 crear proceso, terminar proceso
 terminar, abortar
 cargar, ejecutar
 Obtener atributos del proceso, definir atributos del proceso
 Esperar para obtener tiempo
 Esperar suceso, señalizar suceso
 Asignar y liberar memoria

Tipos de llamadas de sistema

 Manejo de archivos
 create file, delete file
 open, close file
 read, write, reposition
 obtener(get) and establecer(set) atributos de archivo
 Manejo de dispositivos
 dispositivos de solicitud, dispositivo de liberación
 read, write, reposition
 get device attributes, set device attributes

9
Tipos de llamadas de Sistema (Cont.)
 Mantenimiento de información
 obtener la hora o fecha, establecer la hora o la fecha
 obtener datos del Sistema, configurar los datos del sistema
 obtener y configurar los atributos de proceso, archivo o dispositivo
 Comunicaciones
 create, delete communication connection
 enviar, recibir mensajes si el modelo de paso de mensajes a nombre
de host name o nombre de proceso.
From client to server
 El modelo de memoria compartida crea y obtiene acceso a regiones
de memoria.

Tipos de llamadas de Sistema (Cont.)

 Protección
 Controlar el acceso a los recursos
 Obtener y establecer permisos
 Permitir y denegar el acceso de usuario

10
Ejemplos de llamadas en Windows y Unix

Programas del Sistema


 Los programas del Sistema proveen un entorno de desarrollo a
para nuevos programas y su ejecución. Ellos pueden dividirse
en:
 Manipulación de Archivos
 Información de estado, algunas veces almacenada luego de
modificarse el archivo
 Soporte para lenguajes de programación
 Carga y ejecución de programas
 Comunicación
 Servicios en segundo plano(Background)
 Muchas veces desde el punto de vistas de los usuarios, cataloga el
Sistema entero según los programas del Sistema y no por las llamadas al
sistema

11
Programas del Sistema
 Los programas del Sistema proveen un entorno de desarrollo para nuevos
programas y su ejecución.
 Algunas veces se provee de una interfaz de llamadas simple ; otras veces es
una tarea compleja.

 Gestión de archivos
Crear, eliminar, copiar, renombrar, imprimir, depurar, listar y todo lo referido a
archivos y directorios.

 Información de estado
 Algunos preguntan al SO por información - Fecha ,hora, espacio disponible
en memoria, espacio en disco, numero de usuarios, etc.
 Otros proveen información detallada con la performance, logueo y
depuración de información.
 Por lo general, estos programas formatean e imprimen la salida a la
terminal o algún dispositivo de salida.
 Algunos sistemas implementan un registro – usado para almacenar y
recuperar información de configuración.

Programas del Sistema (Cont.)


 Editor de archivos
 Editores de texto para crear y modificar archivos
 Comandos especiales para realizar búsquedas dentro del contenido del
archivo o realizar alguna transformación del texto.
 Soporte a lenguajes de programación – Compiladores, ensambladores,
depuradores e interpretes
 Carga y ejecución de programas – Cargadores absolutos, cargadores
reubicables, editores, depuradores de sistemas para lenguajes de alto
nivel y maquina
 Comunicaciones – Implementan mecanismos para crear conexiones
virtuales entre procesos, usuarios y otros sistemas.
 Permite a usuarios enviarse mensajes a sus pantallas, navegar páginas
web, enviar correo electrónico, iniciar sesión remotamente, transferir
archivos desde una maquina a otra

12
Programas del Sistema (Cont.)
 Servicios en Segundo plano
 Iniciados al iniciar el Sistema(boot time)
 Algunos finalizan poco después de iniciar
 Otros se mantienen hasta que se apague el equipo
 Proveen chequeo de disco, procesos programados, error de logging, servicios
de impresión
 Se ejecutan en un contexto de usuario, no de Kernel.
 Conocidos como services, subsystems, demonios
 Programas de Aplicación
 No pertenecen al sistema
 Ejecutados por los usuarios
 No son considerados parte del SO
 Ejecutados desde la línea de comandos, click del mouse, etc.

Estructura del Sistema Operativo

 Un SO de propósito general es un gran programa


 Varios caminos para estructurar:
 Estructura simple - MS-DOS
 Mas compleja - UNIX
 En capas - abstracción
 Microkernel – Mach
 Módulos

13
Estructura Simple -- MS-DOS

 MS-DOS – escrito para proveer


la mayor funcionalidad en el
menor espacio
 No se divide en módulos
 Aunque MS-DOS tiene algo
de estructura, sus interfaces
y niveles de funcionalidad no
están bien separados.

Mas compleja -- UNIX


UNIX – limitado por funcionalidades del hardware, el SO UNIX
original tenia una estructura limitada, con dos partes
separadas:
 Programas del sistema
 El kernel
Todo lo que esta debajo de la interfaz de llamadas al
Sistema y arriba del hardware.
Provee: Sistema de archivos, planificación de CPU,
manejos de memoria y otras operaciones del SO. Un gran
numero de funciones para una capa.

14
Estructura del Sistema UNIX

Enfoque por capas


 El SO está dividido en niveles o
capas, cada uno construidos
sobre los anteriores. La capa
más baja(layer 0), es el
hardware; la mas alta(layer N)
es la interfaz de usuario.
 Con modularidad, las capas se
seleccionan de tal manera que
cada una utilice
funciones(operaciones) y
servicios exclusivamente de
capas inferiores.

15
Estructura del Sistema de Microkernel
 Mueve mucho del kernel al espacio del “usuario”.
 El SO Mach es un ejemplo de microkernel
 Mac OS X kernel (Darwin) esta basado parcialmente sobre Mach
 La comunicación entre módulos se realiza con el 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.

Estructura del Sistema de Microkernel

Application File Device user


Program System Driver mode

messages messages

Interprocess memory CPU kernel


Communication managment scheduling mode

microkernel

hardware

16
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.
 Linux, Solaris, etc.

Solaris Modular Approach

17
Sistemas Híbridos
 Los actuales SO no usan un solo modelo
 Híbridos combina múltiples enfoques para abordar el
rendimiento, la seguridad, las necesidades de usabilidad.
 Los kernels Linux y Solaris en el espacio de direcciones del kernel,
son monolítico, y además de modular para la carga dinámica de
las funcionalidades.
 Windows principalmente monolítico, además de microkernel
paras diferentes subsistemas personalizables.
 Apple Mac OS X hibrido, capas, Aqua UI mas Cocoa son el entorno
de programación.
 Por debajo esta el kernel que consta de microkernel Mach y BSD
Unix, además de kit de I/O y módulos dinámicamente cargables
(llamados extensiones del kernel ).

Inicio del Sistema (boot)


 Cuando se enciende la computadora, la ejecución inicia en una
posición fija de memoria.
 El Firmware ROM tiene el código inicial de arranque(initial boot code)
 Los SO deben estar especificado para un hardware, por eso el
hardware es quien lo “inicia”
 Unas líneas de código – cargador de arranque(bootstrap loader), esta
almacenado en una ROM o EEPROM , busca el kernel, lo carga en
memoria y lo inicia.
 Algunas veces se requieren dos etapas. Se carga un programa desde
ROM que inicia el cargador de arranque desde un disco.
 Un gestor de arranque conocido(GRUB), permite seleccionar un
kernel desde diferentes discos, versiones y opciones del kernel.
 Al cargar el kernel el Sistema ya se encuentra en ejecución.

18

También podría gustarte