Está en la página 1de 20

Captulo 2: Estructuras de los Sistemas Operativos

Servicios de los SO

Interface de usuario con el SO

Programas del sistema. Llamadas al Sistema

Tipos de llamadas al Sistema

Estructura de un Sistema Operativo

Describir los servicios provistos por un SO a: los usuarios,


procesos y otros sistemas
Mostrar las distintas maneras que se puede estructurar un Sistema
Operativo

Operating System Concepts 8th Edition

2.1

Silberschatz, Galvin and Gagne 2009

Servicios de los Sistemas Operativos

Un grupo de servicios de un SO, provee funciones que ayudan a los usuarios:

Con una Interface de usuario: Casi todos los sistemas operativos tienen una interface de
usuario (UI)

Entre ellas, se conoce:

Lnea de Comandos,

Interface grfica de usuario (GUI) y

los denominados archivos de comandos Batch o Scripts

Para ejecutar programas: El SO debe ser capaz de Cargar un programa dentro de la


memoria y poder ponerlo a ejecutar, hasta que finalice la ejecucin, ya sea normal o
anormalmente (mostrando los errores)

Operaciones de E/S: Un programa puede solicitar operaciones de E/S, que involucran a un


archivo o a un dispositivo de E/S

Manejo de un sistema de archivos: El sistema de archivos tiene una importancia


especial. Todos los programas necesitan leer y escribir archivos y directorios; crearlos y
borrarlos; buscar en ellos; listar informacin y cambiar los permisos

Por qu es necesario que los SO provean de Interfaces directas a los usuarios para
solicitarle servicios? Cmo se llama esa interfaz?
Qu diferencias encuentra entre la lnea de comandos y una GUI?
Cuales son los pasos que realiza un SO para poner en ejecucin un programa de
usuario?
Qu diferencia encuentra entre un archivo y un dispositivo de E/S?

Operating System Concepts 8th Edition

2.2

Silberschatz, Galvin and Gagne 2009

Los Servicios de un Sistema Operativo

Otro grupo de funciones de un SO, ahora como Administrador de Recursos (sirven para el
sistema), existe para asegurar operaciones correctas, cuando se trate de trabajar con
recursos compartidos

Asignacin de Recursos: Cuando mltiples usuarios o mltiples procesos de


usuario ejecuten concurrentemente, los recursos deben ser asignados en orden y
uno por vez

Muchos tipos de Recursos: Algunos (Tales como los ciclos de CPU, memoria
principal, y almacenamiento de archivos) pueden tener cdigo de asignacin
especial, otros (tales como los dispositivos de E/S) pueden tener solicitudes y
liberaciones del tipo general

Contabilidad: Para hacer un seguimiento de qu usuario usa qu tipo de recurso y


cunto de ello

Proteccin y seguridad: Los propietarios (dueos) de la informacin almacenada en


un sistema multiusuario o en una red de computadoras, pueden querer controlar el
uso de esa informacin. Por ejemplo, los procesos, no deberan interferirse entre
ellos
Proteccin: se trata de asegurarse que todos los accesos a los recursos del
sistema deberan ser controlados
Seguridad: para protegerse de los posibles intrusos. As que todo usuario del
sistema debera autenticarse. Adems, se debera extender a defender los
dispositivos de comunicacin externa (modems, placas de red, etc.) de los
intentos de acceso ilegal

En qu se diferencian la forma en que se activan los servicios, que aqu se enuncian


con los de la diapositiva anterior?
Operating System Concepts 8th Edition

2.3

Silberschatz, Galvin and Gagne 2009

Un panorama de los Servicios de los Sistemas Operativos

Funciones
(API)

Identifique en este diagrama los componentes de un SO


Por qu cree que la ubicacin del SO es correcta en este esquema?

Operating System Concepts 8th Edition

2.4

Silberschatz, Galvin and Gagne 2009

Programas del Sistema

Los programas del Sistema proveen de un entorno conveniente para


desarrollar programas y ejecutarlos. Ellos pueden dividirse en:

Manejo de archivos

Informacin de estado

Modificacin de archivos

Soporte para lenguajes de programacin

Carga y ejecucin de programas

Comunicaciones (a mquinas remotas)

Programas de aplicacin

Muchas de las visiones de usuario se definen con los programas del


sistema, no con las llamadas al sistema

Dnde ubicara los programas del sistema en el diagrama de la diapositiva


anterior?
Quin puede pedir la ejecucin de estos programas del sistema?
Desde qu interface?

Operating System Concepts 8th Edition

2.5

Silberschatz, Galvin and Gagne 2009

Interface de usuario

Para acceder a los servicios de un Sistema Operativo, existe una interface de


programacin, que provee el mismo SO

Normalmente escrita en lenguaje de alto nivel como C or C++

Muchas directamente accesibles por los programas en lenguajes de alto nivel o


Application Program Interface (API) en lugar de usar llamadas al sistema.

3 de las APIs ms comunes son:

Win32 API for Windows,

POSIX API para sistemas basados en POSIX (incluidas todas las versiones de
UNIX, Linux, y Mac OS X)

