Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Concepto de Proceso
Un sistema operativo es muy complejo en cuanto a su funcionalidad. Concepto de proceso es fundamental para modularizar y estructurar el sistema operativo, que por su naturaleza es dinmico. Un proceso es un programa en ejecucin, siendo la unidad de trabajo en el SO. Un proceso es una entidad activa, que puede solicitar recursos (archivos, dispositivos, etc.)
Definicin de Proceso
Un proceso es un programa en ejecucin, que se ejecuta secuencialmente (no ms de una instruccin a la vez). El proceso es una abstraccin creada por el SO, que se compone de: Programa: Cdigo y datos del programa cargado en memoria principal. Contexto de Ejecucin: PC, registros del procesador y un stack para invocacin de procedimientos.
Caractersticas de un Proceso
Los servicios superiores del SO se estructuran en base a procesos Permite modularizar y aislar fallas de programas durante su ejecucin Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos Denominaremos como procesos a los trabajos (jobs) en sistemas de lotes, como a las tareas en sistemas de tiempo compartido.
Creacin de Procesos
Formacin de jerarquas de procesos (relacin padrehijo) En Unix se forma un rbol a partir de proceso INIT Respecto a los recursos: Hijos pueden heredar los recursos (compartir), o Reciben nuevos recursos Al crearse un hijo, puede suceder Hijo se ejecuta concurrentemente con el padre Padre espera que el hijo termine
Procesos Cooperativos
Son aquellos que comparten un estado (o datos) Ejemplos de cooperacin: Compartir informacin (e.j. archivos) Aceleracin de la computacin (ejecucin paralela) Modularidad (e.j. cortafuegos) Conveniencia (se requieren varias tareas simultneas) Cooperacin requiere de mecanismos de comunicacin y sincronizacin entre procesos
Estados de un Proceso
Nuevo: El proceso est siendo creado. Ejecucin: Proceso ejecuta instrucciones de mquina. Listo: El proceso est listo para recibir el procesador para iniciar o continuar su ejecucin. Espera: El proceso deja de competir por el procesador, esperando un evento externo (e.j. E/S, sincronizacin con otro proceso, una seal, etc.) Terminado: El proceso ha terminado su ejecucin
Transiciones de un Proceso
Admitir: Proceso entra a competir por recursos Despachar: Planificador elige de cola listo el prximo proceso, cargando el procesador con su contexto. Expropiar: Interrupcin del temporizador (timeout), por fin de cuanto de tiempo, guardndose el estado del proceso. Despertar: Proceso vuelve a competir por el procesador al ocurrir el evento esperado. Salir: El proceso termina su ejecucin (normalmente o con error).
Tabla de Procesos
El sistema administra los procesos a travs de una tabla que contiene para cada proceso existente en el sistema un descriptor. Este descriptor se denomina Bloque de Control de Proceso (PCB). La tabla es una estructura de datos localizada en el ncleo del sistema.
Jerarqua de Procesos
La secuencia de creacin de procesos, se genera como un rbol de procesos Las relaciones que existen entre los procesos se emplean como los trminos de Padre, Hjo, Hermano, Abuelo Cuando el proceso A solicita al Sistema Operativo que cree el proceso B, se dice que A es padre de B y B s Hijo de A, Bajo esta ptica, la jerarqua de procesos puede considerarse como un rbol genealgico Algunos sistemas operativos, como Unix, mantienen una forma explicita esta estructura jerrquica de procesos, un proceso sabe quien es su padre, mientras que otros sistemas operativos como el Windows NT no la mantienen
Entorno de un Proceso
Consiste en un conjunto de variables que se le pasan al proceso en el momento de su creacin.
El entorno esta formado por una tabla NOMBRE-VALOR que se incluye en la pila del proceso. El NOMBRE especifica el nombre de la variable y el VALOR su valor.
Grupo de Procesos
Los procesos forman grupos que tienen diversas propiedades. El conjunto de procesos creados a partir de un shell puede formar un grupo de procesos. Tambin pueden formar un grupo los procesos dependientes de un terminal
Monotarea:
Un sistema operativo monotarea, solamente permite que exista un proceso en cada instante. Si quieren ejecutar varios procesos, o tareas, hay que lanzar la ejecucin de la primera y esperar que termine antes de poder lanzar la siguiente.un ejemplo es MS-DOS
Multitarea:
Permite que coexistan varios procesos activos a la vez. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre estos procesos, para que todos ellos vayan avanzando en su ejecucin.
Base de la Multitarea
La multitarea se basa en las tres caractersticas siguientes: *Paralelismo real entre E/S y procesador
Ventajas de la Multitarea
*Facilita la programacin. Permite dividir las aplicaciones en varios procesos, lo que benefician su modularidad *Permite prestar un buen servicio, puesto que se puede atender a varios usuarios de forma eficiente, interactiva y simultanea *Aprovecha los tiempos muertos que los procesos pasan esperando a que se completen sus operaciones de e/s *Aumenta el uso de la Ucp, al aprovechar los espacios de tiempo que los procesos estn bloqueados.
Procesos Nulos
El procesador no para de ejecutar nunca. Este proceso consiste en un bucle infinito que no realiza ninguna operacin til. El objetivo de este proceso es <<ENTENDER>> al procesador cuando no hay ninguna otra tarea.
Planificador y activador
El planificador (SCHEDULER) forma parte del ncleo del sistema operativo. Entra en ejecucin cada vez que se activa el sistema operativo y su misin es seleccionar el proceso que se ha de ejecutar a continuacin. El activador (DISPATCHER) tambin forma parte del sistema operativo y su funcin es poner en ejecucin el proceso seleccionado por el planificador.
Planificacin de Procesos
Objetivos de la Planificacin de Procesos: Multiprogramacin: Tener siempre un proceso ejecutndose con el propsito mejorar utilizacin CPU y otros recursos. Tiempo Compartido: Cambiar rpidamente la CPU entre procesos para mantener buena interactividad. No pueden existir ms procesos en ejecucin que el nmero de procesadores Sistemas de multiprocesamiento permiten tener ms de un proceso en ejecucin.
Acta con poca frecuencia (normalmente cuando termina un proceso), creando un proceso y cargndolo en la memoria. Controla el grado de multiprogramacin. Determina una buena mezcla de procesos de uso intensivo de CPU y de E/S. Algunos sistemas no tienen este planificador (e.j. Sistemas de tiempo compartido).
Decide a qu proceso asignarle la CPU, el cual es seleccionado de la cola listo. Se ejecuta con alta frecuencia, cada vez que un proceso abandona la CPU: salida del proceso (exit) timeout (expira su ranura de tiempo) solicitud de E/S o espera por un evento Asegura la interactividad en un sistema
Permite regular la carga reduciendo o aumentando el grado de multiprogramacin, usando tcnica de swapping. Un factor de decisin importante es la demanda por memoria de los procesos. Se usa en sistemas de tiempo compartido
El estado del procesador esta formado pro el contenido de todos sus registro, y se enumeran de la siguiente manera: Registro generales Registro de estado Registro especiales
La imagen de memoria del proceso esta formada por los espacios de memoria que esta autorizado a utilizar. Las principales caractersticas de la imagen de memoria son las siguientes
Este es el modelo mas sencillo de imagen de memoria y su uso se puede restringir a los sistemas sin memoria virtual. El proceso recibe un nico espacio de memoria que, adems, no puede variar de tamao.
El BCP contiene la informacin bsica del proceso, entre la que cabe destacar lo siguiente: Informacin de identificacin Estado del procesador Informacin de planificacin y estado