Diferencia entre revisiones de «Conmutación de procesos»
De Wiki de Sistemas Operativos
(No se muestran 19 ediciones intermedias de 9 usuarios) | |||
Línea 1: | Línea 1: | ||
− | La conmutación de procesos es la operación que consiste en retirar el procesador a un proceso para | + | La conmutación de procesos es la operación que consiste en retirar el procesador a un proceso para asignárselo a otro. La conmutación se produce por cuatro razones: |
− | + | #Un proceso agota el tiempo máximo asignado al procesador, por tanto, se debe dar paso a otro proceso para garantizar que la multiprogramación es llevada a cabo apropiadamente. | |
+ | #Un proceso está pendiente de un evento externo, por tanto, pasa a estado bloqueado haciendo uso de la llamada al sistema bloqueante. El planificador debe asignar el procesador a otro nuevo proceso de entre los que están en estado preparado. | ||
+ | #Que termine la ejecución del proceso en cuestión. | ||
+ | #Que haya una [[Interrupciones_y_excepciones|interrupción]] proveniente de un dispositivo de E/S o por medio de la instrucción de la CPU que invoca al mecanismo de interrupción por software (por ejemplo, al invocar la instrucción ''int'' en procesadores x86). | ||
− | + | Los pasos que se siguen son los siguientes: | |
− | + | # Pasar a modo privilegiado de la CPU. | |
+ | # Guardar el contenido de los registros del hardware en el PCB (el llamado ''contexto de la ejecución''), así como otros datos que forman parte del contexto de la ejecución del proceso. | ||
+ | # Actualizar el estado del proceso en el PCB (el estado ha pasado de activo a bloqueado o preparado). | ||
+ | # Si se produjo una interrupción, atenderla. | ||
+ | # Seleccionar un nuevo proceso. | ||
+ | # Restaurar el contexto de ejecución del nuevo proceso seleccionado. En el caso de que el nuevo proceso no hubiese estado en el contexto de la ejecución deberá inicializarse. | ||
+ | # Pasar a modo no privilegiado. | ||
− | + | [[Imagen:Asig2.png]] | |
− | + | El tiempo de conmutación se considera una penalización, ya que si realizamos muchas conmutaciones el rendimiento decrece y esto da al usuario la sensación de que sus actividades van a saltos. Para optimizar esto hay que evitar conmutaciones innecesarias, empleando para ello criterios de selección lo más eficientes posibles. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 3.7.[[Hilos| Hilos]] |
Revisión actual del 17:20 2 abr 2020
La conmutación de procesos es la operación que consiste en retirar el procesador a un proceso para asignárselo a otro. La conmutación se produce por cuatro razones:
- Un proceso agota el tiempo máximo asignado al procesador, por tanto, se debe dar paso a otro proceso para garantizar que la multiprogramación es llevada a cabo apropiadamente.
- Un proceso está pendiente de un evento externo, por tanto, pasa a estado bloqueado haciendo uso de la llamada al sistema bloqueante. El planificador debe asignar el procesador a otro nuevo proceso de entre los que están en estado preparado.
- Que termine la ejecución del proceso en cuestión.
- Que haya una interrupción proveniente de un dispositivo de E/S o por medio de la instrucción de la CPU que invoca al mecanismo de interrupción por software (por ejemplo, al invocar la instrucción int en procesadores x86).
Los pasos que se siguen son los siguientes:
- Pasar a modo privilegiado de la CPU.
- Guardar el contenido de los registros del hardware en el PCB (el llamado contexto de la ejecución), así como otros datos que forman parte del contexto de la ejecución del proceso.
- Actualizar el estado del proceso en el PCB (el estado ha pasado de activo a bloqueado o preparado).
- Si se produjo una interrupción, atenderla.
- Seleccionar un nuevo proceso.
- Restaurar el contexto de ejecución del nuevo proceso seleccionado. En el caso de que el nuevo proceso no hubiese estado en el contexto de la ejecución deberá inicializarse.
- Pasar a modo no privilegiado.
El tiempo de conmutación se considera una penalización, ya que si realizamos muchas conmutaciones el rendimiento decrece y esto da al usuario la sensación de que sus actividades van a saltos. Para optimizar esto hay que evitar conmutaciones innecesarias, empleando para ello criterios de selección lo más eficientes posibles.
3.7. Hilos