2013-11-04 5 views
-1

나는 멀티 스레드 시스템에서 일부 어셈블리 코드를 실행하는 프로젝트에서 작업 중이다. 각 스레드는 동일한 어셈블리 코드를 실행하고 코드의 끝에는 각 스레드가 직렬 포트에 "완료"신호를 생성하여 다른 컴퓨터에서 로그인 할 수있게하고 싶습니다. 어셈블리 (http://cs.smith.edu/~thiebaut/ArtOfAssembly/CH13/CH13-3.html)의 직렬 포트에 쓰는 방법을 알고 있습니다. 그러나 일부 스레드가 직렬 포트에 동시에 쓰려고 시도 할 수 있으므로 다중 스레드 시스템에서 어떻게 작동하는지 잘 모르겠습니다. 누구든지이 문제에 경험이 있습니까?멀티 스레드 시스템에서 어셈블리 코드의 직렬 포트에 쓰기

+1

뮤텍스를 사용하면 한 번에 하나의 스레드 만 직렬 포트에 쓰게됩니다. 또는 다른 스레드가 직렬 포트 쓰기 요청을 큐에 대기시키고 실제로 쓰는 스레드를 한 스레드 만 갖도록하십시오. –

+0

어셈블러의 직렬 포트에 쓰고 있습니까? 직렬 포트가 너무 느리므로 루비에 드라이버를 쓸 수 있으며 여전히 충분히 빠를 것입니다. C 또는 C++을 사용하지 않는 이유는 무엇입니까? –

+0

오 ... int 14h? 그 물건들은 여전히 ​​작동합니까? –

답변

0

OS는 여러 스레드가 동일한 직렬 포트를 열도록 허용하지 않습니다. 이렇게하면 적절한 오류 검사와 일부 포트 공유 메커니즘을 제공해야합니다.

예를 들어,이 순간에 포트가 사용 중이면 스레드는 다음에 포트를 열려고 시도하기 전에 임의의 시간 동안 기다릴 수 있습니다.

또한 필요없는 경우 포트를 해제하는 것이 이러한 응용 프로그램에서 필수적입니다.

관련 문제