Informatica PROCESOS EN UN SISTEMA OPERATIVO
Enviado por yaiseth • 12 de Octubre de 2012 • 4.509 Palabras (19 Páginas) • 1.339 Visitas
INTRODUCCION
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado 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 son independientes y no comparten memoria (es decir, información) con el proceso que los ha creado. 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.
PROCESO
Procesos en sistemas operativos
Proceso es el nombre con el que se denomina la ejecución de un programa individual, representado por una serie de instrucciones que el procesador debe ejecutar la mayoría de los sistemas operativos modernos basan todas su estructura en este concepto. Tres requisitos fundamentales que deben seguir todo sistema operativo en relación a los procesos:
El S.O. debe intercalar la ejecución de un conjunto de procesos para maximizar la utilización del procesador ofreciendo a la ves un tiempo de respuesta razonable.
El S.O. debe asignar los recursos a los procesos en conformidad con una política específica (por ejemplo, ciertas funciones o aplicaciones son de prioridad más alta) evitando al mismo tiempo el interbloqueo que se presenta cuando dos o mas procesos se bloquean mutuamente de manera permanente debido a algún factor externo como puede ser la espera de un recurso físico.
El S.O. podría tener que dar soporte a la comunicación entre procesos y la creación de procesos por parte del usuario , labores que pueden ser de ayuda en la estructuración de aplicaciones.
Un programa se encuentra en el estado ejecutando (running) cuando esta haciendo uso del procesador. Después de permanecer en estado running durante un periodo de tiempo, el S.O. conmuta a otro proceso, quedando el anterior en estado ready, es decir, listo para ser ejecutado próximamente.
DIVISIONES DE LA MEMORIA DE UN PROCESO
La conmutación entre procesos la realiza una parte del S.O. denominado scheducer (organizado) y la selección del proceso al cual se conmuta se realiza utilizando un algoritmo denominado algoritmo de scheduling o planificación.
Un proceso se bloquea cuando no puede continuar su ejecución, generalmente se produce cuando espera por datos en su entrada y aúno no esta disponible. Por ejemplo: el interprete de comandos (SHELL) permanece bloqueado hasta que el usuario ingresa una orden.
Para administrar procesos el S.O. se mantiene por cada uno de ellos una estructura de datos denominada PCB (Process Control Block) la cual contiene información de los recursos utilizados por el usuario.
¿Qué es un proceso?
Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados".
Para entender la diferencia entre un programa y un proceso, A. S. Tanenbaum propone la analogía "Un científico computacional con mente culinaria hornea un pastel de cumpleaños para su hija; tiene la receta para un pastel de cumpleaños y una cocina bien equipada con todos los ingredientes necesarios, harina, huevo azúcar, leche, etcétera." Situando cada parte de la analogía se puede decir que la receta representa el programa (el algoritmo), el científico computacional es el procesador y los ingredientes son las entradas del programa. El proceso es la actividad que consiste en que el científico computacional vaya leyendo la receta, obteniendo los ingredientes y horneando el pastel.
Cada proceso tiene su contador de programa, registros y variables, aislados de otros procesos, incluso siendo el mismo programa en ejecución 2 veces. Cuándo este último caso sucede, el sistema operativo usa la misma región de memoria de código, debido a que dicho código no cambiará, a menos que se ejecute una versión distinta del programa.
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 unidad central de procesamiento para dicho programa.
Su memoria de trabajo (memoria crítica), es decir, la memoria que ha reservado y sus contenidos.
Otra información que permite al sistema operativo su planificación.
Un proceso se erige en pequeñas porciones, conocidas como páginas, y cada proceso tiene su propia tabla de paginación, fungiendo como una optimización del sistema operativo ante los fallo de página.
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 eliminados por el sistema operativo, así como también éste se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos (interrupción o tiempo de reloj). El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). El proceso de arranque de GNU/Linux inicia con un sólo proceso (init) y después comienza a crear los hilos necesarios para tener el sistema listo para su uso. 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
...