アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。

Suse Linux 10を使用して、
C++でスレッド(pthread)を用いたプログラムを作ってあるのですが、
更にスレッド優先度を設定する必要があります。

ですが、一般ユーザではスレッド優先度が効かないようです。
super userでログインした場合には効果あるようです。

一般ユーザとsuper userで異なる理由は何なのでしょうか?
サンプルプログラムはありません。申し訳ありません。
コードレベルでないと分からない部分もあるかもしれませんが、
一般論として、そもそも一般ユーザでもスレッドの優先度は変えられるか!?

どなたか詳しい方がおりましたらご教授ください!
宜しくお願いします。

A 回答 (2件)

> ただ、シンプルにスレッド作成時に優先度設定できればいいんですがね。

。。

スレッド作成時に指定したければpthread_attr_setschedparamを使えば良いですが、本質的には同じことです。内部ではsched_setscheduler(2)を使うでしょうから権限による制限は同じです。
# http://www.linux.or.jp/JM/html/glibc-linuxthread …

参考URL:http://www.linux.or.jp/JM/html/glibc-linuxthread …

この回答への補足

そういうことなんですか。
内部では同じことなんですね。
その割りに余り権限による制限について打ち出した情報がなかったので、一般ユーザでも優先度↑ができるのかな~と思ってました。

補足日時:2008/07/31 22:35
    • good
    • 0

pthread_setschedparam等を使ってリアルタイムスケジューリングポリシーを設定するという話なら、Linuxのリアルタイムスケジューリングポリシーは基本的にはスーパーユーザしか使えません。


ただ最近のカーネルではあらかじめリソース制限 RLIMIT_RTPRIOを適切に設定しておけばスーパーユーザ以外でも使えるかもしれません。
man sched_setscheduler等を参照して下さい。
# http://www.linux.or.jp/JM/html/glibc-linuxthread …

参考URL:http://www.linux.or.jp/JM/html/glibc-linuxthread …

この回答への補足

ありがとうございます。
こちらでもできそうですね。
ただ、シンプルにスレッド作成時に優先度設定できればいいんですがね。。。

補足日時:2008/07/30 17:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!