Procesos Flashcards

1
Q

¿Qué caracterísitcas tiene un proceso?

A
  • Identificador: Valor único asociado al proceso, para distinguirlo del resto.
    • Estado: Guarda si uno de los posibles estados de los procesos.
    • Prioridad: La prioridad relativa al resto de los procesos
    • Contador de programa: La dirección de la siguiente instrucción a ejecutar en el programa.
    • Punteros a memoria: Los punteros al código del programa y sus datos.
    • Datos de contexto: Datos presentes en los registros del procesador cuando se está ejecutando.
    • Información de estado de E/S: Incluye peticiones pendientes, dispositivos asignados, lista de ficheros en uso, etc.
    • Información de auditoría: Puede incluir la cantidad de tiempo de procesador y reloj usados, límites de tiempo, registros contables.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es la traza del proceso?

A

Es la secuencia de instrucciones del proceso que es ejecutada por el procesador.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es el PCB?

A

Es la estructura donde se guardan los datos de un proceso, que crea y gestiona el SO, y le permiten soportar múltiples procesos.
Estos bloques tienen suficiente información para poder interrumpir el proceso cuando está andando, y restaurarlo más tarde, sin problemas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es activador / dispatcher?

A

Es un pequeño programa, que se encarga de intercambiar el proceso en ejecución para el procesador.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es el modelo de procesos?

A

Es un patrón de entrelazado impuesto por el SO, para ejecutar y asignar recursos a los procesos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo funciona el modelo de 2 estados?

A

Modelo de procesos de 2 estados:
Este es el modelo más simple a la hora de controlar los procesos, ya que, en cualquier momento, un proceso está siendo ejecutado por el procesador o no, o sea, Ejecutando o No Ejecutando.
Los nuevos procesos se insertan por defecto en estado No Ejecutando, y se los deja esperando en un buffer a su oportunidad de ejecutar. Cada cierto tiempo, el proceso en ejecución se interrumpirá y el activador elegirá el primer proceso a ejecutar del buffer, al que pondrá en estado Ejecutando.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cómo funciona el modelo de 5 estados?

A

Este modelo surge ya que no todos los procesos en estado No Ejecutando necesariamente están listos para ejecutarse, ya que puede pasar que un proceso esté esperando un evento.
Una solución es dividir el estado No Ejecutando en dos partes, Listo y Bloqueado, además de dos estados adicionales para manejarlos correctamente:
• Ejecutando: El proceso se está ejecutando.
• Listo: El proceso está preparado para ejecutarse.
• Bloqueado: El proceso no se puede ejecutar hasta que suceda algún evento.
• Nuevo: El proceso se acaba de crear y aún no fue admitido en el grupo de procesos ejecutables. Suele ser un nuevo proceso que no fue cargado en memoria, aunque su BCP si fue creado. En este estado, el programa permanece en almacenamiento secundario.
• Saliente: El proceso fue quitado del grupo de procesos ejecutables, ya que ha terminado, o se ha detenido o abortado por algo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué sucede cuando un proceso está en estado saliente?

A

Cuando un proceso está en el estado Saliente, este no puede ser ejecutado de nuevo. Su información asociada se guarda temporalmente, para dar tiempo a los programas auxiliares o de soporte para que extraigan la información necesaria; una vez que extraen la información, el SO no necesita mantener más los datos, y el proceso se borra del sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cómo funciona el modelo de múltiples colas?

A

Este esquema es usado en sistemas operativos con muchos procesos, en los que las colas pueden ser muy grandes, por lo que es mucho más eficiente tener una cola por cada evento, para que, cuando sucede un evento, la lista entera de procesos de la cola se mueva al estado Listo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es y cómo funciona el swapping?

A

El Swapping es una técnica que intercambia un proceso de la cola de Bloqueados por uno guardado en memoria secundaria, para ser más eficiente.
Cuando ninguno de los procesos en memoria principal están en estado Listo, el SO intercambia (swaps) uno de los procesos Bloqueados a la cola de Suspendidos, por otro proceso de la cola de suspendidos, o por un nuevo proceso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Por qué razones se puede suspender un proceso?

A

Las razones por las que un proceso se puede suspender son:
• Swapping: El SO necesita liberar memoria para ejecutar un proceso.
• Otras razones del SO
• Solicitud interactiva del usuario: Un usuario puede pedir suspender algún proceso, por algún motivo que tenga.
• Temporización: Un proceso puede ejecutarse periódicamente y puede suspenderse mientras espera la siguiente ejecución.
• Solicitud del proceso padre: Un proceso padre puede pedir la suspensión de un descendiente para examinar o modificar el proceso suspendido, o coordinar procesos descendientes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Por qué eventos puede crearse un proceso?

