Preview only show first 10 pages with watermark. For full document please download

So

   EMBED


Share

Transcript

Capítulo 4 Procesos

Proceso: programa en ejecución.
Estado de un proceso
- Nuevo: el proceso se está creando
- En ejecución: se están ejecutando instrucciones
- En espera: el proceso está esperando que ocurra algún suceso
- Listo: el proceso está esperando que le asigne a un procesador
- Terminado: el proceso termino su ejecución.
Planificación de procesos: La planificación hace referencia a un conjunto de políticas y mecanismos incorporados
al sistema operativo que gobiernan el orden en el que deben ser ejecutados los trabajos que deben
cumplimentarse por el sistema operativo. El objetivo de la planificación es optimizar el rendimiento del sistema.
Planificadores: son módulos de software encargados de determinar el orden en el que los procesos serán
ejecutados.
Tipos de planificadores:
- Planificadores a corto plazo
- Planificadores a mediano plazo
- Planificadores a largo plazo
Operaciones con procesos
Creación de procesos: se realiza a través de FORK
FORK en el momento de la llamada a FORK el proceso hijo:
-Es una copia exacta del padre excepto del identificador de procesos
- Tiene las mismas variables y ficheros abiertos
- Las variables son independientes
- Los ficheros son compartidos
Terminación de procesos:
- Normal
- Por tiempo excedido
- Violación de limite
- No memoria disponible
- Error de protección
Relaciones entre procesos
- Competición: los procesos trabajando solo sin afectar mayormente a los demás, realizando asignación cuidadosa
de recursos
- Cooperación: afectan a los demás procesos a través del intercambio de datos y señales de sincronización.
Threads (hilo): un hilo es una unidad básica de utilización de la CPU.
1. Varios sistemas operativos de microcomputador populares ofrecen poco o ningún soporte del procesamiento
concurrente. Comente las principales complicaciones que el procesamiento concurrente añade a un sistema
operativo.
- Un método de tiempo compartido debe ser implementado para permitir a cada uno de los procesos tener acceso
al sistema. Este método involucra el derecho a prioridad a procesos que no voluntariamente dejarían de utilizar la
CPU (utilizando llamadas al sistema) y el kernel volviendo a entrar (más de un proceso puede estar ejecutando
código kernel concurrentemente)
- Procesos y recursos del sistema deben tener protección y deben estar protegidos de cada uno.
- Se debe tener cuidado en el kernel para prevenir deadlocks entre procesos para que los procesos no estén
separando los recursos asignados entre sí.
2. Describa las diferencias entre la planificación a corto plazo, mediano plazo y largo plazo.
A corto plazo: selecciona trabajos en memoria, dichos trabajos deben estar listos para ejecutarse, y entonces se
asigna la CPU a estos.
A mediano plazo: utilizados en sistemas de tiempo compartido como un nivel intermedio de programación. Un
esquema de intercambio se lleva a cabo para eliminar los programas de ejecución parcial de la memoria y
restablecer mas tarde para continuar donde se quedaron.
A largo plazo: determina que trabajos se ponen en la memoria para su procesamiento.
La principal diferencia está en la frecuencia de su ejecución. El corto plazo debe seleccionar un nuevo proceso con
bastante frecuencia. A largo plazo se utiliza con menos frecuencia ya que se encarga de colocar trabajos en el
sistema y podría esperar un tiempo por un trabajo antes de que se admita otro.
3. Un computador DECSYSTEM-20 tiene múltiples conjuntos de registros. Describa las acciones de una
conmutación de contexto si el contexto nuevo ya está cargado en uno de los conjuntos de registros. ¿Qué más
debe suceder si el contexto nuevo está en la memoria, no en un conjunto de registros, y todos los conjuntos de
registros están ocupados?
El puntero actual registro de la CPU se cambia al puntero que contiene el nuevo contexto, que lleva muy poco
tiempo. Si el contexto está en la memoria, uno de los contextos en un conjunto de registro debe ser elegido y ser
trasladado a la memoria, y el nuevo contexto se debe cargar de la memoria en el sistema. Este proceso toma un
poco más de tiempo que en sistema con un conjunto de registro.
4. Cite las dos ventajas que tienen los hilos sobre los procesos múltiples. ¿Qué desventaja Importante tienen?
Sugiera una aplicación que se beneficiaría del uso de hilos, y una que no se beneficiaría.
a. Los hilos son muy baratos de crear y destruir
b. Utilizan muy pocos recursos mientras existen. Sin embargo, si utilizan tiempo de CPU, pero no tienen espacios de
memoria completamente separados.
Desafortunadamente los hilos tienen que confiar entre ellos para no dañar datos compartidos. Cualquier
programa que pueda hacer más de una tarea a la vez podría beneficiarse de la multitarea. Procesos de una sola
forma de pensar no podrán beneficiarse de múltiples hilos; por ejemplo, un programa que muestre la hora del día.
5. ¿Qué recursos se consumen cuando se crea un hilo? ¿En qué difieren de los que se consumen cuando se crea un
proceso?
Un contexto debe ser creado, incluido un registro de un set direcciones de almacenamiento durante cambios de
contextos, y un stack local para registrar los procedimientos de llamadas de argumentos, retornar valores, retornar
direcciones, y el almacenamiento local de hilos. Un proceso de creación resulta en memoria siendo asignadas para
programas de instrucciones y datos.
6. Describa las acciones del núcleo cuando conmuta el contexto
a. Entre hilos: el contexto del hilo ha de ser guardado y el contexto de otro subproceso debe ser cargado.
b. Entre procesos: lo mismo que (a), mas el contexto de memoria se deben almacenar y el del siguiente proceso se
debe cargar.
7. ¿Qué diferencias hay entre los hilos en el nivel de usuario y los apoyados por el núcleo? ¿En qué circunstancias
es un tipo "mejor" que el otro?
Los hilos a nivel de usuario no tienen el soporte del núcleo, por lo que son muy fáciles de crear, destruir y cambiar
entre sí. Sin embargo, si uno se bloquea todos los hilos lo harán.
Los hilos del núcleo son más caros porque las llamadas al sistema son necesarias para crear y destruir, entonces el
núcleo debe programarse. Estos hilos son más poderosos, porque son programados de forma independiente y
pueden bloquearse de forma individual.

