Procesos Flashcards
¿Qué caracterísitcas tiene un proceso?
- 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.
¿Qué es la traza del proceso?
Es la secuencia de instrucciones del proceso que es ejecutada por el procesador.
¿Qué es el PCB?
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.
¿Qué es activador / dispatcher?
Es un pequeño programa, que se encarga de intercambiar el proceso en ejecución para el procesador.
¿Qué es el modelo de procesos?
Es un patrón de entrelazado impuesto por el SO, para ejecutar y asignar recursos a los procesos.
¿Cómo funciona el modelo de 2 estados?
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.
¿Cómo funciona el modelo de 5 estados?
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.
¿Qué sucede cuando un proceso está en estado saliente?
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.
¿Cómo funciona el modelo de múltiples colas?
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.
¿Qué es y cómo funciona el swapping?
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.
¿Por qué razones se puede suspender un proceso?
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.
¿Por qué eventos puede crearse un proceso?
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.
Nombrar algunas de las razones por las que puede terminar un proceso
- 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.
¿Qué es un hilo?
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.
¿Qué posee cada hilo?
- 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.
¿Qué posee cada proceso en SOs monohilo?
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