sistemas operativos - facultad de ingenier­a .en un sistema multiusuario donde se ejecutan...

Download Sistemas Operativos - Facultad de Ingenier­a .En un sistema multiusuario donde se ejecutan procesos

Post on 02-Oct-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Sistemas Operativos

    Curso 2018Estructura de los sistemas

    operativos

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 2/29

    Agenda

    Componentes de un sistema operativo Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura del sistema. Mquinas virtuales.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 3/29

    Componentes de un sistema operativo

    Por su complejidad un sistema operativo debe ser, en su diseo, modularizado en varios componentes: Administracin de procesos. Administracin de memoria. Subsistema de Entrada/Salida. Administracin de almacenamiento secundario. Subsistema de archivos. Subsistema de red. Sistema de proteccin.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 4/29

    Servicios del SO

    El sistema brindar un entorno de ejecucin de programas dnde se dispondr de un conjunto de servicios que sern accesible mediante una interfase bien definida.

    Servicios bsicos que debe brindar un sistema operativo: Ejecucin de programas y administracin de procesos. Operaciones de Entrada/Salida. Manipulacin de sistemas de archivos. Comunicacin entre procesos. Deteccin y manipulacin de errores (excepciones).

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 5/29

    Ejecucin de programas y administracin de procesos El sistema debe ser capaz de cargar un programa a memoria y

    ejecutarlo. Es decir, crear un proceso. Cada proceso cuenta con un contador de programa (PC, program

    counter) que determina la prxima instruccin de cdigo a ejecutar. El proceso necesita de ciertos recursos (CPU, memoria, archivos y

    dispositivos de E/S) para realizar su tarea. El sistema operativo es responsable de las siguientes tareas:

    Mantener que partes de la memoria estn siendo utilizadas y por quin. Decidir cuales procesos sern cargados a memoria cuando exista espacio de

    memoria disponible. Asignar y quitar espacio de memoria segn sea necesario.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 6/29

    Ejecucin de programas y administracin de procesos El sistema albergar muchos procesos compitiendo por los recursos y

    ser el responsable de proveer de medios o servicios para que realicen su tarea: Crear y destruir procesos. Suspensin y reanudacin de procesos. Proveer mecanismos para la cooperacin (sincronizacin) y comunicacin

    entre los procesos. Proveer mecanismos para prevenir la generacin de dead-locks o lograr salir

    de ellos (opcional). El proceso deber poder en algn momento finalizar su ejecucin, ya sea

    de forma normal o anormal (indicando un error).

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 7/29

    Operaciones de entrada/salida

    Un programa en ejecucin necesitar de operaciones de Entrada/Salida para acceder a un archivo o dispositivo.

    Por eficiencia y proteccin los usuarios no accedern directamente al dispositivo.

    El sistema operativo deber encapsular y ocultar las caractersticas especficas de los diferentes dispositivos de almacenamiento y ofrecer mecanismos de acceso comunes para todos los medios de almacenamiento.

    Para ello proveer de: Un conjunto de servicios que provean la interfase con el subsistema e

    implementen tcnicas de cache, buffering y spooling. Una interfase cliente con el sistema operativo para los manejadores de

    dispositivos o device drivers que permitir interactuar (mediante cargas dinmicas o no) con cualquier modelo de dispositivo.

    Device drivers especficos. Montaje y desmontaje (Mount/Dismount) de dispositivo.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 8/29

    Manipulacin del sistema de archivos

    Se deber proveer acceso al sistema de archivos. El sistema operativo es responsable de las siguientes actividades:

    Administrar el espacio libre. Asignacin del lugar de la informacin. Algoritmos de planificacin de disco.

    Proporciona una vista uniforme de todas las formas de almacenamiento en los diferentes dispositivos implementando el concepto de archivo como una coleccin arbitraria de bytes u otras clases o organizaciones ms sofisticadas.

    Implementar los mtodos de: Abrir, cerrar, extender y borrar archivos Leer, escribir archivos Crear y borrar directorios

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 9/29

    Comunicacin entre procesos

    Es deseable que los procesos puedan comunicarse. Se deber proveer mecanismos de comunicacin entre ellos ya sea que

    estn en el mismo computador (a travs de memoria compartida), o en diferentes computadores (a travs de transferencias de paquetes de red entre los sistemas operativos involucrados).

    Tambin debe permitir la sincronizacin de procesos que trabajan en conjunto.

    En el caso de sistemas remotos se generaliza el concepto de dispositivo virtual implementando un manejador (driver) que encapsula el acceso a estos dispositivos.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 10/29

    Deteccin y manipulacin de errores

    El sistema deber tomar decisiones adecuadas ante eventuales errores que ocurran y proveer una interfaz para manejarlos.

    Ejemplos: Fallo en un dispositivo de memoria. Fallo en la fuente de energa. Fallo en un programa.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 11/29

    Otros servicios del SO

    Otros servicios de propsito general que deber brindar el sistema operativo son: Asignacin de recursos. Contabilizacin. Proteccin, manejo de usuarios y permisos.

    Una vez que estn definidos los servicios que brindar el sistema operativo, se puede empezar a desarrollar la estructura del sistema.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 12/29

    Asignacin de recursos

    Cuando hay varios procesos compitiendo por los recursos es importante tener algoritmos eficientes de asignacin

    Cada recurso tiene necesidades y por lo tanto algoritmos diferentes

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 13/29

    Contabilizacin

    Se quiere llevar un registro de que usuarios usan que recursos y en que cantidad

    Permiten dimensionar y evaluar el estado del sistema

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 14/29

    Proteccin, manejo de usuarios y permisos

    En un sistema multiusuario donde se ejecutan procesos en forma concurrente se deben tomar medidas que garanticen la ausencia de interferencia entre ellos.

    Por proteccin nos referimos a los mecanismos por los que se controla al acceso de los procesos a los recursos.

    El mecanismo debe incorporar la posibilidad de definir reglas de acceso y asegurar su verificacin en toda ocasin que corresponda.

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 15/29

    Llamados al sistema

    Los llamados al sistema (system calls) son una interfaz, provista por el ncleo, para que los procesos de usuarios accedan a los diferentes servicios que brinda el sistema operativo.

    Al principio los system calls estaban desarrollados en lenguaje de la arquitectura de la mquina.

    En los sistemas modernos estn programados en lenguajes de programacin de alto nivel como C o C++.

    Los servicios son invocados por los procesos en modo usuario, cuando ejecutan lo hacen en modo monitor, y al retornar vuelven al modo usuario.

    Tpicamente a los system calls se les asocia un nmero que los identifica (en Linux son aproximadamente 350).

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 16/29

    Llamados al sistema

    La llamada a un system call incluye las siguientes tareas: Cargar los parmetros en el lugar adecuado (stack o registros). Cargar el nmero de system call en algn registro especfico (Ej: eax en Intel). Invocar a la interrupcin por software (trap) adecuada (system call handler). El hardware cambia el bit de modo a monitor e invoca al manejador de la

    interrupcin que controla que el nmero de system call pasado en el registro sea menor que el mayor del sistema y, finalmente, invoca al system call correspondiente.

    El valor retornado por el system call es puesto en un registro especfico (Ej.: eax en Intel).

    Se vuelve el sistema a modo usuario y se retorna el control al proceso que invoc la system call (o eventualmente a otro)

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 17/29

    Llamados al sistema

    Existen 3 formas de pasar los parmetros al sistema operativo: A travs de los registros: Se utilizan un conjunto de registros para pasar los

    parmetros. Tiene el problema de la cantidad de parmetros es fija y que restringe el tamao del valor. En Intel se utilizan 5 registros: ebx, ecx, edx, esi, y edi.

    Un bloque de memoria apuntado a travs de un registro. En el stack del proceso que realiza el llamado. El proceso guarda los

    parmetros con operaciones push sobre el stack y el sistema operativo los saca con la operacin pop.

    De la misma forma se pueden recibir los datos de respuesta

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 18/29

    Llamados al sistema

  • Sistemas Operativos | Curso 2018 | Estructura de los sistemas operativos 19/29

    Llamados al sistema

    Los system calls se clasifican

Recommended

View more >