Kernel y shell tipos

33
DEFINICIÓN DE SISTEMA OPERATIVO Vamos a recordar nuestra primera definición de Sistema Operativo

Transcript of Kernel y shell tipos

DEFINICIÓN DE SISTEMA OPERATIVOVamos a recordar nuestra primera definición de Sistema Operativo

DEFINICIÓN DE SISTEMA OPERATIVOUna serie de programas trabajando en conjunto (sistema) en modo supervisor (administrador o kernel), con la finalidad de proporcionar a los programadores de aplicaciones (y a los usuarios de programas de aplicaciones) un conjunto abstracto de recursos simples, en vez de complejos conjuntos de hardware y administrar estos recursos en el tiempo y en el espacio

KERNEL (NÚCLEO)El Software más importante del Sistema Operativo, que está en contacto directo con el Hardware, a través de los controladores (drivers) de dispositivos y que cumple con estas tareas:

FUNCIONES DEL KERNELFacilitar el acceso seguro al Harware

Planificar el uso del CPU

Administrar la memoria

SHELLEs el intérprete de comandosUna capa de software que está entre el usuario, las aplicaciones y el Kernel.Facilita el acceso a las funciones del núcleoPersonalizable y Programable

SHELLHay de distintos tipos:

•GUI (Interfaz de usuario)

•Texto (consola o terminal)

SHELL MODO GRÁFICOWindows Shell: XP: Luna – Royale Vista: Aero W7: Pizarra – Plex W8: Metro o Modern UI

SHELL MODO GRÁFICOLinux Shell: Cada Distribución trae su propia GUI Pero cada persona es libre de instalar otra si esa no le convence

SHELL MODO GRÁFICOLinux Shell: GNOME KDE CINNAMON MATE

LXDE XFCE UNITY ENLIGHTENMENT

SHELL MODO TEXTOEn DOS tenemos command.com

En Linux tenemos Bash, Csh, KornShell, Ash, Bourne Shell, etc

EJERCICIOS EN GRUPOSIdentificar cada situación como propia del Kernel o de la Shell

Un compilador está al tope de la cola de listos, con máxima prioridad, ha estado esperando recibir tiempo de procesador mientras otros procesos se ejecutaban, finalmente recibe su turno para ejecutarse, pero apenas unos milisegundos después de que empezó es expulsado del procesador porque llegó una interrupción por un proceso que estaba esperando E/S, así que tiene que volver a esperar. ¿Quién decide qué proceso se va a ejecutar?

Un usuario (que no es administrador del sistema) decide ver los archivos que hay en su carpeta, por lo que hace doble click en el directorio correspondiente. ¿quién le muestra sus archivos?

Las computadoras modernas tienen varios niveles de memorias, hay de varios tipos, entre ellos las hay volátiles (se borran cuando se corta el suministro eléctrico) y las no volátiles (por ejemplo las memorias flash). Las que son volátiles son además escasas y los procesos compiten por tener el máximo de memoria disponible. En este momento hay 4 procesos corriendo al mismo tiempo y alguien tiene que dividir la memoria RAM. ¿quién lo hace?

Un usuario, decide instalar un programa nuevo, en Linux, los programas se guardan en un directorio que se llama /opt, al cual solo tienen acceso los administradores. Pero debe hacerlo en las 25 máquinas del laboratorio. Para eso utiliza un Shell script que el mismo escribió y que automatiza la tarea ¿ese programa corre sobre la Shell o sobre el Kernel?

ESTRUCTURA DEL KERNELLos sistemas operativos y sus núcleos han ido evolucionando a lo largo de todos estos añosLa manera en que se construyen y se reparten entre sus componentes las diferentes funciones que deben cumplir nos proporciona una clasificación que vamos a estudiar hoyLos núcleos pueden ser:

• Monolíticos• Micronúcleos

• Híbridos• Exonúcleos

NÚCLEO MONOLÍTICO• Una colección de procedimientos enlazados en un solo programa

binario ejecutable y muy extenso• Cada procedimiento (función) del sistema tiene la libertad de

llamar a cualquier otro procedimiento del sistema• Las llamadas no tienen restricciones• Son sistemas poco manejables• Son sistemas poco comprensibles

