Paggamit ng isang kernel ng RT (mababang latency)

Si Miguel Mayol, isang mahusay na tagasunod at komentarista ng blog na ito, ay inirekomenda ang isang artikulong nai-publish sa Hispason sa paggamit ng mga kernel ng RT, na nagpasya kaming mai-publish at palawakin sa ilan sa mga bahagi nito.

Los Mga kernel ng RT payagan a pinakamainam na pagganap sa ilan mga partikular na sitwasyonHalimbawa, pag-edit ng audio o ang paggamit ng mga virtual na instrumentong pangmusika.

Multitasking kernel

Ang kernel ng Linux, tulad ng karamihan sa mga modernong operating system, ay multitasking. Nangangahulugan ito na maraming mga programa ang tumatakbo nang sabay.

Sa katotohanan, hindi ito eksakto ang kaso. Ang ginagawa mo ay ilagay ang mga programa sa isang pila at, isa-isa, isinasagawa ng microprocessor ang mga ito sa isang tiyak na tagal ng oras. Kapag ito ay naubos na, ang microprocessor ay makagambala sa gawain, iniiwan ito sa kalahati, at nagbibigay daan sa susunod. Ang dami ng oras na ito ay tinatawag na isang kabuuan o hiwa ng oras, at hindi ito dapat maging pare-pareho.

Ang isang mahusay na pagkakatulad ay maaaring ang lutuin sa isang bar na naghahanda ng maraming pinggan nang sabay: isang loin sandwich, isang tripe sandwich, isang halo-halong salad ... Ngayon ay pinaghiwa-hiwalay ko ang tinapay, binuksan ang kawali, habang ito ay nagpapainit hugasan ko ang litsugas, atbp.

Kung ang dami ay sapat na maliit, ang paksang impression para sa isang mabagal na nagmamasid, tulad ng tao, ay sa halip na isang mabilis na processor na nagpapatupad ng mga gawain na halili mayroon kaming isang mabagal na processor para sa bawat isa sa kanila (maraming mga tagapagluto sa parehong kusina ang dahan-dahang ginagawa ang bawat isa isa isang solong plato).

Ang paglipat ng gawain ay nagkakahalaga ng gastos

Ang Multitasking ay hindi libre: nagsasangkot ito ng overhead ng processor. Sa katunayan, ang pagpapaalis sa isang gawain at paglo-load sa susunod ay labis na gawain. Ang operasyon na ito ay tinatawag na 'konteksto sa paglipat' o 'paglipat ng gawain'. Ito ay magiging mas epektibo sa mga tuntunin ng CPU upang ganap na patakbuhin ang mga programa, isa-isa, kaysa i-cut ang mga ito sa 'mga hiwa' at tumalon mula sa isa patungo sa isa pa. Gayunpaman, mawawalan ng kakayahang makipag-ugnay ang system, hindi kami maaaring buksan ang maraming mga bintana o, sa kaso ng isang server, dumalo sa maraming mga kahilingan nang sabay-sabay.

Latency at pagganap

Ipagpalagay na ang aming lutuin ay kailangang magbalat ng 20 kilo ng mga prawn at maglagay ng 20 kilo ng mga olibo. Paano planado ang trabaho?

Sa isang matinding kaso, ibabalot niya muna ang lahat ng mga prawn, hugasan ang kanyang mga kamay upang maiwasan ang paghahalo ng mga lasa, at pagkatapos ay ihulog ang lahat ng mga olibo. Kinakatawan namin ito tulad nito:

GGGGGGGGGGGGGGGGGGGGGGG ... C AAAAAAAAAAAAAAAAAAAAAA…

Sa kabaligtaran, bubulutin niya ang isang prawn, hugasan ang kanyang mga kamay, maghuhugas ng isang olibo, hugasan ang kanyang mga kamay ... prawn, olibo, prawn, olibo ... Kinakatawan namin ito tulad nito:

GCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCAC…

Ang 'C' ay kumakatawan sa pagbabago ng konteksto: maghugas ng kamay, palitan ang mga kagamitan ...

