2

ユーザー プロセスとカーネル プロセスの両方から同時に共有リソースを保護する方法は? それはまれであり、非常にまれなケースです。インタビューでこんな質問をされました。ティア

4

1 に答える 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 に答える