독자 작가 문제는 무엇입니까?
"독자 작가 문제"는 여러 독자와 작가가 동일한 자원에 액세스 할 필요가있을 때 생성 된 프로그래밍 딜레마입니다. 모두 한 번에 액세스 할 수있는 경우, 덮어 쓰기, 불완전한 정보 및 기타 문제와 같은 문제가 발생할 수 있습니다. 따라서 프로그래머는 시스템 및 사용자의 요구를 고려할 때 리소스를 볼 수있는 처리 스레드 제어에 대한 액세스를 제한 할 수 있습니다. 독자 작가 문제를 해결하는 방법에는 여러 가지가 있습니다. 가장 일반적인 솔루션 중 하나는 세마포어를 사용하여 상태 및 제어 액세스를 표시하는 것입니다.
한 관점에서 볼 때, 많은 독자가 컨텐츠를 변경하지 않기 때문에 리소스에 안전하게 액세스 할 수 있습니다. 작가가 방정식에 들어가면 상황이 더 복잡해집니다. 다른 스레드가 읽는 동안 스레드가 쓰는 경우 독자는 올바른 정보를 얻지 못할 수 있습니다. 그들은 변화의 일부만받을 수 있거나 구식 정보를보고 그것이 정확하다고 생각할 수도 있습니다.
둘 이상의 작가도 문제를 일으킬 수 있습니다. 동일한 컨텐츠의 동시 변경으로 인해이를 덮어 쓰고 다른 오류가 발생할 수 있습니다. 독자 작가 문제에 따라 프로그래머는 독자 나 작가가 우선 순위를 가지고 있는지, 그리고 액세스를 처리하는 방법을 결정해야합니다. 독자 나 작가는 우선 순위를 지정할 수 있거나 시스템은 첫 번째로 제공되는 첫 번째로 액세스를 할당 할 수 있습니다. 이 세 번째 솔루션은 오랫동안 기다릴 수 있지만 자체 문제가 발생할 수 있습니다.
독자가 우선 순위가있는 솔루션에서 시스템은 액세스를 사용할 수있게되면 액세스를 요청하는 독자가 먼저 허용되어야한다고 가정합니다. 이것은 자원에 액세스하려는 작가가 기다려야 할 수 있음을 의미합니다. 반대로,이 시스템은 작가가 독자에게 영향을 줄 수있는 변화를해야하기 때문에 독자 작가 문제에 따라 우선 순위를 부여해야한다고 가정 할 수 있습니다. 독자가 자원으로 완료되면CE, 작가는 변화를 위해 뛰어들 수있었습니다. 이것은 문서를 저장하려는 것과 같은 사용자 조치뿐만 아니라 시스템을 계속 실행하는 컴퓨터 내부 프로세스에 적용됩니다.
다른 옵션을 사용하면 독자 작가 문제가 양 당사자의 요구를 균형을 맞출 수있어 각 처리 스레드가 도착할 때 액세스 할 수 있습니다. 이를 통해 작가는 독자가 기다리거나 독자가 끝나는 동안 작가가 유지하도록 강요하지 않고 서로를 무시하거나 독자를 혼란스럽게하는 변경을 방해하지 않습니다. 이러한 우선 순위는 컴퓨터의 소프트웨어 프로그램 또는 메모리 액세스 제어에 내장 될 수 있습니다. 사용자가 프로그래밍에 편안하고 시스템을 통해 변경할 수 있습니다.