Kasabay nito, kinokolekta ng isang waiter ang mga kahilingan ng mga customer: "ang isa ay may mga prawn!" ... "ang isa ay may mga olibo!" ... at inililipat ang mga ito sa kusina.

Sa unang kaso, ipagpalagay na ang isang customer ay papasok at humihingi ng isang bahagi ng hipon. Walang problema, hinahatid kaagad. Ngunit paano kung humingi siya ng olibo? Hindi maihatid ng waiter ito hanggang sa mabalatan ang lahat ng mga prawn. Sa kasong ito, ang latency, na kung saan ay ang oras na lumilipas mula kapag ang isang kahilingan ay ginawa hanggang sa dumalo ito, ay magiging napakataas.

Sa pangalawang kaso, anuman ang hilingin ng kostumer, magagamit ito sa maikling panahon, pareho din sa parehong kaso. Ang latency ay magiging mababa, ngunit sa isang gastos: dahil sa mga pagbabago sa konteksto magkakaroon ng pagbawas sa pagganap, na nauunawaan bilang bahagi ng oras kung saan ang CPU ay gumagawa ng direktang mga produktibong gawain, sa halip na mga gawain sa suporta.

Malinaw na sa kasong ito ang perpektong solusyon ay magiging isang gitnang lupa, na kung saan ay depende sa laki ng mga rasyon at ang pamamahagi ng pang-istatistika ng mga kahilingan. Ang pila na teorya ay ang sangay ng matematika na responsable para sa pag-aaral ng mga sitwasyong ito at pagbibigay ng pinakamainam na solusyon.

Tulad ng nakikita mo, ang latency at pagganap ay magkasalungat. Para sa kadahilanang ito ay hindi tamang sabihin na ang mga rt kernels ay nagbibigay ng higit na pagganap. Sa kabaligtaran, ang pagbaba ng latency ay binabawasan ang pagganap ng makina at samakatuwid ay isang mahinang pagpipilian para sa mga system na hindi nangangailangan ng napakabilis na mga tugon, tulad ng mga server ng web o database.

Sa kabaligtaran, ang mga mababang latency kernel ay perpekto sa mga sitwasyon kung saan kinakailangan ang maximum na bilis ng pagtugon sa panlabas na stimuli, tulad ng mga pang-industriya na sistema ng kontrol o mga interactive na aplikasyon ng multimedia, alam na nagsasakripisyo kami ng bahagi ng lakas ng makina sa paggarantiya ng mabilis na reaksyon na iyon. .

Mga prayoridad

Ang isang kagiliw-giliw na pagpipilian sa mga multitasking system ay upang magbigay ng iba't ibang mga priyoridad sa mga gawain, sa paraang ang mga pinakamahalaga ay makakatanggap ng mas maraming oras mula sa processor at mas kaunti ang mga hindi gaanong mahalaga. Sa isang normal na kernel ay tapos na ito sa 'magandang' utos. Kung ang aming lutuin ay inaasahan na maghatid ng mas maraming servings ng mga prawns kaysa sa mga olibo, mas mahusay na gumugol siya ng mas maraming oras sa una, syempre.

Kernel RT (o mababang latency)

Ang problema sa mga normal na kernel ay ang mga gawain ay hindi maaaring magambala kahit saan, kailangan mong maghintay para sa kanila na maabot ang ilang mga punto ng pagpapatupad kung saan maaari silang tumigil upang lumipat sa iba pa. Ipinakikilala nito ang tinatawag nating latency.

Upang ilagay ito sa isang pinasimple na paraan, pinapayagan ng mga kernel ng RT na makagambala ang mga gawain sa mas maraming lugar kaysa sa normal na mga kernel. Maaari nilang gawin, kung gayon, mas manipis na mga hiwa ng oras, kaya't ang kasalukuyang gawain ay mas mabilis na mapapalabas at ang aming pangunahing gawain ay maa-access ang CPU nang mas maaga. Samakatuwid ang latency ay magiging mas mababa.