A

1- El proceso se crea como una respuesta a una solicitud de trabajo.
2- El proceso se crea cuando un nuevo usuario entra al sistema.
3- El proceso se crea por el sistema operativo para proporcionar servicio a una petición, y este trabaja independientemente
4- El proceso se crea a petición de una aplicación por un proceso existente, y este trabaja en paralelo con el proceso padre.

Se denomina proceso padre al proceso que pidió crear otro proceso, y proceso hijo al proceso creado gracias a la petición.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Nombrar algunas de las razones por las que puede terminar un proceso

A
  • Finalización normal: El proceso le indica al SO que terminó su operación.
    • Límite de tiempo excedido: El proceso se ejecutó más tiempo del límite máximo.
    • Memoria no disponible: El proceso necesita más memoria de la que el SO le puede proporcionar.
    • Violaciones de frontera: El proceso trata de acceder a memoria que no posee o tiene acceso.
    • Error de protección: El proceso trata de usar un recurso, que no puede acceder o usa de forma incorrecta.
    • Error aritmético: El proceso trata de realizar un cálculo no permitido.
    • Límite de tiempo: El proceso ha esperado más tiempo que el máximo para que se cumpla un evento.
    • Fallo de E/S: Se produjo un error en una operación de E/S.
    • Instrucción no valida: El proceso intenta ejecutar una instrucción inexistente.
    • Instrucción privilegiada: El proceso intenta utilizar una instrucción reservada al SO.
    • Uso inapropiado de datos: Una porción de datos es errónea o no está inicializada.
    • Intervención del operador por el SO: El operador o el SO ha finalizado el proceso.
    • Terminación del proceso padre: El proceso padre finalizó, por lo que el SO finaliza sus procesos hijos.
    • Solicitud del proceso padre: El proceso padre suele tener autoridad para finalizar sus procesos hijos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué es un hilo?

A

Recordemos que los procesos tienen 2 características:
• Propiedad de recursos: Un proceso puede tener recursos asignados, como la memoria.
• Planificación/Ejecución: Un proceso tiene una traza que es ejecutada por el procesador.
Estas características son independientes, y el SO puede tratar a la unidad de ejecución como el hilo, y a la propiedad de recursos como el proceso.
Entonces, podemos decir que un hilo es, al fin y al cabo, una secuencia de instrucciones dentro de un proceso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué posee cada hilo?

A
  • Un estado de ejecución.
    • Un contexto de hilo, almacenado cuando no está en ejecución (PC aparte).
    • Una pila de ejecución.
    • Espacio de almacenamiento para variables locales.
    • Acceso a memoria y recursos de su proceso, compartido con todos los hilos de su proceso.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué posee cada proceso en SOs monohilo?

A

En un SO con procesos monohilo, cada proceso contiene:
• Un BCP.
• Un espacio de direcciones del proceso.
• Una pila de proceso.
• Una pila núcleo.
Las últimas dos siendo para gestionar el comportamiento de los retornos en la ejecución.
Sin embargo, en u

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué posee cada proceso en SOs multihilo?

A

Sin embargo, en un SO con procesos multihilo, sólo hay:
• Un BCP general.
• Un espacio de direcciones asociado al proceso
• Pilas y bloques de control para cada hilo.
• Bloque de Control para la información de los registros, prioridad, etc.

18
Q

¿Qué recursos comparten los hilos?

A

comparten variables globales, código (instrucciones), ficheros y dispositivos abiertos

19
Q

¿Cuáles son las ventajas de los hilos?

A
  • lleva mucho menos tiempo crear un nuevo hilo en un proceso existente que crear un proceso nuevo
  • lleva mucho menos tiempo finalizar un hilo que un proceso
  • lleva mucho menos tiempo camibar entre dos hilos dentro del mismo proceso que entre procesos
  • ya que comparten recursos y se comunican sin invocar al kernel, mejoran la eficiencia de comunicación entre distintos programas
20
Q

Nombrar ejemplos de usos de lo hilos

