오늘 뭐했냐/개발에 대한 주저리

23.08.18 프로세스 (Process)

스스로에게 2023. 8. 26. 23:21

프로세스는 컴퓨터에서 실행 중인 프로그램의 인스턴스를 말합니다. 프로그램은 디스크에 저장된 실행 가능한 파일이며, 이 프로그램을 실행하면 운영 체제는 새로운 프로세스를 생성하여 해당 프로그램을 실행합니다. 각 프로세스는 독립적인 실행 환경을 가지며, 다른 프로세스와는 분리되어 실행됩니다. 여기서 프로세스의 주요 특징과 관련 정보를 설명하겠습니다.

프로세스의 특징:

  1. 독립성: 각 프로세스는 서로 독립된 실행 환경을 갖습니다. 한 프로세스의 문제가 다른 프로세스에 영향을 주지 않습니다.
  2. 메모리 공간: 프로세스는 자신만의 가상 메모리 공간을 가집니다. 이로 인해 각 프로세스는 서로의 데이터에 직접 접근할 수 없습니다.
  3. 코드, 데이터, 스택: 프로세스는 실행 코드, 데이터, 스택 등 여러 영역을 포함하는 메모리 공간을 할당받습니다. 실행 코드는 프로그램의 명령어들을 포함하고, 데이터 영역은 전역 변수와 정적 변수 등을 저장하며, 스택은 함수 호출과 로컬 변수들을 저장합니다.
  4. 스케줄링: 운영 체제는 다수의 프로세스가 동시에 실행되기 때문에 프로세스들 간의 실행 순서를 관리합니다. 이를 프로세스 스케줄링이라고 합니다.
  5. 자원 할당: 각 프로세스는 CPU 시간, 메모리, 파일 등의 시스템 리소스를 할당받아 사용합니다. 이를 효율적으로 관리하기 위해 운영 체제는 스케줄링과 메모리 관리 등을 수행합니다.

프로세스의 생성과 실행:

  1. 프로세스 생성: 프로세스는 다양한 방법으로 생성됩니다. 사용자가 프로그램을 실행하는 것부터 시작하여, 다른 프로세스를 생성하는 프로세스도 있습니다. 부모 프로세스가 자식 프로세스를 생성할 때는 새로운 주소 공간이 할당되며, 부모와 자식 프로세스는 독립적으로 실행됩니다.
  2. 프로세스 상태: 프로세스는 실행 가능한 상태, 실행 중인 상태, 대기 중인 상태 등 여러 상태를 가질 수 있습니다. 이 상태는 프로세스의 스케줄링과 관련이 있습니다.

프로세스 관리와 통신:

  1. IPC (Inter-Process Communication): 다른 프로세스 간의 데이터를 주고받는 메커니즘입니다. 프로세스는 독립적인 주소 공간을 가지기 때문에, 특별한 방법으로 데이터를 공유해야 합니다. 예를 들어 파이프, 소켓, 메시지 큐 등의 IPC 메커니즘을 사용할 수 있습니다.
  2. 프로세스 간 협력: 여러 프로세스가 협력하여 작업을 수행하는 것이 필요한 경우도 있습니다. 이때는 프로세스 간의 통신과 동기화가 필요합니다.

프로세스는 컴퓨터 시스템의 핵심 개념 중 하나로, 운영 체제가 자원을 효율적으로 할당하고 다양한 프로세스들이 협력하여 시스템을 운영하는 데 중요한 역할을 합니다.

'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글

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