ユーザー プロセスとカーネル プロセスの両方から同時に共有リソースを保護する方法は? それはまれであり、非常にまれなケースです。インタビューでこんな質問をされました。ティア
質問する
714 次
1 に答える
0
まあ、それはいくつかの方法で行うことができます。そのような方法の1つは
システム コール
ロックを取得するシステム コールとロックを解放するシステム コールの 2 つを作成します。ユーザープロセスが共有リソースにアクセスしたい場合は、acquire-lock システムコールを呼び出します。システム コールが正常に返された場合、ユーザー プロセスは共有リソースにアクセスできます。ユーザープロセスが完了すると、リリースシステムコールを呼び出してロックを解放します。spinlock_t
システム コール自体がリリースまたはmutex_t
(またはその他のロック メカニズム)を取得し共有リソースにアクセスするカーネル プロセスは、spin_lock/spin_unlock
またはmutex_lock/mutex_unlock
ます。
@Damon が指摘したように、これは非常に一般的な質問であり、具体的な回答を得るには、インタビューに特定の質問をする必要があります。
于 2012-11-14T01:16:08.117 に答える