Procesos Informal Flashcards
Que es un proceso?
Un programa en ejecucion. Incluye el texto, el stack con el entorno de ejecucion (variables). Puede incluir heap con memoria allocada. Y el Program Counter con el proximo elemento a ejecutar. Es conceptualmente la unidad de trabajo del software
Cuales son los estados de un proceso?
Nuevo. Se esta creando
Corriendo.
Esperando. (algun evento)
Listo, el proceso esta esperando ser asignado a un proceso
Terminado. El proceso termino
Que es una pcb y que contiene
Es El program control block, la representacion de un proceso en el Sistema Operativo. Tiene:
Program Counter.
CPU Registers
Cpu Shceduling information (prioridad, pointers to queues, etc)
Memory management information.
Accounting information. (Cuanto se uso la cpu, limites, etc. la informacion que te provee top)
I/O status information. Que dispositivos usa este proceso, archivos abiertos, etc.
Como es la estructura de pcb en linux
Se llama task_struck.
Tiene un pid,
Un state
Time_slice
Lista de open files
y un puntero al stack del proceso
Cuantas queues de procesos hay
Por cada dispositivo tiene una queue esperando a poder leer/escribir. Hay una ready queue
Que tipos de scheduler hay?
Que hace el long term scheduler?
Que hace el short term scheduler?
Posibilidades cuando un padre crea un proceso?
Que se ejecute concurrentemente o que espere a que termine sus hijos
Posibilidades de adress space de un proceso?
Que copie el proceso, o que cargue otro programa
Explicar el pid al hacer un fork
El padre sabe el PID de su hijo (pid = fork()).
Cada hijo sabe su pid, pero al hacer pid= fork(), la variable de pid es 0. Podes hacer un if pid== 0 para saber si sos el hijo o el padre
Explicar la operacion fork y exec
Pagina 93 de System concepts
Por que windows es una verga (al crear procesos)?
Porque no tiene fork y exec, tiene createProccess, que no copia el adress space, por lo que tenes que pasar un nuevo programa para ejecutar (en no menos de 10 parametros)
Cuando termina un proceso?
con el exit() syscall, en el cual puede mandar un int a su padre
Con una syscoll a otro proceso.
Un pádre puede terminar un proceso de un hijo por varias razones
- el hijo se paso de recursos
- La tarea que estaba haciendo ya no es necesaria
- El padre esta terminando, y el Sistema no te deja tener hijos huerfanos.
Que sucede con los hijos de un proceso que muere
DEPENDE del proceso. Puede ser que mate a todos sus hijos. Si por alguna razon no los quiere matar, pasan a ser hijos de init (que es el proceso superpadre)
Razones para cooperar procesos
Compartir informacion
Paralelizar
Modularidad
“Conveniencia”
Cuales son los dos modelos fundamentales de IPC y cuando se usa cada uno
Memoria compartida:
NO ES MEMORIA COMPARTIDA exactamente. Una region de memoria es accedida por varios procesos (los pipes son un ejemplo). Esto funciona cuando tenes que tener mucha informacion comun, y muy rapido
Pasaje de mensajes: Se cambian mensajes. es muy util para mandar poca info entre pocos procesos. Es mas lento que memoria compartida, pero no tenes que preocuparte por conflictos
Que tipos de buffers hay en shared memory (productor/consumidor)
Unbounded: No tiene limite. El consumidor puede esperar nuevos items, pero el productor siempre puede leer mas
Bounded: tiene un limite fijo. El consumidor tiene que esperar si el buffer esta vacio, el productor tiene que esperar si el buffer esta lleno
Describir comunicacion por medio de mensaje
Pagina 102
Que tipos de blockeo hay en un mensaje
Blocking send: El proceso es bloqueado hasta que se lea
Nonblocking send
Blocking Receive.
nonblocking recieve
Tipos de buffer en comunicacion
Zero: no puede etener mensajes esperando.Se blouqea hasta que se lee
Bounded: puede tener n mensajes. El sender se bloquea hasta que haya espacio
Unbounded. El sender nunca se bloquea
Hablame de Sockts (no relevante)
Pagina 108