Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CÓMPUTO
Operativos
1. Gestión de procesos
3. Gestión de archivos
7. Sistemas de protección
Jerarquía de Procesos
Los procesos deben ser posibles crearlos o destruirlos según lo requiera la operación
que se realiza, la creación de un proceso se realiza a partir de una instrucción FORK
(bifurcación), la cual hereda a los nuevos procesos características del proceso invocador,
de estos se realiza carga en memoria para poderlos ejecutar.
Un ejemplo de la creación de
procesos es la detección de cantidad
de terminales existentes para un
arranque de imagen lo que genera un
proceso por cada terminal detectada.
Cuando se inicia sesión en una de las
terminales, el Shell se encarga de
iniciar un nuevo proceso por cada
comando existente a partir del inicio
de sesión.
El ejemplo anterior que involucra al Shell muestra porqué es necesario que un proceso
pueda crear otro proceso, así entonces un proceso si lo requiere tendrá procesos hijos,
por referencia se pueden encontrar en un árbol de procesos, procesos padres, hijos,
hermano o abuelos.
Algunas características a considerar de los procesos son:
Los niveles usualmente no sobrepasan de 3 a diferencia de los niveles de
archivos que pueden ser de hasta 5 o más.
Su tiempo de vida no es extenso.
Los procesos hijos pueden ser manejados o controlados únicamente por su
respectivo proceso padre a diferencia de los archivos que los controles son
heredados a otros directorios y no únicamente al archivo propietario, esto se
hace por medio de mecanismos que se encargan de permitirlo
Estados de Procesos
Un proceso se puede encontrar en cualquiera de los siguientes estados; En proceso
cuando se está realizando la operación, de este estado puede pasar a bloqueo en caso
que se requiera a falta de una entrada que necesita el proceso de ahí podría pasar a un
estado listo si se recibe el dato de entrada esperado, igualmente del estado en proceso
puede pasar directamente a listo sin haber finalizado sino únicamente por que el
planificador ha creado una interrupción para ceder tiempo de ucp a otro proceso.
Planificador
El planificador (Schedule) forma parte del núcleo (Kernel) del sistema operativo, este
entra en ejecución cada vez que se activa el S.O. y su misión es seleccionar el proceso
que se ha de ejecutar a continuación. El activador (dispatcher) también forma parte
del sistema operativo y su función es poner en ejecución el proceso seleccionado por
el planificador.
Cambio de Contexto
El cambio de contexto ayuda al cambio de estado de procesos, el cambio de estado,
puede estar asociado a la interrupción por lectura de disco para leer información
requerida por un proceso en estado bloqueado y una vez obtenido el dato, el proceso
puede cambiar a un estado listo o bien mantenerse en ejecución en dependencia de lo
que ha dispuesto el planificador. Igual puede deberse a un cambio de estado por la
interrupción de atender una solicitud de otro proceso
Los cambios de estados implican interrupción en los procesos y en la interrupción de
procesos se salva en BCP (Bloque de Control de Procesos) primeramente y luego se
cede al sistema operativo el tratamiento de la interrupción.
Compartir Información
Cuando la información ha de ser compartida por varios procesos no ha de residir en
BCP, que es de acceso restringido al proceso que le ocupa, a lo sumo BCP tendrá un
apuntador que permita alcanzar esa información.
Subprocesos
Un proceso ligero o subproceso se define
como una función cuya ejecución se
puede lanzar en paralelo con otros
procesos ligeros en un mismo proceso
(división de tareas) mientras el proceso
que les contiene se encuentre activo, lo
que optimiza los espacios en memoria
requeridos para su funcionamiento ya
que estos utilizan el mismo espacio en
memoria que el proceso padre, lo que
implica que al el procesador será más
demandado por hilos en ejecución
(ejecuciones más prontas), el procesador tendrá una mayor tasa de demanda de
recursos. Un ejemplo de subproceso seria la activación de un documento en Word, la
aplicación propiamente es el proceso (proceso moderno), el cual reserva espacios de
memoria, acceso a archivos y recursos de HW como la impresora, al abrir un nuevo
documento se está activando un subproceso con acceso a los recursos proporcionados
por el proceso activo.
Estados de Subprocesos
Los hilos se pueden encontrar en cualquiera de los
siguientes estados. En ejecución, un proceso ligero en
ejecución hace referencia a la realización de un
trabajo activo. Listo para ejecución, como se plantea
en el estado de procesos a nivel de usuario, un
Proceso es capaz de detectar cuando un hilo está
apunto de bloquearse, por tal razón identifica cual
será el siguiente hilo a ejecutar en el proceso, ese hilo detectado se encuentra en estado listo
para ejecución, esperando que el subproceso activo le transfiera información a procesar.
Bloqueado, es el proceso que no se encuentra ni ejecución, ni listos para ejecutarse.
Implementación de subprocesos
espacio de usuario
La creación de subprocesos implica averiguar cuándo se suspende un subproceso en el
proceso, ya que hay una tabla de subprocesos en el proceso. Disponible, antes de que
se cree el bloqueo, ya sabe qué siguiente hilo (thread) se debe elegir para continuar la
actividad del proceso.
Ventajas
El kernel ignora su existencia
Tabla de subprocesos accesible únicamente dentro del proceso para poder
realizar cambios de contextos
Cambios de contexto más rápido (no pasa por el núcleo)
Cada proceso puede contar con un algoritmo de planificación
Desventajas
Llamadas bloqueantes al sistema
Fallos de página
La ucp debe ceder tiempo a cada uno de ellos debido a la conmutación dentro
del mismo proceso
Bloqueo frecuente
No puede acceder a los recursos de máquina, para ello debe ejecutar llamadas
al sistema (petición transmitida por un proceso de kernel)
Espacio de Kernel
En el espacio del kernel, a diferencia del espacio del usuario, no puede detectar si hay
otros subprocesos disponibles además del subproceso activo, por eso cuando ese
subproceso entra en un estado de bloqueo, el kernel detendrá todo el proceso porque
no sabe que hay otros. subprocesos que pueden activarlo para continuar el proceso.
Ventajas
El núcleo mantiene la tabla de hilos, que es un subconjunto de la de procesos.
Las llamadas bloqueantes no necesitan funciones especiales.
Los fallos de página no suponen un problema.
Al bloquearse un hilo, el kernel puede conmutar a otro hilo de otro proceso.
Desventajas
Las llamadas bloqueantes son llamadas al sistema (mayor consumo de
recursos)
La creación y destrucción de procesos es más costosa (reutilización de hilos)