Está en la página 1de 9

Presentación procesos y

multiprogramación
Fernando Daniel Tejeda Pérez.
Definición y características de un
proceso
 Un proceso no es mas que un programa en ejecución, e incluye los valores
actuales del contador de programa, los registros y las variables.
Conceptualmente cada unos de estos procesos tiene su propia CPU
virtual. Desde luego, en la realidad la verdadera CPU conmuta de un
proceso a otro.
 Las instrucciones de un programa destinadas a ser ejecutadas por el
microprocesador.
 Su estado de ejecución en un momento dado, esto es, los valores de los
registros de la CPU para dicho programa.
 Su memoria de trabajo, es decir, la memoria que ha reservado y sus
contenidos.
 Otra información que permite al sistema operativo su planificación.
Estados de un proceso

 Los estados de un proceso obedecen a su participación y disponibilidad


dentro del sistema operativo y surgen de la necesidad de controlar la
ejecución de cada proceso. Los procesadores sólo pueden ejecutar un
solo proceso a la vez, turnándolos para el uso de este. Existen procesos no
apropiativos o cooperativos que básicamente ocupan todo el tiempo del
procesador hasta que ellos deciden dejarlo. Los procesos apropiativos son
aquellos que ocupan por un período de tiempo el procesador hasta que
una interrupción o señal llega al procesador para hacer el cambio de
proceso, a esto se le conoce como cambio de contexto
 Los posibles estados que puede tener un proceso son ejecución, bloqueado y
listo:

 Ejecución, es un proceso que está haciendo uso del procesador.


 Bloqueado, No puede ejecutarse hasta que un evento externo sea llevado a
cabo.
 Listo, ha dejado disponible al procesador para que otro proceso pueda
ocuparlo.
 Las posibles transiciones son 4. La primera se realiza cuando el sistema
operativo determina que el proceso no puede continuar justo en ese
momento, en algunos sistemas se puede hacer una llamada al sistema "pause"
para pasar al estado bloqueado, en Unix cuando el proceso está leyendo
datos provenientes de una canalización o de un archivo especial (terminal) y
no hay entrada disponible, el proceso se bloquea de forma automática.
Definición y características de la
multiprogramación
 Se denomina multiprogramación a una técnica por la que dos o
más procesos pueden alojarse en la memoria principal y ser
ejecutados concurrentemente por el procesador o CPU.
 Con la multiprogramación, la ejecución de los procesos (o hilos) se va
solapando en el tiempo a tal velocidad, que causa la impresión de
realizarse en paralelo (simultáneamente). Se trata de un paralelismo
simulado, dado que la CPU sólo puede trabajar con un proceso cada vez
(el proceso activo). De ahí que, en rigor, se diga que la CPU ejecuta
«concurrentemente» (no simultáneamente) varios procesos; en un lapso de
tiempo determinado, se ejecutarán alternativamente partes de múltiples
procesos cargados en la memoria principal.1
 Varios procesos en ejecución
 Permite el servicio interactivo simultáneo a varios usuarios de manera
eficiente
 Aprovecha los tiempos que los procesos pasan esperando a que se
completen sus operaciones de E/S y por ende aumenta la eficiencia en el
uso del CPU
 Las direcciones de los procesos son relativas, el programador no se
preocupa por saber en dónde estará el proceso dado que el sistema
operativo es el que se encarga de convertir la dirección lógica en física
Origen de la multiprogramacion

 Cuando aparecieron los primeros ordenadores, la programación de estos era


hecha íntegramente en código máquina, lo cual resultaba una tarea
extremadamente pesada: cada vez que se escribía un nuevo programa,
además de escribir el algoritmo adecuado era preciso añadir todo el código
necesario para que el ordenador pudiese leer datos desde una cinta
perforada, imprimir en un teletipo, etc. Dado que, en general, todas estas
rutinas eran exactamente iguales para todos los programas que se hacían,
pronto los programadores de aquellas máquinas aprendieron a organizarlas
en bibliotecas de rutinas. Cada vez que había que escribir un nuevo programa,
solo tenían que ir a su libreta y copiar las rutinas de Entrada/Salida que
necesitaban, lo cual les simplificaba un poco el trabajo. Otro sistema era el que
la propia empresa que fabricaba el ordenador incluyese un paquete de fichas
perforadas con dichas rutinas, de modo que el programador solo tenía que
coger las que le interesasen y añadirlas estratégicamente en su paquete.
 El siguiente paso fue generalizar este conjunto de rutinas. La idea era incluir
juntas todas las rutinas necesarias para acceder al hardware, y hacerlas
accesibles a cualquier programador en forma de llamadas a subrutina. De este
modo, cada vez que se hacía un programa no era preciso incluir en él todas
esas rutinas. Había nacido el Sistema Operativo.
 Los primeros 'Sistemas Operativos' (si es que podían recibir ese nombre) no eran
más que un conjunto de subrutinas que ayudaban al programador,
ofreciéndole servicios básicos como lectura de caracteres desde un teletipo,
escritura en tambor, disco, etc.
 Sin embargo, pronto se vio la necesidad de un nuevo enfoque. Los
ordenadores eran caros, y su mantenimiento también, por lo que solo algunas
grandes empresas y universidades podían disponer de ellos. Para amortizarlos,
se alquilaba tiempo de proceso, de modo que se podía ir allí con un
programa, ejecutarlo, y pagar por el tiempo que le llevase hacerlo al
ordenador.
 El primer problema que había era que se tardaba mucho en cargar cada
programa. Cuando el ordenador terminaba de ejecutar uno, el operador tenía
que insertar el siguiente, lo cual era una tarea bastante pesada y larga.
Durante el tiempo que se hacía esto, el ordenador estaba totalmente inactivo,
se estaba desperdiciando tiempo. Fue entonces cuando surgieron los sistemas
de proceso por lotes (batch).
 En los sistemas de proceso por lotes, los programas se almacenan en una cinta,
todos seguidos. Cada vez que el ordenador terminaba de ejecutar un
programa, leía el siguiente de dicha cinta. Si llegaba alguien con un programa,
este se añadía a continuación del último que hubiese, mientras el ordenador
iba ejecutando el que ya tenía en memoria. El coste de mantenimiento del
nuevo sistema era ligeramente superior, pues había que añadir al sistema el
lector de cintas en donde se escribían los programas; pero como podía
ejecutar muchos más programas en el mismo tiempo (porque no se perdía
parte de este en cargar los programas), el precio de alquiler bajó
drásticamente, permitiendo que más gente tuviese acceso a los ordenadores.

También podría gustarte