lesson_10.md 2.7 KB

Piattaforme e Software per la rete - lezione 10

William Fornaciari

13 May 2016

Sistemi Multiprocessore

Tipologie di architetture:

  • Ogni CPU ha il suo SO
  • Sistemi Master-Slave
  • Sistemi Multiprocessore Simmetrici (SMP)

Nel caso di un SO per CPU l'accesso alle periferiche viene gestito tramite l'uso di diversi buffer.

Nel caso di sistemi Master Slave, il SO viene eseguito solo dalla CPU Master Che quindi ha una sola copia dei buffer per I/O

É difficile gestire bene cluster di piú di 8/16 core, a parte nei casi di applicazioni nativamente parallelizzate. Una tecnica usata é quella del clustering che consiste nel raggruppare CPU e usarle in gruppo.

Nelle implementazioni SMP il sistema operativo é singolo ma puó essere eseguito da piú processori, tramite l'uso di lock

Il timesharing consiste nel dividere il tempo per i processi, ma porta ad un cattivo sfruttamento delle cache, che avrei invece rimettendo lo stesso processo sulla stessa CPU.

Lo space sharing in cui k processi vengono assegnati a k CPU disponibili.

Sistemi Multicomputer consistono in uno o piú processori collegati da un interfaccia di rete, sono anche usati nelle network on chip Le topologie di rete usate sono:

  • Stella
  • Anello
  • Mesh Le strategie di switching sono:
  • Commutazione di pacchetto
  • Commutazione di circuito ...

Le risorse di rete possono determinare pesantemente le prestazioni del sistema operativo e delle applicazioni eseguite.

Le comunicazioni a livello utente vengono effettuate tramite la chiamata a opportune primitive di sistema

Sistemi Operativi Real Time (RTOS)

Sono caratterizzati da un certo determinismo nell'esecuzione, e da una importanza nei tempi di risposta. Spesso le applicazioni eseguite da sistemi RTOS hanno dei Time Constraints che consistono nei momenti in cui i processi vengono richiesti e nelle deadline per la terminazione di questi ultimi, che possono essere soft o hard a seconda dell'importanza Inoltre puó esserci o meno la preemption dei processi che determina se essi vengono sostituiti in presenza di interrupt.

Scheduling

Per lo scheduling a grana sottile vengono usati algoritmi semplici e veloci come round robin, mentre per lo scheduling a grana grossa vengono usati algoritmi piú sofisticati.

Esistono diversi algoritmi di scheduling, con o senza preemption e offrono tempi di risposta diversi Esempi:

  • Fixed priority scheduling

Fattori che possono influenzare lo scheduling

  • Analisi di schedulabilitá:
    • Fatta o non fatta
    • Online o offline
  • Prioritá

Di particolare nota é lo scheduler Rate Monotonic che é in grado di garantire in modo dimostrabile il rispetto delle deadlines e un buon utilizzo generale della CPU.

Guardo slides su RTX