이런식으로, 컴파일이 된 이진 파일이 생성된다
※ 사실 문자 그대로의 설명은 잘 와닿지 않는다.
ps(process status) 는 리눅스의 사용자 명령어(user command)이다.
대충 터미널에다 치는 그런 명령어를 의미한다. 어렵게 생각하지 말자
user space, 즉 사용자가 접근할수 있는공간 (흔히 클릭으로 들어가는 폴더, 실행파일들 등등)
user space에서 현재 실행중인 프로세스를 보여준다
※ 이게 무슨소리인가 싶을것이다.
우선 쉘이라는 개념에 대해 먼저 알 필요가 있을거같다.
- 프로그램은 이렇게 실행된다
- 응용프로그램 -> 쉘 -> 커널 -> 하드웨어
- 쉘은 명령어를 해석하고, 운영체제에 전달, 그리고 그 결과값을 출력해준다- 어차피 ps명령어는 커널에서 실행되는 프로세스를 그대로 출력하는것이기 때문에
쉘과는 관련이 없다. 해석할 명령어가 따로 없기 때문.
각 항목의 의미를 알아보자
- S : 현재 실행중인 프로세스의 상태
- S : sleeping
- R : running
- T : stopped- PRI
- CPU의 우선권을 얼마나 가질수 있는가
- 값이 높을수록 더 적은 우선권을 가진다- UID
- 유저 id- PPID
- parent process의 id- C
- 프로세스의 CPU 사용량- NI (Niceness level)
- 19에서 -20사이의 값을 가진다
- 더 높은 값을 가질수록 CPU time을 다른 프로세스들에게 잘 양보해준다- SZ
- 프로세스의 크기 (KB단위)
- 이 프로세스를 위해 사용되고있는 메모리의 양- WCHAN
- 왜 프로세스가 잠들어있는지를 보여준다
- 어떤 프로세스가 어떤 커널의 함수에 잠들어있는지 이름을 보여준다- ADDR(process memory address) and F (flag)
- 더 이상 쓰이지 않는다..
뭐 사실 이 내용들이 그리 중요한지는 모르겠다. 대충 이런것들이 있다 정도로 넘어가자.
'-fa' 옵션
- 좀 더 사람에게 친화적인(?) 옵션이다 ('-a' 옵션보다는...)
- UID값 대신에 username이 표시된다
- CMD 열에는 완전한 명령 줄이 나열된다
더 많은 정보를 위해서는 터미널에 'man ps'를 입력해보자...
기본적인 ps명령어에 대한 설명이었을뿐, 큰 의미는 없다.