Está en la página 1de 13

 

T.S.U.: Jhonatan Alcalá, C.I. 20.740.412


Facilitador: FRANK CAMPOS /pnficampos1@gmail.com
Catedra:   SISTEMAS OPERATIVOS Sección: IF01 PROSECUCION2019
 

INDICE

INTRODUCCIÓN Pág. 03
DESARROLLO:
El Núcleo del Sistema Operativo, Tipos de núcleos de
sistemas operativos. Pág. 04 - 05

Núcleo o Kernel
Pág. 06- 07

Definición de los estados; coordinación y sincronización de


Pág. 08 - 12
procesos; característica de la Congruencia.

CONCLUSIÓN Pág. 13
 

INTRODUCCION

El núcleo está constituido directamente sobre el hardware, por lo que es la


parte del sistema operativo más dependiente de una computadora y
constituye, normalmente, la parte del sistema operativo que obligatoriamente
debe de contener código en ensamblador. El resto del sistema puede ser
escrito en un lenguaje de más alto nivel, lo que facilita el desarrollo y
mantenimiento del mismo. Desde la aparición del sistema operativo UNIX, el
lenguaje C suele ser el lenguaje en el que desarrollan los sistemas
operativos.
 

El Núcleo del Sistema Operativo.

El núcleo, también llamado core o kerneles es un software que constituye


una parte fundamental del sistema operativo. Es el principal responsable de
facilitar a los distintos programas acceso seguro al hardware de la
computadora. Es el encargado de gestionar recursos, a través de servicios
de llamada al sistema. También se encarga de decidir qué programa podrá
hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se
conoce como multiplexado.

El núcleo normalmente representa sólo una pequeña parte de lo que por lo


general se piensa que es todo el sistema operativo, pero es tal vez el código
que más se utiliza. Por esta razón, el núcleo reside por lo regular en la
memoria principal, mientras que otras partes del sistema operativo son
cargadas en la memoria principal sólo cuando se necesitan.

Los núcleos se diseñan para realizar "el mínimo" posible de procesamiento


en cada interrupción y dejar que el resto lo realice el proceso apropiado del
sistema, que puede operar mientras el núcleo se habilita para atender otras
interrupciones.

Tipos de núcleos de sistemas operativos

Existen cuatro grandes tipos de núcleos:

 Los núcleos monolíticos: facilitan abstracciones del hardware


subyacente realmente potentes y variadas.

 Los micros núcleos: proporcionan un pequeño conjunto de


abstracciones simples del hardware, y usan las aplicaciones llamadas
servidores para ofrecer mayor funcionalidad.
 

 Los núcleos híbridos: son muy parecidos a los micros núcleos puros,
excepto porque incluyen código adicional en el espacio de núcleo para
que se ejecute más rápidamente.

 Los exonúcleos: no facilitan ninguna abstracción, pero permiten el uso


de bibliotecas que proporcionan mayor funcionalidad gracias al acceso
directo o casi directo al hardware.

El núcleo de un sistema operativo normalmente contiene el código necesario


para realizar las siguientes funciones:

 Manejo de interrupciones.

 Creación y destrucción de procesos.

 Cambio de estado de los procesos.

 Despacho.

 Suspensión y reanudación de procesos.

 Sincronización de procesos.

 Comunicación entre procesos.

 Manipulación de los bloques de control de procesos.

 Apoyo para las actividades de entrada/salida.

 Apoyo para asignación y liberación 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.


 

NÚCLEO O KERNEL

El Kernel consiste en la parte principal del código del sistema operativo, el


cual se encargan de controlar y administrar los servicios y peticiones de
recursos y de hardware con respecto a uno o varios procesos, este se divide
en 5 capas:

 Nivel 1. Gestión de Memoria: que proporciona las facilidades de bajo


nivel para la gestión de memoria secundaria necesaria para la
ejecución de procesos.

 Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo


para cada uno de los procesos, creando interrupciones de hardware
cuando no son respetadas.

 Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar


los dispositivos de E/S requeridos por procesos.

 Nivel 4. Información o Aplicación o Intérprete de Lenguajes: Facilita la


comunicación con los lenguajes y el sistema operativo para aceptar
las órdenes en cada una de las aplicaciones. Cuando se solicitan
ejecutando un programa el software de este nivel crea el ambiente de
trabajo e invoca a los procesos correspondientes.

 Nivel 5. Control de Archivos: Proporciona la facilidad para el


