Para lograr seguir el rastro de la localización en memoria de una instrucción, en este caso un set de instrucciones, la memoria principal es particionada en un area en la cual, será utilizada por el sistema operativo y otra usada por las aplicaciones, que en este caso para efectos de la explicación, asumiremos es un solo programa activo, el sistema operativo se hubicara en la localización 0 y se extendera hasta la localizacion A, luego, asumiremos que el programa irá hubicado en la localización L.
Son utilizadas dos tipos de direcciones o localizaciones, una lógica que es básicamente un valor correspondiente a la dirección que es relativa al programa pero no radica en la memoria principal y una dirección fisica que sí radica en la memoria principal. Cuando un programa es compilado ,cualquier referencia a un identificador tal como una variable es convertida a direccion fisica. En otras palabras hay una asociación entre cada dirección lógica a una fisica. Esta asociación es conocida como "Address Binding" o enlace de dirección y para poderla llevar a cabo se toma como referencia la dirección del sistema operativo q en este caso es A.
La dirección lógica del programa que empieza en L en la memoria principal es sumada a A para obtener la dirección física de esta que seria A+L. En el contexto de la informática, un "JOB" es un set de instrucciones de sistema junto con el programa" y cuando el programa es cargado a la memoria lo que se carga es el job relativo a ese programa. El OS se encarga de mantener una tabla con las direcciones de cada partición y el largo de esta. Es importante señalar que existen 2 tipos de particiones, una fija y otra dinámica.
La fija puede tener cualquier número particular de particiones pero el tamaño de cada partición permanecera fijo, en el caso de una partición dinámica, cada partición se ajustará al tamaño del programa por lo que en este caso la tabla de partición estará variando continuamente al entrar un programa nuevo y salir otro. No obstante, el sistema operativo trabaja mejor con una técnica conocida como "Page Memory Management" en la cual la memoria principal es subdividida en "Frames" que son pequeños bloques de memoria de tamaño definido

Aqui representados dos programas diferentes P1 y P2
Fig K2.
|
Ahora bien, un proceso tambien es segmentado en areas conocidas como "Pages", usualmente es del mismo tamaño que el "Frame". Cuando un programa va a ser ejecutado, cada page es cargado a un frame, obviamente que no se este usando, y estos pueden ser consecutivos uno con el otro, o sea, uno trás otro, o pueden estar dispersos, por lo que en muchas ocaciones, un programa puede estar disperso en sus partes , tal vez mezclado con otras partes de otros programas y debe mantenerse entonces constancia de la hubicación de cada uno y el paso de ejecución en el que este se encuentra al momento. Para esto se utiliza un Page Map Table (PMT) (Fig K2.) para registrar hubicación y asociación de cada paso .

Fig K3.
El proceso entra al sistema y es convertido automáticamente en proceso y este proceso al estar listo para su ejecución, pasa por el escrutinio de un algorítmo para decidir su prioridad de ejecución lo que es conocido como el "CPU Scheduling" y se lleva a cabo en los pasos entre el "Running"la corrida del proceso y el "Waiting" estado de espera o; entre la corrida y su terminación "Terminated" a esto se le llama el "Nonpreemptive Scheduling" por que es una agenda basada en el resultado de la corrida que se efectua en el momento (Fig K3.).
Las deciciones de agenda pueden tambien ser controladas por el sistema operativo y no por el resultado de la corriente corrida, estas especificamente ocurren entre el ""Running State" la corrida y el estado de espera "Waiting State"o entre la espera "Waiting State"y la corrida "Ready State", a este tipo de agenda se le conoce como "Preemptive Scheduling".
Una vez el proceso este en el estado de corrida o sea en ejecución, este va directamente a pasar por el ciclo de Fetch-Execute y cuando sale de este estado ó necesitara esperar por algún otro recurso para terminar ó bien podra haber terminado del todo y desplegar su resultado o pudiera ser interrumpido por el sistema operativo para dar paso a otro proceso perteneciente a otro programa segun su prioridad o a requerimiento del usuario.
Cuando un proceso esta activo (recuerde que un proceso es un set de pages "pajinas"perteneciente a un programa dado) toda la data correspondiente e información sobre él, entra a una estructura de datos conocida como PCB (Process Control Block) que es un tipo de registro que se nutre del valor del PC (Program Counter) para mantener el status del proceso activo. Si un proceso es interrumpido para darle paso a otro, de otro programa, esta estructura de valores se actualiza por la del proceso que entra nuevo en un cambio llamado "Context Switch".
A cada proceso se le da el tiempo necesario para ejecutar y terminar su ejecución, de no lograr ejecutar dentro de éste término de tiempo, el sistema generará un error conocido como "ünrecoverable error" y terminará de forma abrupta.
<-------------Atras (Back)
|