Priorität heruntersetzen

Priorität heruntersetzen

am 05.06.2006 19:59:47 von Matthias Taube

Gibt es die Möglichkeit, für einen Abschnitt eines Perlprogrammes
die Priorität herabzusetzen?

Unter Bash kann ich zwar mit nice ein ganzes Script herunterstufen, aber
geht das auch innerhalb eines Scriptes?

mfg
Matthias Taube

Re: Prioritätheruntersetzen

am 05.06.2006 20:12:55 von Roman Racine

Matthias Taube wrote:

> Gibt es die Möglichkeit, für einen Abschnitt eines Perlprogrammes
> die Priorität herabzusetzen?
>
> Unter Bash kann ich zwar mit nice ein ganzes Script herunterstufen, aber
> geht das auch innerhalb eines Scriptes?

Mit dem Modul POSIX geht das. POSIX::nice() ist das, was du suchst. Die
Beschreibung findest du unter perldoc POSIX und man 2 nice.

Gruss

Roman°
--
Ärger in den NGs? Frust im Usenet?
IRC-Freenode: #usenet-friends hilft weiter.
Besuch mich auf http://albasani.net/cgiirc/irc.cgi

Re: Priorität heruntersetzen

am 05.06.2006 20:37:37 von Matthias Taube

Roman Racine schrieb:

> Mit dem Modul POSIX geht das. POSIX::nice() ist das, was du suchst. Die
> Beschreibung findest du unter perldoc POSIX und man 2 nice.

Danke, das habe ich gesucht.

Funktioniert eigentlich

POSIX::nice(10);

.... Perl-Code ...

POSIX::nice(-10);

trotz der Aussage: "Normal user processes can only be more polite." in
der Doku?

mfg
Matthias Taube

Re: Prioritätheruntersetzen

am 05.06.2006 20:57:41 von Paul Hink

Matthias Taube wrote:

> Funktioniert eigentlich
>
> POSIX::nice(10);
>
> ... Perl-Code ...
>
> POSIX::nice(-10);
>
> trotz der Aussage: "Normal user processes can only be more polite."
> in der Doku?

Nein. Warum hast du das nicht einfach ausprobiert?

Paul

Re: �

am 05.06.2006 21:05:23 von Matthias Taube

Paul Hink schrieb:

> Nein. Warum hast du das nicht einfach ausprobiert?

Weil es nicht so einfach ist die effektive Priorität des eigenen Prozess
herauszufinden.

Wobei mir gerade als Möglichkeit "system ("ps alx") einfällt.

mfg
Matthias Taube

Re: Prioritätheruntersetzen

am 05.06.2006 21:06:13 von Paul Hink

Roman Racine wrote:

> POSIX::nice() ist das, was du suchst.

Alternativ die Perl-Funktion setpriority (`perldoc -f setpriority`,
`man 2 setpriority`).

Paul

Re: ?

am 05.06.2006 21:31:42 von Paul Hink

Matthias Taube wrote:

> Paul Hink schrieb:
>
>> Nein. Warum hast du das nicht einfach ausprobiert?
>
> Weil es nicht so einfach ist die effektive Priorität des eigenen
> Prozess herauszufinden.
>
> Wobei mir gerade als Möglichkeit "system ("ps alx") einfällt.

Alternativ eins davon:

| system(nice);
| print getpriority(PRIO_PROCESS, 0) . "\n";

Oder man prüft direkt, ob POSIX::nice einen Fehler zurückgemeldet hat
(das ist ohnehin empfehlenswert):

| $ perl -e 'use POSIX qw(nice); nice(10) || die "+10: $!"; nice(-10) || die "-10: $!";'
| -10: Permission denied at -e line 1.
| $

Paul