Tarea Unidad II
Tarea Unidad II
Tarea Unidad II
T53
SISTEMAS OPERATIVOS I
NC:18251035
TAREA UNIDAD 2
1
INDICE
2
2.1 Concepto de proceso
Un proceso no es más que un programa en ejecución, e incluye los valores actuales del
contador de programa, los registros y las variables. Conceptualmente cada uno de estos
procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU
conmuta de un proceso a otro.
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 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 un proceso solamente puede crear hilos para sí mismo y en que
dichos hilos comparten toda la memoria reservada para el proceso.
En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al
sistema operativo, esta organizado en una serie del proceso secuenciales, o simplemente
procesos.
3
La idea clave aquí es que un proceso es una actividad de algún tipo: tiene programa,
entrada, salida y un estado. Se puede compartir un procesador entre varios procesos,
usando algún algoritmo de planificación para determinar cuando debe de trabajar en un
proceso para atender a uno distinto.
Los sistemas operativos que manejan el concepto de proceso deben contar con algún
mecanismo para crear todos los procesos necesarios. en los sistemas muy sencillos, o en
los diseñados para ejecutar solo una aplicación.
En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su
memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema.
Los procesos necesitan poder crear otros procesos.
En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una
copia idéntica del proceso invocador. El proceso hijo también puede ejecutar FORK, así
que es posible tener un árbol de proceso.
4
Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos.
5
2.3 Procesos ligeros (Hilos o hebras).
En la mayoría de los sistemas operativos, estas dos características son, de hecho, la
esencia de un proceso. Sin embargo, algunos argumentos pueden convencer de que estas
dos características son independientes y que deben ser tratadas de manera independiente
por el sistema operativo. Esto se hace así en una serie de sistemas operativos, en particular
en algunos sistemas operativos de desarrollo reciente. Para distinguir estas dos
características, la unidad de expedición se conoce corno hilo(thread) o proceso ligero
(lightweight process),mientras que a la unidad de propiedad de los recursos se le suele
llama proceso o tarea.
Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: Se tarda
mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear una
nueva tarea, menos tiempo para terminar un hilo y menos tiempo para cambiar entre dos
hilos de un mismo proceso. Por tanto, si hay una aplicación o una función que pueda
implementarse como un conjunto de unidades de ejecución relacionadas, es más eficiente
hacerlo con una colección de hilos que con una colección de tareas separadas. 8 Algunos
estudios llevados acabo por los desarrolladores de Mach demuestran que la aceleración en
la creación de procesos, comparada con la de Las implementaciones de UNIX quemo
utilizan hilos, está en un factor de 10.
Diferencia entre Proceso e Hilo
Un proceso es una entidad relativamente independiente que dispone de su propio espacio
de direcciones, su propia información de estado y que utiliza los mecanismos de
comunicación entre procesos que le proporciona el sistema operativo para comunicarse
con otros procesos.
Por otro lado, un hilo es una entidad más reducida capaz de convivir junto a otros hilos bajo
el contexto de un único proceso, permitiendo compartir la información de estado, el área de
memoria y/o los recursos asociados a ese proceso.
Dentro de un proceso puede haber uno o más hilos de control cada uno con:
Un estado de ejecución (en ejecución, listo, bloqueado).|
Un contexto de procesador, que se salva cuando no esté ejecutándose.
Una pila de ejecución.
Algún almacenamiento estático para variables locales.
Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.
Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda
menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer
un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a
varios flujos de ejecución se mantiene una única copia en memoria del código, y no varias.
6
2.4. Concurrencia y Secuenciabilidad
La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos
puedan
coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran
coordinarse
en su ejecución. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de
arbitraje
que permiten coordinar la ejecución de los procesos.
Los procesos del sistema pueden ejecutarse concurrentemente, puede haber múltiples
tareas en el
CPU con varios procesos. Existen varias razones para permitir la ejecución concurrente:
Compartir recursos físicos.
Ya que los recursos del hardware de la computadora son limitados, nos podemos ver
obligados a compartirlos en un entorno multiusuario.
Compartir recursos lógicos.
Puesto que varios usuarios pueden interesarse en el mismo elemento de información (por
ejemplo un archivo compartido), debemos proporcionar un entorno que permita el acceso
concurrente a estos tipos de recursos.
El término programación concurrente se emplea con frecuencia para referirse a un conjunto
de
programas que funcionan en cooperación.
Hay tres formas de interacción entre procesos cooperativos:
Concurrencia: Hay un recurso común, si varios procesos modificaran la misma
información
a la vez, cada uno podría destruir parte del trabajo de los demás. Si lo hace uno tras otro,
en serie, se obtendrá el resultado correcto.
Sincronización: El Sistema Operativo se encarga de enviarle señales a los procesos para
coordinar su evolución y conseguir que progrese armónicamente.
Comunicación: El S.O. transmite mensajes entre los procesos, que se usan para
intercambiar, enviar o recibir información.
Se le llama programación concurrente ya que la concurrencia fue la primera forma de iterar
recursos
entre procesos cooperativos.
7
Una sección crítica se trata de una sección del código que puede ser ejecutada por un único
proceso o hilo simultáneamente. Un ejemplo de sección crítica es la sección de código en
la que se accede a un recurso compartido. Para evitar el acceso simultáneo a la sección
crítica se emplean mecanismos que garantizan la exclusión mutua.
La exclusión mutua se debe realizar de forma coordinada y eficiente, para ello se requiere:
No más de un proceso por sección crítica y recurso compartido.
El mismo proceso no puede usar el mismo recurso compartido indefinidamente.
Todo proceso debe entrar antes o después a usar el recurso.
Si el recurso está sin uso, cualquiera que lo requiera dispondrá de él inmediatamente.
Si hay varios esperando usar el recurso y éste se libera, uno de los que estaba esperando
lo usará durante un tiempo determinado.
Para llevar esto a cabo se necesita un protocolo que indique cuando el recurso está libre y
cuando está siendo ocupado.
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, empleando el método de
paso de mensajes. En este tipo de arquitecturas también es posible la ejecución simultánea
de los procesos sobre los distintos procesadores.
8
2.5 Niveles, objetivos y criterios de planificación
Niveles de Planificación
La planificación es el proceso por el cual el sistema operativo selecciona que proceso
ejecutar. La selección del proceso se basa en alguno de los algoritmos de planificación.
La planificación de la CPU, en el sentido de conmutarla entre los distintos procesos, es una
de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeño
programa llamado planificador a corto plazo o dispatcher (despachador). La misión del
dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para
ello sigue un determinado algoritmo.
Los acontecimientos que pueden provocar la llamada al dispatcher dependen del sistema
(son un subconjunto de las interrupciones), pero son alguno de estos:
El proceso en ejecución acaba su ejecución o no puede seguir ejecutándose (por una E/S,
operación WAIT, etc).
Un elemento del sistema operativo ordena el bloqueo del proceso en ejecución
El proceso en ejecución agota su cuantum o cuanto de estancia en la CPU.
Un proceso pasa a estado listo.
Hay que destacar el hecho de que cuanto menos se llame al dispatcher menos tiempo
ocupa la CPU un programa del sistema operativo, y, por tanto, se dedica más tiempo a los
procesos del usuario (un cambio de proceso lleva bastante tiempo).
Así, si sólo se activa el dispatcher como consecuencia de los 2 primeros acontecimientos
se estará haciendo un buen uso del procesador. Este criterio es acertado en sistemas por
lotes en los que los programas no son interactivos. Sin embargo, en un sistema de tiempo
compartido no es adecuado, pues un proceso que se dedicara a realizar cálculos, y no
realizara E/S, monopolizaría el uso de la CPU. En estos sistemas hay que tener en cuenta
el conjunto de todos los procesos, activándose el dispatcher con la circunstancia tercera y,
posiblemente, la cuarta. Los sistema operativos en que las dos siguientes circunstancias
no provocan la activación del dispatcher muestran preferencia por el proceso en ejecución,
si no ocurre esto se tiene más en cuenta el conjunto de todos los procesos.
Planificación a largo plazo
Este planificador está presente en algunos sistemas que admiten además de procesos
interactivos trabajos por lotes. Usualmente, se les asigna una prioridad baja a los trabajos
por lotes, utilizándose estos para mantener ocupados a los recursos del sistema durante
períodos de baja actividad de los procesos interactivos. Normalmente, los trabajos por lotes
realizan tareas rutinarias como el cálculo de nóminas; en este tipo de tareas el programador
puede estimar su gasto en recursos, indicándoselo al sistema. Esto facilita el
funcionamiento del planificador a largo plazo.
El objetivo primordial del planificador a largo plazo es el de dar al planificador de la CPU
una mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan mucho la
CPU) o la E/S. Así, por ejemplo, cuando la utilización de la CPU es baja, el planificador
9
puede admitir más trabajos para aumentar el número de procesos listos y, con ello, la
probabilidad de tener algún trabajo útil en espera de que se le asigne la CPU. A la inversa,
cuando la utilización de la CPU llega a ser alta, y el tiempo de respuesta comienza a
reflejarlo, el planificador a largo plazo puede optar por reducir la frecuencia de admisión de
trabajos.
Normalmente, se invoca al planificador a largo plazo siempre que un proceso termina. La
frecuencia de invocación depende, pues, de la carga del sistema, pero generalmente es
mucho menor que la de los otros dos planificadores. Esta baja frecuencia de uso hace que
este planificador pueda permitirse utilizar algoritmos complejos, basados en las
estimaciones de los nuevos trabajos.
Planificación a Medio Plazo
En los sistemas de multiprogramación y tiempo compartido varios procesos residen en la
memoria principal. El tamaño limitado de ésta hace que el número de procesos que residen
en ella sea finito. Puede ocurrir que todos los procesos en memoria estén bloqueados,
desperdiciándose así la CPU. En algunos sistemas se intercambian procesos enteros
(swap) entre memoria principal y memoria secundaria (normalmente discos), con esto se
aumenta el número de procesos, y, por tanto, la probabilidad de una mayor utilización de la
CPU.
El planificador a medio plazo es el encargado de regir las transiciones de procesos entre
memoria principal y secundaria, actúa intentando maximizar la utilización de los recursos.
Por ejemplo, transfiriendo siempre a memoria secundaria procesos bloqueados, o
transfiriendo a memoria principal procesos bloqueados únicamente por no tener memoria.
Planificación a corto plazo
Qué proceso será el que se ejecutará en el procesador en el instante siguiente.
Expulsión denota si un proceso acapara el procesador cuando está ejecutándose. Existen
sistemas con y sin expulsión:
a) Sin expulsión: un proceso conserva el uso del procesador mientras lo desee; es decir,
mientras no solicite del SO un servicio que lo bloquee. Ventajas: minimiza tiempo de
planificación. Inconvenientes: un proceso podría monopolizar el uso del procesador.
b) Con expulsión: el SO puede desalojar a un proceso del uso del procesador (sin que el
proceso lo haya solicitado). Ventaja: control sobre el tiempo de ejecución de cada proceso.
Inconveniente: gasto de tiempo.
Objetivos y Criterios de Planificación
Los objetivos del planificador se resumen en:
a) Reparto equitativo del tiempo de procesador
b) Eficiencia en el uso del procesador
c) Menor tiempo de respuesta en uso interactivo
d) Cumplir plazos de ejecución de los sistemas de tiempo real
10
El principal objetivo de la planificación a corto plazo es repartir el tiempo del procesador de
forma que se optimicen algunos puntos del comportamiento del sistema. Generalmente se
fija un conjunto de criterios con los que evaluar las diversas estrategias de planificación. El
criterio más empleado establece dos clasificaciones. En primer lugar, se puede hacer una
distinción entre los criterios orientados a los usuarios y los orientados al sistema. Los
criterios orientados al usuario se refieren al comportamiento del sistema tal y como lo
perciben los usuarios o los procesos.
Uno de los parámetros es el tiempo de respuesta. El tiempo de respuesta es el periodo de
tiempo transcurrido desde que se emite una solicitud hasta que la respuesta aparece en la
salida. Sería conveniente disponer de una política de planificación que ofrezca un buen
servicio a diversos usuarios.
Otros criterios están orientados al sistema, esto es, se centran en el uso efectivo y eficiente
del procesador. Un ejemplo puede ser la productividad, es decir, el ritmo con el que los
procesos terminan. La productividad es una medida muy válida del rendimiento de un
sistema y que sería deseable maximizar.
Otra forma de clasificación es considerar los criterios relativos al rendimiento del sistema y
los que no lo son. Los criterios relativos al rendimiento son cuantitativos y, en general,
pueden evaluarse o ser analizados fácilmente. Algunos ejemplos son el tiempo de
respuesta y la productividad.
Los criterios no relativos al rendimiento son, en cambio cualitativos y no pueden ser
evaluados fácilmente. Un ejemplo de estos criterios es la previsibilidad. Sería conveniente
que el servicio ofrecido a los usuarios tenga las mismas características en todo momento,
independientemente de la existencia de otros trabajos ejecutados por el sistema.
En particular, una disciplina de planificación debe:
Ser equitativa: debe intentar hacer una planificación justa, esto es, se debe tratar a todos
los procesos de la misma forma y no aplazar indefinidamente ningún proceso. La mejor
forma de evitarlo es emplear alguna técnica de envejecimiento; es decir, mientras un
proceso espera un recurso, su prioridad debe crecer.
Ser eficiente: debe maximizar el uso de los recursos tales como intentar que la ocupación
de la CPU sea máxima. Al mismo tiempo se debe intentar reducir el gasto extra por
considerar que es trabajo no productivo. Normalmente el idear algoritmos eficientes supone
invertir recursos en gestión del propio sistema.
Lograr un tiempo bueno de respuesta, es decir, que los usuarios interactivos reciban
respuesta en tiempos aceptables.
Lograr un tiempo de proceso global predecible. Esto quiere decir que un proceso debe
ejecutarse aproximadamente en el mismo tiempo y casi al mismo costo con independencia
de la carga del sistema.
Elevar al máximo la productividad o el rendimiento, esto es, maximizar el número de
trabajos procesados por unidad de tiempo. Eso supone, por un lado, dar preferencia a los
11
procesos que ocupan recursos decisivos y, por otro, favorecer a los procesos que muestran
un comportamiento deseable.
2.6 Técnicas de administración del planificador.
Las disciplinas de planificación pueden ser:
• Expropiativas
• No expropiativas
Se denomina planificador al software del sistema operativo encargado de asignar los
recursos de un sistema entre los procesos que los solicitan. Siempre que haya tomar una
decisión, el planificador debe decidir cuál de los procesos que compiten por la posesión de
un determinado recursos lo recibirá. Los algoritmos tienen distintas propiedades según los
criterios en los que se basen para su construcción, lo cual se refleja en qué tipo de procesos
se puede ver favorecido frente a otro en la disputa del procesador. Antes de realizar la
elección de un algoritmo se debe considerar las propiedades de estos frente al criterio de
diseño elegido. Algunos de estos son:
a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilización. Aunque puede
parecer lógico intentar mantener este parámetro próximo al 100%, con un valor tan elevado
otros aspectos importantes de medida del comportamiento del sistema pueden verse
deteriorados, como por ejemplo el tiempo medio de espera.
b) Rendimiento: Es una medida del número de procesos completados por unidad de tiempo.
c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un
proceso se crea o presenta hasta que completa por el sistema.
d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el
procesador. Puede resultar una medida más adecuada de la eficiencia del sistema, ya que
se elimina de la media el tiempo que tarda en ejecutarse el mismo.
e) Tiempo de respuesta a un evento: Se denomina así el intervalo de tiempo que transcurre
desde que se señala un evento hasta que se ejecuta la primera instrucción de la rutina de
servicio de dicho evento.
12
REFERENCIAS APA
H., U. (s. f.). 2.6 Técnicas de administración del planificador. Recuperado 5 de octubre de
2021, de https://sistemasoperativosrocher.blogspot.com/2015/03/26-tecnicas-de-
administracion-del.html
2.3 Procesos ligeros (Hilos o hebras). - SISTEMAS OPERATIVOS. (s. f.). Recuperado 5
2-administracion-de-procesos-y-del-procesador/2-3-procesos-ligeros-hilos-o-hebras
https://sites.google.com/site/materiasisoperativo/unidad-2-administrador-del-
proceso-y-del-procesador/2-1-concepto-de-proceso
de 2021, de https://jrgsso4a.wordpress.com/2016/04/05/2-6-tecnicas-de-
administracion-del-planificador/
13