프로그램(Program)

  • 정의:
    • 프로그램은 저장 매체에 저장되어 있는, 실행 가능한 명령어(instruction)의 집합.
    • 이러한 명령어들은 컴퓨터가 수행해야 할 작업을 정의.
    • 프로그램은 일반적으로 하드 드라이브, SSD, USB 드라이브 등의 비휘발성 메모리에 저장.
  • 특징:
    • 프로그램은 정적인 성격.
    • 즉, 실행되고 있지 않을 때는 단순히 코드의 모음으로 존재.
    • 프로그램은 사용자나 다른 프로그램에 의해 실행될 때까지 변경되지 않고 그 상태를 유지.

프로세스(Process)

  • 정의:
    • 프로세스는 실행 중인 프로그램.
    • 컴퓨터에서 프로그램이 실행되면, 운영체제는 해당 프로그램의 코드와 데이터를 메모리에 로드하고, 이를 프로세스라는 실행 단위로 관리.
    • 프로세스는 운영체제에 의해 할당된 자원(메모리, CPU 시간, 입출력 장치 등)과 함께 실행.
  • 특징:
    • 프로세스는 동적인 성격.
    • 프로세스는 실행 상태, 대기 상태, 종료 상태 등 다양한 상태를 가지며, 시스템 자원을 소비하며 작업을 수행.
    • 각 프로세스는 고유한 프로세스 식별자(PID)를 가지고, 독립된 메모리 영역(주소 공간)에서 실행.

프로그램 VS 프로세스

  • 저장 위치와 형태: 프로그램은 디스크와 같은 저장 매체에 정적으로 저장되어 있지만, 프로세스는 메모리에 동적으로 존재.
  • 실행 상태: 프로그램은 실행되기 전의 코드와 데이터의 집합이지만, 프로세스는 실제로 실행 중인 프로그램을 의미.
  • 자원 사용: 프로세스는 실행되면서 CPU 시간, 메모리 공간, 입출력 장치 등의 시스템 자원을 사용. 반면, 프로그램은 자원을 사용하지 않고 저장 매체에 정적으로 존재.
  • 운영체제의 역할: 운영체제는 프로세스의 생성, 스케줄링, 관리를 담당. 프로그램은 사용자가 실행을 요청할 때 프로세스로 변환.

+ Recent posts