Process, Thread, Thread Pool, Cache

Cloud0·2021년 10월 20일
0

이론

목록 보기
1/6

Program 실행되는 과정

  • 프로그램은 하드디스크 또는 플래시 메모리 에 저장 되어있다
  • PC의경우 더블클릭 폰의 경우 탭 하면
  • 저장되어있는 프로그램이 메모리로 올라온다(로딩된다)=>프로세스라고 한다.
  • CPU가 메모리에 올라온 프로세스를 실행시킨다.

Process

  • 디스크 안에 있는 프로그램을 선택하면 메모리에 올라옴 그것을 프로세스라고 함
  • 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말합니다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성 됩니다.
    	

Thread

  • 하나의 Process 는 기본적으로 한 개의 쓰레드를 가집니다. 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스 라고 합니다.
  • 쓰레드는 동시에 작업할 수 있는 일의 단위입니다.
  • 예를들면, 웹브라우저 엣지 프로그램을 실행시키면 1개의 쓰레드가 생성되고 , 이미지를 가져오는 작업, 유투브 음악을 듣는 작업 등의 여러 작업은 해당되는 쓰레드가 생성되어 실행 합니다.
  • 프로세스 안에서 실제로 작업을 수행하는 주체를 의미합니다.
    	

Thread Pool 은 무엇입니까?

  • 네트워크로 이미지를 가져온다고 합시다, 이미지를 가져올때 1개의 이미지를 1개의 쓰레드가 담당하여 가져오면, 여러 개의 이미지는 여러 개의 쓰래드가 필요합니다. 이때, 쓰래드 여래개를 처음에 한번 만들어 놓고 , 이 여러 쓰레드를 재사용합니다.

  • 이렇게 재사용 할 수 있는 쓰레드를 여러 개 미리 만들어 놓고 사용하는 것을 Thread Pool 이라고합니다.

  • 장점

    • 스레드를 생성/수거하는데 비용이 들지 않는다.
    • 스레드가 생성될 때 OS가 메모리 공간을 확보해주고 메모리를 스레드에게 할당해준다.
    • 스레드 풀을 미리 만들어 두기 때문에 처음에 생성하는 비용은 들지만 이전의 스레드를 재사용할 수 있으므로 시스템자원을 줄일 수 있고, 작업을 요청시 이미 스레드가 대기중인 상태이기 때문에 작업을 실행하는데 딜레이가 발생하지 않는다.
  • 단점

    • 스레드 풀에 스레드를 너무 많이 생성해 두었다가 사용하지 않으면 메모리 낭비가 발생한다.

Cache 란 무엇입니까 ?

  • 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가르킨다.

  • 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.

  • 앞에서, 네트워크로 무조건 계속 요청하는 것은 자원 낭비다.
    따라서 이미요청했던 데이터는, 메모리나 디스크에 저장을 해 놓는다. 그래서 같은 데이터를 요청할때는, 네트워크를 가지 않고 먼저 메모리나 디스크에 저장되어 있는지 확인하여서,저장되어 있으면 그 데이터를 사용하고 그렇지 않으면 네트워크로 데이터를 요청해서 사용한다.

  • Chach는 아래와 같은 경우에 사용을 고려하면 좋다.

    • 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 (서버의 균일한 API 데이터)

    • 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일)

      캐시는 개발자가 어디에 저장할지도 선택할수있고 , 캐시의 보관 기간도 정할수있고 캐시의 보관 양도 저장 할수있다.(알고리즘을 만드는 것)
profile
이...사...중......

0개의 댓글