이전 시험을 통해 운영 체제 관련 시험을 준비하고 있습니다. 이것은 Unix 시스템, C 프로그래밍 언어에 관한 것이고, POSIX에 대해서는 많이 언급하고 있으므로 여기에서이 질문을하는 것이 가장 좋습니다.세마포어에는 syscalls이 필요합니까?
문제는 :
간단한 스핀 락 및/또는 세마포어의 세 가지 단점을 부여합니다. 각각의 다른 메커니즘이 어떻게 문제를 개선하는지 설명하십시오. 스레드가 바로 진행할 수있는 경우
세마포어도 시스템 호출이 필요합니다 + 설명 주어진 3 단점
하나는 이것이다. (0.5 P) 반면에 스핀 록은 사용자 공간에서 완벽하게 구현 될 수 있으며 syscall을 필요로하지 않습니다. 짧은 대기 시간에는 매우 효율적입니다. (0.5P)
왜 세마포어에는 syscalls이 필요합니까? 커널 공간에 있어야합니까? 특권 명령의 실행이 필요한가?
단일 프로세서 및 다중 프로세서 시스템을 고려해야합니다.
나는 세마포어 란 무엇이며 어떻게 구현 될 수 있는지 힌트를 줄 것이다. 나는 당신이 그 주제에 관심이 있다면 적어도 그것들을 이해하려고 시도하고 대답을 암기하지 말 것을 조언한다. –
@RuiFRibeiro 나는 주제에 흥미가 있으며 사용자 공간에서이를 구현하는 방법과 커널 공간에서 구현하는 방법을 모두 생각할 수있다. 나는 시스템 호출이 필요하다는 것을 이해한다. ** 만약 세마포어에서'wait()'를 호출하는 프로세스가 기다려야한다면 (예를 들어 세마포어가 완전히 사용된다면) 그리고 ** ** 일대일 쓰레드 모델이 양보하는 데 사용됩니다. 그러나 그 외에도 OS가 왜 개입해야하는지 알지 못합니다. "세마포어는 스레드가 즉시 진행될 때에도 시스템 호출이 필요합니다." ** 시험은 내일 **이므로 빠른 답변을 부탁드립니다. –
세마포어를위한 특별한 시스템 호출이 있습니다. http://www.tldp.org/LDP/lpg/node51.html 또는 가난한 사람 세마포어로 파일이나 심지어 공유 메모리의 변수까지 가질 수 있습니다. 나는 종종 그 주제에 대한 특별한 해석을하고 교수님의 의견에 대해 더 많은 것을 알려주기 때문에 교수님들과 명확히해야 할 의혹에 대해 조언 해 주실 것입니다. –