ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

PROCESOS Y THREADS


Enviado por   •  27 de Agosto de 2013  •  13.211 Palabras (53 Páginas)  •  292 Visitas

Página 1 de 53

PROCESOS Y THREADS

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 cualquier instante de tiempo la CPU sólo está ejecutando un programa, en el transcurso de 1 segundo hapodido 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, encontraste con el auténtico paralelismo del hardware de los sistemas multiprocesador (que tienen dos o más CPUs compartiendo la misma memoria física).

A travez de los años se desarrollo un modelo conceptual evolucionado (el de los procesos secuenciales) que permite tratar el paralelismo de una forma más fácil.

2.1.1 El Modelo de los Procesos Secuenciales

En este modelo, el software ejecutable en el ordenador tomando en cuenta al sistema operativo, se organiza en un número de procesos secuenciales, o procesos. Un proceso es justamente un programa en ejecución, incluyendo los valores actuales del contador de programa, registros y variables. Cada proceso tiene su porpia CPU virtual. La CPU real conmuta de un proceso a otro.

Esta conmutación en algun orden se le denomina multiprogramación.

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 uno ejecutándose independientemente.

En la Figura 2-1(c) vemos que desde la perspectiva de un intervalo de tiempo suficientemente largo, todos losprocesos han progresado, pero que en cualquier instante dado solamente un único proceso estárealmente ejecutándose. Figura 2-1. (a) Multiprogramación de cuatro programas. (b) Modelo

conceptual de cuatro procesos secuenciales independientes. (c) Sólo un

programa está activo en cada momento.

La velocidad a la cual un proceso realizasu computación no es uniforme y probablemente ni siquiera es reproducible si los mismos procesos se ejecutan de nuevo. Los procesos no deben programarse bajo suposiciones preconcebidas sobre su velocidad de ejecución.

Cuando un proceso tiene requerimientos de tiempo real críticos es que

ciertos sucesos particulares deben ocurrir dentro de un número de milisegundos especificado, es necesario asegurarse que efectivamente esos sucesos ocurran dentro de esos límites de tiempo.

La mayoría de los procesos no se ven afectados por la multiprogramación subyacente de la CPU o por la velocidad relativa de los diferentes procesos.

La diferencia entre un proceso y un programa es sutil, pero crucial.

Un proceso es una actividad de algún tipo. Tiene un programa, entrada, salida y un estado. Un único procesador puede compartirse entre varios procesos utilizando un algoritmo de planificación que determine cuándo hay que detener el trabajo sobre un proceso y pasar a atender a otro diferente.

2.1.2 Creación de Procesos

Los sistemas operativos necesitan asegurar de alguna forma que puedan existir todos los

procesos necesarios. En sistemas muy sencillos, o en sistemas diseñados para ejecutar tan solo

una única aplicación (por ejemplo el controlador de un microondas), puede conseguirse que

cuando el sistema termine de arrancar estén presentes ya todos los procesos que puedan

necesitarse en el futuro.

Los cuatro principales sucesos que provocan la creación de nuevos procesos son:

1. La inicialización del sistema

2. La ejecución por parte de un proceso (en ejecución) de una llamada al sistema de

creación de un nuevo proceso.

3. La petición por parte del usuario de la creación de un nuevo proceso.

4. El inicio de un trabajo en batch.

Cuando un sistema operativo arranca, se crean típicamente varios procesos.

Algunos de esos procesos son procesos de superficie (o en primer plano), procesos que interactúan con los usuarios (humanos) y realizan trabajo para ellos. Otros son procesos de fondo (o en segundo

plano), que no están asociados con usuarios particulares, sino que tienen alguna función específica.

Por ejemplo, un proceso de fondo puede diseñarse para que se encargue de aceptar el correo electrónico entrante. Otro proceso de fondo puede diseñarse para aceptar peticiones entrantes de páginas web residentes en esa máquina. Los procesos de fondo para llevar a cabo alguna actividad tal como el correo electrónico, las páginas web, las news o la impresión de ficheros de salida, etc, se

denominan demonios.

Los procesos creados en el momento del arranque, también pueden crearse nuevos procesos después. A menudo un proceso en ejecución puede hacer llamadas al sistema para crear uno o más procesos nuevos para que le ayuden en su trabajo. Crear nuevos procesos es particularmente útil cuando el trabajo a realizar puede formularse fácilmente en términos de varios procesos relacionados, pero por otra parte independientes.

En sistemas interactivos los usuarios pueden arrancar un programa tecleando un

comando o pinchando (dos veces) con el ratón sobre un icono. Conseguimos que comience un nuevo proceso y se ejecute el programa correspondiente.En sistemas UNIX basados en comandos y ejecutando X Windows, el nuevo proceso creado se ejecuta sobre la ventana en la cual se le activó. En Microsoft Windows, cuando un proceso comienza no tiene ninguna ventana asignada, aunque puede crear una (o más), y la mayoría de los programas efectivamente eso es lo que hacen.

La creación de procesos

...

Descargar como (para miembros actualizados)  txt (75.3 Kb)  
Leer 52 páginas más »
Disponible sólo en Clubensayos.com