Está en la página 1de 5

Unidad 2 ASO:

Un proceso puede ser pensado como un programa en ejecución, el cual necesita recursos los
cuales se les asignan cuando el proceso se crea o se esta ejecutando. Es la unidad de trabajo en
la mayoría de los sistemas, los cuales consisten en procesos del sistema operativo y procesos de
usuario.
Un proceso es más que el código de un programa, conocido como sección de texto, incluye la
actividad actual, representada por el contador del programa y el valor de los registros del
procesador. Generalmente también incluye la pila o stack de proceso que contiene datos
temporales y una sección de datos que incluyen variables globales. Puede incluir también un
heap, memoria asignada dinámicamente durante la ejecución.
Un programa en si mismo no es un proceso, es una entidad pasiva con una lista de
instrucciones. Un proceso es una entidad activa con un contador de programa que especifica la
siguiente acción a ejecutar, y un conjunto de recursos asociados. Un programa se convierte en
un proceso cuando se carga en la memoria. Si bien dos procesos pueden estar asociados al
mismo programa, se consideran dos secuencias de ejecución separadas. También es común que
de un proceso se engendren otros.
Un proceso en si mismo puede ser un entorno de ejecución para otro código. En cualquier
instante, mientras un proceso esta en ejecución se puede caracterizar por una serie de
elementos:

 Identificador: único para distinguirlo.


 Estado:
 Prioridad:
 Contador de programa: dirección de la siguiente instrucción.
 Punteros a memoria: punteros al código del programa, datos asociados o bloque de
memoria compartidos.
Datos de contexto: Datos presentes en el registro del procesador cuando el procesador esta
corriendo.
Información de estado de E/S: Peticiones y estado de los E/S.
Información de auditoria: Tiempo de procesador, de reloj, etc.

Bucle de control de proceso:


La información de esta lista se almacena en el BCP, el cual gestiona el sistema operativo.
Contiene tanta información que es posible interrumpir el proceso y luego retomarlo. El BCP
permite al sistema operativo dar soporte a múltiples procesos y proporcionar
multiprogramación. Cuando un proceso se interrumpe, los valores actuales de contador de
programa y los datos de contexto se guardan en el BCP, y el estado del proceso cambia a
bloqueado o listo. Un proceso comprende también al BCP.
Cada proceso debe tener una estructura de datos que almacena su estado de información.

Estados de un proceso:
El control de procesos describe el comportamiento que se desea que tengan los procesos. Se
puede construir el modelo mas simple posible describiendo si un proceso se esta ejecutando o
no. Cuando el SO crea un nuevo proceso, crea un nuevo BCP el cual inserta el nuevo proceso en
el sistema en estado NO EJECUTADO. En algún momento el proceso actualmente en ejecución
se interrumpe y el activador selecciona a otro para ejecutarlo.
Existe información correspondiente a cada proceso que indica su estado actual y su localización
en memoria. Esto es su BCP. Os programas que no se están ejecutando permanecen en la cola
en este modelo.
Se puede modelar la existencia de una sola cola cuyas entradas son punteros al BCP de un
proceso. Alternativamente, la cola debe consistir en una lista de bloques de datos, en la cual
cada bloque representa un proceso. En este modelo, el activador selecciona un proceso a
ejecutar cuando el proceso anterior acabo.

Modelo de dos estados:


Esta gestión de cola solo seria efectiva si todos los procesos estuviesen siempre preparados para
ejecutarse. Es una lista del tipo FIFO y el procesador opera siguiendo una estrategia cíclica sobre
los procesos disponibles. Esta implementación es inadecuada, algunos procesos están en estado
no ejecutado, otros en estado bloqueado, y utilizando una única cola el activador debería
recorrer una lista tardando mas tiempo. Por ello se divide el estado no ejecutado en LISTO y
BLOQUEADO. Se añaden Tambien los estados NUEVO y TERMINADO.

Modelo de cinco estados:


El estado NUEVO se corresponde a un proceso que acaba de ser definido, el sistema operativo
realiza las tareas internas que correspondan, sin embargo, el proceso aun no esta en ejecución.
Su información esta en la memoria principal, el proceso aun no.
De forma similar, un proceso saliente no es elegible para su ejecución. Cuando el proceso
finaliza, las tablas e información asociada son preservadas por el sistema operativo mientras
programas de soporte copian la información necesaria, luego de lo cual el proceso se borra del
sistema.
Creación de procesos:
El sistema operativo construye las estructuras de datos que se usan para manejar el proceso y
reserva espacio en la memoria principal. Cuando el sistema operativo crea un proceso a petición
explicita de otro proceso, dicha acción se denomina creación del proceso. Cuando un proceso
lanza a otro al primero se lo conoce como proceso padre, y al segundo como proceso hijo.
Formas de creación de procesos:
 Sesión interactiva: El usuario desde una terminal entra al sistema y lanza un proceso.
 Creado por el SO para dar un servicio: Realiza un proceso para realizar una función sin que
el servicio usuario tenga que esperar.
 Creado por un proceso existente.

Terminacion de un proceso:
Todo sistema debe proporcionar los mecanismos mediante los cuales un proceso finaliza o se
completa. En un sistema de trabajo por lotes debe incluir una instrucción HALT. En un sistema
de tiempo compartido el proceso de un usuario puede terminar cuando se apaga la terminal.

 Finalizacion normal.
 Tiempo excedido.
 Memoria no disponible.
 Violaciones de frontera.
 Errores de protección.
 Error aritmético.
 Falla de E/S.
 Instrucción no valida.
 Instrucción privilegiada.
 Finalizacion de un proceso padre.
 A solicitud del proceso padre.
 A solicitud de un proceso autorizado.

Planificación de procesos:
El sistema operativo controla los eventos dentro de la computadora. Planifica y activa los
procesos para su ejecución por el procesador. Reserva recursos para los mismos y responde a
solicitudes de servicios básicos de los procesos de usuario.El objetivo de la multiprogramación
es tener en ejecución a varios procesos al mismo tiempo.
Los sistemas de tiempo compartido tienen como objetivo conmutar la CPU entre los distintos
procesos con la frecuencia suficiente para que los usuarios puedan interactuar con cada
programa mientras el proceso se ejecuta.
El Planificador de procesos selecciona un proceso disponible para ejecutarlo en la cpu. En los
sistemas de un solo procesador no hay mas de un proceso en ejecución. Los procesos
subsiguientes esperan en cola.

Procesos que se utilizan según la situación:


 multiprogramación: hacer rendir el procesador.
 Tiempo compartido: tiempos de respuesta cortos.
 Tiempo real: Garantizar plazos de ejecución.
Niveles de planificación:
Planificador a largo plazo (PLP): suministra procesos a la cola de preparados, se ejecuta con
poca frecuencia.
Planificador a mediano plazo (PMP): envía al disco procesos bloqueados para desbloquear
espacios en a la memoria principal.
Planificador a corto plazo (PCP): Asigna y designa el uso de la CPU.
La operación consiste en desalojar a un proceso de la CPU y reanudar otro se la conoce como
CAMBIO DE CONTEXTO. El modulo encargado de esta operación se lo conoce como Dispatcher.
En cada cambio de contexto hay que guardar el estado del proceso que sale en su BCP, y
recuperar los registros del proceso que entra. Cada contexto se encuentra en cada BCP. El
cambio de contexto consiste en tiempo perdido.

Comunicación entre procesos:


Los procesos pueden ser independientes, sino pueden afectar o ser afectados por otros
procesos al no compartir datos, o de cooperación si comparten datos con otros procesos. Las
razones para la cooperación de procesos pueden ser compartir información, acelerar cálculos,
modularidad y conveniencia.
La cooperación requiere mecanismos de comunicación interprocesos que permiten
intercambiar datos. Los procesos pueden intercambiar información y escribiendo datos en la
región compartida de memoria. Esto requiere que los procesos establezcan una zona de
memoria compartida, la cual esta en el espacio de direcciones. Otros procesos que deseen
comunicarse deben comunicarse con este espacio de memoria.
El formato de datos y ubicación están determinados por los procesos NO POR EL SO, Por lo que
será responsabilidad del proceso verificar que no se escriben simultáneamente en la misma
dirección.
Modelo de paso de mensajes: la comunicación tiene lugar por medio de mensajes
intercambiados entre los procesos cooperantes, proporciona un mecanismo que permite a los
procesos comunicarse y sincronizar sus acciones sin compartir el mismo espacio de direcciones.
Lo cual es útil en entornos distribuidos.
Los mensajes enviados por un proceso pueden ser de tamaño fijo o variable. SI solo se pueden
enviar mensajes de tamaño fijo, su implementación es sencilla, lo cual dificulta mucho la
programación. Si por el contrario los mensajes son de tamaño variable, su implementación es
mas compleja pero su programación mas sencilla.
Ambos modelos son comunes en los SO. El paso de mensajes es útil para intercambiar
pequeñas cantidades de datos, ya que no se evitan conflictos. La memoria compartida puede
ser más rápida que el paso de mensajes. No requieren asistencia del kernel. Este método sufre
de problemas de Coherencia de cache que surgen porque los datos migran a varios cache.
Comunicaciones cliente servidor:
Socket: se define como el punto final para la comunicación de procesos, utilizan sockets
identificados por direcciones IP concatenadas por un numero de puertos. El servidor espera las
solicitudes de clientes entrantes, escuchando un puerto especifico. Cuando se recibe una
solicitud, el servidor acepta una conexión desde el socket cliente.
Cuando un proceso cliente inicia una solicitud para una conexión se le asigna un puerto por su
equipo host. Este puerto tiene un numero arbitrario superior a 1024. La conexión consiste en un
par de sockets en el host y en el servidor web. Se considera una forma de comunicación de bajo
nivel entre procesos distribuidos.
Llamada a procesamiento remoto:
Se diseñaron para abstraer los mecanismos de llamada a procedimientos para ser utilizados en
sistemas conectados a red. Permiten al cliente invocar un procedimiento de un remoto del
mismo modo que lo haría con un local. Los mensajes estarán estructurados en paquetes de
datos.
Tuberías:
Permiten a los procesos comunicarse con algunas limitaciones, las cuales serán la
direccionalidad, la relacionalidad y donde estará el host.
Hilos:
Los modelos de procesos presentados, suponen que cada proceso de ejecución con un solo hilo
de control. Todos los sistemas operativos proporcionan características que permiten a un
proceso contener múltiples hilos de control. Un hilo es una unidad básica de utilización de la
CPU. Comprende un identificador de subproceso, un contador de programa un conjunto de
registro y una pila. Comparte con otros hilos pertenecientes al mismo proceso su sección de
código, sección de datos y otros recursos como archivos abiertos y señales. Si un proceso tiene
múltiples subprocesos de control, puede realizar mas de una tarea a la vez. Esto permite
aprovechar varias tareas intensivas en paralelo a través de múltiples núcleos de los
procesadores.Un proceso PESADO contiene uno o varios hilos que comparten la misma
memoria y recursos.

 Permiten una comunicación mas sencilla entre procesos(memoria compartida).


 Mas concurrencia con menos recursos (Usan el mismo espacio de memoria para código y
datos.)
 La conmutación entre hilos puede ser mas eficiente.

También podría gustarte