Pěkný

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 5. ledna 2016; kontroly vyžadují 7 úprav .

Pěkný nástroj  je počítačový program v operačních systémech podobných UNIXu určený ke spouštění procesů se změněnou prioritou nice. Prioritu nice ( celé číslo ) procesu používá plánovač procesů jádra OS při alokaci času CPU mezi procesy , lze ji nazvat cpu_nice [1] , aby se odlišila od priority io_nice [2] používané plánovačem I/O a upraveno ionickou utilitou [3] . Pěkná utilita se objevila ve verzi 4 operačního systému UNIX vyvinutého společností AT&T [4] . Popsáno v IEEE Std 1003.1-2001 ( POSIX .1) [4] [5] . Jedna pěkná implementace je součástí balíčku coreutils .

Je třeba rozlišovat pojmy „utilita“ a „příkaz“. Nástroj  je počítačový program , který běží v samostatném procesu . Příkaz  je vestavěný příkaz interpretu příkazů (shell) , který se provádí uvnitř procesu shellu .

Příkaz nice je  vestavěný příkaz shellu , který provádí stejné funkce jako obslužný program nice , ale běží uvnitř procesu shellu . Implementováno například pomocí interpretů příkazů csh a tcsh .

Příjemná priorita  je číslo, které říká plánovači procesů jádra operačního systému prioritu, kterou by uživatel chtěl procesu přiřadit .

Popis

Obslužný program nice , spuštěný bez argumentů, poskytuje prioritu nice zděděnou z nadřazeného procesu . nice přebírá argument offsetu v rozsahu od -20 (nejvyšší priorita) do +19 (nejnižší priorita). Pokud zadáte offset a cestu ke spustitelnému souboru , nice získá svou prioritu procesu , změní ji na zadaný offset a pomocí rodiny nahradíexec() kód procesu kódem ze zadaného spustitelného souboru Příkaz nice udělá totéž, ale nejprve zavolá rodinný systém ke spuštění podřízeného procesu ( angl. sub-shell ). Pokud není zadán žádný posun, použije se posun +10. Privilegovaný uživatel ( root ) může zadat záporný posun. fork() 

Priorita nice a priorita plánovače procesů jádra OS  jsou různá čísla. Hezké číslo je priorita, kterou by uživatel chtěl procesu přiřadit . Priorita plánovače  je skutečná priorita přiřazená procesu plánovačem . Plánovač může chtít přiřadit procesu prioritu blízkou nice, ale to není vždy možné, protože v systému může běžet mnoho procesů s různými prioritami. Prioritou nice je atribut procesu a stejně jako ostatní atributy je zděděn podřízenými procesy . Ve výstupu utilit top , ps , htop atd. se priorita nice nazývá "NI" - zkratka pro "nice" a priorita plánovače  je "PRI" - zkratka pro "priorita". Obvykle NI = PRI - 20 , ale to není vždy pravda. Standardně NI=0 , respektive PRI=20 .

Plánovač procesů jádra Linuxu podporuje priority od 0 (v reálném čase ) do 139 včetně [6] . Priority −20…+19 obslužného programu nebo příkazu nice odpovídají prioritám 100…139 plánovače procesů . Další priority plánovače procesů lze nastavit pomocí příkazu chrt z balíčku util-linux .

Plánovač procesů jádra FreeBSD podporuje priority od -20 do +20.

V Linuxu se systémové volání používá k získání aktuální priority nice procesu a [7] k její změně . getpriority()setpriority()

Plánovač procesů může pracovat v souladu s politikou zvolenou uživatelem ( angl.  scheduling policy ). Některé zásady mohou ignorovat hezkou prioritu.

V Linuxu můžete pomocí systémového volání zjistit politiku plánovače procesů aplikovanou na aktuální proces a použít  ji ke změně [8] . sched_getscheduler()sched_setscheduler()

Nástroj renice se používá ke změně priority již běžících procesů .

Syntaxe

nice [ -n offset ] [ --adjustment = offset ] [ příkaz [ argument ... ]]

Možnosti

-n posun --adjustment=offset Nastavte prioritu nice na součet aktuální priority nice a zadaného čísla "offset". Pokud tento argument není uveden, použije se číslo 10.

Poznámky

  1. CPU - anglicky.  centrální procesorová jednotka , centrální procesorová jednotka .
  2. IO _  vstup-výstup , vstup-výstup .
  3. ionice je program z balíčku util-linux . Viz manuálováionice(1)  stránka pro uživatelské příkazy GNU/Linuxu .  
  4. 1 2 nice(1)  - Manuálová stránka uživatelských příkazů FreeBSD  .
  5. Pěkný nástroj . Otevřená skupina . — The Open Group Base Specifications Issue 7. IEEE Std 1003.1, 2013 Edition. Získáno 8. 8. 2015. Archivováno z originálu 12. 9. 2015.
  6. Viz zdrojový kód linuxového jádra :
  7. ↑ - Systém GNU/Linux volá manuálovougetpriority(2)  stránku  
  8. ↑ - Systém GNU/Linux volá manuálovousched_getscheduler(2)  stránku  

Odkazy