jueves, 18 de noviembre de 2010

Glosario Unidad 3

Tarea

Tarea también llamadas proceso son un programa en ejecución, los procesos son gestionados por el sistema operativo y están formados por:
Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Otra información que permite al sistema operativo su planificación.

Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.
 
Threads

En sistemas operativos, un hilo de ejecución o subproceso es una característica que permite a una aplicación realizar varias tareas a la vez(concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.
Un hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.

Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución 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 ejecución y el estado de la CPU (incluyendo el valor de los registros).
 

El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo. Cuando el proceso finaliza, todos sus hilos de ejecución también han terminado. Asimismo en el momento en el que todos los hilos de ejecución finalizan, el proceso no existe más y todos sus recursos son liberados. 
Algunos lenguajes de programación tienen características de diseño expresamente creadas para permitir a los programadores lidiar con hilos de ejecución (como Java o Delphi). Otros (la mayoría) desconocen la existencia de hilos de ejecución y éstos deben ser creados mediante llamadas de biblioteca especiales que dependen del sistema operativo en el que estos lenguajes están siendo utilizados (como es el caso del C y del C++).
 
Un ejemplo de la utilización de hilos es tener un hilo atento a la interfaz gráfica (iconos, botones, ventanas), mientras otro hilo hace una larga operación internamente. De esta manera el programa responde de manera más ágil a la interacción con el usuario. También pueden ser utilizados por una aplicación servidora para dar servicio a múltiples clientes.

Hilos
 
Al igual que los procesos, los hilos poseen un estado de ejecución y pueden sincronizarse entre ellos para evitar problemas de compartimiento de recursos. Generalmente, cada hilo tiene una tarea especifica y determinada, como forma de aumentar la eficiencia del uso del procesador.
Estados de un hilo


Los principales estados de los hilos son: Ejecución, Listo y Bloqueado. No tiene sentido asociar estados de suspensión de hilos ya que es un concepto de proceso. En todo caso, si un proceso está expulsado de la memoria principal (ram), todos sus hilos deberán estarlo ya que todos comparten el espacio de direcciones del proceso.
Cambio de estados
Creación: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instrucción y los argumentos del nuevo hilo. El hilo tendrá su propio contexto y su propio espacio de la columna, y pasara a la final de los listos.
Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podrá pasar a ejecutar otro hilo que esté en la final de los Listos mientras el anterior permanece bloqueado.
Desbloqueo: Cuando el suceso por el que el hilo se bloqueó se produce, el mismo pasa a la final de los Listos.
Terminación: Cuando un hilo finaliza se liberan tanto su contexto como sus columnas.

Bloque de control del proceso

El Bloque de control del proceso o BCP o en inglés PCB (Process Control Block) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso.
Cuando el proceso termina, su BCP es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el sistema operativo y por tanto elegible para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a él. El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del proceso y de la utilización de recursos. La información almacenada en un BCP incluye típicamente algunos o todos los campos siguientes:


  • Identificador del proceso (Process Identificator -PID-, de sus siglas en Inglés).
  • Estado del proceso. Por ej. listo, en espera, bloqueado.
  • Contador de Programa: Dirección de la próxima instrucción a ejecutar.
  • Valores de registro de CPU. Se utilizan también en el cambio de contexto.
  • Espacio de direcciones de memoria.
  • Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.
  • Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).
  • Estadísticas del proceso.
  • Datos del propietario (owner).
  • Permisos asignados.
  • Signals pendientes de ser servidos. (Almacenados en un mapa de bits)

Ubuntu

