운영체제 (스레드)

팔리동·2021년 5월 3일
0

출처: 패스트캠퍼스 운영체제 강의 ppt자료

🍎Thread(스레드)

프로세스와 스레드 차이

  • 프로세스

    • 프로세스 간에는 각 프로세스의 데이터 접근이 불가
  • 스레드

    • 하나의 프로세스에 여러개의 스레드 생성 가능
    • 스레드들은 동시에 실행 가능
    • 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능

스레드는 각기 실행이 가능한 stack 존재

멀티 스레드

  • 소프트웨어 병행 작업 처리를 위해 Multi Thread를 사용함
  • Code, Data, Heap영역은 공유하고 Stack영역은 각자 갖는다.

스레드의 장점

  1. 사용자에 대한 응답성 향상

  2. 자원공유 효율

    • IPC기법과 같이 프로세스간 자원 공유를 위해 번거로운 작업이 필요 없음
    • 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능

스레드의 단점

  • 스레드 중 한 스레드만 문제가 있어도, 전체 프로세스가 영향을 받음

  • 멀티 프로세스

  • 멀티 스레드

  • 스레드를 많이 생성하면, Context Switching이 많이 일어나, 성능 저하

  • 예: 리눅스 OS에서는 스레드를 프로세스와 같이 다룸

    • 스레드를 많이 생성하면, 모든 스레드를 스케줄링해야 하므로, Context Switching이 빈번할 수 밖에 없음

스레드 VS 프로세스

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

⭐️정리

  • 스레드 개념정리
    • 스레드는 프로세스와 달리 스레드간 자원을 공유한다.
  • 스레드의 장점
    • CPU활용도를 높인다.
    • 성능 개선이 가능하다.
    • 응답성이 향상된다.
    • 자원 공유 효울 (IPC 안써도 됨)
  • 스레드 단점
    • 하나의 스레드 문제가, 프로세스 전반에 영향을 미침
    • 여러 스레드 생성시 성능 저하 가능
profile
배움의 기록

0개의 댓글