티스토리 뷰

프로세스와 스레드?

  • 프로세스는 운영체제로부터 자원을 할당 받는 작업의 단위
  • 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위

좀 더 자세히...

  • 프로세스는 실행될 때 운영체제로부터프로세서를 할당받고, 운영되기 위해 필요한 주소공간, 메모리 등의 자원도 할당받음
  • 스레드는 하나의 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소공간, 메모리 등의 자원을 프로세스내에 스레드끼리 공유하면서 실행된다

스레드를 왜 사용해?

  • 그러면 여러 프로세스(멀티 프로세스)를 하지 않고 굳이 하나의 프로세스안에 스레드로 나눠서 실행하는가?
  • 운영체제는 시스템작업을 효율적으로 관리하기 위해 존재 -> 이 목적을 달성하기 위함
  • 멀티 스레드의 장점
    • 프로세스 생성, 자원 할당 이라는 시스템 콜을 줄여 자원을 효율적으로 관리 할 수 있음
    • 프로세스간의 통신보다 스레드간의 통신이 비용이 적으므로 작업들간의 부담도 줄일 수 있음

그러면 멀티 스레드가 답인가?

  • 멀티 스레드는 자원의 효율성을 증가 시켜주지만 주의할 점이 있음
  • 스레드간 공유하는 자원은 전역변수로 사용하기에, 동기화에 신경을 써야 함 (동시에 여러 스레드가 실행되는 경우)
    • 공유자원을 사용하지 않는 프로세스와 프로세스사이는 상대적으로 안전

해결방법?

  • 한 번에 한 스레드만 공유자원에 접근할 수 있도록 조정해주면 된다
  • 이것을 Lock이라고 하는데, 얼마나 적은 Lock을 거는가가 성능의 관건
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함