SlideShare una empresa de Scribd logo
1 de 6
Proceso
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.
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.
Creación de un Proceso
Básicamente hasta el día de hoy existen sólo 4 formas de crear un proceso:

   Arranque del sistema.
   En la ejecución, desde un proceso, de una llamada al sistema para la creación del
    proceso.
   Una petición deliberada del usuario para crear un proceso.
   El inicio de un trabajo por lotes.
La forma de creación de procesos en Unix es a través de una llamada al sistema fork la cual
creará un proceso hijo en total semejanza al padre, hasta que el recién proceso decida
cambiar su imagen en memoria, incluso obtener sus propios descriptores de archivos
abiertos.
Terminación de un Proceso
El ciclo de vida de un proceso es sencillo, consta de la creación, la ejecución de
instrucciones y la terminación. Cabe señalar que un proceso en el transcurso de su ciclo
puede estar en diferentes estados.

   Salida normal.
   Salida por error.
   Error fatal.
   Eliminado por otro proceso.
Salida normal, ésta se presenta cuando el proceso termina de forma voluntaria, por ejemplo,
cuando se cierra en navegador web o el procesador de textos.
Salida por error, ésta se presenta cuando el proceso tiene que salir debido a insuficiencia de
datos, por ejemplo, cuando solicita un archivo que no existe.
Error fatal, éste sucede por un error en el programa, como las divisiones entre 0 o
requerimiento de memoria inaccesible.
Eliminado por otro proceso, éste es sumamente útil cuando un proceso se queda colgado, es
decir, sin terminar, pero tampoco responde. En Unix un ejemplo es cuando se utiliza el
comando kill para terminar procesos abruptamente.
Estados de un Proceso
Los estados de un proceso obedecen a su participación y disponibilidad dentro del sistema
operativo y surgen de la necesidad de controlar la ejecución de cada proceso. Los
procesadores sólo pueden ejecutar un sólo proceso a la vez, turnándolos para el uso de éste.
Existen procesos apropiativos que básicamente ocupan todo el tiempo del procesador hasta
que ellos deciden dejarlo. Los procesos no apropiativos son aquellos que ocupan por un
periodo de tiempo el procesador hasta que una interrupción o señal llega al procesador para
hacer el cambio de proceso, a esto se le conoce como cambio de contexto.
Los posibles estados que puede tener un proceso son ejecución, bloqueado y listo:

   Ejecución, es un proceso que está haciendo uso del procesador.
   Bloqueado, No puede ejecutarse hasta que un evento externo sea llevado a cabo.
   Listo, ha dejado disponible al procesador para que otro proceso pueda ocuparlo.
Las posibles transiciones son 4. La primera se realiza cuando el sistema operativo
determina que el proceso no puede continuar justo en ese momento, en algunos sistemas se
puede hacer una llamada al sistema "pause" para pasar al estado bloqueado, en Unix
cuando el proceso está leyendo datos provenientes de una canalización o de un archivo
especial (terminal) y no hay entrada disponible, el proceso se bloquea de forma automática.
Las transiciones 2 y 3 son llevadas a cabo por el planificador de procesos, siendo que el
proceso no tiene conocimiento de éste. La transición 2 se da cuando el planificador de
procesos decide que el proceso ya estuvo el tiempo suficiente en ejecución y debe dar paso
a la ejecución de otros procesos (adquieran tiempo del procesador). La transición 3 se
realiza cuando todos los procesos han ocupado tiempo del procesador y debe retomarse el
primer proceso.
La transición 4 ocurre cuando se produce un evento externo por el que un proceso estaba en
espera, por ejemplos, introducir datos desde la terminal. Si no hay otro proceso en
ejecución en ese instante, la transición 3 se activa y el proceso comienza a ejecutarse;
también podría pasar al estado de "listo" y esperar un momento para iniciar la ejecución.
Modelo de dos estados




