프로세스 식별자(PID)

Learning stuff 2013. 4. 11. 12:55

PID는 Process IDentifier로 프로세스 식별자라 하며 유닉스 커널과 같은 운영체계에서 각 프로세스나 서비스를 식별하기 위해 할당하는 고유한 번호이다. PID는 "fork"라는 시스템 호출에 의해 반환되며, 주어진 프로세스에 어떤 행동을 이행하기 위해 wait()나 kill()등이 전달될 수있다.

 

리눅스의 사용자가 하나의 명령어를 사용하기 위해 쉘 프롬프트에서 사용하고자 하는 어떤 명령을 입력하고 Enter를 치면 쉘은 그 이름이 먼저 쉘에서 제공되는 내부 명령인지 확인하고, 내부 명령으로 확인이 된다면 그것을 자체적으로 실행한다. 하지만 내부 명령이 아니라면 먼저 PATH환경 변수에 지정된 디렉토리를 검색해서 그 파일이 있는지 확인을 한 뒤 만약 그것이 있다면 그 파일을 실행하도록 커널에게 지시한다.

 

그러면 커널은 그 파일의 접근 권한과 사용자를 비교해서 실행 권한이 있는지 없는지 확인한 후 없다면 사용할 수 없음을 쉘에 보낸다. 그런데 비교해서 확인한 후 실행할 수 있다면 먼저 그 실행 파일의 내용을 메모리에 불러들이는 동시에 고유의 번호를 붙이는데, 이것을 앞서 언급한 프로세스 식별 번호(PID 번호 - Process IDentity number) 라고 한다.

 

이제 실행되고 있는 하나의 파일은 프로세스라고 한다는 것을 알고 있다. 이 번호는 각 프로세스들의 시작 순서에 따라 차례로 붙여진다. 이번호는 커널 측면에서 본다면 프로세스 관리에, 즉 다중 작업에 관계가 있다. 다시 말하자면 프로세스 식별 번호(PID 번호)는 사용자 측면에서 본다면 프로세스 중지 명령에서 사용된다.


출처 : 

http://blog.naver.com/PostView.nhn?blogId=bestheroz&logNo=67071284&parentCategoryNo=&categoryNo=13&viewDate=&isShowPopularPosts=false&from=postView

'Learning stuff' 카테고리의 다른 글

git 관련  (0) 2014.07.15
WIDE/IO 에서 512bit 접근의 의미  (0) 2013.04.19
프로세스 정의, 정리(개념 및 종류)  (0) 2013.04.10
JIT  (0) 2013.03.05
CPU Bound, I/O Bound, Memory Bound, Cache Bound  (0) 2013.03.05