프로그램
은 디스크에 저장되어 있음. 정적. 엔터티(Entity)
프로세스
는 메모리에서 이루어짐. 모든 작업은 메모리에서 이루어진다.
- 정적으로 있던 개체가 메모리에 올라감. 프로세스는 동적인 개체.
- OS(운영체제)가 디스크>메모리로 끌고 올라감.
- 어떤 프로세스가 돌아가기 위해서는 부모 프로세스가 있어야 한다. 프로그램 실행시키면 부모 프로세스 먼저.
프로세스 : 실행된 프로그램. 부팅 과정을 거쳐 init이라는 최초의 사용자 프로세스 생성.
- 부모 프로세스 : 다른 프로세스 생성할 수 있음.
- 자식 프로세스 : 부모 프로세스로부터 만들어짐.
- 데몬 프로세스 : 일반적으로 사용자가 직접 실행x, 커널에 의해 구동되며 백그라운드에서 특정 서비스를 제공하기 위해 구동. ex) 웹서비스는 httpd 데몬을 실행하여 서비스 시작. 파일 이름 끝에 d붙인다.
- 고아 프로세스 : 자식 프로세스 종료 후 부모 프로세스로 돌아가는데, 부모 프로세스가 그 전에 끝나버리는 경우를 말한다. 그럴땐 init프로세스가 해당 프로세스 종료해준다.
- 좀비 프로세스 : 이미 종료된 프로세스인데 리소스 반환을 하지 못한 상태로 남아 있는 프로세스. kill -9 해줘야함. 자원 반환해야 컴퓨터 상태 좋음.
PID : OS가 할당하는 process identification number > a number used by most operating system kernels—such as those of Unix, macOS and Windows—to uniquely identify an active process.
PPID : 자식 프로세스에게 할당 되는 아이디
ps -ef 명령어로 현재 돌아가는 프로세스 볼 수 있음.
- TCP : 신뢰성 있다. 대신 데이터 앞에 헤더가 많이 붙음. 그래서 시간 당 갈 수 있는 데이터 양은 일정하니깐 상대적으로 느림.
- UDP : 빠른 대신에 데이터 깨질 수 있음. 그래서 주로 스트리밍 데이터 보낼 때(동영상 음악 등)
vi 편집기 연 상태에서 ls -al 해 보면
swp가 생김.
리눅스는 멀티유저 가능해서 수정할 때 저런 식으로 생김.
(여러 유저가 동시에 수정하고 있을 수 있으니깐)
저장하고 나가면 swp 사라짐.
vi 편집기로 vi tuesday를 하고 편집기가 열린 상태에서
ps -ef | grep tue
를 치면
이렇게 뜨고
을 하면
이런 식으로 swp파일 남아있음.
다시 vi tuesday를 해보면
이렇게 주의하라는거 뜬다.
Recover 선택하면
새롭게 swo파일도 생성이 된 것을 볼 수 있다.
열었던 vi편집기(swo)를 정상 종료하면 ls -al을 다시 했을 때
이렇게 swo는 사라진 채로 나온다.
sleep 100(sleep명령어는 그냥 잠깐 작동 안 하게 쉬는 명령언데 kill명령어 실습을 위해서 써봄)
후에 kill -15하면 저렇게 terminated 뜸.
백그라운드에서 실행하려면 뒤에 & 붙이면 되고 jobs를 쳐서 상태 확인할 수 있다.
다시 백그라운드에서 포그라운드로 돌리고 싶으면
이런 식으로 fg에다가 뒤에 1을 붙이는건 4891 앞에 숫자임.