A
  • realizar acciones en paralelo en programas (trabajo interactivo y en segundo plano): ej, recibir escritura en teclado mientras se hace un autoguardado cada x segundos
  • procesamiento asíncrono: para protegerse de cortes de energía, un hilo se encargará de salvaguardar el buffer de un procesador de textos una vez por minuto
  • estucuración modular de los prograas: los programas que realizan una gran variedad de actividades se puden diseñar e implemantar mediantes hilos
  • velocidad de ejecución: tener múltiples hilos permite al proceso no bloquearse si 1 hilo se bloquea (solo en sistemas con multiprocesamiento)
21
Q

¿Qué recursos NO comparten los hilos? Cada hilo los tiene por separado

A
  • contador del programa
  • registros de la CPU
  • pila de variables locales
  • estado
22
Q

¿Cuáles son los 3 principales estados de los hilos?

A

Listo, ejecutando y bloqueado

23
Q

Nombrar las 4 operaciones básicas de los hilos asociadas a un cambio de estado

A
  • creación
  • bloqueo
  • desbloqueo
  • finalización
24
Q

¿Cuáles son las diferencia entre procesos e hilos?

A
  • Los hilos NO son independientes entre sí, como todos pueden acceder a todas las direcciones de la tarea.
  • NO es necesaria la protección, ya que el diseño de una tarea con múltiples hilos tiene que ser un usuario único.
  • la velocidad de creación y finalización
  • la compartición de recurso por parte de los hilos (los procesos no comparten recursos)
25
Q

¿Cómo funcionan los User Level Threads (ULT)?

A

En un entorno ULT, la aplicación gestiona todo el trabajo de los hilos, y el núcleo desconoce su existencia. Con estos, cualquier aplicación se puede programar para ser multihilo, usando una biblioteca de hilos.

26
Q

¿Para qué sirve la biblioteca de hilos?

A

La bilbioteca de hilos es un paquete de rutinas para la gestión de ULT que tiene código para gestionar los hilos (creación, destrucción, paso de mensajes y datos, planificar ejecución, guardar y restaurar), mediante qué sirve como intermediario.

27
Q

¿Cuáles son las ventajas de usar ULT?

A
  1. El intercambio de hilos no requiere los privilegios del modo núcleo.
    1. Se puede manejar una planificación específica para los hilos.
    2. Los ULT se pueden ejecutar en cualquier SO.
28
Q

¿Cuáles son las deventajas de usar ULT?

A
  1. Las mayorías de las llamadas al SO son “bloqueantes”, que terminan bloqueando todo el proceso.
    1. Una aplicación utilizando ULT no puede sacar ventaja de los sistemas multiprocesadores, porque el SO asigna un proceso a un procesador al mismo tiempo.
29
Q

¿Cómo se pueden aforntar los problemas que traen los ULT?

A
  • Escribiendo una aplicación de múltiples procesos en vez de múltiples hilos, pero esto elimina la ventaja de los hilos, que cada cambio es un cambio de proceso en vez de un cambio de hilo, lo que es más pesado para el sistema.
    • Utilizando Jacketing, la cual es una técnica que convierte una llamada al sistema bloqueante en una no bloqueante.
30
Q

¿Cómo funcionan los Kernel Level Threads?

A

En KLT, todo el trabajo lo realiza el núcleo, (en vez de una biblioteca), con el que se comunica usando una API para acceder a las funciones de gestión de hilos.

31
Q

¿Cuál es la principal desventaja de los KLT?

A

La principal desventaja de KLT, es que el paso de control de un hilo a otro dentro del mismo proceso, requiere cambios de modo, además de que no es multiplataforma.

32
Q

¿Cómo funcionan los enfoques combinados de ULT y KLT?

A

En un sistema combinado, la creación de hilos se realiza en el espacio de usuario, como la mayor parte de la planificación y sincronización. Los múltiples ULT de una aplicación se asocian en número (menor o igual) de KLT.
Múltiples hilos de la misma aplicación pueden ejecutar en paralelo en múltiples procesadores, y una llamada al SO bloqueante no bloquea todo el proceso.
Este enfoque combina las ventajas de ULT y KLT, y minimiza las desventajas.

33
Q

Definir a los semáforos

A

Son mecanismos del SO y del lenguaje de programación para permitir la concurrencia, o sea, que permiten que dos o más procesos puedan cooperar usando señales, las cuales son variables especiales llamadas semáforos.

34
Q

¿Qué hacen las 2 primitivas de los semáforos?

A
  • Signal(s): Trasmite una señal (suma +1 al semáforo). Si el valor del semáforo termina siendo >= 0, se desbloquea un proceso.
  • Wait(s): Recibe una señal (resta -1 al semáforo). Si el valor del semáforo termina siendo <= 0, se bloquea el proceso.
