You are on page 1of 4

Unidad 3 Procesos en los Sistemas operativos

Concepto de Proceso
Tambin llamadas tareas y es una instancia de un programa en ejecucin ,
tambin se dice que es la unidad ms pequea de trabajo individualmente
planificable por un sistema operativo. Es una divisin implcita de tareas definidas
por el sistema, tambin se dice que pueden estar definidas por el programador, es
decir pueden ser tecleadas mediante cdigo por el usuario es decir mandar a leer
de una unidad de disco, imprimir en una terminal o impresora.
Los procesos son divididos por el sistema y la divisin aparece en sistemas de
multiprogramacin como por ejemplo un sistema de tiempo compartido donde
cada programa se lo trata como independiente.
Est definida por los programadores a cada uno de los procesos donde se define
atributos como por ejemplo una aplicacin se puede dividir en varias tareas con el
propsito de que haya ganancia de velocidad, el uso eficiente de los dispositivos
de entrada y salida.
A continuacin se presentan algunas otras definiciones que se asemejan.:
Un programa en ejecucin
Una actividad asncrona
El "espritu animado" de un procedimiento
El "centro de control" de un procedimiento en ejecucin
Lo que se manifiesta por la existencia de un "bloque de control del proceso"
(BCP) en el sistema operativo.
La entidad a la que se asignan los procesadores
La unidad "despachable"
Aunque se han dado muchas otras definiciones, no hay una definicin
universalmente aceptada, pero el concepto de "Programa en ejecucin" parece ser
el que se utiliza con mas frecuencia. Un programa es una entidad inanimada; slo
cuando un procesador le "infunde vida" se convierte en la entidad "activa" que se
denomina proceso.
Un proceso pasa por una serie de datos discretos. Se dice que un proceso se est
ejecutando (estado de ejecucin), si tiene asignada la UCP. Se dice que un
proceso est listo (estado listo)si pudiera utilizar una UCP en caso de haber una
disponible. Un proceso est bloqueado (estado bloqueado) si est esperando que
suceda algn evento antes de poder seguir la ejecucin.
Implementacin de Procesos
2.7.1.- Operaciones sobre procesos
Los S.O. con multitarea permiten numerosas operaciones dedicadas a la gestin
de procesos. Entre ellas, las ms importantes : creacin, eliminacin, obtencin
de informacin,modificacin, retardo y activacin.
Creacin de procesos : crear (id_proceso, atributos) ;
El S.O. primero comprobar que no existen errores en la llamada (por ejemplo,
comprueba que el procedimiento indicado no exista). A continuacin se crea el
proceso, se pasan los atributos como parmetros, se reserva memoria para el
proceso (tanto para el BCP como para el cdigo y los datos) y se aade a la cola
de preparado.
Eliminacin de procesos : eliminar (id_proceso) ;
Para eliminar un proceso es necesario que este sea hijo del proceso eliminador,
ya que de no ser as podra volverse inconsistente el sistema. Una vez realizada la
llamada, el S.O. verifica que no existen errores para a continuacin liberar los
recursos retenidos por el proceso. Finalmente se destruye el BCP.
Obtencin de informacin : inf_proc (id_proceso,est_BCP) ;
Devolver una copia del BCP del proceso requerido. El S.O. debe comprobar que
no existen errores en los parmetros.
Modificacin de la informacin de un proceso : mod _inf (id_proceso,
est_BCP) ;
El proceso modificador debe enviar como parmetros el PID del proceso que
modifica y un nuevo BCP que sustituya al actual. El S.O. comprobar los posibles
errores producidos.
Retardar un proceso : retardar (tiempo) ;
El proceso que realiza esta llamada se autodetiene durante el tiempo indicado y
pierde el control de la CPU durante ese tiempo. Los ciclos de reloj de espera se
anotan en el BCP (utilizados posteriormente en la planificacin de procesos).
Finalmente, cuando el tiempo transcurre, el ncleo del S.O. introduce al proceso
en la cola de procesos preparados para intentar ejecutarlo inmediatamente.
Activar procesos retardados : activar (id_proceso);
Esta funcin es privilegiada. El mecanismo para despertar procesos se activa en
cada ciclo de reloj, recorrindose la cola de procesos retardados para activarlos o
disminuir en una unidad el nmero de pulsos de espera. Devuelve un cdigo de
error si el PID que se pasa no existe.
Estados de los Procesos.
http://www.slideshare.net/i92almaa/estados-de-un-proceso

Procesos y hebras
En sistemas operativos, un hilo de ejecucin, hebra o subproceso es la unidad
de procesamiento ms pequea que puede ser planificada por un sistema
operativo.
La creacin de un nuevo hilo es una caracterstica que permite a
una aplicacin realizar varias tareas a la vez (concurrentemente). Los distintos
hilos de ejecucin comparten una serie de recursos tales como el espacio de
memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica
permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas
funciones simultneamente.
Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con
otra tarea.
Los hilos de ejecucin que comparten los mismos recursos, sumados a estos
recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos
de ejecucin de un mismo proceso compartan los recursos hace que cualquiera de
estos hilos pueda modificar stos. Cuando un hilo modifica un dato en la memoria,
los otros hilos acceden a ese dato modificado inmediatamente.
Lo que es propio de cada hilo es el contador de programa, la pila de ejecucin y el
estado de la CPU (incluyendo el valor de los registros).
El proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin
siga activo. Cuando el proceso finaliza, todos sus hilos de ejecucin tambin han
terminado. Asimismo en el momento en el que todos los hilos de ejecucin
finalizan, el proceso no existe ms y todos sus recursos son liberados.
Algunos lenguajes de programacin tienen caractersticas de diseo
expresamente creadas para permitir a los programadores lidiar con hilos de
ejecucin (comoJava o Delphi). Otros (la mayora) desconocen la existencia de
hilos de ejecucin y stos deben ser creados mediante llamadas de biblioteca
especiales que dependen del sistema operativo en el que estos lenguajes estn
siendo utilizados (como es el caso del C y del C++).
Un ejemplo de la utilizacin de hilos es tener un hilo atento a la interfaz
grfica (iconos, botones, ventanas), mientras otro hilo hace una larga operacin
internamente. De esta manera el programa responde de manera ms gil a la
interaccin con el usuario. Tambin pueden ser utilizados por una aplicacin
servidora para dar servicio a mltiples clientes.
Diferencias entre hilos y procesos
Los hilos se distinguen de los tradicionales procesos en que los procesos son
generalmente independientes, llevan bastante informacin de estados, e
interactan slo a travs de mecanismos de comunicacin dados por el sistema.
Por otra parte, muchos hilos generalmente comparten otros recursos de forma
directa. En muchos de los sistemas operativos que dan facilidades a los hilos, es
ms rpido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de
un proceso a otro. Este fenmeno se debe a que los hilos comparten datos y
espacios de direcciones, mientras que los procesos, al ser independientes, no lo
hacen. Al cambiar de un proceso a otro el sistema operativo (mediante
el dispatcher) genera lo que se conoce como overhead, que es tiempo
desperdiciado por el procesador para realizar un cambio de contexto (context
switch), en este caso pasar del estado de ejecucin (running) al estado de espera
(waiting) y colocar el nuevo proceso en ejecucin. En los hilos, como pertenecen a
un mismo proceso, al realizar un cambio de hilo el tiempo perdido es casi
despreciable.
Sistemas operativos como Windows NT, OS/2 y Linux (2.5 o superiores) dicen
tener hilos "baratos", y procesos "costosos" mientras que en otros sistemas no hay
una gran diferencia.