Bibliografía

Se recomienda leer las siguientes secciones del libro de Silberschatz: 3.1 a 3.3 inclusive

Silverschatz 3.1 - 3.3


Procesos

Se puede considerar al procesador como el recurso más importante de la computadora, este ejecuta las instrucciones que solucionan los problemas que tienen los usuarios. Cuando hablamos de procesador sabemos que este ejecuta instrucciones que forman parte de un programa y se dice que los programas puestos en ejecución son procesos.

Concepto de proceso

Un proceso es un programa en ejecución. La ejecución del proceso debe avanzar en forma secuencial, no hay una ejecución en paralelo de instrucciones dentro de un único proceso, es decir, que tenemos un programa en disco el cual abrimos mediante un doble click o escribiendo su nombre y presionando enter en caso de utilizar una shell, el S.O busca ese programa y lo carga en memoria para ejecutarlo, podemos considerar esto como transformarlo en proceso, el proceso deja de identificarse por el nombre y pasa a identificarse por un process ID que es una identificación única del proceso y el programa comienza a ejecutarse.

Un programa es una entidad pasiva en disco, este no hace nada en principio, para que haga algo tiene que transformarse en proceso.

Hilo de ejecución (Thread)

La ejecución consiste en realizar instrucciones de manera secuencial, también puede saltar de un punto a otro si se encuentra una bifurcación. Si pudiéramos ir marcando las instrucciones que va recorriendo el proceso, esa línea me describe un hilo de ejecución en inglés llamado Thread.

Cuando los proceso aparecieron conceptualmente, estos tenían un único hilo de ejecución o thread. Por lo tanto podíamos conocer en un momento dado que instrucción estaba realizando un proceso en particular, debido a que no existía la posibilidad de tener dos procesos ejecutando a la vez. Si mi proceso tiene un único hilo de ejecución, no hay posibilidad de tener ejecución paralela dentro de un proceso.


Estructura de un proceso en memoria

Si tomamos ese programa que el sistema operativo lo carga en memoria y transforma en proceso, yo podría pensarlo como que ese proceso ocupa un espacio de direcciones en memoria , que supongamos que comienza en una posición 0 (no física sino relativa a su inicio), en donde tengo un lugar donde está el programa (en la bibliografía le dicen texto en lugar de código) donde están las instrucciones.

Entonces a un proceso se le asignan 4 áreas fundamentales de memorias las cuales son:

1. Text section

En esta área se guarda el código del proceso, en general el código se encuentra separado de los datos. Los procesadores tienen varios registros en el procesador para procesar información donde tienen un registro que actúa como puntero a la próxima instrucción (PC) este registro tiene direcciones de memoria que hacen referencia a esta sección donde se encuentra el código.

En la bibliografía se refieren al código como texto.

2. Data section