시스템 호출과 함수 호출 간의 차이점

Anonim

시스템 호출과 함수 호출

일반적인 프로세서는 명령어를 하나씩 실행합니다. 그러나 프로세서가 현재 명령을 중지하고 다른 프로그램이나 코드 세그먼트 (다른 ​​장소에 상주)를 실행해야하는 경우가 있습니다. 이렇게하면 프로세서는 정상 실행 상태로 돌아가고 중단 된 부분부터 계속됩니다. 시스템 호출과 함수 호출은 그러한 경우입니다. 시스템 호출은 시스템에 내장 된 서브 루틴 호출입니다. 함수 호출은 프로그램 자체 내의 서브 루틴 호출입니다.

시스템 콜이란 무엇입니까?

시스템 호출은 운영체제와 통신하기위한 인터페이스를 컴퓨터에서 실행하는 프로그램을 제공합니다. 프로그램이 운영 체제의 커널에서 서비스를 요청할 필요가있을 때 (자체적으로 그렇게 할 수있는 권한이없는 경우) 시스템 호출을 사용합니다. 사용자 수준 프로세스에는 운영 체제와 직접 상호 작용하는 프로세스와 동일한 권한이 없습니다. 예를 들어 외부 I / O 장치와 통신하거나 다른 프로세스와 상호 작용하기 위해 프로그램은 시스템 호출을 사용합니다.

함수 호출이란 무엇입니까?

함수 호출은 서브 루틴 호출이라고도합니다. 서브 루틴 (프로 시저, 함수, 메소드 또는 루틴이라고도 함)은 특정 태스크를 수행하는 큰 프로그램의 일부입니다. 큰 프로그램은 과중한 작업 부하를 실행할 수 있으며 서브 루틴은 나머지 프로그램 코딩과 독립적 인 간단한 작업 만 수행 할 수 있습니다. 함수는 다른 장소에서 여러 번 호출 될 수있는 방식으로 코딩됩니다 (다른 함수 내에서조차도). 함수가 호출되면 프로세서는 함수의 코드가 상주하는 곳으로 이동하여 함수의 명령어를 하나씩 실행합니다. 기능을 완료 한 후 프로세서는 중단 된 위치로 정확히 돌아가고 다음 명령에서부터 실행을 계속합니다. 함수는 코드 재사용을위한 훌륭한 도구입니다. 많은 현대 프로그래밍 언어가 함수를 지원합니다. 함수 모음을 라이브러리라고합니다. 라이브러리는 종종 소프트웨어 공유 및 교환 수단으로 사용됩니다. 어떤 경우, 전체 프로그램은 일련의 서브 루틴 (예컨대, 스레드 코드 컴파일) 일 수있다.

시스템 호출과 함수 호출의 차이점은 무엇입니까?

시스템 호출은 시스템에 내장 된 서브 루틴 호출이며 함수 호출은 프로그램 내의 서브 루틴 호출입니다. 함수 호출과는 달리, 시스템 호출은 프로그램이 어떤 작업을 수행해야 할 때 사용됩니다.이 작업에는 권한이 없습니다. 시스템 호출은 운영 체제 커널의 진입 점이며 함수 호출과 같이 프로그램에 연결되지 않습니다.시스템 호출과 달리 함수 호출은 이식성이 뛰어납니다. 사용자 모드와 커널 모드 간의 전환이 일어나야하기 때문에 시스템 호출의 시간 오버 헤드는 함수 호출의 오버 헤드보다 높습니다. 시스템 호출은 커널 주소 공간에서 실행되는 반면 함수 호출은 사용자 주소 공간에서 실행됩니다.