Nice -værktøjet er et computerprogram i UNIX-lignende operativsystemer designet til at starte processer med en ændret pæn prioritet. Den pæne ( heltals ) prioritet af en proces bruges af OS-kerneprocesplanlæggeren ved allokering af CPU-tid mellem processer , den kan kaldes cpu_nice [1] for at skelne den fra io_nice [2] -prioriteten , der bruges af I/O-planlæggeren og modificeret af ionice -værktøjet [3] . Det gode hjælpeprogram dukkede op i den 4. version af OS UNIX , udviklet af AT&T [4] . Beskrevet i IEEE Std 1003.1-2001 ( POSIX .1) [4] [5] . En god implementering er inkluderet i coreutils- pakken .
Begreberne "nytte" og "kommando" bør skelnes mellem. Et hjælpeprogram er et computerprogram, der kører i en separat proces . Kommando er en indbygget kommando fra kommandofortolkeren (shell) , der udføres inde i shell - processen .
Nice - kommandoen er en indbygget shell -kommando , der udfører de samme funktioner som nice -værktøjet , men kører inde i shell - processen . Implementeret, for eksempel af csh- og tcsh- kommandofortolkerne .
Den gode prioritet er et tal, der fortæller OS -kerneprocesplanlæggeren den prioritet, som brugeren gerne vil tildele processen .
Værktøjet nice , køres uden argumenter, udlæser den pæne prioritet, der er arvet fra den overordnede proces . nice tager et offset-argument fra -20 (højeste prioritet) til +19 (laveste prioritet). Hvis du angiver forskydningen og stien til den eksekverbare , vil nice få sin procesprioritet , ændre den til angivne forskydning og bruge familiesystemkaldet til at erstatte dens proceskode kode fra den angivne eksekverbare Nice - kommandoen vil gøre det samme, men først vil den foretage et familiesystemkald for at starte børneprocessen ( eng . sub-shell ). Hvis der ikke er angivet nogen offset, vil +10 offset blive brugt. En privilegeret bruger ( root ) kan angive en negativ offset. exec() fork()
Den pæne prioritet og OS -kernens procesplanlægningsprioritet er forskellige tal. Det pæne tal er den prioritet, som brugeren gerne vil tildele processen . Planlæggerprioriteten er den faktiske prioritet , som planlæggeren har tildelt processen . Planlæggeren vil måske tildele en proces en prioritet tæt på nice, men det er ikke altid muligt, da der kan køre mange processer på systemet med forskellige prioriteter. Den gode prioritet er en procesattribut og arves ligesom andre attributter af underordnede processer . I outputtet af hjælpeprogrammerne top , ps , htop , osv. kaldes den pæne prioritet "NI" - en forkortelse for "nice", og skemalæggerprioriteten er "PRI" - en forkortelse for "prioritet". Normalt NI = PRI - 20 , men det er ikke altid sandt. Som standard er NI=0 , henholdsvis PRI=20 .
Linux-kerneprocesplanlæggeren understøtter prioriteter fra 0 ( realtid ) til 139 inklusive [6] . Prioriteter −20…+19 for nice -værktøjet eller kommandoen svarer til prioriteterne 100…139 i procesplanlæggeren . Andre procesplanlægningsprioriteter kan indstilles med chrt -kommandoen fra util-linux- pakken .
FreeBSD -kerneprocesplanlæggeren understøtter prioriteter fra -20 til +20.
På Linux bruges systemkaldet til at få den nuværende pæne prioritet af en proces , og [7] til at ændre den . getpriority()setpriority()
Processplanlæggeren kan arbejde i overensstemmelse med en brugervalgt politik ( eng. scheduling policy ). Nogle politikker kan ignorere den pæne prioritet.
I Linux kan du ved hjælp af et systemkald finde ud af procesplanlægningspolitikken anvendt på den aktuelle proces og bruge den til at ændre den [8] . sched_getscheduler()sched_setscheduler()
Renice -værktøjet bruges til at ændre prioriteringen af allerede kørende processer .
Unix-kommandoer | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|