[computerScience] 프로그램 & 프로세스 & 메모리 구조 & 쓰레드 개념 정리.

2021. 11. 8. 18:23ComputerScience

728x90
728x90

-프로그램(program) 의미.

  • 실행 파일을 의미함.(정적)

-프로세스(process) 의미

  • 실행 중인 프로그램을 의미함.(동적)
  • 메모리에 올라와 cpu를 할당받은 상태.

-프로그램 실행 과정 설명.

  1. 사용자가 OS에게 프로그램을 실행 요청함.
  2. 운영체제(OS)가 프로그램의 정보를 메모리(주기억장치_RAM)에 로드.
  3. CPU가 프로그램 코드를 관리 & 명령 실행.


-메모리 구조/공간(memory structure)

  1. 코드 영역 : 프로세스가 실행할 코드가 기계어 형태로 저장된 공간.
  2. 데이터 영역 : 전역 변수와 static 변수가 할당되는 영역으로 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리에서 소멸됨.
  3. 스택 영역 : 함수 호출 시 생성되는 지역 변수와 매개 변수가 저장되는 영역으로 함수 호출이 완료되면 사라짐.(프로그램이 자동으로 할당하고 해제하는 임시 메모리 영역)
  4. 힙 영역 : 할당해야 할 메모리의 크기를 프로그램이 실행되는 동안 결정해야 하는 경우 힙영역을 사용함.(프로그래머가 직접 메모리를 할당하고 해제하는 메모리 영역)


-쓰레드 개념(thread)

  • 프로세스 내에서 실행되는 작업의 단위.
  • 프로세스 안에 하나 이상의 쓰레드가 존재함.

 

-멀티쓰레드 개념(multi thread)

  • 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것.
  • 즉, 프로세스 내에서 병행 작업 처리를 위해 멀티 스레드를 사용하며 Stack 영역을 제외하고는 모든 영역을 부모 프로세스와 공유함.

 

-쓰레드를 사용하는 이유

  • 하나의 프로세스에서 한 번에 하나의 일을 처리하는 것이 아니라 동시에 많은 일을 처리할 수 있음.

728x90
728x90