Ich bereite mich auf eine Prüfung in Bezug auf Betriebssysteme vor, indem ich frühere Prüfungen mache. Es geht hauptsächlich um Unix-Systeme, die C-Programmiersprache, und es wird oft auf POSIX eingegangen, daher ist es wahrscheinlich am besten, diese Frage hier zu stellen.Benötigen Semaphore syscalls?
Das Problem ist:
Geben Sie drei Nachteile von einfachen spinlocks und/oder Semaphore. Erklären Sie, wie der jeweils andere Mechanismus das Problem verbessert.
Einer der Nachteile gegeben 3 + Erklärung ist folgende:
Semaphores erfordern einen Systemaufruf, selbst wenn der Faden sofort erfolgen kann. (0.5 P) Spinlocks hingegen können komplett im Userspace implementiert werden und benötigen keine Systemaufrufe. Sie sind sehr effizient für kurze Wartezeiten. (0.5 P)
Warum sollten Semaphore syscalls erfordern? Müssen sie im Kernel-Bereich sein? Müssen sie privilegierte Anweisungen ausführen?
Sowohl Single-Prozessor- als auch Multi-Prozessor-Systeme müssen berücksichtigt werden.
Ich gebe Ihnen einen Hinweis: Was ist ein Semaphor und wie kann es implementiert werden? Ich rate in einigen Fragen zu versuchen, sie zu verstehen, und nicht Antworten auswendig zu lernen, zumindest wenn Sie Interesse an dem Thema haben. –
@RuiFRibeiro Ich interessiere mich für das Thema und kann sowohl Wege der Implementierung in Benutzerraum und Möglichkeiten der Implementierung im Kernel-Raum denken. Ich verstehe, dass ein Syscall erforderlich ist, ** wenn ** der Prozeß, der 'wait()' auf dem Semaphor aufruft, warten muß (zB der Semaphor wird vollständig benutzt) und ** wenn ** das Eins-zu-Eins-Threading-Modell ist verwendet, um nachzugeben. Aber abgesehen davon sehe ich nicht, warum das OS sich einmischen müsste. Die Lösung sagt wörtlich: "Semaphore erfordern einen Systemaufruf, auch wenn der Thread sofort fortfahren kann." ** Die Prüfung ist morgen **, also würde ich mich über eine schnelle Antwort freuen. –
Sie haben spezielle Systemaufrufe für Semaphore http://www.tldp.org/LDP/lpg/node51.html oder in einem armen Mann Semaphor können Sie sogar eine Datei oder sogar eine Variable in Shared Memory zum Beispiel haben. ..Ich würde einige der Zweifel raten, die mit dem/den Professor (en) geklärt werden müssen, da sie oft ihre speziellen Interpretationen des Themas haben und mehr Punkte zu ihrer Meinung geben. –