[Linux 기초] 16. 프로세스 관리 및 스케줄링
카테고리: LINUX
태그: linux
01. 프로세스 관리
■ ps : 프로세스의 정보 확인
ps [옵션]
| 옵션 | 설명 |
|---|---|
| -a | 프로세스 중에서 제어 터미널을 가지고 있는 목록 출력 |
| -e, -A | 프로세스 전체 목록 출력 |
| -f | PID, PPID 정보를 포함하여 출력 |
| -l | -f 옵션보다 자세한 정보 출력 |
| -u | 사용자 이름과 시작된 시간을 출력 |
| -x | 터미널에 종속되지 않은 프로세스 목록 출력 |
| -U User | 명시한 사용자 계정에 관련된 프로세스 정보를 보여줌 |
| -p PID | 명시한 PID에 과련된 프로세스 정보를 보여줌 |
■ pstree : 프로세스의 상관관계를 계층적으로 확인
$ pstree [옵션]
| 옵션 | 설명 |
|---|---|
| -q | 프로세스를 동작 시킨 명령어 까지 함께 출력 |
| -n | PID 순서대로 정렬하여 출력 |
| -p | PID 정보를 함께 출력 |
| -U | UID 정보를 함께 출력 |
■ top : 시스템의 운용상황/프로세스 상태를 실시간으로 모니터링
-
【요약 영역】

-
【디테일 영역】

