개발공부/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 간 소통