시스템 호출은 프로세스와 관련된다. 프로세스는 시스템 자원에 접근할 경우 커널에게 요청하기 위해시스템 호출을 사용하기 때문이다.
이때 시스템 호출을 추적하면 프로세스 진행상황을 지켜 볼 수 있다. 그러나, 시스템 호출은 단순하게 처리되지 않는다.
하나의 명령어를 해석하고 처리하여 결과를 출력하기 까지는 수 많은 시스템 호출과 함수들의 실행과정을 거치게 된다.
이를 추적하면 프로세스의 진행 상황을 파악 할 수 있다. 프로세스는 서비스에 응답하기 위해 시스템 호출(system call)을 사용한다.
불필요한 보통 시스템 호출은 많은 CPU 부하를 유발한다. 만약, CPU에 많은 부하가 걸린다면 시스템 호출 자체는 정상적이었으나,
호출 처리가 비정상적이라고 볼 수 있다. 시스템 호출은 단순한 코드에 지나지 않지만 요청을 실행 하거나 요청된 내용이 실행될 경우에는 커널에
입력됨으로써 CPU 사용에 부하를 주게 된다. 보통 CPU의 부하는 주로 작은 I/O 처리를 한꺼번에 많이 하는 경우와 입력
(디스크에서 데이터를 읽어오기)을 하는 경우에 많은 소비를 한다. 인터럽트란 하나의 프로그램 실행을 하드웨어적인 방법으로
중단하고 후에 재개할 수 있도록 다른 프로그램의 실행으로 옮기는 것이다. 어떤 프로그램의 실행 중에 외부로부터의 몇 가지 사상(event)에
의하여 그 프로그램의 실행이 일시 정지되어(Suspended), 그 사상에 대응한 다른 프로그램이 먼저 실행되는 것을 인터럽트라 한다.
인터럽트 되어 실행된 프로그램이 완료되면 원래 프로그램의 실행이 중단점으로부터 재재된다. 이 인터럽트는 하나의 명령의 실행마다
일어날 가능성이 있다. 인터럽트를 일으키는 인터럽트 사상(Interrupt event) 또는 인터럽트를 발생시키는 주된 원인으로는 컴퓨터의
내부 구성 부품의 고장, 정의되어 있지 않는 명령의 발생, 자리 넘침, 기억 보호 위반, 전원 및 지진에 의한 이상, 장치의 오동작, 입출력
장치의 동작 완료, SVC(Super Visor call) 명령 등이 있다. CPU의 연산 속도는 입출력 장치의 속도에 비하여 단계적으로 고속의
속도차를 역으로 이용하고, 어떤 프로그램의 입출력 동작의 완료를 유지하는 일 없이 그 사이에 다른 프로그램을 실행하거나 각각에
우선 순위(priority)를 붙여서 복수 프로그램을 병행 처리하게 함으로써 컴퓨터 시스템 전체를 유효하게 작동하기 위하여 고안된 작업의 하나가 인터럽트이다.
'SuperCluster,EXADATA,ODA' 카테고리의 다른 글
프로세스 생명 주기 (0) | 2015.11.26 |
---|---|
vmstat 상태 분석 하는 법 2탄 (0) | 2015.11.26 |
sar vmstat iostat 분석하기 (0) | 2015.11.26 |
튜닝 관련 용어 정리 2탄 (0) | 2015.11.26 |
netstat 명령어 분석하는 법 (0) | 2015.11.26 |