2006-08-30

 

Jack - Xruns

När man kör Jack på en standard-distribution av Linux får man oftast så kallade XRUNS. Vad är då dessa Xruns för något?

På alla Linux-system finns en buffert för läsning och skrivning till och från ljudkortet. Vid uppspelning läggs data i bufferten som sedan hämtas av ljudkortet för vidare befordran ut till högtalarna. Vid inspelning lägger ljudkortet data i bufferten för vidare befordran till inspelningsprogrammet.

Xruns uppstår när bufferten inte hinner att tömmas eller fyllas i tillräckligt hög takt för att få en kontinuerlig uppspelning eller inspelning.

Speciellt illa är det att få Xruns under inspelning, eftersom detta leder till ett glapp i densamma. Det behöver inte vara hörbart, men kan orsaka dålig synkronisering i slutändan.

Eftersom Linux är ett multi-tasking-OS, innebär det att flera program kan köras samtidigt. Linux, liksom Windows, har ingen möjlighet att fysiskt köra flera processer exakt samtidigt på ett system med bara en processor. Det kan bara ge sken av att göra det genom att köra processerna lite i taget, i snabb följd, alltså genom att dela tiden mellan dem. Därför är det operativsystemets roll att avgöra vilken process/vilket program som ska få tillgång till de största resurserna.

Det är bland annat väntetiden mellan de olika processernas tid-utrymme som kan ge upphov till Xruns. Det är därför viktigt att minimera, eller helst helt eliminera, att de uppstår.

Ett vanligt sätt att undanröja Xruns är därför att ge ljudprogramvaran tillgång till processor-tid när den så önskar genom att prioritera upp de processer som den använder sig av. Det kallas att ge processerna realtids-prioritet.

Men det ska vi gå igenom i nästa avsnitt.

Comments: Skicka en kommentar



<< Home

This page is powered by Blogger. Isn't yours?