[computerScience] 프로그램 & 프로세스 & 메모리 구조 & 쓰레드 개념 정리.
2021. 11. 8. 18:23ㆍComputerScience
728x90
728x90
-프로그램(program) 의미.
- 실행 파일을 의미함.(정적)
-프로세스(process) 의미
- 실행 중인 프로그램을 의미함.(동적)
- 메모리에 올라와 cpu를 할당받은 상태.
-프로그램 실행 과정 설명.
- 사용자가 OS에게 프로그램을 실행 요청함.
- 운영체제(OS)가 프로그램의 정보를 메모리(주기억장치_RAM)에 로드.
- CPU가 프로그램 코드를 관리 & 명령 실행.
-메모리 구조/공간(memory structure)
- 코드 영역 : 프로세스가 실행할 코드가 기계어 형태로 저장된 공간.
- 데이터 영역 : 전역 변수와 static 변수가 할당되는 영역으로 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리에서 소멸됨.
- 스택 영역 : 함수 호출 시 생성되는 지역 변수와 매개 변수가 저장되는 영역으로 함수 호출이 완료되면 사라짐.(프로그램이 자동으로 할당하고 해제하는 임시 메모리 영역)
- 힙 영역 : 할당해야 할 메모리의 크기를 프로그램이 실행되는 동안 결정해야 하는 경우 힙영역을 사용함.(프로그래머가 직접 메모리를 할당하고 해제하는 메모리 영역)
-쓰레드 개념(thread)
- 프로세스 내에서 실행되는 작업의 단위.
- 프로세스 안에 하나 이상의 쓰레드가 존재함.
-멀티쓰레드 개념(multi thread)
- 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것.
- 즉, 프로세스 내에서 병행 작업 처리를 위해 멀티 스레드를 사용하며 Stack 영역을 제외하고는 모든 영역을 부모 프로세스와 공유함.
-쓰레드를 사용하는 이유
- 하나의 프로세스에서 한 번에 하나의 일을 처리하는 것이 아니라 동시에 많은 일을 처리할 수 있음.
728x90
728x90