2022-12-07

최찬호·2022년 12월 7일

IPC : InterProcess Communication
1. File
2. Message Queue
3. Shared Memory
4. Pipe
5. Signal
6. Semaphore
7. Socket. 2번부터 동일한 커널공간을 사용하는 방식을 사용
쓰레드
Thread = Light Weight Process
1. 하나의 프로세스에 여러개의 스레드 생성가능.
2. 스레드들은 동시에 사용가능
3. 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능
쓰레드 장점
1. 사용자의 대한 응답성, 성능 향상
2. 자원 공유 효율

  • IPC기법과 같이 프로세스간 자원공유를 위해 번거로운 작업이 필요 없음
  • 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능
  1. 작업이 분리되어 코드가 간결(짜기 나름)
    단점
  2. 스레드 중 한 스레드만 문제가 있어도, 전체 프로세스가 영향을 받음
  3. 스레드를 많이 생성하면, Context Switching이 많이 일어나. 성능 저하
  • 리눅스에서는 쓰레드를 프로세스와 같이 다룸
  1. 동기화 이슈로 비정상적으로 동작가능 ###

쓰레드 vs 프로세스
1. 프로세스는 독립적, 스레드는 프로세스의 서브셋.
2. 프로세스는 독립적인 자원을 가짐, ,스레드는 프로세스 자원 공유
3. 프로세스는 자신만의 주소영역을 가짐, 스레드는 주소영역 공유
4. 프로세스간에는 IPC기법으로 통신해야 함, 스레드는 필요 없음.

쓰레드 동기화 이슈
동기화: 작업들 사이에 실행 시기를 맞추는 것,
여러 스레드가 동일한 자원 접근시 동기화 이슈 발생,

profile
체득하고 이해하자

0개의 댓글