jueves, 28 de septiembre de 2017

2.1 Concepto de proceso

Un proceso es  básicamente como un programa en ejecución. Consta del programa ejecutable, los datos y la pila del programa, su contador de programa, apuntador de pila y otros registros, y la  otra información que se necesita para ejecutar el programa.
La manera sencilla de tener una noción intuitiva de lo que es un proceso consiste en pensar en los sistemas con tiempo compartido. En forma periódica el sistema operativo decide suspender la ejecución de un proceso y dar inicio a la ejecución de otro,  por ejemplo, porque el primero haya tomado ya más de su parte del tiempo del CPU, en terrenos del segundo.


Cuando un proceso se suspende temporalmente como éste, debe reiniciarse después exactamente en el mismo estado en que se encontraba cuando se detuvo. Esto significa que toda la información relativa al proceso debe guardarse en forma explícita en algún lugar durante la suspensión.



En muchos sistemas operativos, toda la información referente a cada proceso, diferente del contenido de su espacio de direcciones, se almacena en una tabla de sistema operativo, llamada tabla de procesos, la cual es un arreglo o lista enlazada de estructuras, una para cada proceso en existencia corriente.
Si un proceso puede crear uno o más procesos diferentes (conocidos como proceso hijo) y estos procesos a la vez originan procesos hijos, se llega rápidamente a la estructura del árbol de procesos.



Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. 

En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son procesos que pertenecen a distintos usuarios.

•  Proceso - un programa en ejecución; la ejecución del proceso debe progresar de manera secuencial.
•  Un proceso incluye:
              – program counter 
              – stack
              – data section

Estados de los procesos
         Nuevo: El proceso es creado.
         Ejecución: Se ejecutan instrucciones.
Espera: El proceso está en espera por la ocurrencia de algún evento.
Listo: El proceso está esperando a que le asignen el procesador.
Terminado: El proceso finaliza su ejecución.
Diagrama de estados de los procesos.
Información asociada con cada proceso:
Estado del proceso
Program counter
Registros del CPU
Información de planificación del CPU
Memoria
Información para administración
Información de estatus de E/S




Características:
· Un proceso consta de código, datos y pila.
· Los procesos existen en una jerarquía de árbol (varios Hijos, un sólo padre).
· El sistema asigna un identificador de proceso (PID) único al iniciar el proceso.

· El planificador de tareas asigna un tiempo compartido para el proceso según su prioridad (sólo root puede cambiar prioridades).

UNIDAD 2: ADMINISTRACIÓN DE PROCESOS Y DEL PROCESADOR


La administración del procesador es, prácticamente el tema central de la  multiprogramación. Esta administración involucra las distintas maneras a través de las cuales el sistema operativo comparte los recursos del procesador entre distintos procesos que están compitiendo por su uso. Esto implica directamente la multiprogramación y conlleva simultáneamente la sincronización de los mismos.




La idea de administrar el procesador eficientemente está enfocada en dos aspectos: el primero es la cantidad de procesos por unidad de tiempo que se pueden ejecutar en un sistema; y el segundo, el que importa más al usuario, es el tiempo de respuesta de esos procesos.