다만 여기서 한 가지 유의할 점은 프로그램 내의 함수호출 시 해당 프로그램의 스택에 복귀 주소를 저장하지만, 시스템 콜이나 인터 럽트 발생으로 CPU의 수행 주체가 운영체제로 바뀌는 순간에는 직전에 수행되던 프로그램의 복귀 정보를 스택이 아닌 PCB 에 저장한다는점이다 이때 커널 역시 함수구조로이루어져 있으므로, 커널의 코드가 수행되는 도중에 이루어지는 함수호출은 커널스택을 사용하게 되는 것
이다 한편 커널스택은 프로세스마다 별도로 두고 있어 , 커널 내에서 이루어지는 함수호출은 직전에 CPU를 가지고 있던 프로세스의 커널스택을 사용하게된다.
프로그램이 사용하는 함수
사용자 정의함수와 라이브러리 함수는 모두 그 프로그램의 코드 영역에 기계어 명령 형태로 저장
해당 프로세스의 주소 공간에 포함
함수호출 시에도 자신의 주소공간에 있는 스택을 사용
커널함수 = 시스템 콜 함수(운영체제 서비스 요청) + 인터럽트 처리 함수