프로그램(Program)

  • 운영체제 위에서 실행할 수 있는 파일 ex) 카카오톡, 크롬

 

프로세서(Processor)

  • 프로세스가 동작될 수 있도록 하는 하드웨어(=CPU)

  • 한순간에 하나의 프로세스만 실행할 수 있다.

 

프로세스(Process)

  • 메모리에 적재되어 프로세서에 의해 실행 중이거나 실행 대기 중인 프로그램

  • 한순가에 여러 가지 일을 하는 것처럼 보이지만 실제로는 짧은 시간에 프로세스를 교체하기 때문에 동시에 여러 개의 작업이 실행되고 있다고 느낀다.

프로세스의 상태

Context Swithching

프로세스 구조

  • 프로세스는 각각의 독립된 메모리 영역(Stack, Heap, Data, Code)을 할당 받는다.

멀티 프로세스

  • 실행 중인 프로세스에서 다음 프로세스로 넘어갈 때 각각의 영역을 따로 가지기 때문에 비효율이 발생한다.

  • 다른 프로세스의 정보를 이용하기 위해서 통신이 필요하다.

스레드 (Thread)

  • 프로세스 내에서 실행되는 작업의 흐름의 단위

  • 프로세스가 할당받은 자원을 이용하는 실행의 단위

  • 자원은 Process 단위로 받고 작업/스케줄링은 Thread 단위로 진행한다.

  • 스레드 간 전환 속도가 Stack영역만 처리하기 때문에 Context Switching 비용이 적게 든다.

  • 스레드는 프로세스 내에서 각각 Stack만 따로 할당 받고 Heap, Data, Code 영역은 공유한다.

Context Swithching

 

+ Recent posts