Capítulo 5 Planificación de la CPU
Planificación de la CPU
La planificación es una función fundamental del sistema operativo. Casi todos los recursos del computador se
planifican antes de usarse. La CPU es, desde luego, uno de los recursos primarios del computador. Por ello, su
planificación es una parte central del diseño del sistema operativo.

1. Ciclo de ráfagas de CPU y E/S: la ejecución de un proceso consiste en un ciclo de ejecución en la CPU y espera por
E/S. Los procesos alternan entre estos dos estados. La ejecución de un proceso inicia con una ráfaga de CPU
seguida de una ráfaga de E/S, seguida de otra ráfaga de CPU, luego otra ráfaga de E/S, y así sucesivamente.
2. Planificador de CPU: el sistema operativo debe escoger uno de los procesos que están en la cola de procesos listos
para ejecutarlo. El proceso de selección corre por cuenta del planificador a corto plazo (o planificador de CPU), el
cual escoge uno de los procesos que están en la memoria y listos para ejecutarse, y le asigna la CPU.
3. Planificación expropiativa:
a. Cuando un proceso pasa del estado en ejecución al estado en espera.
b. Cuando un proceso pasa del estado en ejecución al estado listo.
c. Cuando un proceso pasa del estado en espera al estado listo.
d. Cuando un proceso termina.
4. Despachador:
• Cambiar de contexto
• Cambiar a modo de usuario
• Saltar al punto apropiado del programa del usuario para reiniciar ese programa
Criterios de planificación
1. Utilización de la CPU: Queremos mantener la CPU tan ocupada como se pueda. La utilización de la CPU puede
variar entre O y 100%. En un sistema real, deberá variar entre el 40% (en un sistema con poca carga) y el 90'10 (en
un sistema muy cargado).
2. Rendimiento: Si la CPU está ocupada ejecutando procesos, se está efectuando trabajo. Una medida del trabajo es
el número de procesos que se completan por unidad de tiempo: el rendimiento.
3. Tiempo de retorno: Desde el punto de vista de un proceso en particular, el criterio importante es el tiempo que
tarda la ejecución de ese proceso. El intervalo entre el momento de presentación de un proceso y el momento en
que se termina es el tiempo de retorno o tiempo de servicio, y es la suma de los periodos durante los cuales espera
entrar en la memoria, esperé' en la cola de procesos listos, se ejecuta en la CPU y realiza E/S.
4. Tiempo de espera: El algoritmo de planificación de la CPU no afecta la cantidad de tiempo que un proceso pasa
ejecutándose o realizando E/S; sólo afecta el tiempo que un proceso pasa esperando en la cola de procesos listos.
El tiempo de espera es la suma de los periodos que el proceso pasa esperando en dicha cola. '
5. Tiempo de respuesta: En un sistema interactivo, el tiempo de retorno tal vez no sea el mejor criterio. Es común
que un proceso pueda producir algunas salidas en poco tiempo, y pueda seguir calculando nuevos resultados
mientras los anteriores se están presentando al usuario. Por ello, otra medida es el tiempo que transcurre entre la
presentación de una solicitud y la producción de la primera respuesta. Esta medida, llamada tiempo de respuesta,
es el tiempo que el proceso tarda en comenzar a responder, pero no incluye el tiempo que toma exhibir la
respuesta. El tiempo de retorno generalmente está limitado por la velocidad del dispositivo de salida.