lunes, 14 de noviembre de 2011

Procesos e Hilos

1. Definición de proceso.
Espíritu animado de un programa
Es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados.
La unidad mínima de expedición y de asignación de recursos es el proceso.
2.   Estados en los que puede estar un proceso.
  • Listo. Tiene todo lo necesario para ejecutarse excepto el procesador.
  • Suspendido. No está en memoria principal.
  • Bloqueado. Está esperando un evento.
  • Bloqueado y suspendido.
  • Listo y suspendido.
3. Tareas e hilos.
Unidad mínima de asignación: tarea.
Unidad mínima de expedición: hilo.
Dos hilos de una misma tarea (denominados hilos pares) comparten el segmento de código, el segmento de datos y un espacio de pila, es decir, los recursos asignados a la tarea.
Podemos captar la funcionalidad de los hilos si comparamos el control de múltiples hilos con el control de múltiples procesos. En el caso de los procesos, cada uno opera independientemente de los otros; cada proceso tiene su propio contador de programa, registro de pila, y espacio de direcciones. Este tipo de organización es muy útil cuando los trabajos que los procesos efectúan no tienen ninguna relación entre sí.
Pero cuando los trabajos a realizar van a necesitar, por ejemplo, la llamada a una misma función o bien, la compartición de una variable en memoria, nos interesará englobarlos en una tarea.

Control de procesos

La mayoría de los procesadores dan soporte para dos modos de ejecución por lo menos. Ciertas instrucciones pueden ejecutarse sólo en modo privilegiado. Entre éstas están la lectura o modificación de registros de control (como la palabra de estado del programa), instrucciones primitivas de E/S e instrucciones relativas a la gestión de memoria. Además, se puede acceder a ciertas regiones de memoria sólo en el modo más privilegiado.
El modo menos privilegiado a menudo se conoce como modo de usuario, ya que los pro¬ gramas de usuario ejecutan normalmente en ese modo. Al modo más privilegiado normal¬ mente se le conoce como modo del sistema, modo de controlo modo del núcleo. Este último término se refiere al núcleo del sistema operativo, que es la parte del sistema operativo que lleva a cabo las funciones importantes del sistema. La tabla 3.10 enumera las funciones que normalmente se hallan en el núcleo de un sistema operativo.
La razón por la que se usan dos modos debe quedar clara. Es necesario proteger al sistema operativo y a las tablas importantes del mismo, tales como los bloques de control de procesos, de las injerencias de los programas de usuario. En el modo del núcleo, el software tiene control completo del procesador y de todas sus instrucciones, registros y memoria. Este nivel de con¬ trol no es necesario y, por seguridad, tampoco conveniente para los programas de usuario.
Surgen dos preguntas: ¿Cómo conoce el procesador en qué modo va a ejecutar? ¿Cómo se cambia de modo? Para la primera pregunta, normalmente hay un bit en la PSW que indica el modo de ejecución. El bit es cambiado como respuesta a ciertos sucesos. Por ejemplo, cuando un usuario hace una llamada a un servicio del sistema operativo, el modo se cambia al de núcleo. Esto se suele llevar a cabo ejecutando una instrucción que cambia el modo. Un ejemplo de cómo se hace esto es la instrucción de Cambio de Modo (CHM, Change Mode) del VAX.

2.3.1 Modelo de 5 estados

Modelo un proceso pude encontrarse en cualquiera de los 5 estados.
1.- Estado Nuevo: Este estado corresponderá a procesos que           acaban de ser definidos pero que aun no ha sido admitidos por
el sistema operativo.
Principal motivación para la existencia de este estado es la limitación por parte del SO del número total de procesos activos por razones de rendimiento o por las restricciones impuestas por la capacidad de la memoria.
2.-Estedo de ejecuciones este estado se encuentra el proceso que tiene el control del procesador.
3.- Estado de Listo o Preparado: En este estados encontrará aquellos procesos que dispongan de todos los recursos necesarios para comenzar o proseguir su elección y se encuentra  a la espera de que se conceda el control de procesador.
4.- Estado Bloqueado:  En este estado se encuentran aquellos procesos que carecen de algún recurso necesario para su ejecución siendo este recurso distinto procesador.
5.- Estado Terminado: A este estado pertenecen aquellos proceso excluidos por  SO del grupo de procesos ejecutables.

2.3.- ESTADO DE PROCESOS


Es un programa que destina a ser ejecutadas por el microprocesador. En su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa.
La memoria que ha reservado y sus contenidos. Otra información que permite al sistema operático su planificación.

2.2.- DEFINICION DE PROCESOS

Que es un proceso?
ES  un programa es una secuencia de instrucciones que están escrita en un lenguaje y un proceso es una instancia de ejecución de un programa caracterizado por ciertos procesos :
·         Contador de programa
·         Palabra de estados
·         Su registro  del procesador
·         Segmento de texto
·         Pila y datos entre otros.

El proceso una definición tradicional de proceso es la instancia de un programa en ejecución. La ejecución de tal programa es indicada al SO mediante una acción u orden especializada.

Los procesos son gestionados por el sistema operativo y están formados por_

v  Las instrucciones de un programa destinada
v  su estado der ejecución en un momento dado
v  su memoria de trabajo
v  u otros informaciones que permite al sistema operativo su planificación

Estos programas es mas probable o posible que  un sistema multiusuario por cada una de estas ejecuciones existirán un proceso o yn contador de programa , registrados entre otros .
El sistema operático necesita el concepto de proceso poder gestionar el procesador mediante la técnica de multiprogramación o tiempo compartico.



2.1 DESCRIPCION Y CONTROL DE PROCESOS.

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. Los ordenadores modernos  pueden hacer varias cosas a la vez. Que en este caso puede estar realizando al mismo tiempo mientras un ordenador está ejecutando un programa de usuario pueda perfectamente estar leyendo ded un disco e imprimiendo texto en una pantalla o una impresora.
Es un sistema multiprogramado la CPU también conmuta de unos programas a otros, ejecutando cada uno de ellos durante decenas o ciertos de milisegundo. Es decir , en cualquier instante o tiempo la CPU(unidad central de  proceso), solo está ejecutando  un programa en  el transcurso de tiempo de tan solo 1 segundo ha podido estar trabajando sobre varios programas ,dando los usuarios la impresión  de un cierto paralelismo  cuando se habla de paralelismo  es cuando un programa están ejecutando al mismo tiempo .
Proceso en UNIX es un conjunto es un conjunto más bien complejo de estructuras de datos que proporciona al sistema operativo, es cuando toda la información necesaria  para administrarlo y expandirlo.
                                                       

UNIDAD II. ADMINISTRACION DE PROCESOS

Administración de procesos: Se encarga de seleccionar el proceso en turno o ser ejecutable en el CPU.
Proceso. Programa en ejecución.
Ø  Aquel cuyas instrucciones son ejecutadas en ese momento por el CPU.
Ø  Entidad que puede ser asignada y ejecutar por un procesador
Ø  Un proceso tiene un espacio de direcciones privado
Ø  Los proceso del S.O corren en modo Kernel (privilegiado o su perviso).
Ø  El resto de los procesos corren en modo usuario (sin privilegiado).