1-1 유닉스에서 프로세스
유닉스 프로세스는 필요에 따라 다른 프로세스를 생성한다.
다른 프로세스를 생성한 프로세스를 부모 프로세스라고 하고 생성된 프로세스를 자식 프로세스 라고한다.
각 프로세스는 고유의 번호 PID를 가지고 있다.
유닉스가 부팅 될 때 모든 프로세스의 조상 프로세스인 init 프로세스가 있는데 고유번호는 1번이다.
1-2 프로세스
OS에서 실행중인 프로그램을 말한다. 디스크에 있는 프로그램 명령어는 실행이 되면 메인 메모리로 load되어 프로세스가 된다.
1-3 데몬 프로세스
유닉스 커널에 의해서 실행되는 프로세스로 특정한 서비를 제공하기 위해 존재한다.
예를 들어 웹 서비스를 제공하기 위해 httpd 프로세스가 동작해야한다.
httpd 프로세스를 데몬 프로세스라한다.
데몬은 평소에 대기 상태로 서비스의 요청을 기다리고 있다가 요청이 들어오면 해당 서비스를 제공한다.
1-4 부모 프로세스
- 부모 프로세스는 다른 프로세스를 생성한다.
부팅할 때 실행되는 1번 프로세스를 제외한 모든 프로세스는 부모 프로세스를 가진다.
1-5 자식 프로세스
부모 프로세스에 의해 만들어지는 프로세스이다.
자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료한다.
예로 사용자가 vim을 실행하면 셸이 vim을 생성하는데 셸이 부모 프로세스이고 vi가 자식 프로세스이다.
사용자가 vi를 종료하면 다시 부모 프로세스인 셸로 돌아간다.
1-6 고아 프로세스
자식 프로세스가 실행동안 부모 프로세스가 종료하면 자식은 고아가 된다.
이 경우 1번 프로세스가 새로운 부모 프로세스가 되어 고아 프로세스들이 작업을 종료할 수 있게 도와준다.
1-7 좀비 프로세스
자식이 죽을 때 종료가 될 때 결과를 부모 프로세스에 알려줘야 한다. 하지만 결과를 부모에게 알려주지 않고 자식 프로세스가 죽으면 좀비 프로세스가 된다.
잘못된 정보를 가지고 있는 좀비 프로세스가 많아질수록 시스템이 느려진다.
'전공 > 시스템 프로그래밍(운영체제)' 카테고리의 다른 글
3. System Call: read, write (0) | 2021.10.16 |
---|---|
2. System Call: open (0) | 2021.10.12 |
1. 시스템 구조와 시스템 라이브러리 (0) | 2021.10.12 |
Linux3) 리눅스 사용자 계정 (0) | 2021.10.12 |
Linux1) 리눅스 파일 (0) | 2021.10.12 |