Consultar ensayos de calidad
El núcleo y sus procesos (informatica) - núcleo (kernel), transiciones de estado, planificación de procesos en sistemas operativos, tipos de procesos
NÚCLEO (KERNEL)
El núcleo (kernel) de un sistema operativo es un conjunto de rutinas
cuya misión es la de gestionar el procesador, la memoria, la
entrada/salida y el resto de recursos disponibles en la instalación. Toda esta gestión la realiza para atender al funcionamiento
y peticiones de los trabajos que se ejecutan en el sistema. Es un software que constituye la parte mas
importante del sistema
operativo. Es el principal responsable de facilitar a
los distintos programas acceso seguro al hardware de
la computadora o en forma basica, es el encargado de gestionar
recursos, a través de servicios de llamada al sistema.
Figura 1
Ya se ha indicado que el corazón de un sistema operativo es el
núcleo, un programa de control que reacciona ante cualquier
interrupción de eventos externos y que da servicio a los procesos,
creandolos, terminandolos y respondiendo a cualquier
petición de servicio por parte de los mismos.
PROCESOS
Todo lo que sucede dentro de un ordenador esta
determinado por la ejecución de procesos, quiere esto decir que se trata
del objeto
basico y fundamental. Podemos definir un
proceso como un
programa en ejecución o en disposición de ser ejecutado cuando
las circunstancias que rodean el mismo así lo determinen. Este concepto
surgió por primera vez con la multiprogramación, donde se puede
ejecutar mas de un programa
simultaneamente con el fin de aprovechar al maximo los recursos
de la computadora.
Un proceso es un conjunto de actividades o
eventos (coordinados u organizados) que serealizan
o suceden (alternativa o simultaneamente) bajo ciertas
circunstancias con un fin determinado.
Un proceso puede informalmente entenderse como
un programa en ejecución. Formalmente un
proceso es 'Una unidad de actividad que se caracteriza por la
ejecución de una secuencia de instrucciones, un estado actual, y un
conjunto de recursos del
sistema asociados.
Figura 2
En la Figura 2 puede verse graficamente el funcionamiento de un proceso.
Bloque de Control del
Sistema (SCB).
Como dijimos en el tema introductorio, un S.O. es un programa que tiene como función la asignación de
elementos físicos a los elementos lógicos. Para poder llevar a cabo esta
función, el S.O. mantiene una serie de informaciones acerca de esos
objetos lógicos y físicos. El soporte de esta
información se conoce como
Bloque de Control del
Sistema (SCB).
Estructura basica para almacenar los datos necesarios para poder
ejecutar el sistema operativo
– Lista de descriptores de procesos.
– Puntero al descriptor del
proceso que esta haciendo uso del
procesador.
– Puntero a la cola de descriptores de procesos que no hacen uso del
ordenador, pero estan en espera.
– Punteros a colas de procesos que se encuentran en diferentes
situaciones.
– Identificadores de las rutinas necesarias para tratar las
interrupciones producidas por el hardware, el software o errores indeseados.
– Puntero a la cola de descriptores de recursos.
El bloque de control del proceso (PCB)
Un proceso se representa, desde el punto de vista del sistemaoperativo, por un
conjunto de datos donde se incluyen el estado en cada momento, recursos
utilizados, registros, etc., denominado Bloque de Control del Proceso (PCB).
Figura 3
Los objetivos que se pretenden cubrir con el bloque de control del proceso son los siguientes
Localización de la información sobre el proceso por parte del sistema operativo.
Mantener registrados los datos del proceso en caso de tener que
suspender temporalmente su ejecución o reanudarla.
En general, la información contenida en el bloque de control es la
siguiente
Estado del proceso. Información relativa al contenido del contador de programa (Program Counter, PC),
estado del procesador en cuanto a prioridad del proceso, modo de
ejecución, etc., y por último el estado de los registros internos
de la computadora.
Estadísticas de tiempo y ocupación de recursos para la
gestión de la planificación del procesador.
Ocupación de memoria interna y externa para el
intercambio (swapping).
Recursos en uso (normalmente unidades de
entrada/salida).
Archivos en uso.
Privilegios.
Estas informaciones se encuentran en memoria principal o en disco y se accede a ellas en los momentos en que se hace necesaria su
actualización o consulta. Los datos relativos al estado del
proceso siempre se encuentran en memoria principal.
Trataremos de ver a continuación cómo se realiza el cambio de un
proceso a otro, para lo cual supondremos que estamos en una computadora con un
solo procesador (sólo un proceso puede estar ejecutandose en cada
momento), yexisten varios procesos activos compitiendo por el acceso al
procesador (se esta ejecutando un proceso A y el núcleo del
sistema operativo decide que debe ejecutarse en un instante dado otro proceso
B). Suponemos que los programas de los procesos A y B
estan ambos en memoria principal.
Las acciones que realiza el sistema operativo para cambiar el proceso A por el
B se denominan cambio de proceso, y son las siguientes
Deja de ejecutar el proceso en curso (A), cediéndose el control al
núcleo del sistema operativo, y aparece lo que se denomina un cambio de
contexto pasando del modo usuario al modo supervisor. Antes de realizarse el
cambio de contexto se salva el estado del proceso A para su posterior
vuelta al punto donde fue interrumpido.
El núcleo estudia si el proceso B esta preparado para su
ejecución y, si es así, realiza el cambio de contexto
correspondiente pasando del modo supervisor al modo usuario.
A continuación repone el estado del proceso B (en caso de haber sido
interrumpido con anterioridad) y, por último, pone en ejecución
el proceso B
El cambio de contexto se producira en caso de ejecución de una
instrucción privilegiada, una llamada al sistema operativo o una
interrupción, es decir, siempre que se requiera la atención de
algún servicio del sistema operativo.
En el cambio de contexto, el núcleo salva el estado del proceso que se
estaba ejecutando en su bloque de control y restaura el proceso que va a
ejecutarse a partir de los datos almacenados en su bloque de control.
Figura 3.1
Estado delos procesos
Todo proceso en un sistema operativo presenta un estado que indica la
situación de la ejecución en que se encuentra.
Los bloques de control de los procesos se almacenan en colas, cada una de las
cuales representa un estado particular de los
procesos, existiendo en cada bloque, entre otras informaciones, tantos campos como colas en las que el
proceso se pueda situar, para que a partir de ellos se indique la cola en que
se encuentra.
Los estados de los procesos son internos del sistema operativo y
transparente al usuario. Para éste, su proceso estara siempre en
ejecución independientemente del estado en que se encuentre
internamente en el sistema.
Los estados de los procesos se pueden dividir en dos tipos: activos e
inactivos.
Estados activos
Son aquellos que compiten con el procesador o estan en condiciones de
hacerlo. Se dividen en
· Ejecución. Estado en el que se encuentra un
proceso cuando tiene el control del
procesador. En un sistema monoprocesador este estado
sólo lo puede tener un proceso.
· Preparado. Aquellos procesos que estan dispuestos para ser
ejecutados, pero no estan en ejecución por alguna causa
(interrupción, haber entrado en cola estando
otro proceso en ejecución, etc.).
· Bloqueado. Son los procesos que no pueden ejecutarse
de momento por necesitar algún recurso no disponible (generalmente
recursos de entrada/salida).
Estados inactivos
Son aquellos que no pueden competir por el procesador, pero que pueden volver a
hacerlo por medio de ciertas operaciones. Enestos estados se mantiene el
bloque de control del
proceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo por causas que lo han impedido (por
ejemplo, avería en un dispositivo de entrada/salida) y que pueden volver
a activarse desde el punto en que se quedaron sin que tengan que volver a
ejecutarse desde el principio (se puede pensar en procesos cuya duración
es larga).
Son de dos tipos
· Suspendido bloqueado. Es el proceso que fue suspendido en
espera de un evento, sin que hayan desaparecido las
causas de su bloqueo.
· Suspendido preparado. Es el proceso que ha sido
suspendido, pero no tiene causa para estar bloqueado.
Transiciones de estado
Todo proceso a lo largo de su existencia puede cambiar
de estado varias veces. Cada uno de estos cambios se denomina
transición de estado. Estas transiciones son
las siguientes
· Comienzo de la ejecución. Todo proceso
comienza al ser dada la orden de ejecución del programa
insertandose en la cola de preparados. El encolamiento
dependera de la política de gestión de dicha cola.
· Paso a estado de ejecución. Cuando el procesador se encuentre inactivo y en la cola de
preparados exista algún proceso en espera de ser ejecutado, se
pondra en ejecución el primero de ellos.
· Paso a estado bloqueado. Un proceso que se encuentre en ejecución y que
solicite una operación a un dispositivo externo (unidad de
entrada/salida), teniendo que esperar a que dicha operación finalice,
sera pasado de estado de ejecución a estadobloqueado
insertandose su PCB en la cola correspondiente de bloqueados. A partir
de ese momento el procesador pone en ejecución
el siguiente proceso, que sera el primero de la cola de preparados.
· Paso a estado preparado. Este paso
puede ser producido por alguna de las siguientes causas
- Orden de ejecución de un programa, con lo cual, como ya hemos dicho, el proceso pasa a la
cola de preparados.
- Si un proceso esta en estado bloqueado por
causa de una operación de entrada/salida y ésta finaliza,
pasara de la cola de bloqueados a la de preparados.
- Si un proceso esta en ejecución y
aparece una interrupción que fuerza al sistema operativo a ejecutar otro
proceso, el primero pasara al estado preparado y su PCB a la cola de
preparados.
- Activación. Un proceso suspendido previamente
sin estar bloqueado pasara al estado preparado al ser activado
nuevamente.
· Paso a estado suspendido
bloqueado. Si un proceso esta bloqueado y
el sistema operativo recibe la orden de suspenderlo, su PCB entrara en
la cola de procesos suspendidos bloqueados.
· Paso a estado suspendido
preparado. Este paso se puede producir bajo tres circunstancias:
- Suspensión de un proceso preparado pasando
éste de la cola de procesos preparados a la de suspendidos preparados.
- Suspensión de un proceso en ejecución,
con lo cual el proceso pasa a la cola de suspendidos preparados.
- Desbloqueo de un proceso suspendido bloqueado por
desaparecer la causa que impedía el ser activado de nuevo.
Figura 4
En la Figura 4 semuestran las distintas transiciones de estado que puede tener
un proceso
Operaciones sobre procesos
Los sistemas operativos actuales poseen una serie de funciones cuyo objetivo es
el de la manipulación de los procesos.
En general, las operaciones que se pueden hacer sobre un proceso son las
siguientes
· Crear el proceso. Se produce con la orden de
ejecución del
programa y suele necesitar varios argumentos, como
el nombre y la prioridad del
proceso. Aparece en este momento el PCB, que sera insertado en la cola
de procesos preparados
La creación de un proceso puede ser de dos tipos
- Jerarquica. En ella, cada proceso que se crea
es hijo del
proceso creador y hereda el entorno de ejecución de su padre. El primer
proceso que ejecuta un usuario sera hijo del intérprete de
comandos con el que interactúa
- No jerarquica. Cada proceso creado por otro proceso se ejecuta
independientemente de su creador con un entorno
diferente. Es un tipo de creación que no suele
darse en los sistemas operativos actuales.
· Destruir un proceso. Se trata de la
orden de eliminación del proceso con la cual el sistema
operativo destruye su PCB.
· Suspender un proceso. Es una
operación de alta prioridad que paraliza un
proceso que puede ser reanudado posteriormente. Suele utilizarse en ocasiones
de mal funcionamiento o sobrecarga del sistema.
· Reanudar un proceso. Trata de
activar un proceso que ha sido previamente suspendido.
· Temporizar la ejecución de un
proceso. Hace que un determinado proceso se
ejecute cada ciertotiempo (segundos, minutos, horas) por etapas o de una
sola vez, pero transcurrido un período de tiempo fijo.
· Despertar un proceso. Es una forma
de desbloquear un proceso que habra sido
bloqueado previamente por temporización o cualquier otra causa.
PLANIFICACIÓN DE PROCESOS EN SISTEMAS OPERATIVOS
Conjunto de políticas y mecanismos incorporados al sistema
operativo, a través de un módulo
denominado planificador, que debe decidir cual de los procesos en
condiciones de ser ejecutado conviene ser despachado primero y qué orden
de ejecución debe seguirse.
La Planificación de procesos tiene como principales objetivos la
equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el
rendimiento.
Equidad: Todos los procesos deben ser atendidos.
Eficacia: El procesador debe estar ocupado el 100% del tiempo.
Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes
del
usuario debe ser el menor posible.
Tiempo de regreso: Reducir al mínimo el tiempo de espera de los
resultados esperados por los usuarios por lotes.
Rendimiento: Maximizar el número de tareas que se procesan por cada
hora.
Algoritmos de Planificación
Primero en llegar primero en ser servido
Conocido como
FCFS (First Come First Served). Este algoritmo emplea una cola de procesos,
asignando un lugar a cada proceso por el orden de
llegada. Cuando el proceso llega es puesto en su lugar en la cola
después del
que llegó antes que él y se pone en estado de listo. Cuando un proceso comienza a ejecutarse no seinterrumpe su
ejecución hasta que termina de hacerlo.
Prioridad al mas corto
Su nombre es SJF (Shortest Job First). El proceso que se encuentra en
ejecución cambiara de estado voluntariamente, o
sea, no tendra un tiempo de ejecución determinado para el
proceso. A cada proceso se le asigna el tiempo que usara cuando vuelva a
estar en ejecución, y se ira ejecutando el que tenga un menor tiempo asignado. Si se da el caso de que dos
procesos tengan igual valor en ese aspecto emplea el
algoritmo FCFS.
Round Robin
A cada proceso se le asigna un tiempo determinado para
su ejecución, el mismo tiempo para todos. En caso de que un proceso no pueda ser ejecutado completamente en ese
tiempo se continuara su ejecución después de que todos los
procesos restantes sean ejecutados durante el tiempo establecido. Este es un algoritmo basado en FCFS que trata la cola de procesos
que se encuentran en estado de listos como
una cola circular.
Planificación por prioridad
En este tipo de planificación a cada proceso se
le asigna una prioridad siguiendo un criterio determinado, y de acuerdo con esa
prioridad sera el orden en que se atienda cada proceso.
Planificación garantizada
Para realizar esta planificación el
sistema tiene en cuenta el número de usuarios que deben ser atendidos. Para un número 'n' de usuarios se
asignara a cada uno un tiempo de ejecución igual a 1/n
Planificación de Colas Múltiples
El nombre se deriva de MQS (Multilevel Queue Schedulling). En este algoritmo la cola de procesos que se encuentran en
estado delistos es dividida en un número determinado de colas mas
pequeñas. Los procesos son clasificados mediante un
criterio para determinar en qué cola sera colocado cada uno
cuando quede en estado de listo. Cada cola puede manejar un
algoritmo de planificación diferente a las demas.
Tiempos
En la Planificación de procesos se tiene en cuenta diferentes tiempos
que pueden ser calculados, como son el 'Tiempo de espera medio', el
'Tiempo de retorno del proceso' y el 'Tiempo de retorno
medio'.
Tiempo de espera medio
Es el promedio de tiempos en que los procesos estan en estado de listos.
En algoritmos FCFS este tiempo suele ser bastante
largo. En algoritmos SJF para los procesos largos este
tiempo suele ser muy grande, pues se estaran ejecutando constantemente
los procesos mas cortos y los mas largos se encontraran
constantemente en espera, por lo que pueden entrar en inanición. En Planificación por prioridad los procesos de prioridad
baja podrían no ejecutarse nunca. Para
dar solución a este problema el envejecimiento
de un programa eleva su prioridad.
Tiempo de retorno del
proceso
Es el tiempo que transcurre desde la creación de un proceso hasta que
termina la ejecución del
programa que le dio lugar.
Tiempo de retorno medio
Es la suma de los tiempos de retorno de cada uno de los procesos dividida entre
la cantidad de procesos.
PRIORIDADES
En general, todo proceso por sus características e importancia lleva
aparejadas unas determinadas necesidades de ejecución en cuanto a
urgencia y asignación de recursos.Esto hace que los distintos procesos
presentes en un sistema no accedan de igual forma y
con igual frecuencia al procesador debido a la prioridad que cada uno de ellos
tiene asignada.
Las prioridades según los sistemas operativos se pueden clasificar del siguiente modo
· Asignadas por el sistema operativo. Se trata de prioridades
que son asignadas a un proceso en el momento de
comenzar su ejecución y dependen fundamentalmente de los privilegios de
su propietario y del
modo de ejecución.
Unos pocos servicios del
sistema (procesos que inicia el sistema ) tienen
prioridad ALTA y ellos son: El administrador de tareas ( taskmgr.ese ), windows
logon ( winlogon.exe ) y el subsistema de cliente/servidor ( csrss.exe ).
· Asignadas por el propietario. En este
caso es el propio usuario el que asigna a cada proceso la prioridad con que
éste debe ejecutarse. Esta modalidad de
asignación de prioridades es muy utilizada en sistemas de tiempo real,
ya que algunos de sus procesos necesitan atender rapidamente
algún evento sin que tengan que interrumpirse.
Otra clasificación de prioridades atendiendo a la posibilidad de
variación de las mismas es la siguiente
· Estaticas. Son aquellas prioridades que no pueden ser
modificadas durante la ejecución del proceso. Pueden ser utilizadas en sistemas de tiempo compartido, pero no en
los de tiempo real.
Las principales características de las prioridades
estaticas son las siguientes
No cambian.
Los mecanismos de implementación sonsencillos.
Implican una sobrecarga relativamente baja.
No responden a cambios en el ambiente (contexto) que harían deseable
ajustar alguna prioridad.
· Dinamicas. La prioridad de un
proceso puede ser modificada con el fin de atender cualquier evento que se
produzca.
Las principales características de las prioridades
dinamicas son las siguientes
Responden al cambio.
La prioridad inicial asignada a un proceso puede durar
poco tiempo, luego se la reajusta a un mejor valor.
Los mecanismos de implementación son mas
complicados que para prioridades estaticas.
Implican una sobrecarga mayor que para esquemas estaticos
Notar: realizar cualquier tipo de cambios en el nivel de prioridad es muy
peligroso ya que este nivel es asignado por el propio
programa y un cambio en el puede tener consecuencias inesperadas. No debe
cambiarse los niveles de los procesos iniciados por el sistema.
En el caso de ordenadores multiprocesador (caso de 2 procesadores) puede
cambiarse la asignación del uso de los dos procesadores o
de uno solo de ellos a los distintos procesos. Esta
opción solo es accesible cuando en el sistema haya dos o mas
procesadores.
TIPOS DE PROCESOS
Un proceso puede clasificarse en dos grandes grupos según el uso que vaya a tener y la forma como se haya construido el código
ejecutable de su programa. Estos grupos son
· Reutilizables. Son aquellos que pueden cambiar los datos que
utilizan, pero si vuelven a ejecutarse necesitan
comenzar en su estado inicial y procesar nuevos datos. Es el
caso de losprogramas normales de usuario.
· Reentrantes. Se caracterizan por no tener
asociados datos, es decir, sólo tienen código puro. Los
datos que utilizan se encuentran en la pila o en registros internos y no pueden
ser modificados durante su uso. Este es el caso de
programas compartidos por varios usuarios a la vez, como es el de los editores
cuyo código se encuentra una sola vez en memoria, siendo utilizados por
usuarios cuyos datos particulares estaran en una zona del disco asignada
a cada uno de ellos.
Otra clasificación de procesos según la capacidad que tienen de
acceso al procesador y al resto de recursos es
· Apropiativos. Son aquellos que al tener asignado un recurso no permiten que otro proceso pueda acceder a
él hasta que hayan terminado de utilizarlo.
· No apropiativos. Permiten que otros procesos puedan acceder
a un recurso que esté siendo utilizado por
ellos.
Por último, los procesos según su forma de ejecución se
clasifican en
· Residentes. Son los que permanecen en
memoria todo el tiempo que dure su ejecución.
· Intercambiables. Son aquellos que pueden
ser llevados de memoria principal a disco mientras estén bloqueados.
La memoria principal liberada por ellos puede ser utilizada por otro proceso
que en ese momento la necesite.
EXCEPCIONES
A lo largo de la ejecución de un proceso pueden
aparecer una serie de irregularidades o fallos que de alguna forma un sistema
operativo debe tratar de controlar y en su caso corregir.
Estos pueden ser de distinta naturaleza y afectar en mayor o menormedida al
proceso; entre ellos podemos citar
- Fallos hardware.
- Fallos software.
- Entrada de datos incorrectos.
- Eventos anómalos.
Según la gravedad de los eventos que pueden presentarse, se establecen
tres categorías de errores
· Catastróficos. Son aquellos que imposibilitan el
funcionamiento del
sistema y no hay modo de recuperarlo; por ejemplo, un fallo en la
tensión de alimentación.
· No recuperables. Son los que sin afectar
al sistema, hacen que el proceso no pueda continuar su ejecución; por
ejemplo, la aparición de una división por 0.
· Recuperables. Son los que con ciertos ajustes permiten que
el proceso continúe su ejecución normal; por ejemplo, datos con
formato indebido.
El tratamiento de una excepción puede seguir dos modelos
diferentes
Tratamiento de la excepción y continuación del proceso.
Tratamiento de la excepción y finalización del proceso.
Planificación del procesador
El objetivo principal es el de dar un buen servicio a
todos los procesos que existan en un momento dado en el sistema.
En general, se distinguen varios niveles de
planificación
Figura 5
· Planificación a largo plazo (planificador de trabajos).
Decide cual sera el próximo trabajo que se va a ejecutar. Este nivel sólo
existe en los sistemas de proceso por lotes, donde la decisión se basa
en las necesidades de recursos y su disponibilidad. En los sistemas de
tiempo compartido tiene como única misión
cargar los programas que se desean ejecutar en memoria. Este
nivel es, portanto, el encargado de crear los procesos.
· Planificación a medio plazo (planificador de swapping). Decide
si un proceso que esta en ejecución en
estado bloqueado o suspendido debe ser extraído de la memoria
temporalmente. Posteriormente, cuando el sistema se encuentre
mas descargado, devolvera dicho proceso a la memoria y al estado
de ejecución. Este nivel, por tanto, gestiona
los procesos suspendidos en espera de algún recurso no disponible en el
momento de la suspensión.
· Planificación a corto plazo (planificador del
procesador). Es el encargado de decidir cómo y cuando
tendra acceso al procesador un proceso que
esta preparado para utilizarlo. Por tanto, lleva a
cabo las funciones de la multiprogramación, estando siempre residente en
memoria y ejecutandose con mucha frecuencia; por ello, debe ser de
ejecución muy rapida. En este nivel
es donde se debe dar un buen servicio a los procesos interactivos para que el
usuario no perciba, o lo haga en pequeño grado, que esta
compitiendo por el procesador junto con otros usuarios.
Republica Bolivariana De Venezuela
Ministerio De Del Poder Popular Para La Educación Superior
Universidad Politécnica Territorial Del Norte De Monagas
“Ludovico Silva”
Caripito Estado – Monagas
Política de privacidad
|