lOMoARcPSD|52510077
Presentacion
Sistemas Operativos (Universidad Autónoma de Santo Domingo)
Escanea para abrir en Studocu
Studocu no está patrocinado ni avalado por ningún colegio o universidad.
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
Asignatura : Sistemas Operativos - INF 3240
Sección : 06
Profesor : Servio Quevedo Rosario
Tema : Administración de Procesos y del Procesador
Estudiante Administración
: Víctor Manuel de
García
Procesos y del Procesador
Matricula : 100450033
Fecha : 25/10/2021
Proceso
Un proceso es una tarea, actividad, procedimiento o programa que
está en ejecución. Este proceso contiene instrucciones de un
programa que estarán destinadas a ser ejecutadas por el
microprocesador. 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. Los nuevos procesos son independientes y no
comparten memoria (es decir, información) con el proceso que los ha
creado. Además de incluir al programa en ejecución, un proceso
incluye a los valores activos del contador, registros y variables del
mismo. Cada proceso tiene su propia CPU virtual, pero si esta se
alterna entre ellos, la velocidad a la que se ejecutan dichos procesos
no será uniforme.
Estados y transiciones de los procesos
Un proceso pasa por una serie de estados discretos a los cuales les
afectan diferentes circunstancias para lograr que estos cambien de
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
estado. Cada proceso es una entidad independiente pero
frecuentemente debe interactuar con otros procesos.
Estado del 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.
Las transiciones 2 y 3 son llevadas a cabo por el planificador de
procesos, siendo que el proceso no tiene conocimiento de este.
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.
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 ejemplo, 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.
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
Procesos ligeros: hilos o hebras
Un proceso ligero o thread, es un programa en ejecución que
comparte la imagen de la memoria y otras informaciones con otros
procesos ligeros. Son una unidad básica de utilización de la CPU que
consiste en un juego de registros y un espacio de pila. Estos pueden
estar en tres estados: ejecutando, listo o bloqueado.
Algunas de las características de estos procesos son las siguientes:
Se comparten recursos. La compartición de la memoria permite
a las hebras pares comunicarse sin usar ningún mecanismo de
comunicación inter-proceso del SO.
La conmutación de contexto es más rápida gracias al extenso
compartir de recursos.
No hay protección entre las hebras. Una hebra puede escribir en
la pila de otra hebra del mismo proceso.
La sobrecarga debida a su creación y comunicación es menor
que en los procesos pesados.
Cada hilo pertenece a un proceso pesado.
Todos los hilos comparten su espacio de direccionamiento.
Cada hilo dispone de su propia política de planificación, pila y
contador de programa.
Un hilo de ejecución o hebra o es la unidad de procesamiento más
pequeña que puede ser planificada por un sistema operativo.
Al crearse un hilo permite a una aplicación ejecutar varias tareas a la
vez, o sea, de manera concurrente.
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
Cuando un hilo modifica un dato en la memoria, los otros hilos
acceden a ese dato modificado inmediatamente, lo que quiere decir
que comparte los mismos recursos, es por esto que en conjunto se les
denomina como un proceso.
Los hilos poseen un estado de ejecución y pueden sincronizarse entre
ellos para evitar problemas de compartimiento de recursos. Por lo
general cada hilo tiene una tarea específica y determinada, como
forma de aumentar la eficiencia del uso del procesador. Sus
principales estados son ejecución, listo y bloqueado.
Creación: Cuando se crea un proceso se crea un hilo para ese
proceso. Luego, este hilo puede crear otros hilos dentro del
mismo proceso, proporcionando un puntero de instrucción y los
argumentos del nuevo hilo.
Bloqueo: Cuando un hilo necesita esperar por un suceso, se
bloquea, y cuando esto suceda el procesador podrá pasar a
ejecutar otro hilo que esté al final mientras el anterior permanece
bloqueado.
Desbloqueo: Cuando el suceso por el que el hilo se bloqueó se
produce, el mismo pasa al final.
Terminación: Cuando un hilo finaliza se liberan tanto su contexto
como sus columnas.
Concurrencia y Secuenciabilidad
La concurrencia es una propiedad de los sistemas en la cual los procesos
de un cómputo se hacen simultáneamente y pueden interactuar entre
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
ellos, es decir, es la ejecución de varias tareas al mismo tiempo.
A la secuenciabilidad también se le puede llamar sincronización, y esto
significa provocar que 2 o más procesos trabajen secuencialmente de una
forma que, cuando se necesite que se realicen 2 o más tareas en un
orden específico, no interfieran una con la otra y altere su funcionamiento.
Los procesos concurrentes pueden funcionar de forma independiente
unos de otros o puede ser que en ocasiones requieran cierta
sincronización. Existen tres formas modelos de computadora en los que
se puede pueden ejecutar procesos concurrentes:
Multiprogramación con un único procesador.
En este modelo todos los procesos concurrentes ejecutan sobre un único
procesador. El sistema operativo se encarga de ir repartiendo el tiempo
del procesador entre los distintos procesos, intercalando la ejecución de
los mismos para dar así una apariencia de ejecución simultánea.
Multiprocesador.
Un multiprocesador es una maquina formada por un conjunto de
procesadores que comparten memoria principal. En este tipo de
arquitecturas, los procesos concurrentes no solo pueden intercalar su
ejecución sino también superponerla. En este caso si existe una
verdadera ejecución simultanea de procesos, al coincidir las fases de
procesamiento de distintos procesos. En un instante dado se pueden
ejecutar de forma simultanea tantos procesos como procesadores haya.
Multicomputadora.
Una multicomputadora es una máquina de memoria distribuida, en
contraposición con el multiprocesador que es de memoria compartida.
Está formada por una serie de computadoras completas con su UCP,
memoria principal y, en su caso, periferia. Cada uno de estos
procesadores completo se denomina nodo. Los nodos se encuentran
conectados y se comunican entre sí a través de una red de interconexión,
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
empleando el método de paso de mensajes. En este tipo de arquitecturas
también es posible la ejecución simultanea de los procesos sobre los
distintos procesadores.
Existen dos tipos de procesos concurrentes, y se pueden clasificar como:
Proceso independiente: Es aquel proceso que se ejecuta o trabaja
por sí solo, sin requerir la ayuda o cooperación de otros procesos.
Procesos cooperantes: Son aquellos que están diseñados para
trabajar conjuntamente en alguna actividad, por lo que deben ser
capaces de comunicarse e interactuar entre ellos.
La sincronización entre procesos es necesaria para prevenir y/o corregir
errores de sincronización debidos al acceso concurrente a recursos
compartidos. Sin una sincronización adecuada entre procesos, la
actualización de variables compartidas puede inducir a errores de tiempo
relacionados con la concurrencia que algunas veces son difíciles de
depurar.
Para que los procesos puedan sincronizarse es necesario contar con
servicios que permitan bloquear o suspender la ejecución de un proceso
en caso de que se requiera. Los principales mecanismos de
sincronización que ofrecen los sistemas operativos son:
Señales
Tuberías
Semáforos
Mutex y variables condicionales
Paso de mensajes
Niveles, objetivos y criterios de planificación
Cuando más de un proceso es ejecutable, el sistema operativo debe
decidir cuál de ellos debe ejecutarse en primer término. Aquí es donde
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
entra el planificador, que es la porción del sistema operativo que decide, y
el algoritmo de planificación, que es el utilizado.
Se consideran tres niveles de la planificación se definen a continuación:
Planificación de alto nivel: también denominado planificación de
trabajos. Este determina a qué trabajos se les va a permitir competir
activamente por los recursos del sistema.
Planificación de nivel intermedio: este determina a qué procesos se
les puede permitir competir por la CPU, ayuda a alcanzar ciertas
metas en el rendimiento total del sistema, responde a fluctuaciones
a corto plazo en la carga del sistema y efectúa suspensiones y
reanudaciones de procesos.
Planificación de bajo nivel: determina a qué proceso listo se le
asigna la CPU cuando esta queda disponible y asigna la CPU al
mismo.
Los objetivos que tiene la planificación son los siguientes:
Ser justa: significa que todos los procesos son tratados de igual
manera y ningún proceso es postergado indefinidamente.
Maximizar el número de procesos servidos por unidad de tiempo, p
sea, maximizar la capacidad de ejecución.
Maximizar el número de usuarios interactivos que reciban unos
tiempos de respuesta aceptables.
Ser predecible: quiere decir que un trabajo dado debe ejecutarse
aproximadamente en la misma cantidad de tiempo
independientemente de la carga del sistema.
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
Minimizar la sobrecarga.
Equilibrar el uso de recursos, lo que favorecerá a los procesos que
utilizarán recursos infrautilizados.
Equilibrar respuesta y utilización: la mejor manera de garantizar
buenos tiempos de respuesta es disponer de los recursos
suficientes cuando se necesitan.
Evitar la postergación indefinida: mientras un proceso espera por un
recurso, su prioridad debe aumentar, así la prioridad llegará a ser
tan alta que el proceso recibirá el recurso esperado.
Asegurar la prioridad.
Dar preferencia a los procesos que mantienen recursos claves: un
proceso de baja prioridad podría mantener un recurso clave que
puede ser requerido por un proceso de más alta prioridad.
Dar mejor tratamiento a los procesos que muestren un
comportamiento deseable.
Degradarse suavemente con cargas pesadas: esto quiere decir que
un mecanismo de planificación no debe colapsar con una carga
exigente del sistema, y para evitar esto no se permite que se creen
nuevos procesos cuando la carga ya es pesada y se le da servicio a
la carga más pesada al proporcionar un nivel moderadamente
reducido de servicio a todos los procesos.
Los principales criterios de planificación son la equidad, la eficacia, el
tiempo de respuesta, el tiempo de regreso y el rendimiento.
Equidad: garantiza que cada proceso obtiene su proporción justa de
la CPU.
Eficacia: significa mantener ocupada la CPU el 100 % del tiempo.
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
Tiempo de respuesta: minimizar el tiempo de respuesta para los
usuarios interactivos.
Tiempo de regreso: minimizar el tiempo que deben esperar los
usuarios por lotes para obtener sus resultados.
Rendimiento: maximizar el número de tareas procesadas por hora.
Técnicas de administración del planificador
Planificación FIFO
Los procedimientos son atendidos de acuerdo con el orden de llegada.
FIFO, por sus siglas en inglés, quiere decir First In, First Out, o sea,
primero en entrar es el primero en salir. Una vez que un proceso tenga
la CPU, se ejecuta hasta su terminación. Esta planificación es un poco
injusta, debido a que los grandes procesos hacen esperar a trabajos
pequeños, y los trabajos sin importancia hacen esperar a los trabajos
importantes. Además, no se pueden garantizar buenos tiempos de
espera.
Planificación por Prioridad al más corto (SJF, Short Job First)
El proceso con tiempo estimado de ejecución hasta terminación más
corto es el siguiente en ser ejecutado. Esta planificación reduce el
tiempo de espera de los procesos, no obstante, tiene una varianza
mayor que en FIFO, pues favorece a los procesos cortos a costa de
los procesos largos, debido a que su tiempo de espera promedio es
menor.
Además, se requiere un conocimiento preciso del tiempo de ejecución
de un proceso, lo que por lo general se desconoce.
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
Planificación por Prioridad al Tiempo Restante más Corto (SRTF,
Short Remaining Time First)
A diferencia del anterior, este sí es útil en sistemas de tiempo
compartido, los trabajos largos tienen un promedio y una varianza de
los tiempos de espera aún mayor, pero tiene mayor sobrecarga.
Consiste en que el proceso con tiempo estimado de ejecución menor
para analizar es el siguiente en ser ejecutado.
Planificación el Siguiente con Relación de Respuesta Máxima
(HRN)
Esta planificación corrige el exceso de perjuicio hacia los procesos
largos y el exceso de favoritismo hacia los nuevos trabajos cortos que
tiene el SJF como debilidad. Para darle prioridad a cada proceso
influye el tiempo de servicio del trabajo y la cantidad de tiempo que el
trabajo ha estado esperando ser atendido o servido. Cuando un
proceso ha obtenido la CPU, entonces este corre hasta terminar.
Planificación del tiempo restante más corto primero (SRT)
El proceso con el tiempo estimado de ejecución menor para llegar a su
terminación es el siguiente en ser ejecutado, incluyendo las nuevas
llegadas. Un proceso en ejecución puede ser apropiado por un nuevo
proceso con un tiempo estimado de ejecución menor. Además, testa
planificación tiene una sobrecarga mayor que la SJF, por lo que debe
mantener un registro del tiempo de servicio transcurrido del trabajo en
ejecución y controlar las apropiaciones ocasionales.
Planificación el siguiente con relación de respuesta máxima
(HRT)
Esta corrige algunas debilidades de SJF como lo son el favoritismo por
los tamaños pequeños, dándole prioridad a los trabajos que estén en
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
función del tiempo de servicio del trabajo y del tiempo en que un
proceso ha estado esperando ser servido. Cuando el trabajo obtiene la
CPU, este se ejecuta hasta su terminación. Fue desarrollada por
Brinch Hansen en 1971.
Planificación Round Robin (RR)
Los procesos se despachan en FIFO, pero se les otorga una cantidad
limitada de tiempo de CPU que se llama división de tiempo o cuánto.
Si un proceso no termina antes de que se termine su tiempo de CPU,
este será apropiado y asignado al siguiente proceso en espera y se
colocará al final de la lista.
Conclusión
Podemos concluir, entonces, que la administración de procesos se
utiliza para proporcionar información sobre estos y sobre los
programas que se están activos en la computadora. Su importancia
radica en que los resultados se alcanzan con más eficiencia cuando
las actividades y los recursos relacionados se gestionan como un
proceso. También es importante conocer la planificación de dichos
procesos, pues así sabemos cuál es más conveniente para cada uno
de ellos y cómo funciona su ejecución
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])
lOMoARcPSD|52510077
Bibliografías
[Link]
[Link]
[Link]
[Link]
proceso/[Link]
[Link]
[Link]
administrador-del-proceso-y-del-procesador/2-3-procesos-ligeros-hilos-
o-hebras
[Link]
administrador-del-proceso-y-del-procesador/2-4-concurrencia-y-
secuenciabilidad
[Link]
administrador-del-proceso-y-del-procesador/2-5-niveles-objetivos-y-
criterios-de-planificacion
Descargado por Santa Luis Morel (santaluisamorel1234@[Link])