문제

되지 않았지만 많은에 대한 트랜잭션 메모리 최근에.비트가 과대 광고의 주위에 TM,그래서 많은 사람들의 열정은 그것에 대해,그리고 그것이 솔루션을 제공합에 대한 고통스러운 문제와 잠금,하지만 당신은 정기적으로도 불만 사항:

  • 당신은 할 수 없 I/O
  • 당신이 쓰는 원자 섹션할 수 있도록 여러 번 실행(주의 지역 변수!)
  • 소프트웨어의 트랜잭션 제공하는 메모리 성능 저하
  • [삽입하고 싫어하기]

내가 이해하고 이러한 문제:더 자주하지 않고,당신은 당신을 찾아에 대한 기사 STMs 만에서 실행하는 일부 특정 하드웨어를 지원하는 일부 정말 멋진 원자 작업(아 LL/SC다),또 그것은 그 일부가 지원하는 가상의 컴파일러,또는 다음 조건을 충족해야 합니다 모든 액세스하는 메모리되는 트랜잭션,그것을 소개 입력 제약 조건을 사 스타일 등등.모:이들은 실제 문제입니다.

이것은 나 자신에게 물어: 무엇 대하여 말한 현지 사용의 트랜잭션 메모리로 교체 위해 잠? 는 것이 이미 가지고는 충분한 값이거나,트랜잭션 메모리 사용되는 모든 장소에 사용되는 경우니까?

도움이 되었습니까?

해결책

Yes,문제의 일부는 당신이 언급될 수 있는 실제 사람은 지금,하지만 일이 진화한다.으로 어떤 새로운 기술이 과대 광고,새로운 기술이 있다는 것을 보여줍니다 해결되지 않은 몇 가지 문제,그리고 몇 가지의 이러한 문제를 해결하고 다른 사람이 아닙니다.이 결과는 다른 가능성의 문제를 해결하기 위해,이 기술은 더 적용됩니다.

내가 말할 것을 사용할 수 있습니다에 대해하고 있는 응용 프로그램의 일부를 떠날 수 있는 제약 조건 전류 상태의 예술이 있다.응용 프로그램의 일부로 하지 않는 마음에 관한 손실의 효율에 대한 예입니다.

통신 사이에 트랜잭션과 비 트랜잭션 부분은 큰 문제입니다.가 있 STM 는 인식 잠금 장치,그래서 그들 상호 작용할 수 있는 일관된 방식으로 비 트랜잭션 부분입니다.

I/O 하는 것도 가능하지만,거래 된 돌이킬 수없는이 될 수 없이 중단되었습니다.는 것을 의미하는 단 하나의 트랜잭션이 사용할 수 있는 I/O 에서 동일한 시간입니다.할 수도 있습니다 I/O 를 사용하면 최고 수준의 거래가 성공에 트랜잭션으로,세계는 지금.

대부분의 STM 라이브러리 기반 시스템을 사용하면 사용자의 차이를 만들 사이에 트랜잭션과 비 트랜잭션 데이터입니다.그래서 당신이 이해할 필요가 무엇입니까이 정확하게 것을 의미한다.다른 한편으로,컴파일러를 할 수 있습을 추론 어떻게 접근해야하는 트랜잭션이나지 않는 문제가 되는할 수 있도 보수적,감소 효율성을 우리는 얻을 수 있습니다면 우리가 관리하는 명시적으로 다양한 종류의 변수입니다.이것은 같은 정적,지역 및 동적 변수입니다.당신이 알아야 할 제약 조건을 각각 하나를 만들어야 올바른 프로그램입니다.

다른 팁

나는 최근에 거래 메모리에 대해 많이 읽었습니다.

당신은 또한 이것에 관심이있을 수 있습니다 소프트웨어 트랜잭션 메모리에 대한 팟 캐스트, 또한 쓰레기 수집을 기반으로 한 유추를 사용하여 STM을 소개합니다.

그만큼 종이 쓰레기 수집과 트랜잭션 메모리 사이의 비유에 관한 것입니다. 토론은 비유의 아름다움을 보는 것 외에도 거래 메모리 (Goetz/Holmes 에피소드에서 언급 된)와 어느 정도는 쓰레기 수집에 대한 좋은 소개 역할을합니다.

트랜잭션 메모리를 잠금 장치 대체물로 사용하는 경우 해당 잠금 고정 장치로 실행되는 모든 코드를 완료시 롤백 할 수 있습니다. 따라서 이전에 잠금 장치를 사용했던 코드는 트랜잭션이어야하며 동일한 단점 (및 이점)이 있어야합니다.

따라서 잠금 장치를 보유하는 코드의 일부만 TM의 영향을 제한 할 수 있습니까? 고정 잠금 장치에서 호출 할 수있는 모든 코드는 해당 시나리오에서 TM을 지원해야합니다. 얼마나 많은 프로그램이 잠금 장치를 보유하지 않으며 잠금 장치를 보유하는 코드로 호출되지 않습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top