You are on page 1of 20

Capítulo 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:

Línea de Comandos,

Interface gráfica 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 ejecución, 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 información y cambiar los permisos

Por qué es necesario que los SO provean de Interfaces directas a los usuarios para
solicitarle servicios? Cómo se llama esa interfaz?
Qué diferencias encuentra entre la línea de comandos y una GUI?
Cuales son los pasos que realiza un SO para poner en ejecución 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

placas de red. no deberían interferirse entre ellos  Protección: se trata de asegurarse que todos los accesos a los recursos del sistema deberían ser controlados  Seguridad: para protegerse de los posibles intrusos. se debería extender a defender los dispositivos de comunicación externa (modems. que aquí se enuncian con los de la diapositiva anterior? Operating System Concepts – 8th Edition 2.) de los intentos de acceso ilegal En qué se diferencian la forma en que se activan los servicios. y almacenamiento de archivos) pueden tener código de asignación especial. los recursos deben ser asignados en orden y uno por vez  Muchos tipos de Recursos: Algunos (Tales como los ciclos de CPU. etc. pueden querer controlar el uso de esa información. ahora como Administrador de Recursos (sirven para el sistema). Por ejemplo. Así que todo usuario del sistema debería autenticarse.Los Servicios de un Sistema Operativo  • Otro grupo de funciones de un SO. Galvin and Gagne ©2009 . memoria principal. cuando se trate de trabajar con recursos compartidos  Asignación de Recursos: Cuando múltiples usuarios o múltiples procesos de usuario ejecuten concurrentemente. los procesos. Además. existe para asegurar operaciones correctas. 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 cuánto de ello  Protección y seguridad: Los propietarios (dueños) de la informaciòn almacenada en un sistema multiusuario o en una red de computadoras.3 Silberschatz.

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 ubicación del SO es correcta en este esquema? Operating System Concepts – 8th Edition 2. Galvin and Gagne ©2009 .4 Silberschatz.

Galvin and Gagne ©2009 . no con las llamadas al sistema Dónde ubicaría los programas del sistema en el diagrama de la diapositiva anterior? Quién puede pedir la ejecución de estos programas del sistema? Desde qué interface? Operating System Concepts – 8th Edition 2.5 Silberschatz.Programas del Sistema   • • • Los programas del Sistema proveen de un entorno conveniente para desarrollar programas y ejecutarlos. Ellos pueden dividirse en:  Manejo de archivos  Información de estado  Modificación de archivos  Soporte para lenguajes de programación  Carga y ejecución de programas  Comunicaciones (a máquinas remotas)  Programas de aplicación Muchas de las visiones de usuario se definen con los programas del sistema.

6 Silberschatz. 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. Galvin and Gagne ©2009 .  3 de las APIs más comunes son:   Win32 API for Windows. existe una interface de programación. se refiere esta diapositiva? Cómo se puede acceder a estos servicios? Qué diferencia hay con los servicios que se ofrecen en una shell? Operating System Concepts – 8th Edition 2. Linux.Interface de usuario  Para acceder a los servicios de un Sistema Operativo. y Mac OS X)  Java API para la máquina 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 genéricas) • • • A qué tipo de usuario.  POSIX API para sistemas basados en POSIX (incluidas todas las versiones de UNIX.

se asocia un número con cada llamada al sistema  Las interfaces de llamadas al sistema mantienen una tabla indexada de acuerdo a estos números  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. Galvin and Gagne ©2009 .Implementación de una System Call   Típicamente. 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. no necesita saber nada acerca de cómo se implementa la llamada  Sólo tiene que saber cómo 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 librería de tiempo de ejecución (conjunto de funciones integradas en librerías incluidas con el compilador) • Qué son las APIs.

Galvin and Gagne ©2009 . Dónde está el SO? • Dónde se deja los parámetros de la llamada que se pide? Operating System Concepts – 8th Edition 2. System Call y el SO • En este diagrama.8 Silberschatz. identifique las APIs.Relación entre las API.

9 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.

…). A. …).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(…. call(…). trap send/receive return. …). Copyright © 2004 Pearson Education. . Inc. B. B. … send(…. receive(…A. …). receive(….

Inc.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.

confiable. así como también flexible. varía enormemente  Se comienza por definir las metas y las especificaciones  Está relacionado directamente con la elección del Hardware y tipos de aplicaciones que se ejecutarán  Las metas de usuario y las metas del sistema  Las metas del usuario: un sistema operativo debería convenir usarlo. con la política. confiable. si las decisiones políticas serán cambiadas más tarde. pero algunos enfoques han demostrado su eficacia  La estructura interna de los diferentes sistemas operativos. fácil de aprender. Galvin and Gagne ©2009 . Por qué es difícil el diseño y la implementación de un SO de propósitos generales? Por qué es importante la elección del hardware donde se ejecute un SO? Por qué es importante que la política y el mecanismo estén separados? Ubique en qué parte de la estructura de un SO se deben decidir estos parámetros.Diseño e implementación de un Sistema Operativo  El diseño e implementación de un sistema operativo. seguro y rápido  Las metas del sistema: un sistema operativo debería ser fácil de diseñar. se decide qué se hará  • • • La separación de la política del mecanismo es un principio muy importante. Operating System Concepts – 8th Edition 2. libre de errores y eficiente Hay 2 principios importantes que se deberían separar:   Política: Qué hay que hacer?  Mecanismo: Cómo hay que hacerlo? Con los Mecanismos se trata de identificar la manera de hacer algo. esto permite el máximo de flexibilidad. no es una cuestión ya resuelta. implementar y mantener.12 Silberschatz.

sus interfaces y niveles de funcionalidad no están bien separados MS-DOS: Un único programa en ejecución por vez (no existe el concepto de proceso)  • • • Explique por qué se llama estructura monolítica? 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.Estructura Simple Monolítica  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 módulos  Aunque MS-DOS tiene alguna estructura. Galvin and Gagne ©2009 .13 Silberschatz.

como a MS-DOS. a pesar de que parece mucho más complejo? .Estructura de Kernel Monolítico: UNIX Programas de Usuarios Librerías Nivel de Usuario Nivel de Kernel Interface de "System Call" Subsistema de Archivos Subsistema de Control de Buff. Memoria Device Drivers Control de Hardware Nivel de Hardware Hardware • Explique por qué a UNIX se le dice monolítico. Cache IPC Schedule r Procesos Caracter Bloque Adm.

un gran número de funciones en un solo nivel • Cuáles son las diferencias más notables entre MS-DOS y UNIX? Copyright © 2004 Pearson Education. Inc.UNIX • Limitado por la funcionalidad del hardware. planificación de CPU. el Sistema Operativo UNIX original tenía una estructura limitada. Estaba compuesto de dos partes separadas – Los programas del sistema – El núcleo o kernel • Consiste en todo el código que existe por debajo de la interfaz de llamadas al sistema y por encima del hardware físico • Proporciona el sistema de archivos. y otras funciones del sistema operativo. Slide 3-15 . administración de memoria.

transferir. stacks Señalar pila. listar. canales Leer. enmascarar continuar 3 Procedimientos Segmentos de procedimiento. escribir. La capa inferior (la capa 0). almacenar. . borrar. escribir. restar Registros. Llamar. Señalar. la más alta (la capa N) es la interface con el usuario. buscar 7 Mem. datos. listar. de atención de dispositivos. 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. Con la modularidad. compuertas. Virtual Segmentos y páginas de memoria Leer. teclados. puertos. listar. sumar. liberar. susp. semáforos Esperar. terminar. cada una construida por encima de la capas inferiores.Estructura Jerárquica o por Capas   El sistema operativo está dividido internamente en un número de capas (niveles). reanudar 2 Instrucciones Interprete de microprogramas. borrar. usuarios Procesos de Usuarios Abandonar. 13 Shell Entorno de programación de Usuarios Comandos 12 Proc. buscar 8 Comunicaciones Tuberias o “pipes” Crear. Archivos Archivos Crear. Secundaria Bloques de datos. asignar. discos Crear. borrar. 5 Procesos Primitivos Procesos primitivos. listar. buscar 10 Dispositivos Pantalla. es el hardware. buses Limpiar. suspender 4 Interrupciones Rutinas de manejo de errores. extraer. 6 Mem. buscar 9 Sist. 11 Directorios Directorios Crear. borrar 1 Circuitos Eléctricos qué cree Por que este modelo es mejor que el monolítico? Pero qué problemas tiene? Trate de explicar el funcionamiento de este modelo. volver. Cargar. borrar.

Estructura de Microkernel    • • Aparece con Mach a fines de la década del ‘80 El microkernel implementa las funciones más esenciales del SO:  Codificación dependiente del Procesador y soporte SMP  Administración básica de procesos  Administración de Interrupciones  Manejo de Mensajes El resto del SO es implementado “sobre” este microkernel (Administración de memoria. seguridad) Por qué se denomina microkernel? Por el tamaño? Qué ventajas ofrecen los mensajes. frente a las llamadas al sistema? . comunicaciones. interfases gráficas. de Archivos.

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 características tiene QNX? .

) trabajan en modalidad kernel. Administr. etc. de memoria virtual (MICRO)KERNEL CAPA DE ABSTRACCIÓN DE HARDWARE (HAL) HARDWARE Por qué se considera estructura híbrida? Sist Arch. de Proceso Recurso de llamadas a proced.Windows NT: Arquitectura Híbrida Utiliza una estructura de microkernel modificado  Los “environments” del SO ejecutan en Modo Usuario  Los procesos básicos (Administrador de procesos. Cache Drivers Drivers de red .  Los API’s 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. locales Administr. de Objetos Monitor de referencias de segur. de Mensaje Trampa de Sistema Manipulación de Hardware • Administr. de memoria.  La comunicación entre procesos en modo kernel se realiza a través de llamados a funciones (no mensajes).

Comparación entre estructuras • Muestre ventajas y desventajas de cada tipo .