Estructura o arquitectura de los Sistemas Operativos Ing. Carlos Roberto Mejía Objetivos • Aprender acerca de los componentes que conforman un Sistema Operativo. • Conocer la estructura de los componentes de un Sistema Operativo Estructura del sistema de computo. • El S.O esta íntimamente relacionado a los dispositivos o mecanismo de entrada y salida de la computadora. • El S.O se encarga del buen funcionamiento de los diferentes elementos del sistema de computo. 1.Operaciones del sistema de computo. • Un sistema de computo esta compuesto de CPU, y varios manejadores de dispositivos conectados mediante un bus común, que proporciona acceso a la memoria compartida . • Cada dispositivo esta administrado por un controlador. • La CPU y los manejadores de dispositivos pueden operar de manera concurrente compitiendo por ciclos de la memoria, pero dicha memoria cuenta con un controlador para sincronizar el acceso a la misma. Sistema de computo moderno CPU Controlador de impresora Controlador de disco Controladores de unidades de cinta Bus del sistema Controlador de memoria memoria Actividades del s.o Para que la computadora inicie sus operaciones es necesario que contenga: • Programa de arranque inicial. • Funciones: registro de la CPU, controladores, contenidos de la memoria, cargar el kernel del sistema operativo en memoria, cargar el “init” Dentro del funcionamiento del s.o. existen interrupciones generadas por el hardware o generadas por el software, las primeras hacen peticiones de interrupción enviando la señal al CPU, mientras que el software hace directamente la llamada al sistema. Las interrupciones son una parte importante de la arquitectura de una computadora. 2. Estructura de entrada y salida Los controladores tienen una función importante en los diferentes dispositivos conectados en la computadora. Interrupciones de E/S: para iniciar una operación de E/S la CPU carga los registro apropiados dentro del manejador de dispositivos. A su vez, el controlador examina los contenidos de estos registros para determinar que acción tomar. Por ejemplo, si encuentra una solicitud de lectura, el controlador iniciará la transferencia de datos desde el dispositivo hasta su buffer local; una vez que se competa la transferencia de datos, le informa al CPU que ha terminado su operación. • Estructura DMA: considera una unidad simple de entrada por terminal. Cuando se lee una línea desde la terminal, el primer carácter tecleado se envía a la computadora. Cuando se recibe dicho carácter, el dispositivo de comunicación asíncrona al cual esta conectada la línea de la terminal, interrumpe al CPU. Cuando llega la solicitud de interrupción desde la terminal, la CPU esta apunto de ejecutar alguna instrucción (si la CPU se encuentra a la mitad de la ejecución de una instrucción, la interrupción normalmente se mantiene pendiente en espera de la ejecución de la instrucción). La dirección de esta instrucción interrumpida se guarda y el control se transfiere a la rutina de servicio de interrupción para el dispositivo apropiado. 3. Estructura de almacenamiento. Los programas deben estar en la memoria principal o RAM para ser ejecutados. La RAM es la única área grande de almacenamiento a la que el procesador puede tener acceso directamente. Se implementa con una tecnología de semiconductores llamada memoria dinámica de acceso aleatorio DRAM, que forma un arreglo de “palabras” de memoria. Cada “palabra” tiene su propia dirección. La interacción se logra mediante una secuencia de instrucciones load o store a direcciones especificas de memoria. La instrucción load, mueve una “palabra” desde la memoria principal a un registro interno dentro de la CPU, en tanto el store, mueve el contenido de un registro a la memoria principal. Aparte de las cargas (load) y almacenamientos (store) explícitos, la CPU carga en automático instrucciones desde la memoria principal para su ejecución. La mayoría de los sistemas de computo proporcionan un almacenamiento secundario como una extensión de la memoria principal. El requerimiento fundamental para el almacenamiento secundario es que sea capaz de retener grandes cantidades de datos de manera permanente. El dispositivo de almacenamiento secundario mas común es el disco magnético. Aunque hoy en día han surgido alternativas de almacenamiento secundario muy importantes. La memoria principal: la memoria principal y los registros incorporados en el procesador son los únicos medios de almacenamiento a los que la CPU puede tener acceso de manera directa. 4. Jerarquía de almacenamiento Jerarquía de los dispositivos de almacenamiento Almacenamiento caché: • El almacenamiento en cache es un principio importante en los sistemas de computo. • La información se mantiene normalmente en algún sistema de almacenamiento como en la memoria principal. • A medida que se utiliza, se copia en un sistema de almacenamiento mas rápido la caché bajo una base temporal. Cuando se necesita una pieza particular de información, primero se verifica si está en la caché . Si se encuentra, se usa la información de este lugar; si no es así, se utiliza la localizada en el sistema de almacenamiento principal, colocando una copia en la caché bajo la suposición de que existe una alta probabilidad de que volverá a necesitarse. Estructura del sistema operativo. • Un Sistema Operativo está formado por tres capas: el núcleo (core), los servicios y el intérprete de mandatos o Shell. • El núcleo, es la parte del sistema operativo que interacciona directamente con el hardware de la máquina. • Las funciones del núcleo se centran en la gestión de recursos, como el procesador, tratamiento de interrupciones y las funciones básicas de manipulación de memoria. Ejemplo de distribución de un S.O. < Todos los componentes ofrecen una serie de servicios a través de una interfaz llamada sistema; pueden incluir más de una interfaz de servicios. Los programas podrán elegir sobre cual quieren ejecutarse, sin embargo, no podrán mezclar servicios de varias interfaces. En este caso, el sistema operativo presenta al usuario varias máquinas virtuales. También puede incluir intérpretes de mandatos, unos textuales y otros gráficos. Estructura de los sistemas operativos Un sistema operativo es un programa grande y complejo que está compuesto, por una serie de componentes con funciones bien definidas. Cada sistema operativo estructura estos componentes de distinta forma y, en función de esta estructura se clasifican en 2 grupos: Los monolíticos y los estructurados. Sistemas Monolíticos • Son una colección de procedimientos que se pueden llamar entre sí, cada procedimiento tiene una interfaz bien definida en términos de parámetros y resultados. • Está compuesto por un grupo de estructuras fijas. Existen módulos grandes en el kernell, los cuales interactúan entre sí para poder tener una estructura, y las diferentes partes son compiladas por capas. • Se encarga de la comunicación entre procesos, la planificación y la gestión del espacio de direcciones. Sistemas Estructurados En este caso, se utilizan dos tipos de soluciones: sistemas por capas y sistemas cliente-servidor. a) Sistemas por capas Están organizados en forma jerárquica de capas, cada una está compuesta por una interfaz clara y bien definida a la capa superior y solamente utiliza los servicios que le ofrece la capa inferior. La principal ventaja es la modularidad y la ocultación de la información. Una capa no necesita conocer como se ha implementado la capa sobre la que se construye, únicamente necesita conocer la interfaz que ofrece. Con esto, se hace más fácil depurar y verificar el sistema, ya que las capas se pueden ir construyendo y depurando por separado. • A continuación, se listan las capas de las que se componen la estructura del Sistema Operativo: • Capa 0: Asignación del procesador y multiprogramación. • Capa 1: Administración de los recursos del sistema. • Capa 2: Comunicación operador-proceso. • Capa 3: Control E/S. • Capa 4: Programas de usuario. • Capa 5: El operador. b) Modelo cliente-servidor • El enfoque consiste en implementar la mayor parte de los servicios y funciones del sistema operativo en procesos de usuario, dejando solo una pequeña parte del sistema operativo ejecutando en modo núcleo. A esta parte se le denomina micro núcleo y a los procesos que ejecutan el resto de funciones se les denomina servidores. • La ventaja de este modelo es la flexibilidad que presenta. Cada proceso servidor sólo ocupa de una funcionalidad concreta, lo que hace que cada parte pueda ser pequeña y a su vez facilita el desarrollo y depuración de cada uno de los procesos.