NÚCLEO MONOLÍTICO• Todos los procedimientos y archivos se compilan en un solo

archivo ejecutable.• Todos los procedimientos y variables son visibles para todo el

mundo.• No hay ocultamiento de la información (programación orientada a

objetos)• Se utilizan instrucciones TRAPS para reconocer llamadas al

sistema

NÚCLEO MONOLÍTICO• Una mejora en los núcleos monolíticos fueron los sistemas en

capas• THE y MULTICS• En estos sistemas, cada capa implementa una parte del sistema

operativo y las pone a disposición de las capas superiores que no tienen necesidad de conocer cómo trabajan las abstracciones ya implementadas

NÚCLEO MONOLÍTICO

NÚCLEO MONOLÍTICO• Capa 0: Administra al procesador (planificación y

multiprogramación)• Capa 1: Administra la memoria (incluyendo la virtual)• Capa 2: Comunicación entre procesos y consola de operador• Capa 3: E/S• Capa 4: Aplicaciones de usuarios• Capa 5: Usuario mismo

NÚCLEO MONOLÍTICO• Todas las funciones están dentro de un solo gran programa

• Planificación, sistema de archivos, drivers, memoria• Cada vez que se modifica (se añade un componente) se debe

volver a compilar todo el núcleo • Un simple error en un procedimiento puede hacer caer todo el

sistema• Es mucho más rápido que otras estructuras

NÚCLEO MONOLÍTICO• UNIX

• LINUX• UNIX

• BSD• FreeBSD

• Solaris• DOS

• MS/DOS• WINDOWS 9X (95, 98, Me)

• MAC• Hasta OS 8.6

MICROKERNEL• En este tipo de estructura se dividen las funciones del SO en

módulos más pequeños• El núcleo solo contiene:

• Planificación• Comunicación entre procesos (IPC)• Espacios de direcciones

• Los demás servicios (gestión de memoria, sistemas de archivos, drivers, E/S) se ejecutan en modo usuario

MICROKERNEL• Ventajas

• Es una estructura más confiable• Una falla en un módulo no hace caer todo el sistema• Es menos complejo• Es más sencillo de depurar• Es más tolerante a fallos• Mejora la portabilidad entre diferentes plataformas de HW

MICROKERNEL• Desventajas

• Es más difícil de construir (porque cada módulo debe encajar con los otros

• Mayor complejidad en el código• Es más difícil programar aplicaciones• Menor rendimiento

MICROKERNEL• Minix

• El núcleo solo tiene 3200 líneas en C y 800 en ensamblador• Solo 35 llamadas al sistema que son utilizadas por el resto del

SO• Los controladores (con excepción del reloj y el planificador)

están fuera del núcleo• Fuera del núcleo el resto de las aplicaciones se ejecutan en

modo usuario y por capas (la primera es la de drivers)

MICROKERNEL• Minix

• Re-encarnación: Cuando se comprueba que un driver o un servicio no está funcionando correctamente, se reemplaza en caliente, automáticamente

• Permite una recuperación rápida• Sistema autocorregible y confiable

KERNEL HÍBRIDO• Muchos SO modernos tienen esta estructura• Es un micronúcleo con algunos servicios no esenciales incluidos

en el núcleo para que el SO funcione más rápidamente• Es una mezcla de núcleo monolítico y micronúcleo

• Windows NT• DragonFly BSD

EXOKERNELS• Es un concepto nuevo y muy diferente de los anteriores• Aquí se permite a los programadores de aplicaciones que tomen

verdadero control del HW, en lugar de pedirle permiso al SO• El exonúcleo es muy pequeño, sólo se ocupa del multiplexado de

los recursos y de la protección entre aplicaciones• Todas las funciones están en librerías en lugar de estar

residentes en memoria

EXOKERNELS• En los sistemas tradicionales el HW está escondido detrás de la

interfaz que presenta el SO• Tenemos una imagen de la memoria y del disco, pero en realidad

no trabajamos con la memoria y el disco, sino con abstracciones (no sabemos la dirección física real de un dato)

• El exonúcleo permite que una aplicación reclame una parte de la memoria (o del disco) y si está disponible y tiene derecho, se le brinda

FIN [email protected] http://pablomacon.wix.com/home