35
Q

¿Con qué condiciones se produce el interbloqueo?

A
  • Exclusión Mutua: Sólo un proceso puede utilizar un recurso en cada momento.
    • Retención y Espera: Un proceso puede mantener los recursos asignados mientras espera la asignación de otros recursos.
    • Sin Expropiación: No se puede quitar forzosamente un recurso a un proceso que lo posee.
    • Espera Circular: Existe una lista cerrada de procesos, o sea que cada proceso tiene, por lo menos, un recurso necesitado por otro proceso de la lista.

Las primeras 3 son NECESARIAS pero NO SUCIFIENTES para que se produzca un interbloqueo. La 4ta es una consecuencias potencial de las 3 primeras.

36
Q

Explicar la prevención del interbloqueo

A

• Prevención: Puede ser indirecto (evitar que aparezca una de las tres condiciones), o directo (evitar que aparezca la cuarta condición).
◦ Exclusión Mutua: En general, no puede eliminarse.
◦ Retención y espera: Se puede eliminar haciendo que un proceso tiene que pedir al mismo tiempo todos los recursos que necesita, o bloquearse hasta que pueda.
◦ Sin expropiación: Se puede impedir, tanto haciendo que un proceso que se le niega una petición tenga que soltar sus recursos originales y solicitarlos de nuevo junto con el adicional; como haciendo que el SO pueda obligar a un proceso a liberar sus recursos, y así otorgárselos a otro.
◦ Espera Circular: Se puede impedir definiendo un orden lineal entre los tipos de recursos.

37
Q

Explicar la predicción del interbloqueo

A

• Predicción: Restringe las solicitudes de recurso para impedir al menos una de las condiciones. Esto conlleva un uso ineficiente de recursos y de tiempo de ejecución, y además requiere conocer las solicitudes futuras del proceso. Las técnicas posibles son:
◦ No iniciar un proceso si lo que pide puede llevar al interbloqueo.
◦ No entregar una petición adicional de un recurso si asignarlo podría provocar un interbloqueo.

38
Q

Explicar la detección del interbloqueo

A

Detección: Los recursos se conceden siempre que sea posible, y periódicamente se realiza un algoritmo para detectar espera circular, y no limita el acceso a los recursos ni restringe las acciones de los procesos.

39
Q

¿Qué son los recursos reutilizables?

A

Son aquellos recursos que solo puede usar de forma segura un proceso en cada momento, y que no se destruye después de su uso. Los procesos obtienen el recurso, que más tarde liberan para que pueda volver a ser usado.

ej: procesadores, canales de E/S, memoria principal y secundaria, ficheros, bases de datos, semáforos

40
Q

¿Qué son los recursos consumibles?

A

Son aquellos recursos que pueden crearse y destruirse. Estos no suelen tener un límite en el número de recursos consumibles de un determinado tipo.

ej: interrupciones y señales

41
Q

¿Cómo funciona el gafo de asignación de recursos?

A

Es un grafo en el que cada proceso y cada recurso se representa con un nodo. En estos, la línea del grafo desde un proceso a un recurso indica que el proceso ha pedido el recurso, pero no se le entregó todavía; mientras que, una línea desde un punto de un nodo de un recurso reutilizable hacia un proceso significa que se le ha concedido la petición, o sea, que al proceso se le dio el recurso. En el interior de un nodo de recurso, cada punto representa una instancia del mismo.

42
Q

¿Cómo funciona el algortimo de detección del interbloqueo?

A

Se usan la Matriz de Asignación y el Vector de Disponibles. Además, se define una Matriz de Solicitud, que es la cantidad de recursos solicitados de un tipo específico por el proceso. Este algoritmo funciona marcando los procesos que no están en un interbloqueo.
Los pasos a seguir son:
1. Con todos los procesos sin marcar, se marca cada proceso que tenga una fila de la matriz de Asignación completamente cero.
2. Se inicia un vector temporal asignándole el vector Disponibles.
3. Se busca un índice tal que el proceso no esté marcado y la fila con el valor del índice sea menor o igual que el vector. Si no se encuentra ninguna fila, el algoritmo termina.
4. Si se encuentra una fila, se marca el proceso y se suma la fila de la matriz de asignación al vector. Luego se vuelve al tercer paso.
Hay interbloqueo si al final del algoritmo quedan procesos sin marcar.