및 커널 코드의 대부분, 당신이 컨텍스트 스위칭을 사용하지 않도록 설정할 수 있다는 유효합니다. 그 이유는 컨텍스트 스위칭이 애플리케이션의 책임이 아니라 운영 시스템의 책임이기 때문입니다.
언급 한 시나리오에서 뮤텍스를 사용해야합니다. 모든 프로세스는 공유 리소스에 액세스하기 전에 뮤텍스를 획득하고 공유 리소스 액세스를 완료 한 후에 뮤텍스를 릴리스한다는 규칙을 따라야합니다.
는 애플리케이션 따라서 공유 리소스 처리의인가를 정지, 즉 운영 체제 실행 컨텍스트 스위치를 상기 공유 자원 뮤텍스를 취득한 액세스 및 공유 자원의 일부의 처리를 수행하고, 말하게한다. OS는 공유 리소스에 액세스하려는 다른 프로세스를 예약 할 수 있지만 대기 상태에 있으며 뮤텍스가 릴리스 될 때까지 대기하며 이러한 프로세스는 공유 리소스를 사용하지 않습니다. 컨텍스트 스위치의 특정 번호 후에, OS는 다시 공유 자원의 처리를 계속하는 원래 응용 프로그램을 예약합니다. 원래 응용 프로그램이 마지막으로 뮤텍스를 릴리스 할 때까지이 작업이 계속됩니다. 그런 다음 다른 프로세스는 설계대로 순서대로 공유 리소스에 액세스하기 시작합니다.
더 권위 있고 자세한 뭐죠의 설명과 유사한 시나리오의 이유들을 원하는 경우에
, 당신은 예를 들어,
this MIT lesson을 볼 수 있습니다.
희망이 도움이됩니다.
사용자 모드에서 그렇게하지 않으므로 더 좋은 아이디어를 내놓을 필요가 있습니다. –
할 생각이 있습니까? –
다른 프로세스가 중요한 작업을 완료 할 때까지 실행해서는 안되는 프로세스로 * 전환 *하는 것을 방지하기 위해 바쁜 프로세스 (허용되지 않음)에서 컨텍스트 전환 * 자리 비움 *을 방지하는 대신에주의하십시오. 해당 프로세스가 계속 될 준비가 될 때까지 리턴하지 않는 동기화 메커니즘에 대한 블로킹 호출이 작동해야합니다. –