問題タブ [minix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
727 参照

operating-system - Minix でのプロセスの優先順位とタイム スライスの調整、どこで、どのように行うか?

Minix でプロセスの優先度を変更しようとしています。schedule_process今のところ、メソッドを変更することを考えていますminix/servers/sched/schedule.c

元のコードは次のようになります。

new_prionew_quantumおよびnew_cpu値を割り当てる場所に介入することを検討しています。これは良い考えでしょうか?つまり、次のような行を追加するだけnew_prio=4;で十分でしょうか? また、プロセスがカーネル プロセスであるかどうかを確認する方法はありますか? 優先度 0 がカーネル プロセスに似ていることはわかっていますが、すべてのカーネル プロセスの優先度の値は 0 ですか? プロセスの優先度が 0 より大きい場合にのみ、そのプロセスに新しい優先度を与えるとしたら、それはカーネル プロセスに介入しないということでしょうか?

質問が多すぎてすみません。前もって感謝します。

0 投票する
2 に答える
714 参照

c - Cの「voidは期待されていません」

私はより大きなCプログラムに以下のコードを持っています。コンパイルしようとした今まで問題はありませんでした。これは Minix 2.0.4 で実行され、 を使用してコンパイルされてccいます。次のようにコンパイル エラーがスローされます。

26 行目は、内部の単なる関数宣言main()です。

initpool()それ自体は、後でこのヘッダーを使用してプログラムで定義されます。

私が調査したところ、すべてが正しく、gccコンパイル エラーは発生しません。前の行はすべて;s で終わっているはずなので、それは問題ではありません。ccコンパイルに問題があるのはなぜですか?

編集:要求に応じて、26 行目までの行は次のとおりです (の先頭から始まり、main()25 行目は空白です)。

0 投票する
1 に答える
704 参照

server - Minix 3.2.1 の新しいサーバーへの syscall

minix で新しいサーバーを実装しました。「サービスアップ...」の後、正常に動作しているようで、メッセージを待ちます。クライアント ファイル内:

1) minix_rs_lookup("serverName",*pt) でエンドポイントを取得します

2)call _syscall(pt,...)

その後、私は得ています:

sys_call: IPC マスクが number1 から number2 への SENDREC を拒否しました

minix コードを検索したところ、私のプロセスがこのサービスを「呼び出さない可能性がある」ようです。

なぜそうなるのか、誰か説明してもらえますか?

0 投票する
1 に答える
86 参照

c - スーパーユーザーが非特権ユーザーよりも多くの同時プロセスを実行できるのはなぜですか?

(注: 言及されたプログラムはクラスの課題のために書かれましたが、この質問は課題の一部ではありません。これは私自身の好奇心のためであり、他に答えを見つけることができません。)

クラスの割り当てのために、ユーザーが一度に実行できる同時プロセスの数を決定するプログラムを作成する必要がありました。私のプログラムはfork()、制限に達したために -1 を返す前に特定の数のプロセスを作成し、それらのプロセスを終了して終了します。

として実行するとroot、作成されたプロセスが 16 個カウントされてから終了します。これは理にかなっています。の Minix 2 のマニュアル ページでfork()は、制限が のNR_PROCS変数によって設定され、 /usr/include/minix/config.h32 に設定されていると指定されています。rootは、プログラムによって作成された 14 個のプロセスに加えて 16 個のプロセスを実行しているため (シェルとプログラム自体の場合は +2)、そのため、合計 32 プロセスになります。

ただし、特権のないユーザーとして実行するとast、プログラムは 13 のみを返します (したがって、11 のプロセスとシェルとプログラムの 2 つのプロセスのみが生成されます)。su astユーザーとして実行するために使用してastいますが、そのプロセスが考慮されているかどうかはわかりません。更新: as でログインするastと、プログラムが 12 のプロセスを生成するため、シェルとプログラム自体に 2 つを追加すると、ast14 の同時プロセスしか実行できないことを意味します (ユーザーは他のプロセスを実行していません)。

特に 1 つの変数だけがシステム制限を制御している場合に、スーパーユーザーと非特権ユーザーが実行できるプロセスの数に違いがあるのはなぜですか?

0 投票する
1 に答える
246 参照

process - Minix で syscall が呼び出されると、新しいプロセスが作成されますか?

たとえば、minix のプログラムで write(...) を呼び出す場合。新しいプロセスが作成されますか (fork() のように)、または現在のプロセス内で行われますか? 多くのシステムコールを行うことは効率的ですか?