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

  1. Estat de memòria: Contingut dels registres del model de programació.
  2. Imatge de memòria: Contingut dels segments de memòria on resideixen el codi i les dades del procés.
  3. BCP (Bloc de Control del Procés):
    • Parts del BCP:
      1. Informació d'identificació.
      2. Estat del processador.
      3. Informació del control del procés.

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ó

  1. Salvar CP, PSW.
  2. Canviar a mode supervisor.
  3. Salvar estat.
  4. Averiguar quin servei es demana.
  5. Executar la rutina del SO que realitza el servei corresponent.
  6. En funció del servei, el treball actual:
  7. Recuperar treball.
  8. Canviar a mode usuari.
  9. 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?

  1. Assigna una entrada a la taula de processos per al procés nou.
  2. Assigna un ID únic de procés al procés nou.
  3. Fa una còpia de la imatge del procés.
  4. Incrementa els comptadors dels fitxers que són propietat del pare.
  5. 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();
    1. Crea un procés lleuger que executa "func" amb argument "arg" i atributs "attr".
    2. Els atributs permeten especificar: Mida de la pila, prioritat, política de planificació, etc.
    3. Existeixen diverses crides per modificar els atributs.
  • int pthread_join();
    1. Suspèn l’execució d’un procés lleuger fins que acabi el procés lleuger amb l’identificador "thid".
    2. Retorna l’estat de finalització del procés lleuger.
  • int pthread_exit();
    1. Permet a un Thread finalitzar la seva execució, indicant l’estat de la seva finalització.
  • pthread_t pthread_self(void);
    1. 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:
  1. Baix temps de resposta.
  2. Baix temps d’espera.
  3. Baix temps de retorn.

Polítiques de Planificació

  • Selecció:
    1. Prioritats.
    2. Necessitat de recursos.
    3. Característiques dels processos.
  • Mode de selecció:
    1. No apropiatiu.
    2. 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:
    1. Senzill.
    2. Temps d'espera de mitjana elevada.
    3. Penalitza als processos curts i als que tenen molta E/S.
    4. 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:
    1. Minimitza Tw.
    2. Bon temps de resposta.
    3. Inanició: possible.
    4. Penalitza els processos llargs.
    5. Productivitat alta.

Round Robin

  • Cada procés s'executa durant una fracció de temps abans de ser expulsat (Quantum).
  • És apropiatiu.
  • Característiques:
    1. Rendiment en funció del quantum.
    2. El quantum és sintonitzable.
    3. Redueix la penalització que pateixen els treballs curts amb FCFS.
    4. No inanició però temps d'espera alt.
    5. Bon temps de resposta.
    6. Penalitza els processos amb E/S.

Entradas relacionadas: