※ Critical Section (임계영역)

  • 둘 이상의 Thread가 동시에 접근해서는 안되는 공유 자원(자료 구조 또는 장치)을 접근하는 코드의 일부를 말한다.

※ Mutex (상호배제)

  • 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘으로, Critical Section 코드 영역에 의해 구현된다.
  • 예를 들면 화장실 열쇠를 관리자가 가지고 있고 열쇠를 가진 사람만 화장실을 이용할 수 있도록 빌려주고 반납하는 것을 들 수 있다.

※ Semaphore (세마포어)

  • 멀티프로그래밍 환경에서 공유자원에 대한 접근 제어를 하는 방식으로 1개의 공유되는 자원에 제한된 개수의 프로세스, 또는 스레드만 접근할 수 있도록 한다.
  • 예를 들면 칸막이 화장실 칸이 3개 있다고 가정하자. 3개의 칸이 찰 때까지 접근이 가능하지만 3개가 차는 순간 접근할 수 가 없다. 접근하기 위해서는 반드시 비어있는 칸이 있어야한다.



'Programming Note > etc' 카테고리의 다른 글

Singleton Pattern이란?  (0) 2017.05.05
[etc] OSI 모형(OSI 7 Layer)  (0) 2017.04.18
Abstract class 와 Interface (extends, implements)  (0) 2017.03.17
Process와 Thread  (0) 2017.03.12
FDS (Fraud Detection System) 란?  (1) 2017.01.13


※ Process란?

  • 실행중인 프로그램에 대한 인스턴스이다.
  • 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다.

※ Thread란?

  • 한 프로세스 내에서 동작되는 여러 실행의 흐름이다.
  • 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.

※ Process와 Thread의 차이

 Process

Thread 

 독립적이다.

 Process의 subset으로 존재한다.

 별도의 주소 공간을 가진다.

 주소 공간을 공유한다. 

 프로세스 간 통신(IPC)은 어렵고 자원을 많이 사용한다.

 쉬운 공유와 통신이 가능하다.

 

 상호의존적이므로 주의해야한다.



▶ 관련 사이트 바로가기

  1. BrocessJK님의 블로그 (http://m.blog.naver.com/kim3zz/220721606892)
  2. Wikipedia (https://en.wikipedia.org/wiki/Thread_(computing))



+ Recent posts