본문 바로가기

프로세스2

세마포어(Semaphore)와 뮤텍스(Mutex) 여러 쓰레드들은 자원을 공유하고, 프로세스간 메시지를 전송하면서 간혹 문제가 발생할 수 있습니다. 즉, 공유된 자원에 여러 프로세스 , 쓰레드가 동시에 접근하면서 문제가 발생합니다. 공유된 자원 속 하나의 데이터는 한번에 하나의 프로세스만 접근할 수 있도록 제한해 두어야 할 필요성이 있는데이를 위해 고안된 것이 Semaphore(세마포어)입니다. 유명한 화장실 예제로 쉽게 설명해보겠습니다. 공중 화장실은 한번에 1명만 사용할 수 있다고 가정하겠습니다.어떤 사람이 사용하고 있는데 다른 누군가가 갑자기 들어와서 같이 쓰자고 하면... 생각만해도 이상하지요..?이를 막기 위해 화장실 열쇠를 만들 수 있습니다.열쇠를 가지고 있는 한 사람만 화장실을 이용하고, 열쇠가 없는 사람은 밖에서 대기를 하죠. 여기서 열쇠.. 2017. 10. 13.
프로세스(Process)와 쓰레드(Thread) 프로세스와 쓰레드가 각각 무엇인지, 어떤 차이점이 있는지 알아보겠습니다. 한 문장으로 설명하면 다음과 같습니다. 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위, 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위 그림으로 나타내면 아래와 같습니다. [Process]프로세스는 운영체제로부터 주소공간, 파일, 메모리 등을 할당 받습니다.그러므로 각 프로세스는 독립적이며 자신만의 고유 메모리를 할당받아 사용합니다. 그리고 프로세스는 실행중인 프로그램을 의미합니다. 그러므로 프로세스는 프로그램이 될 수 있지만, 프로그램은 프로세스가 될 수 없습니다. 실행중이지 않은 프로그램도 존재하기 때문입니다. [Thread]그러나 쓰레드는 프로세스 안에 존재하며, 여러 쓰레드가 자원을 공유할 수 있습니다. 쓰레.. 2017. 10. 4.
반응형