Programming/Algorithm 2

[Algorithm]동기화 기법(Synchronization)

동기화(Synchronization)http://en.wikipedia.org/wiki/Synchronization - 멀티프로그래밍(두개 이상의 쓰레드가 같은 데이터를 공유하며 실행되고 있을때)에서 에러(충돌,교착)가 발생하지 않고 조화롭게 실행되도록 하는 일련의 작업 - 이용되는 이론 : 세마포어(Semaphore), 임계구역(Critical Section), 스핀락(SpinLock), 상호배제(Mutual Exclusion, Mutex), 이벤트, Metered Section 세마포어 (Semaphore)http://ko.wikipedia.org/wiki/%EC%84%B8%EB%A7%88%ED%8F%AC%EC%96%B4 - 멀티프로그래밍에서 공유자원에 대한 동시 접근을 제한하는 방법 - 세마포어 S..

[Algorithm]패러럴 퀵 소트

대용량 데이터를 처리해야 하는 툴을 만들다 보니 데이터 처리 관련 알고리즘이나 성능 좋은 방법 등을 많이 고민하고 공부하게 된다. 이 방법들 중 데이터 처리에 있어 많은 비용을 지불해야 하는 정렬에 대하여 이야기 하고 싶다. 우리나라 사람들 성질이 급해서 그런지 뭐든 빨리 나오길 바란다. 정렬도 예외가 아니다. 얼마 안 되는 데이터를 정렬한다면 로직이 좋던 나쁘던 별반 차이나지 않지만 데이터가 커지면 이 차이는 무시 못 할 정도로 벌어진다. 그리고 데이터 처리에 있어 정렬은 아주 큰 부분은 차지하기 때문에 할 수 있다면 할 수 있는 만큼은 개선을 해야 할 부분이다. (어떤 사람은 십수년이 넘는 기간동안 정렬만 연구해 솔루션을 내 놓는 경우도 있으며, 난 이 사람 마음을 십분 이해한다. 정렬은 그럴 만한 ..