System Call vs Function Call
Ang karaniwang processor ay isa-isang nagsasagawa ng mga tagubilin. Ngunit maaaring may mga pagkakataon kung saan kailangang ihinto ng processor ang kasalukuyang pagtuturo at magsagawa ng ibang programa o segment ng code (naninirahan sa ibang lugar). Pagkatapos gawin ito ang processor ay bumalik sa normal na pagpapatupad at nagpapatuloy mula sa kung saan ito tumigil. Ang isang system call at isang function na tawag ay mga ganitong okasyon. Ang system call ay isang tawag sa isang subroutine na naka-built in sa system. Ang function call ay isang tawag sa isang subroutine sa loob mismo ng program.
Ano ang System Call?
Ang System calls ay nagbibigay sa mga program na tumatakbo sa computer ng isang interface upang makipag-usap sa operating system. Kapag ang isang programa ay kailangang humingi ng isang serbisyo (kung saan wala itong pahintulot na gawin iyon nang mag-isa) mula sa kernel ng operating system, ito ay gumagamit ng isang system call. Ang mga proseso sa antas ng user ay walang parehong mga pahintulot gaya ng mga prosesong direktang nakikipag-ugnayan sa operating system. Halimbawa, para makipag-ugnayan sa at external na I/O device o para makipag-ugnayan sa anumang iba pang proseso, gumagamit ang isang program ng mga system call.
Ano ang Function Call?
Ang isang function na tawag ay tinatawag ding subroutine na tawag. Ang subroutine (kilala rin bilang procedure, function, method o routine) ay bahagi ng mas malaking programa na responsable sa pagsasagawa ng isang partikular na gawain. Ang mas malaking programa ay maaaring magsagawa ng mabigat na workload, at ang subroutine ay maaaring gumaganap lamang ng isang simpleng gawain, na independyente rin sa natitirang program coding. Ang isang function ay naka-code sa paraang maaari itong tawaging maraming beses at mula sa iba't ibang lugar (kahit na mula sa loob ng iba pang mga function). Kapag tinawag ang isang function, maaaring pumunta ang processor sa kung saan nakatira ang code para sa function at isa-isang isakatuparan ang mga tagubilin ng function. Matapos makumpleto ang mga pag-andar, babalik ang processor sa eksaktong kung saan ito tumigil at ipagpapatuloy ang pagpapatupad simula sa susunod na pagtuturo. Ang mga function ay isang mahusay na tool para sa muling paggamit ng code. Maraming mga modernong programming language ang sumusuporta sa mga function. Ang isang koleksyon ng mga function ay tinatawag na isang library. Ang mga aklatan ay kadalasang ginagamit bilang paraan ng pagbabahagi at pangangalakal ng software. Sa ilang mga kaso, ang buong programa ay maaaring isang sequence ng mga subroutine (hal. threaded code compilation).
Ano ang pagkakaiba ng System Call at Function Call?
Ang System call ay isang tawag sa isang subroutine na nakapaloob sa system, habang ang isang function na tawag ay isang tawag sa isang subroutine sa loob ng program. Hindi tulad ng mga function call, ginagamit ang mga system call kapag ang isang programa ay kailangang magsagawa ng ilang gawain, na wala itong pribilehiyo. Ang mga tawag sa system ay mga entry point sa kernel ng operating system at hindi naka-link sa program (tulad ng mga function call). Hindi tulad ng, system calls, function calls ay portable. Ang overhead ng oras ng isang system call ay higit pa sa overhead para sa isang function na tawag dahil ang isang paglipat sa pagitan ng user mode at ng kernel mode ay dapat maganap. Ang mga system call ay isinasagawa sa kernel address space, habang ang mga function call ay isinasagawa sa user address space.