10-2. 프로세스의 현재 상태 확인 방법과 후면처리 [LINUX]

2022. 1. 27. 20:05· 현생/TCP 소켓 프로그래밍
반응형

프로세스의 현재 상태를 확인하는 방법은 Process Status의 약자인 ps 명령어를 사용합니다.

 

그냥 ps만 입력하면 다음과 같이 PID, TTY, TIME, CMD를 출력합니다.

    PID TTY          TIME CMD 
    211 pts/4    00:00:00 bash 
    685 pts/4    00:00:00 ps     

 

그리고 ps [옵션] 꼴으로 옵션을 사용할 수 있습니다. 대쉬(-)가 붙거나 붙지 않는 옵션들이 있는데, 이는 Unix98, BSD, GNU 모두 사용법이 다른 옵션들이 있습니다. Unix98에서는 대쉬(-), BSD에서는 대쉬를 사용하지 않고 GNU에서는 대쉬 2개(--)를 사용합니다.

 

먼저 이 시리즈에서 자주 사용하는 "ps au" 명령어의 a와 u는 다음과 같습니다.

a : 현재 터미널의 사용자 고유 프로세스를 출력
u : USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND 필드의 정보를 출력

각 필드들의 의미는 다음과 같습니다.

USER : 사용자 이름
PID : 프로세스 ID
%CPU : 마지막 1분 동안 프로세스가 사용한 CPU 점유율
%MEM : 마지막 1분 동안 프로세스가 사용한 메모리의 점유율
VSZ : 가상 메모리에 적재된 프로세스의 KB 단위 크기
RSS : 프로세스의 실제 메모리의 크기로 KB 단위
TTY : 연결되어 있는 터미널
STAT : 실행되고 있는 프로세스의 상태 *
START : 프로세스의 시작 시간
TIME : 프로세스가 소비한 총 시간
COMMAND : 사용자가 실행한 명령 이름

 

위 필드에서 STAT이 나타내는 상태는 9가지가 있습니다.

D : 디스크 입출력 대기 상태로 인터럽트를 걸 수 없는 상태
R : 실행 중일 경우
S : 짧은 슬립 상태
T : 정지 상태
Z : 좀비 상태
W : 메모리에 상주한 페이지가 없는 프로세스
< : 높은 우선권 프로세스
N : 낮은 우선권 프로세스
L : 페이지가 락이 걸린 상태

다음 장에서 나올 좀비 프로세스의 경우 Z가 표시됩니다.

 

그리고 Unix98에서 CPU사용률과 실행중인 프로세스 확인에 많이 사용되는 ps -ef의 옵션인 -e와 -f입니다.

-e : 커널 프로세스를 제외한 모든 프로세스를 출력
-f : 풀 포맷으로 출력

 

 

다음은 후면처리입니다. 지금까지 일반적으로 사용하던 모든 명령어는 전면처리를 통해 이루어졌습니다.

전면처리는 명령어가 전면에서 실행되고 명령어 실행이 끝날 때까지 쉘이 기다리기에 한 순간에 한 명령어만 입력할 수 있습니다. 

후면처리는 명령어가 후면에서 실행되기에 다른 작업을 동시에 수행할 수 있습니다. 명령어 뒤에 &를 붙이면 됩니다. (ex: ./a.out &)

#include<stdio.h>
#include<unistd.h>

int main(){
    printf("1");
    sleep(10);
    printf("2");
    return 0;
}

위의 코드를 후면에서 실행시키면, 쉘 위에서 1을 출력하고 다시 명령어를 입력할 수 있는데, 10초 후에 2가 출력되는 것을 볼 수 있습니다. 물론 전면에서 실행시키면 1을 출력하고 아무 것도 못하다가 10초 후에 2를 출력하고 명령어를 입력할 수 있는 상태가 됩니다.

반응형

'현생 > TCP 소켓 프로그래밍' 카테고리의 다른 글

10-4 시그널 핸들링 - signal [C][LINUX]  (0) 2022.01.27
10-3 좀비 프로세스 해결법 [TCP/IP][C][LINUX]  (0) 2022.01.27
10-1. 다중접속서버의 필요성과 멀티프로세스 [TCP/IP][C][LINUX]  (0) 2022.01.26
9-5 Nagle 알고리즘과 중단하는 소켓의 옵션 [TCP/IP][C][LINUX]  (0) 2022.01.25
9-4 이미 할당된 PORT번호에 재할당하는 소켓의 옵션 [TCP/IP][C][LINUX]  (0) 2022.01.25
'현생/TCP 소켓 프로그래밍' 카테고리의 다른 글
  • 10-4 시그널 핸들링 - signal [C][LINUX]
  • 10-3 좀비 프로세스 해결법 [TCP/IP][C][LINUX]
  • 10-1. 다중접속서버의 필요성과 멀티프로세스 [TCP/IP][C][LINUX]
  • 9-5 Nagle 알고리즘과 중단하는 소켓의 옵션 [TCP/IP][C][LINUX]
푸더기
푸더기
푸더기의 다사다난한 블로그입니다
푸더기
푸더기와 푸닥푸닥
푸더기
전체
오늘
어제
  • 분류 전체보기 (237)
    • 현생 (96)
      • Flecs (Entity Component Sys.. (1)
      • TCP 소켓 프로그래밍 (43)
      • 백준 온라인 저지 (22)
      • 후기 (5)
      • 기록 (1)
      • spring boot (2)
      • 임베디드 (13)
      • 리눅스 커널 (9)
    • 학교강의필기장 (132)
      • 현대음악 (17)
      • 알고리즘 (7)
      • 운영체제론 (20)
      • 컴퓨터구조 (24)
      • 컴퓨터네트워크 (16)
      • 암호학 (16)
      • OOP (12)
      • 프로그래밍언어론 (12)
      • 고전음악 (8)
    • 잡탕 (9)
      • 리뷰 (1)
      • 군대 (2)
      • 맛집 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

태그

  • 소켓 프로그래밍
  • 윤성우
  • Linux
  • 다중접속서버
  • C++
  • OS
  • 운영체제론
  • C
  • 컴퓨터구조
  • TCP
  • 열혈 TCP/IP 소켓 프로그래밍
  • 백준
  • 프로세스
  • 이분탐색
  • 소켓프로그래밍
  • TCP/IP
  • 인턴
  • 암호학
  • 알고리즘
  • dp
  • UDP
  • MIPS
  • ip
  • 컴퓨터 네트워크
  • 쓰레드
  • 현대음악
  • 컴퓨터네트워크
  • CS
  • 맛집
  • 컴퓨터사이언스

최근 글

hELLO · Designed By 정상우.v4.2.2
푸더기
10-2. 프로세스의 현재 상태 확인 방법과 후면처리 [LINUX]
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.