[영상후기] [10분 테코톡] 🌷 코다의 Process vs Thread

박철현·2023년 3월 12일
0

영상후기

목록 보기
28/160

movie

  • 프로그램 → 프로세스가 되며 일어나는 2가지

    • 4가지 정보가 메모리에 올라가야함
      • Code : 실행 명령을 포함하는 코드들
      • Data : static 혹은 Global 변수
      • Heap : 동적 메모리 영역
      • Stack : 지역변수, 매개변수, 반환값 등 일시적 데이터
    • 프로세스에 대한 정보를 담고있는 PCB 블록이 프로세스 생성시 함께 만들어짐
  • 한 프로세스 실행 되기 위해 CPU 점유하고 있으면 다른 프로세스는 CPU점유할 수 없음 → 시분할로 짧은텀으로 전환

  • 동시에 프로세스 실행하기 위해서는 짧은 텀으로 전환되어야함

  • 컨텍스트 스위칭 : 실행 → 준비 상태를 번갈아가며 프로세스 실행

  • 경령화된 프로세스 버전의 쓰레드 활용

    • 코드, 데이터, 힙 공용사용하고 Stack은 쓰레드별 사용
    • 컨텍스트 스위칭시 캐싱 적중률 ↑ (모조리 다 빼고 넣을 필요가 없음)
  • 멀티 프로세스 & 멀티 스레드 : 처리방식의 일종, 한 어플리케이션에 대한 처리방식

    • 멀티프로세스

      • 한 어플리케이션 내 작업이 나눠질 때 각 프로세스들이 각각의 작업을 담당(스레드가 1개인 프로세스)
    • 멀티스레드

      • 스레드 : 한 프로세스 내에서 구분지어진 하나 이상의 실행 단위
      • 한 어플리케이션 내 작업이 나눠질 때 각 스레드들이 각각의 작업 담당
    • 차이점

      멀티프로세스멀티스레드
      각 프로세스는 독립적Thread끼리 긴밀하게 연결되어 있음
      IPC를 사용한 통신공유된 자원으로 통신 비용 절감
      자원 소모적, 개별 메모리 차지공유된 자원으로 메모리가 효율적
      Context Switching 비용이 큼context Switching 비용이 적음
      동기화 작업이 필요하지 않음공유 자원 관리를 해야함
      크롬 : 멀티프로세서 이용으로 탭 문제생기면 다른 탭에 영향이 덜함익스플로러 : 멀티스레드 이용으로 탭에 문제가 생기면 전체 탭에 영향(작동 중지되었습니다..!)
  • 단일코어 vs 멀티코어

    단일코어멀티코어
    동시성 만족병렬처리
    하나의 코어에서 하나 이상의 프로세스(혹은 쓰레드)가 번갈아가면서 진행되지만 동시에 진행되는 것처럼 보이는 것둘 이상의 코어에서 동시에 하나 이상의 프로세스(혹은 스레드)가 한꺼번에 진행되는 것
  • 스레드 : 사용자 스레드 / 커널 스레드
    "리눅스 커널에서는 프로세스와 스레드를 동일하게 봅니다"

    • 사용자레벨, 커널 스레드 (다대1, 1:다, 1:1 모델 존재)
    • 리눅스의 경우 1:1 모델임
    • 각각의 스레드를 프로세스라 할 수있음
    • 이 프로세스들은 메모리를 공유함(light weight process)
profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글

관련 채용 정보