El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede
estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No
ejecución. En algún momento el proceso que se está ejecutando pasará al estado No
ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo
en estado Ejecución.
De esta explicación se desprende que es necesario que el sistema operativo pueda seguirle
la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además los
procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan
su turno para ejecutar.
Modelo de cinco estados
El modelo anterior de dos estados funcionaría bien con una cola FIFO y planificación por
turno rotatorio para los procesos que no están en ejecución, si los procesos estuvieran
siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con
ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes
de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado
donde los procesos permanezcan bloqueados esperando hasta que puedan proseguir. Se
divide entonces al estado No ejecución en dos estados: Listo y Bloqueado. Se agregan
además un estado Nuevo y otro Terminado.
Los cinco estados de este diagrama son los siguientes:
   Ejecución: el proceso está actualmente en ejecución.
   Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así
   lo disponga.
   Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como
   una operación de Entrada/Salida.
   Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo.
   En general los procesos que se encuentran en este estado todavía no fueron cargados
   en la memoria principal.
   Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque
   terminó o por algún fallo, como un error de protección, aritmético, etc.

Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En este
modelo los estados Bloqueado y Listo tienen ambos una cola de espera. Cuando un nuevo
proceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de un
esquema de prioridades ésta puede ser una cola FIFO. Los procesos suspendidos son
mantenidos en una cola de bloqueados. Cuando se da un suceso se pasan a la cola de listos
los procesos que esperaban por ese suceso.
Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente
mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a
determinar cuál es el proceso que más conviene ejecutar a continuación.
Tipos de Procesos
Existen dos tipos de procesos, aquellos que se ejecutan en modo kernel y aquellos que se
ejecutan en modo usuario. Los primeros son más lentos por las llamadas al sistema que
realizan, sin embargo, son más seguros por la integridad que representan. Cuando hablamos
de los procesos de usuario, podemos decir que el sistema operativo podría no ser
multiproceso, ya que se vale de librerías (como pthread) para hacer un multiplexado y dar
la apariencia de trabajar como multiproceso.
Podría pensarse en otra clasificación, como son los procesos en primer plano y procesos en
segundo plano. Los primeros interactúan con el usuario, es decir, el usuario proporciona los
datos que el proceso utilizará. Los segundos, son creados para tareas bien definidas y no
necesitan la intervención del usuario, por ejemplo, se puede tener un proceso en segundo
plano para revisar la temperatura el disco duro constantemente, éstos también son
conocidos como demonios.
Procesos suspendidos
Una de las razones para implementar el estado Bloqueado era poder hacer que los procesos
se puedan mantener esperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo,
al ser mucho más lentas estas operaciones, puede suceder en nuestro modelo de cinco
estados todos los procesos en memoria estén esperando en el estado Bloqueado y que no
haya más memoria disponible para nuevos procesos. Podría conseguirse más memoria,
aunque es probable que esto sólo permita procesos más grandes y no necesariamente
nuevos procesos. Además hay un costo asociado a la memoria y de cualquier forma es
probable que se llegara al mismo estado con el tiempo.
Otra solución es el intercambio. El intercambio se lleva a cabo moviendo una parte de un
proceso o un proceso completo desde la memoria principal al disco, quedando en el
estado Suspendido. Después del intercambio, se puede aceptar un nuevo proceso o traer a
memoria un proceso suspendido anteriormente.
El problema que se presenta ahora es que puede ser que si se decide traer a memoria un
proceso que está en el estado Suspendido, el mismo todavía se encuentre bloqueado. Sólo
convendría traerlo cuando ya está listo para ejecutar, esto implica que ya aconteció el
suceso que estaba esperando cuando se bloqueó. Para tener esta diferenciación entre
procesos suspendidos, ya sean listos como bloqueados, se utilizan cuatro
estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y suspendido.




Procesos en espera
Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse
a los otros hasta que reciban una señal para continuar.
  Se usa una variable llamada semáforo para intercambiar señales.
  Si un proceso esta esperando una señal, se suspende (WAIT) hasta que la señal se envíe
  (SIGNAL).
  Se mantiene una cola de procesos en ESPERA en el semáforo.
  La forma de elegir los procesos de la cola en ESPERA es mediante una política FIFO.
