Sunteți pe pagina 1din 6

INSTITUTO TECNOLOGICO SUPERIOR DE JEREZ.

Ingeniera en sistemas computacionales. Unidad I Semestre: IX Ensayo.

Docente. LI Csar Landeros Soriano Materia. Sistemas Operativos.

Alumna. 08070018 Anglica Prez Prez.

Jerez de Garca Salinas, a 21 de agosto del 2012

Ncleo del Sistema Operativo (Kernel)


Definicin de Kernel. Es la parte principal del cdigo de un sistema operativo, este se encarga de controlar y administrar los servicios y solicitudes de recursos y de hardware con relacin a uno o varios procesos, se divide en 5 capas: Capa 1: Gestin de memoria. Brinda facilidades de bajo nivel para la administracin de la memoria secundaria para la ejecucin de procesos. Capa 2. Procesador. Activa los cuantums de tiempo para cada uno de los procesos. Capa 3. Entrada/Salida. Proporciona las facilidades para poder utilizar los dispositivos de E/S. Capa 4. Intrprete de lenguajes. Facilita la comunicacin entre los lenguajes y el sistema operativo. Capa 5. Control de archivos. Se ocupa de almacenar y manipular archivos con nombre, asigna espacio y acceso de datos en memoria. El ncleo de un S.O. es entonces un conjunto de rutinas cuya misin es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalacin. Usualmente el nucleo de un S.O. contiene el cdigo necesario para realizar las funciones

Manejo de interrupciones. Creacin y destruccin de procesos. Cambio de estado de los procesos. Despacho. Suspensin y reanudacin de procesos. Sincronizacin de procesos. Comunicacin entre procesos. Manipulacin de los bloques de control de procesos. Apoyo para las actividades de entrada / salida. Apoyo para asignacin y liberacin de memoria. Apoyo para el sistema de archivos. Apoyo para el mecanismo de llamada y retorno de un procedimiento. Apoyo para ciertas funciones de contabilidad del sistema.

Interrupciones Una interrupcin como su nombre lo dice es interrumpir la ejecucin normal del procesador. La mayora de los computadores tienen un sistema a travs del cual otros mdulos como son el de E/S, memoria, etc. Pueden interrumpir solicitando la realizacin de alguna accin. Estas interrupciones aparecen como un camino para mejorar la eficiencia de los procesos. Hay varias clases de interrupciones como pueden ser:

De programa: Generadas por alguna condicin que se produce como resultado de la ejecucin de una instruccin, como divisin por cero, por ejemplo.

De reloj: generadas por el reloj interno del procesador, el cual permite llevar las funciones con determinada regularidad. De E/S: Generadas por un controlador de entrada-salida, para indicar que una tarea ha terminado o que ha ocurrido un error con la misma. Por fallo de hardware: Generadas por fallos tales como un corte de energa por ejemplo, entre otros.

Cuando un proceso interrumpe el curso normal del procesador lo hace mientras el proceso interruptor termina, al hacerlo se reanuda el curso normal del procesador hasta la aparicin de otra interrupcin. Despachador (Scheduler) Se encarga de optimizar la eficiencia del sistema, de acuerdo con criterios considerados importantes para el ambiente del S.O. Las funciones que realiza un despachador son: examinar la prioridad de los procesos, controlar los recursos de un equipo y asignarlos entre los distintos usuarios, permitir a los usuarios correr sus aplicaciones, controlar los dispositivos de perifricos conectados al equipo, cambiar de contexto y cambiar el modo del usuario. Hay varios tipos de despachadores como son:

De largo plazo. Cuando existe, trabaja con la cola de trabajos en lotes y selecciona el siguiente trabajo de los mismos a ejecutarse. Este tipo de despachador es llamado cada vez que un proceso termina y abandona el sistema. De mediano plazo. Este es el encargado de manejar los procesos que han sido enviados temporalmente a la memoria secundaria.. De corto plazo. Maximiza la eficiencia del sistema y que se encarga de las transiciones en ejecucin. Este despachador llama cada vez que sucede un evento que cambie el estado global del sistema. Algunos acontecimientos que pueden ocasionar tales cambios son:
o o o o o

Pulsos del reloj (interrupciones de tiempo) Interrupciones finalizadas de E/S La mayor parte de los llamados operacionales al S.O. Envo y recepcin de seales. Activacin de programas interactivos.

Primitivas de comunicacin Los procesos que se ejecutan concurrentemente pueden ser independientes o cooperativos. Un proceso independiente es que no afecta ni se ve afectado por otros

procesos, y un proceso cooperativo es aquel en el cual si se puede ver afectado y afectar otros procesos. Hay varias razones para la existencia de un proceso cooperativo, como son: Compartir informacin.- Si hay varios usuarios interesados en una misma informacin se debe proporcionar un ambiente que permita el acceso concurrente a dicha informacin. Acelerar los clculos.- para que una tarea se ejecute ms rpidamente debemos dividirla en subtareas y ejecutar cada una de ellas en paralelo. Ahora que esto es posible si el equipo tiene mltiples elementos de procesamiento, como varias CPU. Modularidad.- Podemos dividir funciones del sistema en diferentes procesos o tareas. Conveniencia.- un solo usuario puede querer trabajar en muchas tareas al mismo tiempo. Como escuchar msica mientras navega en internet. La IPC provee un mecanismo que permite a los procesos comunicarte y sincronizarse entre s. La comunicacin se establece mediante protocolos de comunicacin, los ms usados son los desarrollados para internet como el protocolo de internet, de control de transmisin, transferencia de archivos y de hipertexto.

