U2 A1 Antologia

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

Unidad 2

Antología

Materia: Sistemas Operativos

Alumno: Horacio Montoya Marquez

Maestro: Juan José Martínez Rodríguez

Matricula: 2193S9876

5to semestre

2.1. Definición de proceso.


Un proceso es una instancia de ejecución de un programa, caracterizado por su contador de
programa, su palabra de estado, sus registros del procesador, su segmento de texto, pila y datos,
etc. Un programa es un concepto estático, mientras que un proceso es un concepto dinámico. Es
posible que un programa sea ejecutado por varios usuarios en un sistema multiusuario, por cada
una de estas ejecuciones existirá un proceso, con su contador de programa, registros, etc.
Creación y destrucción de los procesos.
Creación.

Los procesos son inicializaciones de un sistema operativo, este los inicia al arrancar su
funcionamiento, es decir cuando se enciende una PC. El sistema operativo necesita de un
mecanismo para crear y terminar procesos.
Existen cuatro sucesos principales para la creación de un proceso dentro de un SO.
 Inicialización del sistema: Cuando se arranca un SO se crean varios sucesos.
 Ejecución de una llamada al sistema para crear procesos por parte de un proceso en
ejecución.
 Solicitud de un usuario para crear un proceso.
 Inicio de un trabajo por lotes.

Destrucción.
Al término de cada tarea encomendada a cada proceso, es como todos los demás procesos tienen
que terminar o acabar su tarea, para lograr esto al igual que su creación existen cuatro formas
para terminarlos:
 Terminación normal: cuando el proceso acaba la tarea encomendada.
 Terminación por error: cuando el archivo o programa no se encuentra instalado acaba el
proceso este es un ejemplo.
 Error fatal: cuando se encuentran archivos borrados en un sistema o programa o un
defecto en el programa.
 Terminación por otro proceso: cuando un proceso pide que se termine otro para poder
inicializarse.

2.2. Estados y transiciones de los procesos.


Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y
Bloqueado.
Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador
los selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el
procesador en ese momento dado. Los procesos que se encuentran en estado bloqueado están
esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo,
operación de E/S.
Un proceso puede variar entre 5 distintos estados:
 New: cuando el proceso está siendo creado.
 Running: cuando el proceso se está ejecutando.
 Waiting: cuando el proceso está esperando que se cumpla algún otro evento.
 Ready: cuando el proceso esta pronto para ejecutar, esperando por la CPU.
 Terminated: cuando el proceso está terminado.

Estado de los procesos.


Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos.
1.- Estados activos:
Son aquellos que compiten con el procesador o están en condiciones de hacerlo. Se dividen en:
 Ejecución: Estado en el que se encuentra un proceso cuando tiene el control del
procesador. En un sistema monoprocesador este estado sólo lo puede tener un proceso.
 Preparado: Aquellos procesos que están dispuestos para ser ejecutados, pero no están en
ejecución por alguna causa (Interrupción, haber entrado en cola estando otro proceso en
ejecución, etc.).
 Bloqueado: Son los procesos que no pueden ejecutarse de momento por necesitar algún
recurso no disponible (generalmente recursos de entrada/salida).
2.- Estados inactivos
Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo por
medio de ciertas operaciones. En estos estados se mantiene el bloque de control de proceso
aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo
que lo han impedido y que pueden volver a activarse desde el punto en que se quedaron sin que
tengan que volver a ejecutarse desde el principio.

Son de dos tipos:


 Suspendido bloqueado: Es el proceso que fue suspendido en espera de un evento, sin que
hayan desaparecido las causas de su bloqueo.
 Suspendido programado: Es el proceso que han sido suspendido, pero no tiene causa
parta estar bloqueado.
Información asociada con cada proceso:
 Estado del proceso.
 Program counter.
 Registros del CPU.
 Información de planificación del CPU.
 Memoria.
 Información para administración.
 Información de estatus de E/S.

Transición de los procesos.


Un proceso puede encontrarse en estado de ejecución, bloqueado o listo (que también se llama
ejecutable). De estos estados de los procesos se derivan las siguientes transiciones y estados:
Transición: El paso de un estado a otro.
 El proceso se bloquea en la entrada.
 El planificador elige otro proceso.
 El planificador elige este proceso.
 La entrada se vuelve disponible.