La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En
este caso, el suceso que permite desbloquear un proceso no es una operación de
entrada/salida, sino una señal generada a propósito por el programador desde otro proceso.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
Creacion y terminacion de procesos
Creacion y terminacion de procesosCreacion y terminacion de procesos
Creacion y terminacion de procesos
 
27 de oct
27 de oct27 de oct
27 de oct
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativos
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Cuestionario procesos
Cuestionario procesos Cuestionario procesos
Cuestionario procesos
 
Sistemas operativos 2 da unidad
Sistemas operativos 2 da unidadSistemas operativos 2 da unidad
Sistemas operativos 2 da unidad
 
Procesos
ProcesosProcesos
Procesos
 
acti27 de oct
acti27 de octacti27 de oct
acti27 de oct
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
gestion de procesos
gestion de procesosgestion de procesos
gestion de procesos
 
Procesos
ProcesosProcesos
Procesos
 
Procesos e hilos- Parte 1
Procesos e hilos- Parte 1Procesos e hilos- Parte 1
Procesos e hilos- Parte 1
 
Sistema de computación procesos
Sistema de computación procesosSistema de computación procesos
Sistema de computación procesos
 

Destacado

VNSTNT 82 GBU versie 12 24 aug KLAAR
VNSTNT 82 GBU versie 12 24 aug KLAARVNSTNT 82 GBU versie 12 24 aug KLAAR
VNSTNT 82 GBU versie 12 24 aug KLAARPieter Westerbeek
 
Guia para defensores de dh 2012
Guia para defensores de dh 2012Guia para defensores de dh 2012
Guia para defensores de dh 2012Oscar Flores Rocha
 
Chromosome Abnormality
Chromosome AbnormalityChromosome Abnormality
Chromosome AbnormalityErin Bosman
 
C parentales final
C parentales finalC parentales final
C parentales finalarielle2318
 
Fundacion tecnologica antonio de arevalo
Fundacion tecnologica antonio de arevalo Fundacion tecnologica antonio de arevalo
Fundacion tecnologica antonio de arevalo urielis
 
The Next Big Idea - Changing the Paradigm for Innovation in Mexico
The Next Big Idea - Changing the Paradigm for Innovation in MexicoThe Next Big Idea - Changing the Paradigm for Innovation in Mexico
The Next Big Idea - Changing the Paradigm for Innovation in MexicoChristine Z
 
Openbravo for Retail Solution Description (RMP19)
Openbravo for Retail Solution Description (RMP19)Openbravo for Retail Solution Description (RMP19)
Openbravo for Retail Solution Description (RMP19)Xavier Places Cano
 
Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)
Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)
Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)Consumidores Digitais
 
Corruption in Corrections Article Review_Anderson_Richard
Corruption in Corrections Article Review_Anderson_RichardCorruption in Corrections Article Review_Anderson_Richard
Corruption in Corrections Article Review_Anderson_RichardRichard Anderson
 
Nicne Presentation on Social Media
Nicne Presentation on Social MediaNicne Presentation on Social Media
Nicne Presentation on Social MediaKMK Media Group
 
Science teaching, science teachers differences in challenges of urban and rur...
Science teaching, science teachers differences in challenges of urban and rur...Science teaching, science teachers differences in challenges of urban and rur...
Science teaching, science teachers differences in challenges of urban and rur...Alexander Decker
 
Linkedin Workshop Avans Hogeschool
Linkedin  Workshop Avans HogeschoolLinkedin  Workshop Avans Hogeschool
Linkedin Workshop Avans Hogeschoolruudvandennieuwenhof
 
Research work on kothari k30 scheme for kothari industry by akhil trivedi
Research work on kothari k30 scheme for kothari industry by akhil trivediResearch work on kothari k30 scheme for kothari industry by akhil trivedi
Research work on kothari k30 scheme for kothari industry by akhil trivediDolly Singla
 
James spiotto presentation (report)
James spiotto presentation (report)James spiotto presentation (report)
James spiotto presentation (report)Pam William
 

