Procesos en Windows

Procesos en el sistema operativo Windows



Procesos e hilos


Un proceso en Windows es básicamente un programa en ejecución. Este está compuesto por:

  • Espacio de dirección virtual
  • Código ejecutable
  • Manejador abierto a objetos del sistema
  • Un contexto de seguridad
  • Un ID
  • Variables de entorno
  • Una clase de prioridad
  • Tamaño mínimo y máximo de area de trabajo (colección de páginas del proceso que están en su espacio de direcciones virtuales que se han referenciado recientemente)
  • Al menos un hilo de ejecución

Cada procesos en Windows es iniciado con un hilo primario, si se desea se pueden crear mas hilos dentro del proceso. Todos los procesos comparten su espacio de direcciones virtuales y recursos del sistema. Cada hilo posee:


  • Manejadores de excepciones
  • Prioridad
  • almacenamiento local
  • ID
  • set de estructuras que el sistema usa para guardar el contexto del hilo hasta que este es planificado.

CreateProcess


Es el comando para crear procesos. Se denomina padre al proceso que invoca la función e hijo al proceso creado. Este formalismo existe a pesar de que el proceso creado es independiente del proceso que lo crea.

Multitasking



El sistema operativo divide el tiempo disponible de procesador entre los procesos o hilos que lo necesitan. El sistema es diseñado para multitarea apropiativa; se le asigna un intervalo de tiempo a cada hilo que se ejecuta. El hilo que se ejecuta actualemnte es suspendido cuando se acaba su intervlo de tiempo, permietiendo que otro hilo se ejecute. El intervalo de tiempo asignado a cada hilo depende de cada procesador. Este es muy pequeño (aproximadamente 20 milisegundos) por lo que da la sensación de que diferentes hilos se ejecutan al mismo tiempo.

Planificación

El planificador del sistema controla la multitarea determinando cual de los hilos obtendrá el siguiente intervalo de tiempo en el procesador. Esto lo hace en base a la prioridad de cada proceso o hilo. Esta prioridad va desde 0 (más baja) hasta 31 (más alta). Todos los hilos que comparten la misma prioridad son tratados como iguales. El sistema asigna intervalos de tiempo a los hilos que tienen la misma prioridad usando un algoritmo round-robin. Si un hilo con mayor prioridad se encuentra disponible para ejecutar, el sistema para al hilo de menor prioridad y le asigna un intervalo de tiempo completo al de mayor prioridad.

La prioridad de cada hilo es determinado por el siguiente criterio:


  • La clase de prioridad de su proceso
  • El nivel de prioridad del hilo dentro de la clase de prioridad de su proceso.

Servicios

Procesos que se ejecutan en background. Son controlados por el service control manager. Este se ejecuta al inicio del sistema.


Desde consola los servicios pueden ser controlador por el comando SC

Comentarios

Entradas populares