Linux

[Linux 기초] 프로그램 & 프로세스

상어꼬리 우두머리 2025. 1. 22. 16:02
728x90
반응형

프로그램 (Program)

  • 저장 장치에 저장되어 있는 실행 가능한 코드의 정적인 집합
  • 디스크와 같이 비휘발성 메모리에 저장
  • 사용자가 요청할 때까지 실행되지 않음

프로세스 (Process)

  • 실행중인 프로그램의 인스턴
  • 운영체제에 의해 할당된 메모리 공간과 시스템 자원을 사용하여 동적인 상태를 유지
  • 운영체제가 자원을 할당하고 관리하는 기본 단위

프로그램이 프로세스가 되는 과정

  1. 프로그램 실행 요청
    • 명령어 입력 및 아이콘 클릭
  2. 프로그램 로딩
    • 사용자 요청을 받은 운영체제는 프로그램의 코드와 데이터를 디스크로부터 메모리로 로드함.
    • 로딩 시 실행에 필요한 주소 공간이 메모리에 생성됨
  3. 자원 할당
    • 운영체제는 프로세스 실행에 필요한 CPU시간, 메모리공간, I/O장치 등의 자원을 할당
    • 프로세스의 상태가 생성됨
    • 프로세스 제어 블록이 초기화 됨
  4. 실행 상태로 전환
    • 자원할당, 초기화가 왼료되면, 프로세스는 준비상태로 전환됨 (CPU 실행준비 마침)
    • CPU스케줄러가 프로세스 선택 → 프로세스 실행상태 변경 → 프로그램 카운터가 프로세스 첫 명령어를 가리킴
  5. 실행
    • 프로세스가 CPU를 할당받으면, 운영체제는 프로세스의 코드를 실행함.

 

⇒ 프로그램은 디스크 상의 정적인 코드에서 메모리 상의 동적인 프로세스로 변환됨

⇒ 해당 변환 과정은 운영체제의 핵심 기능임

⇒ 멀티태스킹과 시스템 자원의 효율적 관리를 가능하게 함.

 


  • 참고 사이트

https://wikidocs.net/231675

728x90
반응형

'Linux' 카테고리의 다른 글

[Linux 기초] 명령어 실행 사이클  (0) 2025.01.22