Destacado (20)

VNSTNT 82 GBU versie 12 24 aug KLAAR
VNSTNT 82 GBU versie 12 24 aug KLAARVNSTNT 82 GBU versie 12 24 aug KLAAR
VNSTNT 82 GBU versie 12 24 aug KLAAR
 
Guia para defensores de dh 2012
Guia para defensores de dh 2012Guia para defensores de dh 2012
Guia para defensores de dh 2012
 
Chromosome Abnormality
Chromosome AbnormalityChromosome Abnormality
Chromosome Abnormality
 
Cloud-Computing
Cloud-ComputingCloud-Computing
Cloud-Computing
 
C parentales final
C parentales finalC parentales final
C parentales final
 
MSUS SCRIPTIE DE GELUKKIGE STAD
MSUS SCRIPTIE DE GELUKKIGE STADMSUS SCRIPTIE DE GELUKKIGE STAD
MSUS SCRIPTIE DE GELUKKIGE STAD
 
Fundacion tecnologica antonio de arevalo
Fundacion tecnologica antonio de arevalo Fundacion tecnologica antonio de arevalo
Fundacion tecnologica antonio de arevalo
 
conceptos
conceptosconceptos
conceptos
 
The Next Big Idea - Changing the Paradigm for Innovation in Mexico
The Next Big Idea - Changing the Paradigm for Innovation in MexicoThe Next Big Idea - Changing the Paradigm for Innovation in Mexico
The Next Big Idea - Changing the Paradigm for Innovation in Mexico
 
Openbravo for Retail Solution Description (RMP19)
Openbravo for Retail Solution Description (RMP19)Openbravo for Retail Solution Description (RMP19)
Openbravo for Retail Solution Description (RMP19)
 
Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)
Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)
Consumidores Digitais: The Executive's Guide to the Internet of Things (ZD Net)
 
Fluzz & Escola
Fluzz & EscolaFluzz & Escola
Fluzz & Escola
 
Corruption in Corrections Article Review_Anderson_Richard
Corruption in Corrections Article Review_Anderson_RichardCorruption in Corrections Article Review_Anderson_Richard
Corruption in Corrections Article Review_Anderson_Richard
 
8 alimentos que ayudan a bajar el colesterol
8 alimentos que ayudan a bajar el colesterol8 alimentos que ayudan a bajar el colesterol
8 alimentos que ayudan a bajar el colesterol
 
Nicne Presentation on Social Media
Nicne Presentation on Social MediaNicne Presentation on Social Media
Nicne Presentation on Social Media
 
Science teaching, science teachers differences in challenges of urban and rur...
Science teaching, science teachers differences in challenges of urban and rur...Science teaching, science teachers differences in challenges of urban and rur...
Science teaching, science teachers differences in challenges of urban and rur...
 
Linkedin Workshop Avans Hogeschool
Linkedin  Workshop Avans HogeschoolLinkedin  Workshop Avans Hogeschool
Linkedin Workshop Avans Hogeschool
 
Research work on kothari k30 scheme for kothari industry by akhil trivedi
Research work on kothari k30 scheme for kothari industry by akhil trivediResearch work on kothari k30 scheme for kothari industry by akhil trivedi
Research work on kothari k30 scheme for kothari industry by akhil trivedi
 
COSTO CAMOTE
COSTO CAMOTECOSTO CAMOTE
COSTO CAMOTE
 
James spiotto presentation (report)
James spiotto presentation (report)James spiotto presentation (report)
James spiotto presentation (report)
 

Similar a Proceso sistema operativo

GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSomarhcc
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
Expocontrolcalidad
ExpocontrolcalidadExpocontrolcalidad
ExpocontrolcalidadLenin Lucano
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativosG Hoyos A
 
Estados y transiciones de un proceso
Estados y transiciones de un procesoEstados y transiciones de un proceso
Estados y transiciones de un procesoJHOVANI189612GAZGA
 