Ubuntu es una distribución Linux basada en Debian GNU/Linux que proporciona un sistema operativo actualizado y estable para el usuario medio, con un fuerte enfoque en la facilidad de uso e instalación del sistema. Al igual que otras distribuciones se compone de múltiples paquetes de software normalmente distribuidos bajo una licencia libre o de código abierto. Estadísticas web sugieren que el porcentaje de mercado de Ubuntu dentro de las distribuciones Linux es de aproximadamente 50%, y con una tendencia a subir como servidor web.
Está patrocinado por Canonical Ltd., una compañía británica propiedad del empresario sudafricano Mark Shuttleworth que en vez de vender la distribución con fines lucrativos, se financia por medio de servicios vinculados al sistema operativo y vendiendo soporte técnico. Además, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los desarrolladores de la comunidad en mejorar los componentes de su sistema operativo. Canonical también apoya y proporciona soporte para cuatro derivaciones de Ubuntu: KubuntuXubuntuEdubuntu y la versión de Ubuntu orientada a servidores (Ubuntu Server Edition).
Su eslogan es Linux for Human Beings (Linux para seres humanos) y su nombre proviene de la ideología sudafricana Ubuntu («humanidad hacia otros»).
Cada seis meses se publica una nueva versión de Ubuntu la cual recibe soporte por parte de Canonical, durante dieciocho meses, por medio de actualizaciones de seguridad, parches para bugs críticos y actualizaciones menores de programas. Las versiones LTS (Long Term Support), que se liberan cada dos años, reciben soporte durante tres años en los sistemas de escritorio y cinco para la edición orientada a servidores.

Gnome Display Manager

Archivo:Ubuntu 8.04 login screen.png


GDM (GNOME Display Manager) es un gestor de acceso para el X Window System. Es el reemplazo, elaborado por el proyecto GNOME, al XDM básico. GDM permite a los usuarios personalizar o solucionar problemas de su configuración sin tener que recurrir a la línea de comandos. GDM también permite una fácil personalización con temas gráficos.



Estados de los procesos  
 
Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
  • En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
  • Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
  • Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.
Hay otros estados de los procesos, pero en la presente exposición se tratarán estos tres. Por sencillez, se considera un sistema con una sola CPU, aunque no es difícil la extensión a múltiples procesadores. Solamente puede haber un proceso en ejecución a la vez, pero pueden existir varios listos y varios pueden estar bloqueados. Así pues, se forman una lista de procesos listos y otra de procesos bloqueados. La lista de procesos listos se ordena por prioridad, de manera que el siguiente proceso que reciba la CPU será el primero de la lista. La lista de procesos bloqueados normalmente no está ordenada; los procesos no se desbloquean (es decir, no pasan a ser procesos listos) en orden de prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que están esperando. Como se verá más adelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la ocurrencia del mismo evento; en tales casos es común asignar prioridades a los procesos que esperan.
Comando ps

Archivo:Ps.JPG
ps ("process status", estado de procesos en idioma inglés) es un comando asociado en el sistema operativo UNIX (estandarizado en POSIX y otros) que permite visualizar el estado de un Proceso (informática).




Process Explorer de Sysinternals 


 Process Explorer es un programa informático gratuito para Microsoft Windows creado por Sysinternals, que fue adquirida por Microsoft Corporation.
Process Explorer es un sistema de vigilancia y la utilidad del examen. Ofrece la funcionalidad de Windows Administrador de tareas, junto con un rico conjunto de características para recolectar información sobre los procesos que se ejecutan en el sistema del usuario. Puede ser utilizado como el primer paso en la depuración de problemas de software o sistema.
Process Explorer puede ser utilizado para localizar problemas. Por ejemplo, proporciona un medio de lista o búsqueda de recursos con nombre que se llevan a cabo por un proceso o los procesos de todos. Esto puede ser usado para rastrear lo que es la celebración de un archivo abierto y la prevención de su uso por otro programa. O, como otro ejemplo, puede mostrar las líneas de comandos para iniciar un programa, permitiendo que los procesos de otro modo idéntico al ser distinguido. O como el Administrador de tareas, puede mostrar el resultado de un proceso que es el gasto excesivo con la CPU, pero a diferencia de el Administrador de tareas puede mostrar el hilo que (con la pila de llamadas) es el uso de la CPU - información que ni siquiera está disponible bajo un depurador.
Process Explorer es una de un conjunto de utilidades de administración y vigilancia disponible en el sitio web de Microsoft Sysinternals.
Hasta 2008 trabajó Process Explorer en Windows 9x/Me, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, incluyendo versiones de 64 bits. La actual (agosto 2008) Process Explorer Página estados que funciona en Windows 2000 con Service Pack 4 o superior.


No hay comentarios:

Publicar un comentario