프로세스는 컴퓨터에서 실행 중인 프로그램의 인스턴스를 말합니다. 프로그램은 디스크에 저장된 실행 가능한 파일이며, 이 프로그램을 실행하면 운영 체제는 새로운 프로세스를 생성하여 해당 프로그램을 실행합니다. 각 프로세스는 독립적인 실행 환경을 가지며, 다른 프로세스와는 분리되어 실행됩니다. 여기서 프로세스의 주요 특징과 관련 정보를 설명하겠습니다.
프로세스의 특징:
- 독립성: 각 프로세스는 서로 독립된 실행 환경을 갖습니다. 한 프로세스의 문제가 다른 프로세스에 영향을 주지 않습니다.
- 메모리 공간: 프로세스는 자신만의 가상 메모리 공간을 가집니다. 이로 인해 각 프로세스는 서로의 데이터에 직접 접근할 수 없습니다.
- 코드, 데이터, 스택: 프로세스는 실행 코드, 데이터, 스택 등 여러 영역을 포함하는 메모리 공간을 할당받습니다. 실행 코드는 프로그램의 명령어들을 포함하고, 데이터 영역은 전역 변수와 정적 변수 등을 저장하며, 스택은 함수 호출과 로컬 변수들을 저장합니다.
- 스케줄링: 운영 체제는 다수의 프로세스가 동시에 실행되기 때문에 프로세스들 간의 실행 순서를 관리합니다. 이를 프로세스 스케줄링이라고 합니다.
- 자원 할당: 각 프로세스는 CPU 시간, 메모리, 파일 등의 시스템 리소스를 할당받아 사용합니다. 이를 효율적으로 관리하기 위해 운영 체제는 스케줄링과 메모리 관리 등을 수행합니다.
프로세스의 생성과 실행:
- 프로세스 생성: 프로세스는 다양한 방법으로 생성됩니다. 사용자가 프로그램을 실행하는 것부터 시작하여, 다른 프로세스를 생성하는 프로세스도 있습니다. 부모 프로세스가 자식 프로세스를 생성할 때는 새로운 주소 공간이 할당되며, 부모와 자식 프로세스는 독립적으로 실행됩니다.
- 프로세스 상태: 프로세스는 실행 가능한 상태, 실행 중인 상태, 대기 중인 상태 등 여러 상태를 가질 수 있습니다. 이 상태는 프로세스의 스케줄링과 관련이 있습니다.
프로세스 관리와 통신:
- IPC (Inter-Process Communication): 다른 프로세스 간의 데이터를 주고받는 메커니즘입니다. 프로세스는 독립적인 주소 공간을 가지기 때문에, 특별한 방법으로 데이터를 공유해야 합니다. 예를 들어 파이프, 소켓, 메시지 큐 등의 IPC 메커니즘을 사용할 수 있습니다.
- 프로세스 간 협력: 여러 프로세스가 협력하여 작업을 수행하는 것이 필요한 경우도 있습니다. 이때는 프로세스 간의 통신과 동기화가 필요합니다.
프로세스는 컴퓨터 시스템의 핵심 개념 중 하나로, 운영 체제가 자원을 효율적으로 할당하고 다양한 프로세스들이 협력하여 시스템을 운영하는 데 중요한 역할을 합니다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
23.08.20 레디스 (Redis) (0) | 2023.08.30 |
---|---|
23.08.19 쓰레드(thread) (0) | 2023.08.27 |
23.08.17 OAuth (0) | 2023.08.25 |
23.08.16 RDBMS와 No SQL (0) | 2023.08.23 |
23.08.15 아키텍쳐 설계 (0) | 2023.08.22 |