Tarea 3 actividad individual
Tarea 3 actividad individualTarea 3 actividad individual
Tarea 3 actividad individualAngelicaMaria99
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoTEUJARA
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Alfredo Gonzalez
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Alfredo Gonzalez
 
Presentación1
Presentación1Presentación1
Presentación1janet290
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesadorMiguel Joshua Godinez Barbosa
 

Similar a Proceso sistema operativo (20)

GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Expocontrolcalidad
ExpocontrolcalidadExpocontrolcalidad
Expocontrolcalidad
 
Estados de un proceso sistemas operativos-
Estados de un proceso  sistemas operativos-Estados de un proceso  sistemas operativos-
Estados de un proceso sistemas operativos-
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativos
 
Estados y transiciones de un proceso
Estados y transiciones de un procesoEstados y transiciones de un proceso
Estados y transiciones de un proceso
 
Introduccion a los procesos
Introduccion a los  procesosIntroduccion a los  procesos
Introduccion a los procesos
 
Rossie y yo
Rossie y yoRossie y yo
Rossie y yo
 
Sistemas operativos - 6to SSI
Sistemas operativos - 6to SSISistemas operativos - 6to SSI
Sistemas operativos - 6to SSI
 
Tarea 3 actividad individual
Tarea 3 actividad individualTarea 3 actividad individual
Tarea 3 actividad individual
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01Sistemaoperativo 130416194811-phpapp01
Sistemaoperativo 130416194811-phpapp01
 
Presentación1
Presentación1Presentación1
Presentación1
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
 