Java API para la mquina virtual de Java (JVM)

Por qu usar APIs en lugar de llamadas al sistema?


(Note que los nombres de las llamadas al sistema usadas en este curso son
genricas)

A qu tipo de usuario, se refiere esta diapositiva?


Cmo se puede acceder a estos servicios?
Qu diferencia hay con los servicios que se ofrecen en una shell?

Operating System Concepts 8th Edition

2.6

Silberschatz, Galvin and Gagne 2009

Implementacin de una System Call

Tpicamente, se asocia un nmero con cada llamada al sistema

Las interfaces de llamadas al sistema mantienen una tabla indexada de acuerdo


a estos nmeros

La interface de la llamada al sistema invoca a una llamada al sistema prevista en


el kernel del SO y retorna el estado de la llamada al sistema y algunos otros
valores

Quien realiza la llamada al sistema, no necesita saber nada acerca de cmo se


implementa la llamada

Slo tiene que saber cmo se debe invocar a la API y entender qu es lo que el
SO har como resultado de esta llamada

Muchos detalles de la interface del SO son ocultadas al programador por la API

Son gestionadas y ayudadas por la librera de tiempo de ejecucin (conjunto de


funciones integradas en libreras incluidas con el compilador)

Qu son las APIs, qu diferencia existe con las llamadas


al sistema (system call)?
Qu conviene? Hacer peticiones con APIs (funciones de
biblioteca) o con llamadas al sistema (System call)
Operating System Concepts 8th Edition

2.7

Silberschatz, Galvin and Gagne 2009

Relacin entre las API, System Call y el SO

En este diagrama, identifique las APIs. Dnde est el SO?


Dnde se deja los parmetros de la llamada que se pide?

Operating System Concepts 8th Edition

2.8

Silberschatz, Galvin and Gagne 2009

Ejemplos de llamadas al sistema en Windows y Unix

Explique brevemente cada llamada al sistema que ofrece


UNIX

Operating System Concepts 8th Edition

2.9

Silberschatz, Galvin and Gagne 2009

Procedure Call and Message Passing


Operating Systems

Slide 3-10

Explique brevemente la diferencia entre llamada al sistema y paso de mensajes:


En la forma de pedir el servicio
En la forma que interviene y se compromete un SO

send(, A, );
receive(, B, );

call();

trap

send/receive

return;

Copyright 2004 Pearson Education, Inc.

receive(A, );

send(, B, );

System Call Using the trap Instruction

Slide 3-11

Explique brevemente las diferencias y similitudes entre


las interrupciones y las llamadas al sistema

fork();

