[Process & Thread] 스레드, 멀티 스레드
·
CS/OS
1. 스레드 1) 스레드 하나의 프로세스 내에서 실행되는 동작의 단위 각 스레드는 프로세스의 스택 메모리를 제외한 나머지영역인 코드, 데이터, 힙 영역을 공유 프로세스 내에서 독립적인 기능을 수행하며 이는 독립적인 함수를 호출함을 의미하며 따라서 스택메모리가 별도로 필요 스택 메모리가 별도로 필요하다면 스레드 별로 실행되고 있는 명령어의 위치 또한 다르므로 PC 레지스터도 각각 필요 2) 독립적인 스택 메모리 함수를 호출하기 위해서 인자 전달, Return Address와 함수 내 지역변수 저장 등을 위한 독립적인 스택 메모리 공간 필요 프로세스로부터 Stack memory 영역은 독립적으로 할당받고, Code, Data, Heap 영역은 공유 3) PC Register 멀티 쓰레드에서는 각각의 쓰레드마..
[Process & Thread] 프로세스, 멀티 프로세스
·
CS/OS
1. 프로세스 1) 프로세스 프로그램이 메모리에 적재되어 운영체제로부터 CPU를 할당받아 실행되는 것을 프로세스라고 한다. 프로그램에 CPU에서 실행 되려면 메모리에 적재된 상태여야만 한다. 2) 프로세스의 구조 Code : 프로그램에 내장되어 있느 소스코드 들어가는 영역, 실행한 코드 저장, 정적 Data : 전역변수, static 변수 저장, BSS 영역과 Data 영역, 정적 Heap : 동적 메모리 저장, 런타임 시 크기 결정, 직접 할당, 해제, 동적 Stack : 지역변수, 매개변수, 함수 저장, 컴파일 시 크기가 결정, 동적 3) CPU 할당 받은 프로세스의 실행과정 Notion을 아직 실행하지 않은 상태이다. 프로그램 Notion을 더블 클릭하여 활성화 시킨다. 프로세스 Notion이 메모..