업데이트에게 투기 스레드 스케줄링 설명클러스터 스케줄링 : 클러스터 해명
T1은 클러스터에게 예약 순차적 다시 1 에 메모리 위치 1, 2, 3, 4, 5, 접촉된다T2는 동일한 클러스터에 동시에 스케줄되고 메모리 위치 6, 2, 3에 순차적으로 접촉 한 다음 T1이 메모리 위치 1에 여전히 의존하는 동안 1에 쓰기를 시도합니다.
T2가 메모리 위치 1에 쓰여지기 전에 T2가 대기해야하거나 T1이 완료 될 때까지 클러스터에서 실행될 때까지 기다려야 할 것 같습니다.
메모리 위치 1과 같이 T1이 일치해야하는 메모리 위치를 결정하고이 정보를 테이블에 저장할 수 있습니까? 이렇게하면 T2가 클러스터에 실행되기 전에 T2는 쓰기가 필요한 메모리 위치를 테이블에서 확인할 수 있습니다. T1은 메모리 위치 1에 따라 다르므로 T2 실행을 클러스터에 지연시킵니다.
3.2 장의 내용은 아래 PDF에 나와 있습니다.
도움 주셔서 감사합니다.
아이디어를 얻고 개선 할 수있는 방법에 대한 컴퓨터 과학 수업 주제를 연구 중입니다. 제가 선택한 주제는 클러스터 스케줄링입니다. 같은 http://apt.cs.man.ac.uk/people/yiapanip/taco13yiapanis.pdf
스레드가 예약 할 때처럼 스레드가 쓰고 메모리에 커밋 후, 동일한 메모리 위치를 액세스하는 다른 스레드와의 충돌을 검사, 일 것 같은
내가 읽어 봤는데 논문입니다. 스레드가 커밋하기를 미리 결정하는 방법이 있습니까?
스레드가 쓰는 메모리 위치 테이블을 유지하는 정보가 있습니다 (알고 있어야 함). 그러면 스레드가 쓰고있는 메모리 위치 만 확인한 후 후속 스레드를 클러스터에 예약 할 수 있습니다. 스레드를 실행하고 있습니까? 메모리 위치에 대한 쓰기가 있으면 후속 스레드가 필요하며 해당 스레드는 정지되지만 메모리 위치가 기록되지 않으면 테이블에없는 경우 해당 스레드에 후속 스레드가 예약 될 수 있습니다.
도움 주셔서 감사합니다.
내가 도와주고 싶지만, 주제를 명확히하고 약간 생각할 필요가 있다고 생각한다. 1) 내가 무엇을 의미하는지 완전히 명확하지 않다. '스레드가 커밋하기를 미리 결정하는 방법이 있는가? ? '. 2) 클러스터 스케줄링, 이것이 기법인가, 문제 도메인인가? [나는 주로 스케줄링이 아닌 추측으로 작업합니까?] 3) 일정에 대한 충돌을 최소화하기 위해 실행되지 않은 스레드의 쓰기 세트를 알고 싶어하는 것 같습니다. * 경우에 따라 * 근사 할 수도 있지만 엄밀히 말하면 미래를 볼 필요가 있습니다! 명확한 설명을 위해 –
가 업데이트되었습니다. – user1461119
소프트웨어 트랜잭션 메모리를 살펴볼 수 있습니다. http://en.wikipedia.org/wiki/Software_transactional_memory –