Sabihin natin na ang isang RT kernel ay nagpapahintulot sa amin na mag-iwan ng isang kalahating-peeled na hipon kung kung ano ang agarang kinakailangan sa oras na iyon ay upang maghulog ng isang oliba sa lalong madaling panahon, habang sa isang normal na kernel kinakailangan na tapusin ang pagbabalat ng hipon.

Bilang karagdagan sa paggawa ng mas manipis na mga hiwa, ang mga kernel ng RT ay may isang mas mahigpit na sistema ng priyoridad, kung saan ang mga priyoridad na gawain ay walang awang tumaga sa bawat isa (pauna) upang makontrol ang CPU, mabagal ang iba pang mga programa kung ano ang kinakailangan upang magawa ito. Matugunan ang iyong mga kinakailangan.

Kailan mahalagang gumamit ng isang kernel ng RT?

Sa dalawang kaso:

1) Kapag kailangan natin ng napakababang latency, iyon ay, napakabilis na reaksyon ng makina. Ang pinakamalinaw na halimbawa ay ang pagganap ng mga virtual na instrumento, kung saan kailangan mo ang instrumento upang tumunog kaagad kapag pinindot ang isang susi sa isang MIDI keyboard.

2) Kapag kailangan namin ng napakahigpit na mga priyoridad, iyon ay, na ang aming mataas na pangunahing gawain ay hindi nagagambala ng anumang bagay sa mundo (maliban sa sakuna na kaso na ang CPU ay sobrang labis na lumampas ito sa 100% na paggamit). Halimbawa, nagtatala kami ng isang sesyon ng audio kasama si Ardor at pinapanood ang mga tagapagpahiwatig ng fader na pataas at pababa. Hindi mahalaga kung mawala sa amin ang isang frame ng pag-refresh ng faders hangga't ang tunog ng transportasyon mula sa mikropono patungo sa hard disk ay hindi magambala. Ang isang RT kernel ay magpapabagal sa fader refresh hangga't kinakailangan hangga't hindi isang solong sample ng audio ang nawala.

Sinabi na, sa pangkalahatan ang mas bagong mga kernel na hindi RT ay lubos na napabuti ang kanilang iskedyul ng gawain at pamamahala ng priyoridad. Kung wala kang CPU sa limitasyon ng mga posibilidad nito (sabihin sa ibaba 50% na paggamit) o ​​kung hindi mo naisip na paminsan-minsan ay may isang maliit na micro cut (pag-click) sa tunog (ang labis na kinakatakutan na mga xrun), isang normal na kernel ay nagbibigay ng perpektong katanggap-tanggap na pagganap.

Anong latency ang ipinapayo?

Personal, anumang mas mababa sa 10 ms ay mabuti para sa akin at mula sa 20 ms sinisimulan ko nang mapansin ang pagkaantala nang malinaw. Mayroong higit na hinihingi ang mga tao.

Instalasyon

Sa Ubuntu at mga derivatives:

sudo apt-get install linux-headers-lowlatency
sudo apt-get install linux-lowlatency
sudo update-grub

Sa pagsisimula, magkakaroon ka ng parehong mga pagpipilian (ang normal na kernel at ang mababang latency na isa).

Sa Arch at derivatives:

yaourt -S linux-rt
sudo update-grub

