본문 바로가기

2009/074

c# 뮤텍스... trax, 이미지 등이 깨지면 위 링크를 클릭해서 보세요. 소스도 위 링크에 가면 모두 있습니다. 하드 디스크에도 소스는 없고, 예전에 썼던 글이지만 스레드에 대해 기준을 잡는데는 여전히 유용할 거라 생각합니다. 1편부터 보실 생각이면 가서 C#으로 검색해서 보세요. 지난 시간에는 임계영역(Critical Section)에 대해서 살펴보고, 동기화를 위해 사용할 수 있는 Monitor 클래스와 lock()에 대해서 살펴보았다. 이번에는 동기화에 유용하게 사용할 수 있는 뮤텍스에 대해서 살펴보도록 하자. 신호 메커니즘(Signaling Mechanism) 멀티 쓰레드 시스템에서 쓰레드를 동기화하기 위해 신호 메커니즘(Signaling Mechanism)을 사용한다. 여러 개의 쓰레드가 사용하는 공유 자원이.. 2009. 7. 28.
상호배제 상호배제 조건은 자원을 공유할 수 없는 경우에 반드시 성립해야 한다. 예를 들면, 프린터는 동시에 여러 프로세스에 의해 공유될 수 없다. 반면에 공유할 수 있는 자원은 동시에 여러 프로세스가 접근할 수 있고 교착 상태도 없다. 판독 전용파일이 공유 자원의 좋은 예이다. 만일 여러 프로세스가 동시에 판독 전용파일을 읽으려 한다면, 그 프로세스 들은 모두 그 파일을 접근할 수 있다. 그러나일반적으로 상호배제조건을 부정함으로써 교착 상태를 막을 수는 없다. 또한 일부 자원은 본질적으로 공유할 수 없다. 세마 포어 semaphore는 철도 주변에 전봇대 같이 생긴 기둥에 달린 신호기나 군인들이 양손에 깃발을 들고 이들의 위치를 변경하여 이에 따라서 약속된 문자를 표시하는 신호 시스템이다. semaphore가 임.. 2009. 7. 28.
쓰레드를 사용해보자...ㅋㅋ 음...여기저기서 가져왓는대 어딘지 -_-;; 쓰레드를 이용하여 프로그램을 병렬적으로 작성할 경우 원하는 기능을 보다 빠르게 수행할 수 있다. 쓰레드 생성은 프로세스 생성에 비해 시스템 자원을 많이 소비하지 않고 가볍게 동작하기 때문에 네트워크 프로그래밍에서 다중 접속을 처리 할 때나 프로세서 내의 동일 작업을 병렬적으로 처리 할 때 많이 사용되는 기법이다. 쓰레드는 흔히 경량 프로세스, 세미 프로세스라 지칭하는데, 프로그램에서 수행하는 명령의 흐름을 동시에 처리하도록 하는 것이 가장 큰 특징입니다. 일반적으로 프로세스의 경우 프로그램 명령들이 단일적으로 혹은 순차적으로 처리되지만, 쓰레드를 사용하게 되면 프로그램 명령들을 병렬적으로 처리할 수 있기 때문에 매우 빠른 속도로 동작할 수 있게 됩니다. 예를.. 2009. 7. 28.
셸 프로그래밍 장점 : 셸의 경우 빠르고 간단하게 프로그래밍할 수 있다. 셸은 거의 대부분의 기본적인 리눅스 설치본에 항상 준비되어 있다. 2009. 7. 24.