almacenamiento a largo plazo y manipulación de archivos con
nombre, va asignando espacio y acceso de datos en memoria.
 

En informática, un proceso se trata básicamente de un programa que entra


en ejecución. Los procesos son una sucesión de instrucciones que pretenden
llegar a un estado final o que persiguen realizar una tarea concreta. Lo más
importante de este concepto, es puntualizar qué es realmente un programa y
un sistema operativo; un proceso pasa por varios estados durante su
ejecución.
 

Definición de los estados.

Nuevo: El proceso se acaba de crear, pero aún no ha sido admitido en el


grupo de procesos ejecutables por el sistema operativo.

Habitualmente en un sistema operativo multitarea como Windows, nada más


que un proceso se crea, éste resulta admitido, pasando al estado listo. Sin
embargo, esto no tiene porqué ser siempre así.

Listo: El proceso está esperando ser asignado al procesador para su


ejecución; un CPU clásico (con un solo núcleo) solo se puede dedicar en
cada momento a un proceso. Los procesos que están preparados para
ejecutarse permanecen en estado listo hasta que se les concede el CPU.
Entonces pasan al estado “En ejecución”.

En ejecución: El proceso tiene el CPU y ésta ejecuta sus instrucciones.

En espera: El proceso está esperando a que ocurra algún suceso, como por
ejemplo la terminación de una operación de E/S.

Terminado: El proceso ha sido sacado del grupo de procesos ejecutables por


el sistema operativo. Después de que un proceso es marcado como
terminado se liberarán los recursos utilizados por ese proceso.

COORDINACIÓN Y SINCRONIZACIÓN DE PROCESOS

La concurrencia de procesos se refiere a las situaciones en las que dos o


más procesos puedan coincidir en el acceso a un recurso compartido o,
dicho de otra forma, que requieran coordinarse en su ejecución. Para evitar
dicha coincidencia, el sistema operativo ofrece mecanismos de arbitraje que
permiten coordinar la ejecución de los procesos.
 

En computación, la concurrencia es la propiedad de los sistemas que


permiten que múltiples procesos sean ejecutados al mismo tiempo, y que
potencialmente puedan interactuar entre sí.

Los procesos concurrentes pueden ser ejecutados realmente de forma


simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores.
En cambio, la concurrencia es simulada si sólo existe un procesador
encargado de ejecutar los procesos concurrentes, simulando la concurrencia,
ocupándose de forma alternada en uno y otro proceso a pequeñísimos
intervalos de tiempo. De esta manera simula que se están ejecutando a la
vez.

CARACTERÍSTICAS DE LA CONCURRENCIA

Los procesos concurrentes tienen las siguientes características:

Indeterminismo: Las acciones que se especifican en un programa secuencial


tienen un orden total, pero en un programa concurrente el orden es parcial,
ya que existe una incertidumbre sobre el orden exacto de ocurrencia de
ciertos sucesos, esto es, existe un indeterminismo en la ejecución. De esta
forma si se ejecuta un programa concurrente varias veces pude producir
resultados diferentes partiendo de los mismos datos.

Interacción entre procesos: Los programas concurrentes implican interacción


entre los distintos procesos que los componen:

 Los procesos que comparten recursos y compiten por el acceso a los


mismos.

 Los procesos que se comunican entre sí para intercambiar datos.


 
Gestión de recursos: Los recursos compartidos necesitan una gestión
especial. Un proceso que desee utilizar un recurso compartido debe solicitar
dicho recurso, esperar a adquirirlo, utilizarlo y después liberarlo. Si el proceso
solicita el recurso pero no puede adquirirlo en ese momento, es suspendido
hasta que el recurso esté disponible. La gestión de recursos compartidos es
problemática y se debe realizar de tal forma que se eviten situaciones de
retraso indefinido (espera indefinidamente por un recurso) y de deadlock
(bloqueo indefinido o abrazo mortal).

Comunicación: La comunicación entre procesos puede ser síncrona, cuando


los procesos necesitan sincronizarse para intercambiar los datos, o
asíncrona, cuando un proceso que suministra los datos no necesita esperar a
que el proceso receptor los recoja, ya que los deja en un buffer de
comunicación temporal.

