<aside> ✅ 컴퓨터 구조 (cpu ⇒ 프로세스, memory ⇒ 프로세스, ssd와 hdd ⇒ 프로그램)

Background → 효율성 극대화 (fg, kill, &)

Daemon → 웹 서버, apache (service, kill -9), /etc/init.d에 존재

Cron → 메일 서버의 메일 전송 (송, 수신자 상황 다름)

환경 변수, alias, bashrc 파일 설정 변경

</aside>

1) 컴퓨터의 구조

<aside> ✅ ***1. RAM (Memory) → 정보 저장 (가격이 비쌈, 저장 용량 적음, 속도 빠름) 2. SSD, HDD (Storage) → 정보 저장 (가격이 쌈, 저장 용량 많음, 속도 느림) 3. CPU (Processor) → 빠르게 동작

프로그램 Storage에 올림 (느림) → 사용하는 (실행하는) 프로그램은 메모리에 올림 → 메모리에 올라와 있는 프로그램을 CPU가 읽어서 처리 진행 (빠름)

프로세서 빠르니까, 빠른 메모리에 올라와 있는 프로그램을 사용

</aside>

2) 프로세스 모니터링 (ps, top, htop)

nojeans@ubuntu-22-04:~$ ps aux # 모든 프로세스
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.5 100760 11688 ?        Ss   09:56   0:02 /sbin/init
root           2  0.0  0.0      0     0 ?        S    09:56   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   09:56   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   09:56   0:00 [rcu_par_gp
root           5  0.0  0.0      0     0 ?        I<   09:56   0:00 [slub_flush
root           6  0.0  0.0      0     0 ?        I<   09:56   0:00 [netns]
root           7  0.1  0.0      0     0 ?        I    09:56   0:09 [kworker/0:

nojeans@ubuntu-22-04:~$ ps aux | grep apache # apache 프로세스만 
nojeans     1929  0.0  0.1   6480  2220 pts/0    S+   11:17   0:00 grep --color=auto apache
sudo kill [PID] # 강제 종료 가능
# 안 되는 경우에는 kill -9 이용

<aside> ✅ **[1분 간 CPU 점유율 (100% 계산, 8이면 800% 부하가 걸려 있으며 1개의 CPU가 작동 중이면, 7개의 CPU 대기 타고 있는 것)] [5분 간 CPU 점유율] [15분 간 CPU 점유율]

코어의 개수에 따라서, 의미는 조금씩 달라질 수 있음 (성능 측정)**

</aside>

3) Background Execute

nojeans@ubuntu-22-04:~$ nano # 실행 파일 생성

Use "fg" to return to nano.

[1]+  Stopped                 nano
nojeans@ubuntu-22-04:~$ jobs # 잠시 일시정지한 파일 목록 확인 
[1]+  Stopped                 nano # "nano"라는 프로그램이 백그라운드로 실행
nojeans@ubuntu-22-04:~$ fg # foreground로 올리기 -> 다시 파일 실행 시킴
(background -> foreground로 변경)

nojeans@ubuntu-22-04:~$ vim

[2]+  Stopped                 vim
nojeans@ubuntu-22-04:~$ jobs
[1]-  Stopped                 nano
[2]+  Stopped                 vim

nojeans@ubuntu-22-04:~$ nano

Use "fg" to return to nano.

[3]+  Stopped                 nano
nojeans@ubuntu-22-04:~$ jobs
[1]   Stopped                 nano
[2]-  Stopped                 vim
[3]+  Stopped                 nano

## 다른 프로세스 실행시키고 싶은 경우 ##

nojeans@ubuntu-22-04:~$ fg %2 # fg %[프로세스 번호]
vim

## 프로세스 강제적으로 죽이고 싶은 경우 ##

nojeans@ubuntu-22-04:~$ kill -9 %2 # kill -9 %[프로세스 번호]

[2]+  Stopped                 vim
nojeans@ubuntu-22-04:~$ jobs
[1]   Stopped                 nano
[2]+  Killed                  vim
[3]-  Stopped                 nano