메뉴 건너뛰기

XEDITION

Linux

[LINUX] Processes 설명

김병수 2019.10.03 18:28 조회 수 : 9

이 장에서는 Process가 무엇이고 Linux Kernel에서 생성, 관리, 삭제를 어떻게 하는지 설명한다.

참고 : Process = 어플리케이션에서 실행되는 DAEMON으로 보면 될 듯합니다.

 

 

Processes는 operating system에 맞춰 일을 한다. 프로그램은 기계코드 명령어와 DISK에서 실행 할 수 있는 이미지의 데이터 집합이고, 수동적인 엔티티로 컴퓨터 프로그램 동작은 하나에 Process로 할 수 있다.

 

기계코드 명령어들이 processor에 의해 실행될 때 항상 변화하는 동적 엔티티이다. 프로그램 명령어와 데이터 뿐만 아니라 루틴 파라메터, 리턴 주소, 저장된 변수들과 같은 임시 데이터가 들어있는 프로세스 스택 뿐만 아니라 그 process 또한 프로그램 카운터와 모든 CPU레지스터에 포함된다. 현재 실행중인 프로그램 또는 process는 마이크로프로세서에 포함된다.

리눅스는 멀티프로세싱 운영체제이다. process들은 각각 그들의 소유와 책임에 맞게 분리되어 일을 한다. 하나의 process가 crash되면 시스템에 다른 process crash가 일어나지 않을 것이다.

각 개인 process는 자신의 가상 주소공간에서 실행되고 안전한 커널 관리 매카니즘을 제외하고는 다른 프로세스와 함께 상호작용을 할 수 없다.

 

Process의 lifetime 중에 많은 시스템 리소스들을 사용할 것이다. Process는 시스템에서 실행할 때 CPU를 이용할 것이고 명령어와 그 시스템은 물리적 메모리를 사용한다. Process는 파일시스템내에서 파일을 오픈하여 사용할 것이고 직접 또는 간접적으로 시스템의 물리적 디바이스를 사용할 수 있을 것이다. 리눅스는 시스템 리소스들과 프로세스 track을 스스로 유지해야 한다. 리눅스는 시스템에서 이런것 들을 공정하게 관리할 수 있다. 시스템의 물리적 메모리 또는 CPU를 독점한 하나의 프로세스가 있다면 시스템에서 다른 프로세스들에게 공정하지 못 할 수 있다.

위로