Estados:
 Ejecución (que en realidad hace uso del CPU en ese instante).
 Bloqueado (incapaz de correr hasta que suceda algún evento externo.
 Listo (ejecutable; se detiene temporalmente para permitir que se ejecute otro proceso).

En estos tres estados son posibles cuatro transiciones:


1. Ocurre cuando un proceso descubre que no puede continuar. En algún sistema el proceso debe
ejecutar una llamada al sistema, BLOCK, para entrar en estado bloqueado.
2 y 3. Son ocasionadas por el planificador del proceso, que es parte del sistema operativo sin que
el proceso llegue a saber de ella.
2. Ocurre cuando el planificador decide que el proceso en ejecución ya ha corrido el tiempo
suficiente y es tiempo de permitir que otro proceso tome tiempo de CPU.
3. Ocurre cuando todos los procesos han utilizado su parte del tiempo y es hora de que el primer
proceso vuelva a correr.
4. Ocurre cuando aparece el evento externo que estaba esperando un proceso (como el arribo de
alguna entrada). Si ningún otro proceso corre en ese instante, la transición 3 se activará de
inmediato y el proceso iniciará su ejecución, de lo contrario tendrá que esperar, en estado listo.

2.3. Procesos ligeros: Hebras o hilos.


Un proceso ligero es un programa en ejecución que comparte la imagen de la memoria y otras
informaciones con otros procesos ligeros.
Los procesos ligeros son la unidad de utilización de la CPU consistente en un juego de registros
y un espacio de pila. Comparte el código, los datos y los recursos con sus hebras pares.

Características:
 Se comparten recursos. La compartición de la memoria permite a las hebras pares
comunicarse sin usar ningún mecanismo de comunicación interproceso 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.

Estado de los procesos ligeros:


Un proceso ligero puede estar ejecutando, listo o bloqueado.

2.4. Concurrencia y secuenciabilidad.


Concurrencia.
Es la existencia de varias actividades
ejecutándose simultáneamente y
necesitan sincronizarse para
actuar conjuntamente. Se
trata, en este caso, de un concepto
lógico, ya que solo hace referencia a as actividades, sin importar el número de procesadores
presentes.
Para que dos actividades, sean concurrentes, es necesario que tengan relación entre sí, como
puede ser la cooperación en un trabajo determinado o el uso de información compartida.
Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden
funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual
significa que ene ocasiones requiere cierta sincronización y cooperación.
Los procesos del sistema pueden ejecutarse concurrentemente, puede haber múltiples tareas en el
CPU con vario 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.
 Acelerar los cálculos: Si queremos que una tarea se ejecute con mayor rapidez, debemos
dividirla en subtareas, cada una de las cuales se ejecutara, en paralelo con las demás.
 Modularidad: Podremos construir el sistema en forma modular, dividiendo las funciones
del sistema en procesos separados.
 Comodidad: Un usuario puede tener que ejecutar varias tareas a la vez, por ejemplo,
puede editar, imprimir y compilar en paralelo.

Secuenciabilidad.
Los archivos secuenciales son un tipo de archivo en los que la información puede leerse y
escribirse empezando desde el principio del archivo.
Se debe tener en cuenta algunas características que deben tener los archivos secuenciales:
 La escritura de nuevos datos siempre se hace al final del archivo.
 Para leer una zona concreta del archivo hay que avanzar siempre, si la zona está antes de
la zona actual de lectura, será necesario "rebobinar" el archivo.
 Los ficheros sólo se pueden abrir para lectura o para escritura, nunca de los dos modos a
la vez.
Archivos secuenciales.
Se refiere al procesamiento de los registros, no importa el orden en que se haga, para eso los
registros están organizados en forma de una lista, recuperarlos y procesarlos uno por uno de
principio a fin.
Rendimiento de los archivos secuenciales; dependiendo del dispositivo de almacenamiento
utilizado el archivo se puede mostrar el usuario como si fuera un sistema secuencial.
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. La misión del dispather 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.

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 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.
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.
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.

Planificación apropiativa y no apropiativa.


Una disciplina de planificación es no apropiativa si una vez que la CPU ha sido asignada al
proceso, ya no se le puede arrebatar. Y, por el contrario, es apropiativa, si se le puede quitar la
CPU.
La planificación apropiativa es útil en los sistemas en los cuales los procesos de alta prioridad
requieren una atención rápida. En los de tiempo real, por ejemplo, las consecuencias de perder
una interrupción pueden ser desastrosas. En los sistemas de tiempo compartido, la planificación
apropiativa es importante para garantizar tiempos de respuesta aceptables.
La apropiación tiene un precio. El cambio de proceso implica gasto extra. Para que la técnica de
apropiación sea efectiva deben mantenerse muchos procesos en memoria principal de manera
que el siguiente proceso se encuentre listo cuando quede disponible la CPU. Conservar en
memoria principal procesos que no están en ejecución implica gasto extra.
En los sistemas no apropiativos, los trabajos largos retrasan a los cortos, pero el tratamiento para
todos los procesos es más justo. Los tiempos de respuesta son más predecibles porque los
trabajos nuevos de alta prioridad no pueden desplazar a los trabajos en espera.
Al diseñar mecanismos de planificación apropiativa no hay que perder de vista la arbitrariedad
de casi todos los sistemas de prioridades. Se puede construir un mecanismo complejo para
implantar fielmente un esquema de apropiación por prioridades sin que, de hecho, se hayan
asignado prioridades de forma coherente.
Técnicas de administración del planificador.
Algoritmos utilizados para planificar la CPU, la elección de uno (o de una mezcla de varios)
depende de decisiones de diseño.
medidas que se utilizan para evaluarlos:
 Porcentaje de utilización de la CPU por procesos de usuario. La CPU es un recurso caro
que necesita ser explotado, los valores reales suelen estar entre un 40% y un 90%.
 Rendimiento: nº de ráfagas por unidad de tiempo. Se define una ráfaga como el período
de tiempo en que un proceso necesita la CPU; un proceso, durante su vida, alternas
ráfagas con bloqueos. Por extensión, también se define como el nº de trabajos por unidad
de tiempo.
 Tiempo de espera (E): tiempo que una ráfaga ha permanecido en estado listo.
 Tiempo de finalización (F): tiempo transcurrido desde que una ráfaga comienza a existir
hasta que finaliza.
 Penalización (P): es una medida adimensional que se puede aplicar homogéneamente a
las ráfagas independientemente de su longitud.

Técnicas de planificación.

Planificación a plazo fijo.


En la planificación a plazo fijo, ciertos trabajos se planifican para ser terminados en un periodo
específico. Estos trabajos tienen un alto valor si se entregan a tiempo y pueden carecer de valor si
se entregan después del límite. La planificación a plazo fijo es compleja por muchas razones:
 Los usuarios deben proporcionar por adelantado y en forma precisa las necesidades de
recursos de su trabajo. Tal información rara vez está disponible.
 El sistema debe ejecutar el programa de plazo fijo sin una severa degradación de servicio
para los otros usuarios.
 El sistema debe planificar cuidadosamente las necesidades de recursos permitiendo un
libre tránsito del plazo fijo. Esto puede ser difícil debido a la llegada de programas
nuevos con demandas impredecibles.
 Si se activan muchos trabajos de plazo fijo, la planificación puede llegar a ser tan
compleja que necesite métodos de optimización sofisticados para asegurar que el plazo
fijo se cumpla.
 El manejo intenso de recursos requeridos por la planificación de plazo fijo puede generar
una sobrecarga sustancial.

Planificación Primero en llegar - Primero en Salir (FIFO).


Los procedimientos son despachados de acuerdo con el orden de llegada a la cola de listos. Una
vez que un proceso tiene el CPU, se ejecuta hasta su terminación. Esta planificación es No
apropiativa; es justa en el sentido formal, pero algo injusta porque los grandes procesos hacen
esperar a trabajos pequeños y, los trabajos sin importancia hacen esperar a los trabajos
importantes.
La Planificación FIFO ofrece una varianza en tiempo de respuesta relativamente pequeña y es,
por tanto, más predecible que otros esquemas; no es un esquema útil en la planificación de
procesos interactivos porque no garantiza buenos tiempos de respuesta. También se puede
implementar mediante la utilización de una lista. Se reemplazan las páginas de la cabeza y se
agregan al final.
Una vez que el proceso obtiene la CPU, se ejecuta hasta terminar, ya que es una disciplina “no
apropiativa”.
Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no
importantes hagan esperar a procesos importantes.
Es más predecible que otros esquemas.
No puede garantizar buenos tiempos de respuesta interactivos.
Suele utilizarse integrado a otros esquemas, por ejemplo, de la siguiente manera:
 Los procesos se despachan con algún esquema de prioridad.
 Los procesos con igual prioridad se despachan “FIFO”.

Planificación por Prioridad al más corto (SJF, Short Job First).


La disciplina del trabajo más corto primero es NO apropiativa y en ella el trabajo o proceso con
tiempo estimado de ejecución hasta terminación más corto, es el siguiente en ser ejecutado. El
SJF reduce el tiempo de espera de los procesos, sin embargo, tiene una varianza mayor (es decir,
es menos predecible) que en FIFO, sobre todo para los trabajos largos.
SJF favorece a los procesos cortos a costa de los procesos largos. Además, selecciona los
trabajos que serán atendidos y que dejarán el sistema lo antes posible. Esto último traduce en
listas de espera cortas. El SJF es NO apropiativo por lo que resulta de poca utilidad en ambientes
de tiempo compartido.
 Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo
compartido.
 El proceso en espera con el menor tiempo estimado de ejecución hasta su terminación es
el siguiente en ejecutarse.
 Los tiempos promedio de espera son menores que con “FIFO”.
 Los tiempos de espera son menos predecibles que en “FIFO”.
 Favorece a los procesos cortos en detrimento de los largos.
 Tiende a reducir el número de procesos en espera y el número de procesos que esperan
detrás de procesos largos.
 Requiere un conocimiento preciso del tiempo de ejecución de un proceso, lo que
generalmente se desconoce.
 Se pueden estimar los tiempos en base a series de valores anteriores.

Planificación el Siguiente con Relación de Respuesta Máxima (HRN).


Corrige algunas de las debilidades del SJF, tales como el exceso de perjuicio hacia los procesos
(trabajos) largos y el exceso de favoritismo hacia los nuevos trabajos cortos.
Es una disciplina no apropiativa.
La prioridad de cada proceso está en función no sólo del tiempo de servicio del trabajo, sino que
también influye la cantidad de tiempo que el trabajo ha estado esperando ser servido.
Cuando un proceso ha obtenido la CPU, corre hasta terminar.
Las prioridades, que son dinámicas, se calculan según la siguiente fórmula, donde pr es la
“prioridad”, te es el “tiempo de espera” y ts es el “tiempo de servicio”.

Planificación Round Robin (RR).


El esquema Round Robin es efectivo en un ambiente de tiempo compartido en el cual el sistema
necesita garantizar un tiempo de respuesta razonable para los usuarios interactivos. La sobre
carga de la apropiación se mantiene baja mediante eficientes mecanismos de cambio de contexto
y proporcionado suficiente memoria para que los procesos residan en ella al mismo tiempo.
Existe una variante de este esquema llamada selfish Round Robin (SRR). En este esquema los
procesos que entran al sistema se colocan primero en una lista de espera hasta que su prioridad
alcanza el nivel de proceso para la lista de activos. Mientras un proceso está en la lista de espera,
su prioridad aumenta en una relación a; cuando un proceso entra a la lista de activos su prioridad
se incrementa en una relación.

Conclusión.
Para mí lo visto en este tema fue muy importante ya que sabemos cómo es la manera en la que
opera nuestra computadora y nos queda claro que es muy compleja, además comprender su
funcionamiento, nos permite prever soluciones a ciertos problemas de ejecución, así como
establecer prioridades al monto de asignar tareas, sobre todo para los sistemas multiusuarios.

También podría gustarte