프로세스
-
[Linux] 2-1. 프로세스와 스레드(Process & Thread)CSE/Linux 2015. 8. 12. 16:44
2.3 시스템 호출과 프로세스의 상태 전이 본 절에서는 일반적인 입출력 시스템 호출 및 인터럽트 처리와 관련된 프로세스의 상태 변이를 알아보기 위해 프로세스의 시스템 호출부터 복귀까지의 과정을 입출력인 디스크 파일 입력의 예로 설명하도록 하겠습니다. 사용자가 요구한 입출력이 완료되기까지는 커널 내의 관련 시스템 호출 처리 루틴뿐만 아니라 디바이스 드라이버의 주축인 인터럽트 처리 루틴이 서로 유기적인 관계를 맺고 동작합니다. 이 과정에서는 입출력 완료 대기에 의한 프로세스 대기 상태로의 전이, 문맥 교환이 발생하고, 디스크 입출력을 최소화하기 위한 커널의 버퍼링 기법도 등장합니다. 이러한 처리 과정은 커널의 두 가지 대표적 구성 요소인 시스템 호출과 인터럽트 처리의 관계를 이해하는 중요한 부분이 됩니다. ..
-
[Linux] 2. 프로세스와 스레드(Process & Thread)CSE/Linux 2015. 8. 11. 19:46
프로세스(Process)란 일반적으로 현재 실행 중인 프로그램을 말하며 태스크(task)라는 일반적인 용어로도 사용됩니다. 실행 중인 프로그램의 의미를 가지는 프로세스는 실행되는 동안 커널이 가진 자원(CPU, Memory, Devices, Files)을 독자적으로 차지해야 할 경우가 많습니다. 따라서 프로세스는 항상 커널의 자원을 차지하기 위해 경쟁하고 커널은 이들에게 효율적으로 자원을 스케줄링하여 할당하고 회수하는 역할을 합니다. 프로세스는 커널이 가진 여러가지 자원의 할당 및 사용을 위해 커널 함수를 호출해야 하는데, 이러한 커널 함수들을 일반적으로 시스템 호출(System call)이라 합니다. 따라서 동작 중인 컴퓨터 시스템은 커널과 프로세스 간의 관계에 의해 모든 것이 결정되는 것이라 볼 수 ..