프로세스(Process)
2023. 3. 9. 13:59ㆍCS
프로세스(Process)는 컴퓨터에서 실행 중인 프로그램을 의미합니다. 프로세스는 운영체제(OS)에서 실행되며, 각각 독립적인 메모리 공간을 가지고, 프로세스 간에는 메모리 공유가 일어나지 않습니다.
프로세스는 프로그램 실행 시 운영체제로부터 자원을 할당받으며, 이 자원은 프로세스가 실행되는 동안에만 유효합니다. 자원에는 CPU 시간, 메모리 공간, 파일 핸들러 등이 포함됩니다.
프로세스는 다음과 같은 특징을 가지고 있습니다.
- 독립적인 메모리 공간: 각 프로세스는 독립적인 메모리 공간을 가지므로, 프로세스 간에는 메모리 공유가 일어나지 않습니다.
- 자원 할당: 운영체제로부터 자원을 할당받아 사용하며, 자원은 프로세스가 실행되는 동안에만 유효합니다.
- 스케줄링: 운영체제는 CPU 시간을 할당받은 프로세스에게 순서대로 실행할 수 있도록 스케줄링합니다.
- 보안: 각 프로세스는 독립적인 메모리 공간을 가지므로, 다른 프로세스에 영향을 미치지 않습니다.
프로세스는 일반적으로 하나의 실행 흐름(메인 스레드)을 가지며, 하나 이상의 스레드를 가질 수도 있습니다. 스레드는 같은 프로세스 내에서 메모리 공유가 가능하기 때문에, 프로세스 내에서 스레드 간의 데이터 공유와 동기화 문제를 해결하기 위해서는 적절한 동기화 기법을 사용해야 합니다.
'CS' 카테고리의 다른 글
세마포어(Semaphore) (0) | 2023.03.09 |
---|---|
뮤텍스(Mutex) (0) | 2023.03.09 |
스레드(Thread) (0) | 2023.03.09 |
Docker Compose VS Kubernetes (0) | 2023.02.27 |
객체지향 5대원칙 SOLID by ChatGPT (0) | 2023.02.21 |