Fuente: Hispason


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Jordi Fdez dijo

    napaka kumpleto at mahusay
    ipinaliwanag. oo, gumagamit ako ng Linux para sa paggawa ng musika kasama
    isang ordinaryong distro at wala akong mga problema sa latency, ang
    ang tugon ay madalian kapag nagpe-play ng audio. Wala akong marami
    kaalaman, ngunit sa palagay ko ang mga driver para sa audio sa Linux ay
    medyo mabuti hindi ko na kailangan jack para makakuha ng magandang
    pagganap

  2.   Carlos dijo

    Mahusay na artikulo at ang paliwanag ay hindi maaaring maging mas mahusay. Cheers

  3.   carlesa25 dijo

    Kamusta: Napaka-interesante, susubukan ko ito sa CPU + GPU na masinsinang mga gawain sa pag-compute.

    Tulad ng maaari mong iwanan ang Ubuntu 12.0 OS tulad ng dati, iyon ay, i-uninstall ang "linux-headers-lowlatency". Pagbati.

  4.   TH3GH057 dijo

    Maraming salamat sa artikulo. Ito ay talagang napaka-kagiliw-giliw na malaman kung paano gumagana ang mababang mga latency cores. Naging interesado akong malaman ang tungkol dito at ang pagiging kapaki-pakinabang nito. Cheers

  5.   Oliver dijo

    Mahusay na artikulo! sa sandaling narinig ko na ang isang mababang latency kernel ay kinakailangan upang magpatakbo ng isang mas tumutugon keyboard ngunit wala akong ideya kung bakit at kung paano ito gawin. Napakalinaw ng pagkakatulad.

  6.   tapang dijo

    Oo ginoo, ganap na totoo.

    Ito ay isang bagay na ganap na mahalaga sa paggawa ng musika, din, tulad ng sinabi sa paggamit ng VST's, halimbawa sa isang live na pagganap gamit ang isang MIDI controller kailangan nating sumabay sa iba pang mga instrumento at ang isang mataas na latency ay maaaring maglaro ng trick sa amin.

    O hindi kinakailangan sa paggamit ng mga virtual na instrumento, ngunit sa pag-record, sa pamamagitan ng interface latency ay nangyayari na maaaring malito sa amin kapag binibigyang kahulugan ang mga instrumento

  7.   Rayonant dijo

    Mahusay na artikulo, wala akong ideya kung ano ang ibig sabihin ng mababang latency sa isang kernel (kahit na naiugnay ko ito sa mga latency sa ram modules)

  8.   Gerardo Azonos dijo

    Napakaganda ... nagustuhan ko talaga.
    binabago ang paksa, may nakakaalam kung paano malutas ang problema ng wifi (wireless ng aking kandungan) na hindi pinapayagan akong magtrabaho sa mga pampublikong puwang, ang signal ay napakababa
    Mayroon akong ubuntu 11.10 at ang aking lap ay: Dell inspiron n4110.
    Pasalamat muna ako.

  9.   Miquel Mayol at Tur dijo

    Salamat, upang idagdag na ang Sabayon ay nagdadala ng kernel na ito, na naipon sa 1000 Hz bilang default, na mainam din para sa mga server ng laro ng FPS at para sa mga laro ng FPS mismo at anumang hinihingi, maliban sa mga gumagamit ng mga database, bagaman sa akin sa Sabayon freeciv ay humihip. ako ang layo ..

    Sa isang desktop, karaniwang inuuna nito ang pangunahing gawain, kaya maaaring maging maginhawa upang magamit ito kahit na hindi gaanong mahusay ito para sa iba pang mga gawain, para sa kung ano ang ginagawa natin sa ngayon ay mas mabilis itong tatakbo, at sa mga kasalukuyang modernong computer maaari itong maging medyo kawili-wili.

    Ito ay isang usapin ng pag-install sa kanila, pagsubok sa kanila sa isang linggo, pagbalik sa kernel - normal - at makita kung paano ito nawala, at alin ang mas gusto namin, pati na rin gamitin ito para sa mga tukoy na gawain na ang bawat isa sa kanila ay mas mahusay.

  10.   Gustavo Trepat dijo

    Mahusay na artikulo, napakahusay na ipinaliwanag.
    Salamat sa inyo.

  11.   Esteban dijo

    Mahusay na paliwanag, maraming salamat, malaki ang naitulong sa akin 🙂

  12.   carlos martinez dijo

    Napaka-kagiliw-giliw na artikulo, naging mas malinaw sa akin, kahit na mayroon pa akong mga pagdududa tungkol sa kung ang isang lownelency kernel ay angkop sa akin. Paano ko malalaman ang latency ng isang kernel? Cheers

  13.   Hulyo dijo

    Kamakailan lang ay nag-install ako ng isang ubuntu studio distro at napagtanto ko ang tungkol sa mababang latency, pagsisiyasat na dumating ako sa iyong pahina. Napakalinaw ko tungkol sa mga pangunahing konsepto ng Operating System at ang iyong paliwanag ay perpekto. Ginawa mo ito. Binabati kita