프로세스

  • 프로그램: 디스크에 저장되어 있는 실행 가능한 파일
  • 프로세스: 메모리에 올라가 있는 실행중인 프로그램

프로세스의 구조

  • 하나의 프로세스는 크게 코드영역(code), 데이터 영역(date), 스택 영역(stack), 힙 영역(heap) 4가지로 이루어져 있습니다.

    Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령)
    Data : 전역 변수, 정적 변수, 배열 등 (초기화된 데이터)
    Stack : 지역변수, 매개변수, 리턴 값 (임시 메모리 영역)
    Heap : 동적 할당 시 사용 (new(), mallock() 등)

프로세스 스케줄링

foreground process vs background process

  • foreground process
    • 일반적 프로세스 방법
    • 쉘에서 해당 프로세스 실행을 명령한 후, 종료될 떄 까지 다른 입력을 하지 못하는 프로세스
  • background process
    • 사용자 입력과 상관없이 실행되는 프로세스, 맨 뒤에 & 붙여주면 된다
      find / -name '*.py' > list.txt &
      

프로세스 vs 바이너리

  • 실행파일: 코드 이미지 또는 바이너리
  • 프로세스: 실행 중인 프로그램
    • 가상 메모리 및 물리 메모리 정보
    • 시스템 리소스 관련 정보
    • 스케줄링 단위

명령어

  • ps: 프로세스 상태 확인
    • a옵션: 시스템을 사용하는 모든 사용자의 프로세스 출력
    • u옵션: 프로세스 소유자에 대한 상세 정보 출력
    • x옵션: 터미널에 로그인한 후 실행한 프로세스가 아닌 데몬 프로세스 까지 확인
  • kill: 프로세스 중지시키기
    • 9옵션: 강제 종료 옵션

Tags:

Categories:

Updated: