Publicado el 2 de Octubre del 2018
1.184 visualizaciones desde el 2 de Octubre del 2018
337,9 KB
25 paginas
Creado hace 6a (04/11/2017)
Gestión de Procesos
Capítulo que describe cómo un sistema operativo realiza la gestión
de los procesos en ejecución en un sistema informático.
Comenzaremos definiendo qué es un proceso y la información que
el sistema operativo necesita para gestionar los procesos.
Posteriormente veremos conceptos básicos sobre la planificación
de la CPU y veremos en detalle los algoritmos de planificación.
Finalizaremos con la planificación de sistemas con varias CPUs y la
planificación de procesos divididos en hilos de ejecución.
Gestión de Procesos by Rafael Lozano is licensed under a Creative Commons Reconocimiento-
NoComercial-CompartirIgual 3.0 España License.
Tabla de contenidos
Tabla de contenido
1 Procesos...............................................................................................................................................1
1.1 Creación de procesos.................................................................................................................................2
1.2 Terminación de procesos..........................................................................................................................3
1.3 Estado de un proceso.................................................................................................................................3
1.4 Bloque de control de proceso..................................................................................................................3
2 Planificación de la CPU......................................................................................................................4
2.1 Multiprogramación......................................................................................................................................4
2.2 Colas de planificación.................................................................................................................................5
2.3 Cambio de contexto....................................................................................................................................6
2.4 Comportamiento de un proceso.............................................................................................................6
3 Algoritmos de planificación..............................................................................................................7
3.1 Objetivos de los algoritmos de planificación........................................................................................7
3.2 Planificación FCFS. Servicio por orden de llegada...............................................................................9
3.3 Planificación SJF. Tiempo de ejecución más breve...........................................................................11
3.4 Planificación SRTF. El menor tiempo restante...................................................................................12
3.5 Planificación por prioridades..................................................................................................................13
3.6 Planificación por turno circular..............................................................................................................15
4 Planificación de múltiples procesadores....................................................................................17
4.1 Sistema heterogéneo...............................................................................................................................17
4.2 Sistema homogéneo.................................................................................................................................17
5 Hilos de ejecución............................................................................................................................17
5.1 Implementación a nivel de usuario......................................................................................................18
5.2 Implementación a nivel de kernel.........................................................................................................19
5.3 Planificación de hilos................................................................................................................................20
6 Bibliografía.........................................................................................................................................21
Índice I
Rafael Lozano
Gestión de Procesos
Gestión
de procesos
1 Procesos
Una de las principales funciones de un sistema operativo es gestionar los procesos que se
ejecutan en el sistema informático en un momento dado. Se utiliza el término programa y proceso
como sinónimos cuando realmente son conceptos diferentes.
Un programa es un conjunto finito de instrucciones que realizan una tarea concreta.
El conjunto de instrucciones del programa se almacenan en forma de archivos ejecutables que
pueden ser invocados por el usuario para comenzar su ejecución.
Un proceso es un programa en ejecución junto con su entorno asociado formado por
los datos que emplea y otros que el sistema operativo utiliza para su gestión, como el
valor actual del contador de programa, registros y variables.
Si nos fijamos atentamente en las definiciones anteriores, un programa es un ente pasivo, ya
que es solo código, mientras que un proceso es activo y dinámico, ya que varía con el tiempo.
Un programa puede originar varios procesos. Por ejemplo, un usuario puede estar ejecutando
diferentes instancias del mismo programa simultáneamente. En este caso, varios procesos estarían
ejecutando el mismo programa.
Los procesos necesitan recursos hardware para su ejecución, como la CPU, espacio en
memoria, archivos y dispositivos de E/S. Estos recursos son asignados por el sistema operativo al
proceso en el momento de crearlo, es decir, cuando comienza su ejecución, o mientras se está
ejecutando, ya que las necesidades de recursos hardware por parte de los procesos puede cambiar
Página 1
Rafael Lozano
durante su ejecución.
Gestión de procesos
En la mayoría de los sistemas operativos el proceso es la unidad de trabajo, es decir, los
sistemas consisten en un conjunto de procesos. Los procesos del SO ejecutan el código del sistema y
los procesos de los usuarios ejecutan el código del usuario. En potencia, todos estos procesos
pueden ejecutarse concurrentemente, y la CPU o varias de ellas se multiplexan entre ellos. Al
conmutar la CPU entre procesos, el SO puede hacer más productivo al ordenador.
El SO es responsable de las siguientes actividades relacionadas con la administración de
procesos: la creación y eliminación de procesos tanto del sistema como de los usuarios, la
planificación de procesos y el suministro de mecanismos para la sincronización, comunicación y
manejo de bloqueos mutuos entre procesos.
1.1 Creación de procesos
En un sistema informático de propósito general se necesita cierta forma de crear y terminar
procesos según sea necesario durante la operación del sistema. Hay cuatro eventos principales que
provocan la creación de procesos:
1. Durante el arranque del sistema.
2. La ejecución, desde un proceso, de una llamada al sistema para creación de procesos.
3. Una petición de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.
Generalmente, cuando se arranca un sistema operativo se crean varios procesos y en función
de su interactividad con el usuario, estos pueden ser:
✔ Procesos en primer plano.- Son procesos que interactúan con los usuarios y realizan trabajo
para ellos.
✔ Procesos en segundo plano.- No están asociados con usuarios específicos sino con una
función específica.
En un proceso en segundo plano no hay intervención del usuario y generalmente se ejecuta sin
que éste se de cuenta. Por ejemplo, un proceso en segundo plano puede imprimir un documento,
que permanece inactivo la mayor parte del día pero que se activa cuando llega el usuario imprime un
documento. Otro proceso en segundo plano acepta peticiones entrantes para las páginas Web
hospedadas en ese equipo, que despierte cuando llegue una petición para darle servicio.
Los procesos que permanecen en segundo plano se conocen como demonios (daemons). Los
sistemas grandes tienen comúnmente docenas de ellos. En Linux/UNIX podemos utilizar el comando
ps para listar los procesos en ejecución. En Windows podemos usar el administrador de tareas.
En los sistemas interactivos, los usuarios pueden iniciar un programa escribiendo un comando
o haciendo doble clic en un icono. Cualquiera de estas dos acciones ejecuta el programa seleccionado
lo que provoca el inicio de un proceso. En los sistemas operativos con GUI la mayoría de estos
procesos se cargarán en una ventana y los usuarios pueden tener varias ventanas abiertas a la vez,
cada una ejecutando algún proceso. Mediante el ratón, el usuario puede seleccionar una ventana e
interactuar con el proceso.
Página 2
Rafael Lozano
Gestión de Procesos
1.2 Terminación de procesos
Una vez creado un proceso, empieza a ejecutarse y realiza el trabajo al que está destinado.
Tarde o temprano, el proceso terminará debido a una de las siguientes condiciones:
1. Salida normal.
2. Salida por error.
3. Error fatal.
4. Eliminado por otro proceso.
La mayoría de los procesos terminan debido a que han concluido su trabajo. Las aplicaciones
de usuario siempre tienen un icono u opción de menú en el que el usuario puede hacer clic para
indicar al proceso que elimine todos los archivos temporales que tenga abiertos y después termine.
La segunda razón de terminación es que el proceso descubra un error. Los procesos
interactivos no suelen terminar cuando reciben algún dato incorrecto. En su lugar aparece un cuadro
de diálogo y se le
Comentarios de: Gestión de Procesos (0)
No hay comentarios