Procesos y Threads

Páginas: 153 (38164 palabras) Publicado: 26 de julio de 2011
2
PROCESOS Y THREADS
Vamos a embarcarnos ahora en un estudio detallado de cómo están diseñados y construidos los sistemas operativos. El concepto fundamental en cualquier sistema operativo es el concepto de proceso que consiste en una abstracción de lo que es un programa en ejecución. Todo lo demás depende de este concepto y es importante que el diseñador del sistema operativo (y el estudiante)comprenda lo antes posible lo que es un proceso.

2.1

PROCESOS

Todos los ordenadores modernos pueden hacer varias cosas a la vez. Mientras un ordenador está ejecutando un programa de usuario puede perfectamente también estar leyendo de un disco e imprimiendo texto en una pantalla o una impresora. En un sistema multiprogramado la CPU también conmuta de unos programas a otros, ejecutandocada uno de ellos durante decenas o cientos de milisegundos. Aunque, estrictamente hablando, en cualquier instante de tiempo la CPU sólo está ejecutando un programa, en el transcurso de 1 segundo ha podido estar trabajando sobre varios programas, dando entonces a los usuarios la impresión de un cierto paralelismo. En este contexto a veces la gente habla de pseudoparalelismo, en contraste con elauténtico paralelismo del hardware de los sistemas multiprocesador (que tienen dos o más CPUs compartiendo la misma memoria física). Seguir la pista de múltiples actividades paralelas resulta muy complicado para las personas. Por ese motivo los diseñadores del sistema operativo han desarrollado a través de los años un modelo conceptual evolucionado (el de los procesos secuenciales) que permite tratarel paralelismo de una forma más fácil. Este modelo, sus usos, y algunas de sus consecuencias constituyen el tema de este capítulo.

2.1.1 El Modelo de los Procesos Secuenciales
En este modelo, todo el software ejecutable en el ordenador, incluyendo a veces al propio sistema operativo, se organiza en un número de procesos secuenciales, o simplemente procesos para acortar. Un proceso es justamenteun programa en ejecución, incluyendo los valores actuales del contador de programa, registros y variables. Conceptualmente cada proceso tiene su propia CPU virtual. En realidad, por supuesto, la CPU real conmuta sucesivamente de un proceso a otro, pero para entender el sistema, es mucho más fácil pensar sobre una colección de procesos ejecutándose en (pseudo) paralelo, que intentar seguir lapista de cómo la CPU conmuta de un programa a otro. Esta rápida conmutación de un proceso a otro en algún orden se denomina multiprogramación como vimos en el capítulo 1. En la Figura 2-1(a) vemos un ordenador multiprogramado con cuatro programas en memoria. En la Figura 2-1(b) vemos cuatro procesos cada uno con su propio flujo de control (es decir su propio contador de programa lógico), y cada unoejecutándose independientemente de los otros. Por supuesto que existe un único contador de programa físico, por lo que cada vez que un proceso retoma su ejecución, su contador de programa lógico debe cargase en el contador de programa real. Cuando el proceso agota el intervalo de tiempo que se le ha concedido, se salva

1

su contador de programa físico en su contador de programa lógico enmemoria. En la Figura 21(c) vemos que desde la perspectiva de un intervalo de tiempo suficientemente largo, todos los procesos han progresado, pero que en cualquier instante dado solamente un único proceso está realmente ejecutándose.
Un único contador de programa Cambio de proceso Cuatro contadores de programa

Proceso

Tiempo

Figura 2-1. (a) Multiprogramación de cuatro programas. (b) Modeloconceptual de cuatro procesos secuenciales independientes. (c) Sólo un programa está activo en cada momento. Con la CPU conmutando de un proceso a otro, la velocidad a la cual un proceso realiza su computación no es uniforme y probablemente ni siquiera es reproducible si los mismos procesos se ejecutan de nuevo. Por ese motivo los procesos no deben programarse bajo suposiciones preconcebidas...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Procesos y threads
  • Threads
  • Threads
  • Hilos (threads)
  • Threads
  • Threads
  • Threads
  • Threads

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS