domingo, 27 de agosto de 2017

Arquitectura de un Sistema Informatico



Conocer las estructuras/arquitectura de los sistemas operativos actuales desde el punto de vista de la adaptabilidad funcional de los mismos a nuevos servicios y hardware.
Necesitamos estructuras (arquitecturas) que permitan dar soporte a nuevos tipos de aplicaciones y a nuevos dispositivos – sistemas extensibles/adaptables.
Necesitamos construir sistemas seguros, correctos, y robustos.
La arquitectura puede determinar propiedades no funcionales, por ejemplo, QoS (Calidad de Servicios).

Arquitecturas en Uso.

En la actualidad, las estructuras más usadas:
Monolítica – Linux, Windows.
Microkernel
Exokernel.

Kernel.

Parte fundamental del sistema operativo, es el software responsable de facilitar a los distintos programas acceso seguro al hardware, es el encargado de gestionar recursos a través de servicios de llamada al sistema, Los núcleos implementan una serie de abstracciones del hardware. Permitiendo ocultar la complejidad, proporcionando una interfaz limpia y uniforme al hardware subyacente, lo que facilita su empleo. Es la parte que se carga primero y permanece en memoria principal.

Es la parte central de los SO. Constituye el puente entre el software de aplicaciones y el procesado de datos al nivel de hardware,  también se encarga de gestionar procesos, uso de memoria, acceder al sistema de ficheros, veamos algunas de esas tareas de forma más detallada:

Kernel: Gestión de interrupciones.

Las distintas componentes del ordenador (CPU,  memoria RAM, disco duro, tarjeta de red) funcionan a distintas velocidades; su coordinación requiere  hacer esperar a unos dispositivos, o priorizar a  otros. Esto se consigue por medio de interrupciones Una interrupción es una señal por la que el software o hardware del ordenador avisa al SO de que ha completado una tarea (p. ej. leer un fichero) para que éste pueda llevar a cabo su siguiente acción (p. ej. copiarlo a un USB)Antes de que existieran las interrupciones el SO debía comprobar si una tarea estaba completa (de forma cíclica), para poder comenzar la siguiente. La pérdida de tiempo y recursos era considerable

Kernel: Modos.

El kernel gestiona el modo supervisor y el modo protegido,  algunos SO sencillos (MSDOS) solo incluyen modo supervisor, otros más complejos (Linux, Windows) incluyen ambos.
Modo supervisor: usado para tareas de bajo nivel  requieren acceso ilimitado al hardware (lectura y  escritura directa a memoria, comunicación con la  tarjeta gráfica). La BIOS, por ejemplo, se ejecuta  en modo supervisor; el SO, en general, también.
Modo protegido: el kernel, cuando inicia un proceso, puede decidir que el mismo se ejecute en modo protegido, prohibiendo el acceso del mismo a las órdenes de la CPU.

Kernel: Gestión de Memoria.

El kernel debe asegurar que la memoria principal (o RAM) en uso por cada programa no sea usada simultáneamente por ningún nuevo programa. Modo de funcionamiento (en breve), la memoria principal se segmenta en fragmentos, cada uno de lo cuales es accesible sólo por un programa. Si un programa trata de acceder a un fragmento que no es el suyo, se producirá una “violación de segmentación”, y el kernel terminará el programa “invasor”.

Kernel: Memoria Virtual.

Además de segmentar la memoria, el kernel puede elegir zonas de memoria para ser usadas por varios programas (pero no simultáneamente, recordar la gestión de memoria), la memoria se “pagina”, y estas páginas, accesibles para diversos procesos, se conocen como “memoria virtual”, si un proceso trata de acceder a una página de memoria virtual usada por otro proceso se produce una interrupción y el kernel, posiblemente, le asignará una nueva página.

Kernel: Acceso a discos y sistema de archivos.

El acceso a datos guardados en dispositivos de entrada o salida (discos duros, usb’s, discos externos) es una de las misiones centrales de los SO Los ficheros permiten acceso más rápido (recordad las  tablas FAT), mayor fiabilidad, y mejor uso del espacio libre Los ficheros, además, permiten otras propiedades  como asignar nombres, programas de apertura, compresión, permisos para usuario,  esta forma de organización se la conoce como “sistema de ficheros”, y suele estar basada en un árbol de directorios.

Kernel: Controlador de Dispositivos.

Los controladores de dispositivos (drivers) son programas que permiten la interacción con determinado hardware, Permiten la interacción del kernel con los dispositivos, y proveen del sistema de interrupciones necesario para la comunicación.

Kernel: Seguridad.

El SO, estando conectado a Internet o redes locales, debe ser capaz de distinguir las peticiones que recibe que deben ser procesadas y las que no; por ejemplo, por medio del uso de usuarios y contraseñas, del uso de modos de ejecución (privilegiado o protegido, rings), de la paginación de la RAM, de la codificación de ficheros.

Arquitectura Monolítica.

Núcleo grande y complejo, engloba todos los servicios del sistema, programado de forma no modular, cualquier cambio a realizar en los servicios requiere la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios, todo el sistema operativo trabaja en kernel space y en modo supervisor, define por si mismo una interfaz virtual de alto nivel (API) sobre el hardware subyacente, mediante un conjunto de llamadas al sistema para implementar todos los servicios del sistema operativo. La mayoría de los "sistemas operativos monolíticos" modernos pueden cargar (y descargar) dinámicamente módulos ejecutables en runtime, mejor que bootear una nueva imagen de kernel cada vez.

VIDEO DEMOSTRATIVO DEL KERNEL.




                                                                         

No hay comentarios:

Publicar un comentario

Gestión de Memoria Principal