프로세스 (Process)

Seong Woong Kim·2023년 1월 10일
0

Linux / Ubuntu

목록 보기
10/14

💡 이 문서는 한빛미디어 - 이것이 우분투/리눅스다를 기반으로 공부하면서 체화를 위해 정리하는 글입니다. 💡



프로세스


  • 하드디스크에 저장된 실행 코드(프로그램)가 메모리에 로딩되어 활성화된 상태

    • 디스크(보조기억장치)에 있던 프로그램을 사용하기 위해 운영체제가 메모리(주기억장치)로 옮긴 것을 의미
  • 어떤 결과를 위해 프로그램을 실행하는 행동을 의미

  • 눈에 보이는 프로세스 / 눈에 보이지 않는 프로세스로 구분



프로세스 관련된 필수 개념 및 용어


1. 포그라운드 프로세스 (Foreground Process)

  • 하드디스크에 저장된 프로그램을 실행했을 때 화면에 나타나 사용자와 상호 작용하는 프로세스

  • 사용자와의 대화창구인 표준입출력장치 즉 터미널과 키보드를 통해 대화

  • 즉, 화면에서 실행되는 것이 보이는 프로세스

  • ex : Firefox Web page, Internet, Kakaotalk, 그림판


2. 백그라운드 프로세스 (Background Process)

  • 실행은 되었지만 화면에 나타나지 않고 뒤에서 실행되는 프로세스

  • 입력장치에 대해 터미널과의 관계를 끊은 모든 프로세스를 의미한다. 즉 사용자에게 무언가를 키보드를 통해 전달받지 않고 스스로 동작하는 프로세스

  • 눈에 보이지 않지만 실행되고 있음

  • ex : 바이러스 백신, 서버 데몬


3. 프로세스 번호

  • 메모리에 로딩되어 활성화된 프로세스를 구분하려면 각각의 고유 번호가 필요

  • 이렇게 각각의 프로세스에 할당된 고유 번호를 프로세스 번호라고 함

  • 필요한 이유는 활성화된 프로세스를 메모리에서 강제로 제거할 때 프로세스 번호를 사용해야 하기 때문


4. 작업 번호

  • 현재 실행되는 백그라운드 프로세스의 순차 번호를 의미

5. 부모 프로세스와 자식 프로세스

  • 모든 프로세스는 혼자서 독립적으로 실행되는 것이 아니라 부모 프로세스의 하위에 종속되어 실행됨

  • 부모 프로세스를 종료하면 그에 종속된 자식 프로세스도 모두 종료됨.

  • ex : Firefox는 X Windows 프로세스가 구동된 상태에서 실행되어야 함

    • X Windows -> 부모 프로세스 // Firefox -> X Windows의 자식 프로세스




프로세스 관련된 주요 명령


ps

  • 현재 프로세스의 상태를 확인하는 명령어

  • 많은 옵션과 함께 사용할 수 있음

ps
ps -ef | grep {프로세스 이름} 등     # 프로세스의 번호 및 상태 확인


kill

  • 프로세스를 강제로 종료하는 명령어

  • -9 옵션과 함께 사용하면 무조건 프로세스가 종료됨

kill {프로세스 번호}
kill -9 {프로세스 번호}

pstree

  • 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여줌
pstree




[실습 1]. 무한 루프를 두는 프로세스를 중지하기


1. 터미널에서 yes > /dev/null 명령으로 무한 루프를 도는 단순한 프로세스 생성

💡yes 명령어는 단순히 'y' 글자를 화면에 무한 출력
/dev/null은 아무것도 아닌(=아무 반응도 하지 않는) 장치를 말함


2. 새로운 터미널에서 ps -ef | grep yes 명령으로 프로세스 번호 확인

  • ksw → 프로세스의 소유주

  • 186477 → 프로세스 번호

  • 185915 -> 부모 프로세스 번호


3. kill -9 프로세스 번호 명령으로 프로세스 강제 종료




[실습 2]. Foreground → Background → Foreground 프로세스로 프로세스 상황 변경


1. 터미널에서 yes > /dev/null 명령으로 foreground process 생성


2.CTRL+ Z를 눌러 프로세스를 일시 중지시키고, bg 명령으로 잠시 중지된 프로세스를 백그라운드 프로세스로 계속 실행

  • bg 명령은 프로세스를 background로 가동 시킴.


3. jobs 명령을 입력하면 현재 가동 중인 background 프로세스 확인 가능

  • 제일 앞에 나오는 [1]이 작업 번호임

4. [fg 작업번호] 명령으로 다시 foreground 프로세스로 수정

업로드중..




📚 REFRENCE 📚

  1. 이것이 우분투/리눅스다 - 한빛미디어
  2. https://inpa.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EB%8D%B0%EB%AA%AC-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%A0%95%EB%A6%AC
profile
성장과 연구하는 자세를 추구하는 AI 연구개발자

0개의 댓글