Tipologie di architetture:
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:
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
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.
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:
Fattori che possono influenzare lo scheduling
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