영역 설명 PID 프로세스 ID이며 프로세스를 구분하기 위한 고유한 값 USER 해당 프로세스를 실행한 사용자명 PR & NI ㆍ커널에 의해서 스케줄링되는 우선순위
ㆍPR에 영향을 주는 nice라는 값VIRT 프로세스가 소비하고 있는 총 메모리 RES RAM에서 사용중인 메모리의 크기 SHR 다른 프로세스와의 공유메모리(Shared Memory)를 나타냄 %MEM RAM에서 RES가 차지하는 비율을 나타냄 S 프로세스의 현재 상태를 나타냄 TIME+ 프로세스가 사용한 토탈 CPU 시간 COMMAND 해당 프로세스를 실행한 커맨드 -
【옵션】
$ top [옵션]옵션 설명 -a 작업의 실제 물리적 메모리 사용량으로 정렬한다. -c 작업의 CPU 사용량으로 정렬한다. -d Interval top 명령 정보가 갱신되는 시간 간격. 초단위. 기본값 3초.(Interval time) -p PID 특정 PID에 대한 프로세스 정보를 출력한다. 여러 PID를 선택해야 할 경우 -p PID1,PID2,PID3 -u USERNAME 특정 사용자에 관련된 프로세스 정보를 출력한다. 상호 대화형 명령 (키) 설명 s 정보 갱신 시간 간격을 재조정 (Interval time) B 글자 굵기 변경 n 보여지는 최대 작업 수를 재조정 (Maxmum Tasks) m 메모리/스왑 정보 보기 토클링 1 다중프로세스 (SMP) 보기 토클링 | 평균 로드 보기 토글링 t Tasks와 CPU 보기 토글링 u 특정 사용자에 관련된 프로세스 정보를 출력한다. k 특정 PID를 가지는 프로세스에게 kill 시그널을 전달한다. 기본 시그널:15 Terminate r renice 명령으로 프로세스 우선순위를 조정한다. f 출력될 필드를 설정하기 위해 사용한다. o 출력 정렬 우선순위를 설정하기 위해 사용한다. z 색있는 출력을 한다. Shift + P CPU 사용량 순으로 정렬한다. Shift + M 메모리 사용량 순으로 정렬한다. Shift + T CPU를 사용 시간 순으로 정렬한다. q top 명령을 종료한다.
■ signal
-
동작 중인 프로세스에게 전달하는 메시지의 의미를 가지며, 각 메시지마다 프로세스가 수행할 동작이 정의 되어 있다.
-
【signal 종류 확인】
$ kill -l종류 설명 SIGHUP(1) 프로세스 실행 SIGINT(2) 키보드 “ctrl +c(인터럽트)” 기능 수행 → 프로세스 종료 SIGKILL(9) 커널을 통해 직접적으로 프로세스를 종료(강제 종료) → 프로세스가 사용 중이던 데이터를 기록하지 않음 SIGTERM(15) 프로세스를 통해 정상 종료 → 저장 할 데이터가 있을 경우 저장 후 종료
■ kill : 프로세스 종료
$ kill [-signal] [PID]
■ pkill : 프로세스 종료
-
프로세스의 이름을 이용하여 종료할 프로세스를 지정 함
-
같인 이름으로 동작 중인 프로세스를 동시에 제어할 수 있음
-
【pkill : 프로세스 종료】
$ pkill [-signal] [옵션] [프로세스 이름 또는 패턴]옵션 설명 -f 지정한 패턴을 명령어, 경로, 옵션, 인자에서도 검색 -n 패턴과 일치하는 프로세스 중에서 가장 최근에 실행된 하나만 종료 -x 패턴과 정확하게 일치되는 프로세스만 종료
■ killall : 같은 데몬의 여러 프로세스를 한 번에 종료
02. 프로세스 우선순위 관리
■ 프로세스 우선순위
-
여러 개의 프로세스는 CPU를 사용하기 위해 경쟁 하지만 모든 프로세스가 동일한 동작을 하는 것이 아니므로 공평하게 자원을 배분 받지 못 함
-
프로세스의 중요도에 따라 빨리 처리가 되어야 하는 경우 우선순위가 높아지며, 백업, 업데이트, 용량이 큰 프로그램을 다운받을 경우 백그라운드로 동작 시키면서 우선순위를 조정 함
■ PRI(priority)
-
운영체제에서 참고하는 우선순위 값으로 낮을 수록 우선순위가 높다. (범위 0~139)
-
인위적인 조작이 되지 않고, 시스템이 상황에 따라 적절히 부여된다.
■ NI(nice)
-
사용자가 조작하는 우선순위 값으로 낮을 수록 우선순위가 높다. (범위 -20~19)
-
프로세스 우선순위 확인 : ps -el
■ nice : 프로그램을 실행하면 우선순위(nicer값)를 변경
$ nice -n [우선순위 값] [프로그램 이름 또는 PID]
$ nice -[우선순위 값] [프로그램 이름 또는 PID]
■ renice : 실행중인 프로그램의 우선 순위(nice 값)를 변경
$ snice +/- [우선순위 값] [프로그램 이름 또는 PID]
03. 프로세스 실행 관리
■ JOB - 터미널에 의해서 제어되는 프로세스
-
모든 job은 shell에 의해서 작업번호를 부여 받음
-
【jobs - 백그라운드로 실행되고 있는 작업번호 목록 확인】
$ jobs
■ 포그라운드(foreground)
-
일반적으로 프로그램이 실행되는 방식
-
명령이 실행시킨 프로그램 앞에서 실행되는 방식
-
【fg - 백그라운드로 동작중인 프로세스를 포그라운드로 전환】
$ fg <작업 번호>
■ 백그라운드(background)
-
명령이 실행시킨 프로그램 뒤에서 실행되는 방식
-
장시간 동작해야 하는 프로그램은 대부분 백그라운드 방식으로 동작 시킴
-
백그라운드 프로세스는 kill을 사용하여 종료 함
-
【백그라운드로 실행 - 명령어 입력 뒤에 “&”를 붙여서 실행】
$ firefox & -
【bg - 포그라운드로 동작중인 프로세스를 백그라운드로 전환】
$ bg <작업 번호>
■ nohup 명령
-
로그아웃 후에도 프로세스의 동작을 유지해야 하는 경우 사용되며, 대표적으로 백업, 많은 양의 파일을 tar로 압축, wget이나 ftp로 큰 용량의 파일의 다운로드 할 때 사용된다.
$ nohup <실행 명령어>
04. 프로세스 스케줄링
■ at : 한번만 프로세스를 실행
-
/etc/at.allow 파일이 존재하는 경우 /etc/at.deny 파일 존재 유무에 상관없이 /etc/at.allow 파일에 등록된 사용자만 가능
-
/etc/at.deny 파일만 존재하는 경우 /etc/.deny 파일에 등록된 사용자만 사용 불가
-
【at】
$ at [옵션] 시간옵션 설명 -q 작업의 대기 큐 지정 -c 작업 정보 출력 -d 예약한 작업 삭제 -l 큐에 있는 작업 출력 -m 실행한 결과 메일 -f 지정한 파일로부터 작업 읽어옴
■ crontab : 주기적으로 프로세스를 실행
-
관리자가 원하는 작업을 예약해 두고 정해진 시간에 주기적으로 반복하여 실행할 수 있어 주기적인 서버의 백업이나 로그를 관리할 때 유용하다.
-
/var/log/cron 파일을 통해 cron 데몬의 로그를 확인할 수 있고, /var/spool/cron/ 디렉터리 밑에 각 사용자의 사용자명과 같은 이름으로 생성된다.
-
【확인】
$ ps -ef | grep crond $ cat /var/log/cron -
【crontab - 주기적으로 프로세스를 실행】
- /etc/cron.allow, /etc/cron.deny 파일도 at과 같은 원리로 제한이 동작함
$ crontab [옵션]옵션 설명 -u 예약 작업 실행 계정 -l 예약 작업 목록 확인 -r 예약 작업 취소 -e 예약 작업 등록 
댓글 남기기