System76 ha presentato un nuovo Scheduler. L’utility, con poca fantasia, è stata battezzata System76 Scheduler ed è scritta in Rust. Lo scopo? Migliorare la reattività di Pop!_OS andando ad ottimizzare l’assegnazione dei task al processore.
Scheduler
Prima di approfondire il lavoro svolto da System76 facciamo un passo indietro per cercare di capire cos’è uno scheduler. Si tratta di un componente del kernel che si occupa di stabilire quale (e quando) processo va assegnato alla CPU. Chiaramente il suo compito è molto importante perché si occupa di gestire le priorità, la sospensione dei processi e quindi l’assegnazione delle risorse.
Ci sono diverse tipologie di scheduling. Se un sistema prevede la preemption della CPU, il kernel può togliere la CPU al processo running a favore di un altro processo, in questo caso si parla di preemptive scheduling. Uno scheduling cooperativo invece non permette al sistema operativo di togliere l’uso della CPU al processo running il quale lascia la CPU solo se si interrompe autonomamente, oppure quando termina la sua esecuzione.
I sistemi operativi moderni eseguono concorrenzialmente varie tipologie di processi: alcuni richiedono un gran uso di CPU, altri sono computazionalmente più leggeri ma devono essere eseguiti in tempi brevissimi. In uno scenario di questo tipo è chiaro che l’assegnazione dei processi assume un ruolo chiave.
System76 Scheduler
Lo scheduler di System76 viene distribuito sotto licenza MPL-2.0. Il software è in grado di configurare automaticamente lo scheduler CFS del kernel e gestire dinamicamente le priorità dei processi per migliorare la reattività del desktop Linux. System76-Scheduler aumenta la priorità del server X.Org, dei gestori/compositori di finestre desktop mentre diminuisce la priorità dei compilatori e delle altre attività in background. Queste priorità sono configurabili grazie ai file di configurazione.
Lo scheduler predefinito è ideale per server e laptop alimentati a batteria, questi i dati riportati dagli sviluppatori:
latency: 6ns minimum_granularity: 0.75ms wakeup_granularity: 1.0ms bandwidth_size: 5us
Lo scheduler di System76, invece, punta ad aumentare la responsiveness del desktop e va utilizzato quando il laptop è attaccato alla presa di corrente. Porte un notevole miglioramento della fluidità di app, giochi e del desktop a tutto tondo. Maggior fluidità che verrà notata soprattutto da coloro che usano hardware non più di primissimo piano. Questi i risultati:
latency: 4ns minimum_granularity: 0.4ms wakeup_granularity: 0.5ms bandwidth_size: 3us
Da sottolineare il grande impegno che System76 sta profondendo per migliorare Pop!_OS. Dopo l’annuncio del nuovo desktop Cosmic, non mi aspettavo un’altra notizia così importante in breve tempo. Per ulteriori dettagli vi invito a dare uno sguardo alla pagina GitHub ufficiale.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.