Proceso sistema operativo

  • 1. Proceso 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. 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. Creación de un Proceso Básicamente hasta el día de hoy existen sólo 4 formas de crear un proceso:  Arranque del sistema.
  • 2. En la ejecución, desde un proceso, de una llamada al sistema para la creación del proceso.  Una petición deliberada del usuario para crear un proceso.  El inicio de un trabajo por lotes. La forma de creación de procesos en Unix es a través de una llamada al sistema fork la cual creará un proceso hijo en total semejanza al padre, hasta que el recién proceso decida cambiar su imagen en memoria, incluso obtener sus propios descriptores de archivos abiertos. Terminación de un Proceso El ciclo de vida de un proceso es sencillo, consta de la creación, la ejecución de instrucciones y la terminación. Cabe señalar que un proceso en el transcurso de su ciclo puede estar en diferentes estados.  Salida normal.  Salida por error.  Error fatal.  Eliminado por otro proceso. Salida normal, ésta se presenta cuando el proceso termina de forma voluntaria, por ejemplo, cuando se cierra en navegador web o el procesador de textos. Salida por error, ésta se presenta cuando el proceso tiene que salir debido a insuficiencia de datos, por ejemplo, cuando solicita un archivo que no existe. Error fatal, éste sucede por un error en el programa, como las divisiones entre 0 o requerimiento de memoria inaccesible. Eliminado por otro proceso, éste es sumamente útil cuando un proceso se queda colgado, es decir, sin terminar, pero tampoco responde. En Unix un ejemplo es cuando se utiliza el comando kill para terminar procesos abruptamente. Estados de un Proceso Los estados de un proceso obedecen a su participación y disponibilidad dentro del sistema operativo y surgen de la necesidad de controlar la ejecución de cada proceso. Los procesadores sólo pueden ejecutar un sólo proceso a la vez, turnándolos para el uso de éste. Existen procesos apropiativos que básicamente ocupan todo el tiempo del procesador hasta que ellos deciden dejarlo. Los procesos no apropiativos son aquellos que ocupan por un periodo de tiempo el procesador hasta que una interrupción o señal llega al procesador para hacer el cambio de proceso, a esto se le conoce como cambio de contexto. Los posibles estados que puede tener un proceso son ejecución, bloqueado y listo:  Ejecución, es un proceso que está haciendo uso del procesador.  Bloqueado, No puede ejecutarse hasta que un evento externo sea llevado a cabo.  Listo, ha dejado disponible al procesador para que otro proceso pueda ocuparlo.
  • 3. Las posibles transiciones son 4. La primera se realiza cuando el sistema operativo determina que el proceso no puede continuar justo en ese momento, en algunos sistemas se puede hacer una llamada al sistema "pause" para pasar al estado bloqueado, en Unix cuando el proceso está leyendo datos provenientes de una canalización o de un archivo especial (terminal) y no hay entrada disponible, el proceso se bloquea de forma automática. Las transiciones 2 y 3 son llevadas a cabo por el planificador de procesos, siendo que el proceso no tiene conocimiento de éste. La transición 2 se da cuando el planificador de procesos decide que el proceso ya estuvo el tiempo suficiente en ejecución y debe dar paso a la ejecución de otros procesos (adquieran tiempo del procesador). La transición 3 se realiza cuando todos los procesos han ocupado tiempo del procesador y debe retomarse el primer proceso. La transición 4 ocurre cuando se produce un evento externo por el que un proceso estaba en espera, por ejemplos, introducir datos desde la terminal. Si no hay otro proceso en ejecución en ese instante, la transición 3 se activa y el proceso comienza a ejecutarse; también podría pasar al estado de "listo" y esperar un momento para iniciar la ejecución. Modelo de dos estados El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución. De esta explicación se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan su turno para ejecutar. Modelo de cinco estados El modelo anterior de dos estados funcionaría bien con una cola FIFO y planificación por turno rotatorio para los procesos que no están en ejecución, si los procesos estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan bloqueados esperando hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Bloqueado. Se agregan además un estado Nuevo y otro Terminado.
  • 4. Los cinco estados de este diagrama son los siguientes: Ejecución: el proceso está actualmente en ejecución. Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga. Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida. Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc. Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En este modelo los estados Bloqueado y Listo tienen ambos una cola de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una cola FIFO. Los procesos suspendidos son mantenidos en una cola de bloqueados. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación. Tipos de Procesos Existen dos tipos de procesos, aquellos que se ejecutan en modo kernel y aquellos que se ejecutan en modo usuario. Los primeros son más lentos por las llamadas al sistema que realizan, sin embargo, son más seguros por la integridad que representan. Cuando hablamos de los procesos de usuario, podemos decir que el sistema operativo podría no ser multiproceso, ya que se vale de librerías (como pthread) para hacer un multiplexado y dar la apariencia de trabajar como multiproceso. Podría pensarse en otra clasificación, como son los procesos en primer plano y procesos en segundo plano. Los primeros interactúan con el usuario, es decir, el usuario proporciona los datos que el proceso utilizará. Los segundos, son creados para tareas bien definidas y no necesitan la intervención del usuario, por ejemplo, se puede tener un proceso en segundo
  • 5. plano para revisar la temperatura el disco duro constantemente, éstos también son conocidos como demonios. Procesos suspendidos Una de las razones para implementar el estado Bloqueado era poder hacer que los procesos se puedan mantener esperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho más lentas estas operaciones, puede suceder en nuestro modelo de cinco estados todos los procesos en memoria estén esperando en el estado Bloqueado y que no haya más memoria disponible para nuevos procesos. Podría conseguirse más memoria, aunque es probable que esto sólo permita procesos más grandes y no necesariamente nuevos procesos. Además hay un costo asociado a la memoria y de cualquier forma es probable que se llegara al mismo estado con el tiempo. Otra solución es el intercambio. El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Después del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente. El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que está en el estado Suspendido, el mismo todavía se encuentre bloqueado. Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica que ya aconteció el suceso que estaba esperando cuando se bloqueó. Para tener esta diferenciación entre procesos suspendidos, ya sean listos como bloqueados, se utilizan cuatro estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y suspendido. Procesos en espera Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros hasta que reciban una señal para continuar. Se usa una variable llamada semáforo para intercambiar señales. Si un proceso esta esperando una señal, se suspende (WAIT) hasta que la señal se envíe (SIGNAL). Se mantiene una cola de procesos en ESPERA en el semáforo. La forma de elegir los procesos de la cola en ESPERA es mediante una política FIFO.
  • 6. La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito por el programador desde otro proceso.