개발공부/TIL
OS | Process | Thread
개발집사
2023. 5. 12. 19:18
OS(운영체제)
Software 중 하나로 Hardware를 제어하고 응용 프로그램을 실행하는 기본 프로그램
Process
- Program 이 OS에 의해 MEMORY 영역을 할당받고 실행중인 것
- 싱글스레드와 멀티 스레드 모두 memory 영역은 하나만 생성된다.
- multi-thread-process : 같은 Process 안에서는 메모리를 공유하기때문에 다른 스레드의 실행결과값을 바로 알 수 있다.
- 여러개의 process를 사용하면, 메모리 점유가 증가한다는 단점이 있지만, 각각의 메모리를 할당받기 때문에 보안적인 측면에서 좋다.
Code | PC(다음번에 실행될 명령어의 주소를 갖고 있는 레지스터와 코드를 저장) |
Data | global variables, static variables 저장 |
Stack(Thread) | - stack : 자료구조. - Process 가 할당된 자원을 이용하는 실행의 단위. - thread : 명령어를 처리하고 실행하는 흐름 - 하드웨어의 core는 하나의 core가 하나의 thread를 처리한다. |
Heap | manage memory, allocates dynamic memory . 동적으로 메모리를 heap을 통해 할당하기도 한다. |
Multi Process
- OS가 각각 memory 를 할당
- Inter Process Communication(IPC)으로 Process 간 소통