나흘 간(첫 날은 회의 및 S.A 작성을 하느라 시간이 다 흘러서 빼고) 진행한 팀 프로젝트가 드디어 막을 내렸다! 미흡한 팀장 노릇과 부족한 실력으로 고생한 우리 팀원들에게 박수를 보내면서 프로젝트 이야기는 WIL로 써야하기 때문에 마무리.
-프로세스의 정의
- 메모리에 적재되어 실행되고 있는 프로그램의 인스턴스※
※인스턴스- 설계된 것을 바탕으로 구현된 구체적인 실체
- 붕어빵 틀(설계된 것, 클래스)과 붕어빵(인스턴스)이 보통 예시로 많이 사용됨
- 운영체제로부터 시스템 자원※을 할당받은 작업의 단위
※시스템 자원- CPU 시간
- 실행되기 위해 필요한 독립된 메모리 영역
-프로세스의 특징
- 프로세스는 독립된 메모리를 할당 받는다.
- 프로세스가 메모리를 관리하기 위해 이 공간들을 어떤 구조로 관리하는데, 이를 프로세스 주소 공간이라고 부른다.
- 프로세스 주소 공간은 Code, Data, Stack, Heap 으로 구성된다.
- Code: 코드 자체를 구성하는 메모리 영역(프로그램 명령)
- Data: 전역변수, 정적변수 등
- Stack: 지역변수, 함수 매개변수, 리턴 값 (임시 메모리 영역)
- Heap: 동적 할당 시 사용 (new(), malloc() 등)
- 기본적으로 프로세스마다 최소 1개의 스레드(메인 스레드)를 갖는다.
-스레드의 정의
프로세스 내에서 프로세스의 자원을 이용하는 여러 실행 흐름의 단위
-스레드의 특징
- 스레드는 프로세스 내의 Code, Data, Heap 영역은 다른 스레드와 공유하고 Stack 영역을 따로 할당받는다.
- 프로세스와 해당 프로세스 내의 다른 스레드와 자원과 공간을 공유하면서 사용
사실.. 강의가 매우 어려웠다... 프로세스와 스레드를 겨우 따라가나 했는데 뒤에는 진짜 한 귀로 들어고 한 귀로 나가는 수준... 사실 프로세스와 스레드도 정확히 이해하고 정의 할 수 있는 수준이 아닌데 복습 겸 정리해 봤다.
올려주신 영상과 구글링을 하고 다음에 다시 정리하는 것으로 하겠다.