Sin una sincronización adecuada entre procesos, la actualización de


variables compartidas puede inducir a errores de tiempo relacionados con la
concurrencia que son con frecuencia difíciles de depurar. Para que los
procesos puedan sincronizarse es necesario disponer de servicios que
permitan bloquear o suspender bajo determinadas circunstancias la
ejecución de un proceso.

Los principales mecanismos de sincronización que ofrecen los sistemas


operativos son:

 Señal: es una notificación asíncrona enviada a un proceso para


informarle de un evento. Cuando se le manda una señal a un proceso,
el sistema operativo modifica su ejecución normal. Si se había
establecido anteriormente un procedimiento (handler) para tratar esa
señal se ejecuta éste, si no se estableció nada previamente se ejecuta
la acción por defecto para esa señal.
 
 Tuberías: Una tubería es un mecanismo de comunicación y
sincronización. Desde el punto de vista de su utilización, es como un
pseudoarchivo mantenido por el sistema operativo; Conceptualmente,
cada proceso ve la tubería como un conducto con dos extremos, uno
de los cuales se utiliza para escribir o insertar datos y el otro para
extraer o leer datos de la tubería. La escritura se realiza mediante el
servicio que se utiliza para escribir datos en un archivo. De igual
forma, la lectura se lleva a cabo mediante el servicio que se emplea
para leer de un archivo.

 Semáforos: Es una variable especial protegida (o tipo abstracto de


datos) que constituye el método clásico para restringir o permitir el
acceso a recursos compartidos (por ejemplo, un recurso de
almacenamiento del sistema o variables del código fuente) en un
entorno de multiprocesamiento (en el que se ejecutarán varios
procesos concurrentemente).

 Mutex y variables condicionales: es un Mecanismo de sincronización


(sencillo y eficiente) indicado para hilos este Se emplea para obtener
acceso exclusivo a recursos compartidos y para “serializar” el acceso
a la SC en exclusión mutua. Sólo un hilo puede tener acceso
simultáneamente al mutex; Existen dos tipos de operaciones a realizar
con un mutex:

 LOCK: Intenta bloquear o cerrar el mutex, si el mutex no está


cerrado este se cierra automáticamente y si está cerrado el hilo
se bloquea.

 UNLOCK: Elimina o libera el cierre del mutex, si existen uno o


más hilos esperando por el mutex solo se desbloquea uno y los
demas permanecen bloqueados.
 
 El paso de mensajes: es una técnica empleada en programación
concurrente para aportar sincronización entre procesos y permitir la
exclusión mutua, de manera similar a como se hace con los
semáforos, monitores, etc; Su principal característica es que no
precisa de memoria compartida, por lo que es muy importante en la
programación de sistemas distribuidos, Los elementos principales que
intervienen en el paso de mensajes son el proceso que envía, el que
recibe y el mensaje.

 Los monitores: son estructuras de datos abstractas destinadas a ser


usadas sin peligro por más de un hilo de ejecución. La característica
que principalmente los define es que sus métodos son ejecutados con
exclusión mutua. Lo que significa, que en cada momento en el tiempo,
un hilo como máximo puede estar ejecutando cualquiera de sus
métodos. Esta exclusión mutua simplifica el razonamiento de
implementar monitores en lugar de código a ser ejecutado en paralelo;
Un monitor tiene cuatro componentes: inicialización, datos privados,
métodos del monitor y cola de entrada; Inicialización: contiene el
código a ser ejecutado cuando el monitor es creado. Datos privados:
contiene los procedimientos privados, que sólo pueden ser usados
desde dentro del monitor y no son visibles desde fuera; Métodos del
monitor: son los procedimientos que pueden ser llamados desde fuera
del monitor; Cola de entrada: contiene a los hilos que han llamado a
algún método del monitor pero no han podido adquirir permiso para
ejecutarlos aún.
 

CONCLUSION

En el desarrollo de esta investigación se concreta el aprendizaje sobre los


sistemas operativos puntualizando que es la parte esencial para el
funcionamiento de los sistemas informáticos. Son la pieza de software central
en la cadena de procesos, ya que establecen las condiciones mínimas para
que todo funcione con exactitud en la administración de los recursos,
el método de comunicación con el usuario y con otros sistemas, las
aplicaciones adicionales, etc.

También podría gustarte