Witam mam pytanie czy wiecie jak napisać skrypt/(prosty)program który by działał w tle i badał stan użycia procesora?. Chodzi mi o coś takiego czasami zdarza mi się odejść od kompa i zostawić go nic nie robiącego (marnuje się prąd przynajmniej mógł by coś robić w tym czasie) i czy w tym czasie komputer mógł by odpalić sobie jakiś program? np do ściągania torrentów lub inny program a następnie go uśpić jeżeli powiedzmy wcisne klawisz lub coś innego. Jeżeli nie da rady umieścić czegoś takiego w skrypcie/(prostym)programie to czy są jakieś programy do tego i czy znacie?
Chyba trochę przeceniasz „problem”: od tego są priorytety zadań; niech sobie aplikacja w tle chodzi cały czas, ale jeśli ma niski priorytet, to nie ma prawa spowolnić pracy reszty systemu.
W dobie procesorów wielordzeniowych natomiast taki skrypt byłby wręcz marnotrawstwem.
a właśnie z priorytetami na linuxie nie jest na odwrót? bo kiedyś coś takiego słyszałem.
Nie możesz bezpośrednio ustawić na Linuxie priorytetu. Możesz jedynie ustawić NICE który pośrednio na priorytet wpływa.
Można zwiększyć NICE i uczynić tym samym proces mniej ważnym (bo to jest miły (nice) proces i lubi oddawać czas procesora :P)
Zwiększanie NICE powoduje zwiększanie się PRI.
Im wartość liczbowa PRI jest mniejsza tym proces jest ważniejszy.
Jak zwał. Przecież na jedno wychodzi.
Pod Win32 też nie ma bezpośredniego dostępu do priorytetu (jako do liczby w jakimś tam zakresie) a są dwie funkcje API które na priorytet wpływają (jedna bardziej, druga mniej).
Mozna korzystać z programu setsheduler. Przykład:
setscheduler 3897 1 99
ustawi maksymalny priorytet dla procesu o PID 3897 uzywajac planisty FIFO. Warto tez poczytac man sched_setscheduler
dzięki za rady :)