15일차는
- 프로세스 제어 및 작업관리
- 아카이브와 압축에 대해서 학습하였다.
1. 프로세스 제어 및 작업관리
(1) 프로세스 및 관련 명령어
- 운영체제는 PR(priority) List 라고 해서 프로그램을 동작 시키기 위한 순서가 존재한다.
NICE 정보를 계산해서 실질적으로 동작시킴. (NICE : 프로세스 간 우선순위)
- 부모 프로세스가 자식 프로세스를 생성 및 Run 시키고 자신은 sleep 상태로 바뀜 (interrupt)
Run 하게 되면 PID Number와 메모리영역을 할당 받는다.
Exit 하게 되면 할당 받는 것들을 반납
- 고아프로세스 : Exit 명령을 내렸지만 사라지지 않은 상태에서, 부모 프로세스가 먼저 사라진 프로세스. PID 및 메모리를 회수 및 컨트롤 할 수 있는 방법이 없음. ⇒ 현재는 대부분 해결 된 상태. 부모의 부모프로세스가 챙겨갈 수 있다.
- 좀비프로세스 : 프로세스 오류로 인해 Exit 명령에도 사라지지 않음. 흐름이 다음으로 넘어가지 못함. defunct 상태. 메모리 자원 낭비. 이것이 많아지면 껐다 켜야함.
명령어
- ps -ef : 부모 자식 프로세스 확인용
- ps aux : 하나의 프로세스에 대한 상태를 확인하는데 유용
- top : 운영체제의 현재 상태를 모니터링

[root@localhost ~]
root 1037 1 0 09:41 ? 00:00:00 /usr/sbin/sshd -D
root 1062 1037 0 09:41 ? 00:00:00 sshd: root@pts/1
[root@localhost ~]
1037
[root@localhost ~]
lrwxrwxrwx. 1 root root 0 4월 28 09:41 /proc/1037/exe -> /usr/sbin/sshd
[root@localhost ~]
openssh-server-7.4p1-21.el7.x86_64
[root@localhost ~]
Name : openssh-server
Version : 7.4p1
Release : 21.el7
...
[root@localhost ~]
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/lib/systemd/system/sshd-keygen.service
...
[root@localhost ~]
[root@localhost ~]
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1037 root cwd DIR 8,2 258 64 /
sshd 1037 root rtd DIR 8,2 258 64 /
sshd 1037 root txt REG 8,2 852856 203939834 /usr/sbin/sshd
sshd 1037 root mem REG 8,2 61560 201490822 /usr/lib64/libnss_files-2.17.so
sshd 1037 root mem REG 8,2 68192 201513539 /usr/lib64/libbz2.so.1.0.6
sshd 1037 root mem REG 8,2 99944 201513608 /usr/lib64/libelf-0.176.so
...
[root@localhost ~]
1037
1062
- (참고) var 디렉토리 : 로그 파일 분석에 사용
[root@localhost ~]
drwxr-xr-x. 20 root root 282 4월 19 17:36 /var
[root@localhost ~]
lrwxrwxrwx. 1 root root 6 4월 19 17:21 /var/run -> ../run
[root@localhost ~]
drwxr-xr-x. 42 root root 1280 4월 28 09:41 /run
(2) 시그널
- 운영체제에서 특정 이벤트가 발생하였을 때, 신호를 보내서 알려주는 것
- 글자를 입력하는 순간에도 시그널을 주고 받는다.

- 시그널은 프로세스를 제어하기 위해 사용됨.
- 시그널 종류
[root@localhost ~]
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
(3) job control
- foreground : task가 실행 중 터미널을 물고 있음
[root@localhost ~]
[2] 4491
[root@localhost ~]
[1]+ Stopped vim aaa
[2]- Running sleep 60 &
[root@localhost ~]
sleep 60
- background : task가 실행 중에도 현재 터미널을 사용할 수 있음
[root@localhost ~]
^Z
[1]+ Stopped sleep 300
[root@localhost ~]
[1]+ Stopped sleep 300
[root@localhost ~]
[1]+ sleep 300 &
[root@localhost ~]
[1]+ Running sleep 300 &
[root@localhost ~]
sleep 300
[root@localhost ~]
sleep 300
^C
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[1]+ Stopped vim aaa
[root@localhost ~]
root 4439 0.0 0.2 149864 5532 pts/1 T 12:06 0:00 vim aaa
root 4474 0.0 0.0 116972 1016 pts/1 S+ 12:07 0:00 grep --color=auto vim aaa
[root@localhost ~]
[1]+ Stopped vim aaa
- task의 종료는 foreground 상태에서 ctrl+c 또는 job control number를 사용해 kill %1, kill %1 등으로 종료
2. 아카이브, 압축
(1) 아카이브
아카이브의 특징
- 같은 경로에 아카이브를 풀면 기존이랑 같은 inode를 갖는다.
- 아카이브는 압축처럼 묶어주는데, 경로같은 추가적인 정보도 같이 포함되기 때문에 기존 파일들보다 용량이 커진다.
(C : 다른 경로 지정 옵션)
[root@localhost ~]
aaa
bbb
[root@localhost ~]
ls: cannot access aaa: 그런 파일이나 디렉터리가 없습니다
ls: cannot access bbb: 그런 파일이나 디렉터리가 없습니다
[root@localhost ~]
2621 -rw-r-----. 1 root root 2259 4월 28 12:38 /tmp/aaa
2623 -rw-r-----. 1 root root 2259 4월 28 12:38 /tmp/bbb
(2) 압축, 해제
[root@localhost ~]
-rw-r-----. 1 root root 2259 4월 28 12:38 aaa
-rw-r-----. 1 root root 2259 4월 28 12:38 bbb
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost php]
php-8.2.5 php-8.2.5.tar.bz2 php-8.2.5.tar.gz php-8.2.5.tar.xz
[root@localhost php]
[root@localhost php]
[root@localhost php]