fork() {

trap
N_SYS_FORK()

Trap Table

Kernel

sys_fork()

sys_fork() {
/* system function */

return;
}
Copyright 2004 Pearson Education, Inc.

Diseo e implementacin de un Sistema Operativo

El diseo e implementacin de un sistema operativo, no es una cuestin ya resuelta, pero algunos enfoques han
demostrado su eficacia

La estructura interna de los diferentes sistemas operativos, vara enormemente

Se comienza por definir las metas y las especificaciones

Est relacionado directamente con la eleccin del Hardware y tipos de aplicaciones que se ejecutarn

Las metas de usuario y las metas del sistema

Las metas del usuario: un sistema operativo debera convenir usarlo, fcil de aprender, confiable, seguro y
rpido

Las metas del sistema: un sistema operativo debera ser fcil de disear, implementar y mantener, as
como tambin flexible, confiable, libre de errores y eficiente

Hay 2 principios importantes que se deberan separar:

Poltica: Qu hay que hacer?

Mecanismo: Cmo hay que hacerlo?

Con los Mecanismos se trata de identificar la manera de hacer algo, con la poltica, se decide qu se har

La separacin de la poltica del mecanismo es un principio muy importante, esto permite el mximo de
flexibilidad, si las decisiones polticas sern cambiadas ms tarde.

Por qu es difcil el diseo y la implementacin de un SO de propsitos generales?


Por qu es importante la eleccin del hardware donde se ejecute un SO?
Por qu es importante que la poltica y el mecanismo estn separados? Ubique en
qu parte de la estructura de un SO se deben decidir estos parmetros.

Operating System Concepts 8th Edition

2.12

Silberschatz, Galvin and Gagne 2009

Estructura Simple Monoltica

MS-DOS fue escrito para proporcionar la mayor funcionalidad en el menor espacio

Se dise para ejecutar sobre un procesador 8086 (con modo nico)

No est dividido internamente en mdulos

Aunque MS-DOS tiene alguna estructura, sus interfaces y niveles de funcionalidad no estn
bien separados
MS-DOS: Un nico programa en ejecucin por vez (no existe el concepto de proceso)

Explique por qu se llama estructura monoltica?


Qu significa que un procesador tenga modo nico?
Por qu en este esquema aparecen dos capas con el nombre:
device drivers?

Operating System Concepts 8th Edition

2.13

Silberschatz, Galvin and Gagne 2009

Estructura de Kernel Monoltico:


UNIX
Programas de Usuarios
Libreras
Nivel de Usuario
Nivel de Kernel

Interface de "System Call"

Subsistema de Archivos

Subsistema de
Control de

Buff. Cache

IPC

Schedule
r

Procesos
Caracter

Bloque

Adm. Memoria

Device Drivers
Control de Hardware
Nivel de Hardware
Hardware

Explique por qu a UNIX se le dice monoltico, como a MS-DOS, a


pesar de que parece mucho ms complejo?

UNIX

Limitado por la funcionalidad del hardware, el Sistema Operativo UNIX


original tena una estructura limitada. Estaba compuesto de dos partes
separadas
Los programas del sistema
El ncleo o kernel
Consiste en todo el cdigo que existe por debajo de la interfaz de
llamadas al sistema y por encima del hardware fsico
Proporciona el sistema de archivos, planificacin de CPU,
administracin de memoria, y otras funciones del sistema operativo;
un gran nmero de funciones en un solo nivel

Cules son las diferencias ms notables entre MS-DOS y UNIX?

Copyright 2004 Pearson Education, Inc.

Slide 3-15

Estructura Jerrquica o por Capas

El sistema operativo est dividido internamente en un nmero de capas (niveles), cada una
construida por encima de la capas inferiores. La capa inferior (la capa 0), es el hardware; la
ms alta (la capa N) es la interface con el usuario.
Con la modularidad, las capas se seleccionan de manera que cada una utiliza las funciones
(operaciones) y servicios de nicamente la capa inferior
Nivel

Nombre

Objeto

Ejemplo Op.

13

Shell

Entorno de programacin de Usuarios

Comandos

12

Proc. usuarios

Procesos de Usuarios

Abandonar, terminar, susp.

11

Directorios

Directorios

Crear, borrar, listar, buscar

10

Dispositivos

Pantalla, teclados, puertos, discos

Crear, borrar, listar, buscar

Sist. Archivos

Archivos

Crear, borrar, listar, buscar

Comunicaciones

Tuberias o pipes

Crear, borrar, listar, buscar

Mem. Virtual

Segmentos y pginas de memoria

Leer, escribir, extraer.

Mem. Secundaria

Bloques de datos, canales

Leer, escribir, asignar,


liberar.

Procesos
Primitivos

Procesos primitivos, semforos

Esperar, Sealar, suspender

Interrupciones

Rutinas de manejo de errores, de atencin de


dispositivos.

Llamar, enmascarar
continuar

Procedimientos

Segmentos de procedimiento, stacks

Sealar pila, volver,


reanudar

Instrucciones

Interprete de microprogramas, datos.

Cargar, almacenar, sumar,


restar

Registros, compuertas, buses

Limpiar, transferir, borrar

Circuitos
Elctricos
qu
cree

Por
que este modelo es mejor que el monoltico?
Pero qu problemas tiene?
Trate de explicar el funcionamiento de este modelo.

Estructura de Microkernel

Aparece con Mach a fines de la dcada del 80


El microkernel implementa las funciones ms esenciales del SO:

Codificacin dependiente del Procesador y soporte SMP

Administracin bsica de procesos

Administracin de Interrupciones

Manejo de Mensajes
El resto del SO es implementado sobre este microkernel (Administracin de memoria, de
Archivos, interfases grficas, comunicaciones, seguridad)

Por qu se denomina microkernel? Por el tamao?


Qu ventajas ofrecen los mensajes, frente a las llamadas al sistema?

Estructura de Microkernel

Ejemplo Microkernel:
QNX
Proc
C
Proc
B

Adm
de
Red

Proc
A

Interfase
Red

IPC

Planificador
de
CPU

Redirector
IRQ

Red de
Com unicaci n

Interrupciones
Hardware

Averigue que caractersticas tiene QNX?

Windows NT: Arquitectura


Hbrida
Utiliza una estructura de microkernel modificado

Los environments del SO ejecutan en Modo Usuario

Los procesos bsicos (Administrador de procesos, de memoria, etc.) trabajan en


modalidad kernel.

La comunicacin entre procesos en modo kernel se realiza a travs de llamados a


funciones (no mensajes).

Los APIs nativos (System Calls) son aproximadamente 250 (Win32 API)

Aplicaciones

Subsistemas
protegidos

Proceso
de logon

Cliente
OS/2

Cliente
Win32

Cliente
Posix

Subsistema
Posix

Subsistema
OS/2
Subsistema
de seguridad

Subsistema
Win32

User
Mode
Kernel
Mode

Servicios del Usuario


Administrador
de I/O

NT Executive

Transf. de
Mensaje
Trampa de
Sistema
Manipulacin
de Hardware

Administr.
de Objetos

Monitor de
referencias
de segur.

Administr.
de Proceso

Recurso de
llamadas a
proced.
locales

Administr.
de memoria
virtual

(MICRO)KERNEL
CAPA DE ABSTRACCIN DE HARDWARE (HAL)
HARDWARE

Por qu se considera estructura hbrida?

Sist Arch.
Cache
Drivers
Drivers
de red

Comparacin entre estructuras

Muestre ventajas y desventajas de cada tipo

También podría gustarte