[리눅스마스터 2급 2차] 프로세스

ssook·2021년 6월 28일
0

✋🏻 예전에 리눅스마스터 2급 땄을 때 기술블로그에 작성했던 내용을 옮겨온 것입니다.

✅ 프로세스의 개요

📍 프로세스(process)란?

  • 실행중인 프로그램
  • 실행 시에 번호(PID)가 할당되어 관리
  • 사용자 입력에 관계없이 실행되는 백그라운드 프로세스 = 후면 처리
  • 명령 입력 후 수행종료까지 기다려야 하는 포어그라운드 프로세스 = 전면 처리

📍 프로세스(process)의 생성

  • 하나의 프로세스가 다른 프로세스를 실행하기 위한 시스템 호출방법에는

    fork

    새로운 프로세스를 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행하는 형태

    기존의 프로세스는 그대로 실행, 원래의 프로세스와 똑같은 코드를 기반으로 실행

    exec

    원래의 프로세스를 새로운 프로세스로 대체하는 형태

    호출한 프로세스의 메모리에 새로운 프로세스의 코드로 덮어 씌움.

  • 커널이 init 프로세스라는 최초의 프로세스를 발생.

    init은 PID 1번을 할당 받음. (=모든 프로세스의 부모 프로세스)

    pstree 명령으로 확인해보면 init이라는 프로세스가 가장 왼쪽에 위치하고 있으며,

    모든 프로세스의 부모 프로세스임을 나타냄.

  • 보통 명령어를 내리면 fork 형태로 수행됨.

    명령어 앞에 exec를 붙이면 기본 프로세스가 교체되며 새로운 프로세스가 할당됨.

📍 프로세스(process)의 종류

  • 보통 셸에서 명령을 실행하면 포어그라운드 프로세스임.
  • 백그라운드 프로세스는 뒤에서 실행시키는 방식으로, 프로세스 실행 명령 뒤에 &만 추가로 붙여 실행하면 됨. → 다중 작업을 수행할 때 유용

📍 프로세스(process)의 종류

  • 작업의 상태는 jobs라는 명령으로 확인 가능

    명령을 실행하면 +, - 기호가 표시되는 작업이 있음.

    ➕ : 주로 처리되는 프로세스, 보통 가장 최근 프로세스

    ➖ : + 기호가 붙은 작업의 다음 우선순위

[백그라운드 전환]

  • 포어그라운드 프로세스를 백그라운드 프로세스로 전환하기 위해서는 작업 중인 프로세스를 대기시켜야 하는데, CTRL + Z를 누르면 됨.
  • 일시적으로 중단된 상태에서 'bg'라는 명령을 입력하면 백그라운드 프로세스로 전환

[포어그라운드 전환]

  • 백그라운드 프로세스를 포어그라운드 프로세스로 전환하기 위해서는 fg라는 명령어를 사용
profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글