Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El microprocesador no hace las cosas por si solo, es el sistema operativo el que determina
que proceso se debe ejecutar y cuanto tiempo debe estar ejecutándose, a todo esto se le
denomina gestión de procesos.
Los procesos no pueden pasar por ellos mismos de listos a ejecución, es el S.O. el que decide cuando se
pasa de listo a ejecutado.
Los hilos pueden estar a nivel del núcleo del sistema operativo
o a nivel de usuario.
• Se pretende poder discriminar procesos de tal manera que se permita dar mayor prioridad
a aquellos procesos que tengan asignados recursos claves.
• Utilización de la C.P.U: Queremos que la C.P.U. se mantenga tan ocupada como sea
posible.
• Rendimiento: Una medida del trabajo es el número de procesos que se completa por
unidad de tiempo.
A medida que los procesos entran al sistema se colocan en una cola de trabajos que
contiene todos los procesos del sistema.
Cada PCB incluye un campo de puntero que apunta al siguiente PCB de la cola de procesos
preparados.
El sistema también incluye otras colas como son las colas de dispositivos.
Durante el tiempo de vida, los procesos se mueven entre las diferentes colas de
planificación. El SO como parte de la planificación debe seleccionar un proceso
que se encuentran en las colas. Este proceso se lo realiza a través de un
Planificador.
• Planificador a mediano plazo: Decide si se añade al número de procesos que están total o
parcialmente en memoria principal.
• Planificadores a corto plazo (Planificador de CPU): Decide cuál de los procesos disponibles
ejecutará el procesador.
Cuando se produce una interrupción el sistema tiene que guardar el contexto actual del
proceso que se esta ejecutado en la CPU, de modo que se pueda restaurar dicho contexto
cuando su procesamiento concluya, suspendiendo el proceso y reanudándolo después.
El tiempo dedicado al cambio de contexto es tiempo desperdiciado. El tiempo empleado para
el cambio de contexto depende fundamentalmente del soporte hardware.
• Destruir un proceso: Liberándose todos los recursos que tenía asignado el proceso. La
prioridad del proceso sería la prioridad en el PCB.
• Bloquear un proceso: Pasar de estado activo a bloqueado debido a que tiene que esperar
a que suceda un evento.
• Activar un proceso: Cuando termina un evento por el que está esperando un proceso y se
encontrase este bloqueado, entonces pasa este a listo.
• Procesos independientes: Si no puede afectar o verse afectado por los restantes procesos
del sistema.
Hay varias razones para proporcionar un entorno que permita la cooperación entre procesos:
* Modularidad. * Conveniencia.
La comunicación interprocesos que emplea memoria compartida requiere que los procesos
que se estén comunicando establezcan una región de memoria compartida. El SO evita que
otro proceso pueda ingresar a direcciones de memoria de otro proceso, por cual los procesos
cooperativos deben eliminar esta restricción.
En todos los casos el sistema operativo o el subsistema de comunicación entre procesos (IPC)
deben asegurar la consistencia y la correctitud de los mensajes. Para esto se pueden
implementar sumas de verificación (checksum) o similares.
Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un
mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedará con valores
incorrectos. Para resolver problemas como este se ideó la sección crítica, que es el segmento
de código que accede a los recursos. Sólo puede haber una sección crítica en ejecución por
vez, así nos aseguramos que los datos quedan consistentes.
Los mensajes intercambiados por los procesos que se están comunicando residen en una cola
temporal, tales colas se pueden implementar de tres maneras:
• Capacidad Cero: La longitud máxima es de cero; por lo cual no hay ningún mensaje
esperando en el enlace.
• Capacidad Limitada: Tiene una longitud finita n; por lo cual hay n mensajes esperando.
• Capacidad ilimitada: La longitud es infinita, por lo cual puede haber infinitos mensajes
esperando en la cola.