Gestió de Processos: Compilació, Crides al Sistema i Planificació
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en catalán con un tamaño de 5,56 KB
Gestió de Processos
Compilació i Muntatge
- Compilació: Traducció de llenguatge d'alt nivell a codi de màquina.
- Muntatge: Creació d'un fitxer executable a partir de diversos fitxers objecte i llibreries.
Programa vs. Procés
- Programa: Entitat estàtica, codi emmagatzemat a disc.
- Procés: Un programa en execució. (Pot haver-hi diversos processos d'un mateix programa).
Informació del Procés
- Estat de memòria: Contingut dels registres del model de programació.
- Imatge de memòria: Contingut dels segments de memòria on resideixen el codi i les dades del procés.
- BCP (Bloc de Control del Procés):
- Parts del BCP:
- Informació d'identificació.
- Estat del processador.
- Informació del control del procés.
- Parts del BCP:
Petició d'un Servei al SO: Sys_call (Trap)
- Instrucció del repertori màquina del processador coneguda com a crida al sistema.
- Interfície de programació del SO.
Fases de la Petició
- Salvar CP, PSW.
- Canviar a mode supervisor.
- Salvar estat.
- Averiguar quin servei es demana.
- Executar la rutina del SO que realitza el servei corresponent.
- En funció del servei, el treball actual:
- Recuperar treball.
- Canviar a mode usuari.
- Recuperar CP, PSW.
Crides al Sistema
int fork()
: Crea un procés clon (fill) del procés que fa la crida (pare).void exit(int status)
: Finalització del procés.int getpid()
: Obtenim l'identificador del procés.
Què fa el SO quan es sol·licita la creació d'un procés?
- Assigna una entrada a la taula de processos per al procés nou.
- Assigna un ID únic de procés al procés nou.
- Fa una còpia de la imatge del procés.
- Incrementa els comptadors dels fitxers que són propietat del pare.
- Posa el procés fill a l'estat Llest per a executar.
Crides al Sistema (Continuació)
int wait(int* status)
: Espera la finalització d'un procés fill qualsevol. -1 error, x>0 correspon al fill.pid_t waitpid()
: Espera la finalització d'un procés fill en concret. -1 error, x>0 correspon al fill, x=0 l'estat del procés fill no disponible.
Com aconseguir que un procés executi un altre programa diferent al que ja té carregat a memòria?
int execl()
Procés vs. Flux (Threads)
- Poden existir múltiples fluxos d'execució en un mateix procés.
Serveis POSIX per a la Gestió de Processos Lleugers (Threads)
int pthread_create();
- Crea un procés lleuger que executa "func" amb argument "arg" i atributs "attr".
- Els atributs permeten especificar: Mida de la pila, prioritat, política de planificació, etc.
- Existeixen diverses crides per modificar els atributs.
int pthread_join();
- Suspèn l’execució d’un procés lleuger fins que acabi el procés lleuger amb l’identificador "thid".
- Retorna l’estat de finalització del procés lleuger.
int pthread_exit();
- Permet a un Thread finalitzar la seva execució, indicant l’estat de la seva finalització.
pthread_t pthread_self(void);
- Retorna l’identificador del thread que executa la crida.
Planificadors a Curt Termini
- Consisteix en assignar processador als processos llestos per ser executats, de manera que es complixin els objectius:
- Baix temps de resposta.
- Baix temps d’espera.
- Baix temps de retorn.
Polítiques de Planificació
- Selecció:
- Prioritats.
- Necessitat de recursos.
- Característiques dels processos.
- Mode de selecció:
- No apropiatiu.
- Apropiatiu.
Planificació a Curt Termini: Mètriques
- Temps d'espera (Tw)
- Temps de retorn (Tq)
- Temps de retorn normalitzat (Tqm) = Tq/Ts
- Temps de resposta (Tr)
- Temps d'execució (Ts)
Algorismes de Planificació
FCFS (First-Come, First-Served)
- Característiques:
- Senzill.
- Temps d'espera de mitjana elevada.
- Penalitza als processos curts i als que tenen molta E/S.
- No Inanició.
SPN (Shortest Process Next)
- S'assigna primer el procés amb menor temps d'execució (Ts).
- Problema: Conèixer Ts abans de l'execució.
- Característiques:
- Minimitza Tw.
- Bon temps de resposta.
- Inanició: possible.
- Penalitza els processos llargs.
- Productivitat alta.
Round Robin
- Cada procés s'executa durant una fracció de temps abans de ser expulsat (Quantum).
- És apropiatiu.
- Característiques:
- Rendiment en funció del quantum.
- El quantum és sintonitzable.
- Redueix la penalització que pateixen els treballs curts amb FCFS.
- No inanició però temps d'espera alt.
- Bon temps de resposta.
- Penalitza els processos amb E/S.