Tipos de Kernel En funcin del tamao y de las funcionalidades que posea podemos clasificar el Kernel en tres tipos fundamentales: Kernel monoltico. Todas las funcionalidades posibles estn integradas en el mismo sistema. Es un programa de considerable tamao que se deber recopilar completamente cada vez que deseamos aadir una nueva posibilidad. Esta es la estructura original de Linux. Kernel modular.- se centran las funcionalidades esenciales como la administracin de memoria, la planificacin de procesos, etc. En Linux se cre un interfaz adecuado para posibilitar el desarrollo de mdulos que cumplieran esas funcionalidades, estos mdulos pueden ser compilados por separado y aadidos al Kernel en tiempo de ejecucin. Estructura de microkernel.- con esta tcnica se pretende reducir a su nnima expresin el Kernel, dejando a los niveles superiores el resto de las funcionalidades. Un ejemplo del uso de este Kernel es Hurd. Se trata del ltimo Kernel GNU llamado a sustituir a Linux como ncleo del sistema operativo. A pesar de que esta estrategia es antigua como la modular no ha sido tenida en cuenta debido a limitaciones en el rendimiento.

Caractersticas de los Kernel de diferentes S.O. Kernel Linux Kernel de tipo monoltico: bsicamente es un gran programa creado como una unidad, pero conceptualmente dividido en varios componentes lgicos. Tiene soporte para carga/descarga de porciones del kernel bajo demanda, estas porciones se llaman mdulos, y suelen ser caractersticas del kernel o controladores de dispositivo. Actualmente Linux es un ncleo monoltico hbrido. Los controladores de dispositivos y las extensiones del ncleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los ncleos monolticos tradicionales, los controladores de dispositivos y las extensiones al sistema operativo se pueden cargar y descargar fcilmente como mdulos, mientras el sistema contina funcionando sin interrupciones. Tambin, a diferencia de los ncleos monolticos tradicionales, los controladores pueden ser prevolcados (detenidos momentneamente por actividades ms importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de Multiprocesamiento Simtrico. Threads de kernel: para el funcionamiento interno se usan varios hilos (threads) de ejecucin internos al kernel, que pueden estar asociados a un programa de usuario o bien a una funcionalidad interna del kernel. En Linux no se hace un uso intensivo de este concepto, slo unas pocas funcionalidades. Soporte de aplicaciones multithread: soporte de aplicaciones de usuario de tipo multithread, ya que muchos paradigmas de computacin de tipo cliente/servidor necesitan servidores capaces de atender mltiples peticiones simultneas dedicando un hilo de ejecucin a cada peticin o grupo de ellas. Linux tiene una biblioteca propia de threads que puede usarse para las aplicaciones multithread, pero tambin se esperan mejoras importantes en este aspecto en las nuevas versiones.

Kernel Windows VS Linux


Ahora la comparacin es entre la versin 2.6.28 del kernel Linux y la de Windows Vista SP1. No es un paper en el sentido de que no explica de pe a pa cada parte. Se limita a revisar opciones de cada ncleo y compararlas. En verde tenemos las opciones que son mejores o ms flexibles en un ncleo frente al otro, en rojo las que son peores y en negro las que son neutrales o tienen cierta controversia detrs.

Llamadas del sistema (system calls), mientras Linux tiene 320 Windows tiene ms de 1000. A simple vista no se puede slo por el dato comparar si esto es mejor para uno u otro. Pero el hecho de que los desarrolladores no se suelan quejar de las llamadas del sistema en Linux me hace pensar que "tienen lo que necesitan". Si estoy en lo cierto, el nmero abultado de llamadas en el kernel de Windows debe ser por mantener la (arcaica) compatibilidad haca atrs lo cual como ya he dicho en anteriores veces vuelve el diseo muy complejo y propenso a errores. Otro dato interesante es el tiempo de desarrollo, cada "versin menor" (en el caso de Linux los 2.6.x) dura 3 meses en Linux y 31 en Windows. En las versiones mayores la cosa ya se balancea menos: Linux tarda 35 meses y Windows 38. Aqu se puede observar lo que deca Linux Torvalds (si no me falla la memoria): lanza versiones rpidamente, continuamente. El nmero de arquitecturas soportadas donde Windows literalmente es machado: Windows soporta x86 ("los ordenadores de toda la vida"), AMD64 y IA-64. Linux soporta sas y adems otras 14 arquitecturas sin contar consolas. En tema de limitaciones para mucho hardware de golpe tambin gana el kernel Linux por goleada: soporta 1024 CPUs de 32 o 64 bits frente a las 4-32 y 4-64 respectivamente de Windows. Tambin soporta en temas de memoria 64GB de RAM de 32 bits PAE o 1024GB - 8.589.934.592GB de RAM de 64 bits frente a Windows que se queda con 1GB/<4GB y hasta 128GB (segn versiones) respectivamente.

S-ar putea să vă placă și