본문 바로가기
  • 그라데이션
운영체제/Linux

[Linux_개념] 프로세스 (Process)

by 콩리토 2023. 2. 13.
반응형
이 글에서 사용된 명령어와 예시는 CentOS8을 기준으로 작성된 것입니다.

 


 

프로세스(Process)란?

 저장된 프로그램이 메모리에 로딩되어 활성화된 것으로 하드 디스크에 저장된 실행코드(프로그램)가 메모리에 로딩되어 활성화 되는 것. 즉 프로세스는 실행 중인 프로그램이나 파일을 뜻함.

 

[정리]

 모든 프로그램은 실행될 때 하나 이상의 프로세스를 갖게 되고, 하나의 프로세스에는 여러 명령어와 카운트, CPU 레지스터, 그리고 루틴 인자, 복귀 주소, 저장된 변수 등의 테이터 스택이 포함되어 있다.

 각 프로세스는 고유의 권한과 책임을 가지고 서로 통신하고, 시스템에서 동작중인 하나의 프로세스가 잘못된 연산을 수행하여 에러를 일으키더라도 다른 프로세스는 정상적으로 작동하며, 개별 프로세스는 자신의 가상 주소 공간에서 실행하고 커널이 제공하는 인터페이스를 통해서만 다른 프로세스와 연동할 수 있으며, 프로세스는 여러 가지 자원을 사용한다.

 

 프로세스는 해당 명령을 수행하기 위해 운영체제에 따라 CPU를 점유할 수 있는데 명령어와 데이터를 저장하기 위해 물리적인 메모리를 사용하고 운영체제의 제어를 받으면서 실행(running), 대기(waiting), 중단 (stopped), 좀비(zombie) 중 한 상태에 있게 된다.

 

* 프로세스 명령어

ps : 현재 터미널에서 실행된 프로세스의 간략한 정보 확인 (자신을 포함하여 자신이 실행한 프로세스를 확인)

 

<ps 옵션>

-e : 모든 프로세스 리스트 출력

-f : 프로세스 시작시간, 부모 ID, 프로세스에 관련된 사용자 ID, 명령 이름과 가능한 매개변수 등 모든 정보를 출력

-l : 현재 터미널에서 실행된 프로세스의 자세한 정보 확인

-p(pid) : 지정된 프로세스에 대한 정보를 출력

-t(tty) : 지정된 터미널에 연관된 프로세스에 대한 정보 출력

-u(uid) : 지정된 사용자에 연관된 프로세스에 대한 정보 출력

-a : 다른 사용자의 프로세스 상태도 표시

-x : 화면에 보이지 않는 프로세스까지 모두 표시

 

<프로세스 상태>

 

* swap 파티션이란?

디스크이면서 메모리처럼 사용 가능한 파티션. CPU가 처리하지는 않으며, 지금 처리하지 않아도 되는 프로세스이거나 좀비상태인 프로세스는 swap 파티션으로 이동된다.

 

<ps -ef 출력 화면>

명령어 결과 해석
UID 프로세스를 실행시킨 사용자, 주인
PID 프로세스 ID, 식별 번호
PPID 부모 프로세스 ID
C 현재 사용되지 않는 필드
STIME (Start Time) 프로세스 실행 시작 시간
TTY 제어 터미널, 프로세스가 실행된 터미널
TIME CPU 사용 누적 시간
CMD 명령어 (옵션 + 인자)

 

<프로세스 관련 명령어>

* sleep : 통신 및 프로세스 처리 중 잠시 대기 상태를 만들기 위해 사용하는 명령어

* jobs : 작업의 상태를 표시하는 명령어. 현재 쉘 세션에서 실행시킨 bg(백그라운드)작업의 목록이 출력

* kill : 프로세스를 종료시킬 수 있는 명령어. kill명령은 사용자가 프로세스에 일정한 신호를 보내서 프로세스를 종료시킴

(예시) killall -9 sleep(혹은 프로세스ID) : sleep 이란 이름을 갖고 있는 모든 프로세스를 종료

 

[fg(foreground)]

: 쉘 프롬프트에서 명령어를 입력해서 프로세스가 실행 중일때 쉘 프롬프트를 사용할 수 없다. 즉 화면 맨 앞에 있는 프로세서이며, fg로 실행한 터미널을 점유하고 있어, 다른 동작을 하지 못한다.

 

* Ctrl + c 는 프로세스 종료를, Ctrl + z 는 fg를 bg로 전환

 

[bg(background)]

: 쉘 프롬프트에서 명령어를 입력해서 프로세스가 실행 중일때 쉘 프롬프트를 사용 할 수 있다. 즉 프로세스가 실행 중이지만 일반적으로 화면에는 나타나지 않고 뒤에서 실행되어 프로세스를 실행한 터미널로 다른 작업이 가능하다.

 

(예시) 백신 프로그램, 서버 데몬

 

* Ctrl + c 는 프로세스 종료되지 않고 종료하려면 fg로 변환 후 종료 가능

 

[데몬]

: 시스템/서비스를 위해서 bg에서 동작하는 프로세스. 커널상에서 bg모드로 작동하여 비활성화 상태에서 요청이 있을 때만 동작하는 프로세스이며, 작동하지 않고 있을 때는 CPU에 부하를 주지 않지만 시스템의 자원을 많이 사용하게 되는 서버 프로세스.

728x90

댓글