Gọi hệ thống và gọi chức năng
Một bộ xử lý điển hình thực hiện từng hướng dẫn một. Nhưng có thể đôi khi bộ xử lý phải dừng hướng dẫn hiện tại và thực thi một số phân đoạn chương trình hoặc mã khác (cư trú ở một nơi khác). Sau khi làm điều này, bộ xử lý trở lại thực thi bình thường và tiếp tục từ nơi nó rời đi. Một cuộc gọi hệ thống và một cuộc gọi chức năng là những dịp như vậy. Cuộc gọi hệ thống là cuộc gọi đến chương trình con được tích hợp trong hệ thống. Một cuộc gọi hàm là một cuộc gọi đến chương trình con trong chính chương trình.
Cuộc gọi hệ thống là gì?
Các cuộc gọi hệ thống cung cấp các chương trình chạy trên máy tính một giao diện để nói chuyện với hệ điều hành. Khi một chương trình cần yêu cầu một dịch vụ (mà nó không có quyền tự làm điều đó) từ kernel của hệ điều hành, nó sẽ sử dụng một cuộc gọi hệ thống. Các quy trình cấp người dùng không có quyền tương tự như các quy trình tương tác trực tiếp với hệ điều hành. Ví dụ, để liên lạc với và thiết bị I / O bên ngoài hoặc để tương tác với bất kỳ quy trình nào khác, chương trình sử dụng các cuộc gọi hệ thống.
Chức năng gọi là gì?
Một cuộc gọi chức năng cũng được gọi là một cuộc gọi chương trình con. Một chương trình con (còn được gọi là thủ tục, chức năng, phương pháp hoặc thói quen) là một phần của chương trình lớn hơn chịu trách nhiệm thực hiện một nhiệm vụ cụ thể. Chương trình lớn hơn có thể thực thi một khối lượng công việc nặng và chương trình con có thể chỉ thực hiện một nhiệm vụ đơn giản, cũng độc lập với mã hóa chương trình còn lại. Một hàm được mã hóa theo cách mà nó có thể được gọi nhiều lần và từ các vị trí khác nhau (thậm chí từ các hàm khác). Khi một chức năng được gọi, bộ xử lý có thể đi đến nơi mã cho chức năng đang cư trú và thực hiện từng hướng dẫn của chức năng. Sau khi hoàn thành các chức năng, bộ xử lý sẽ trở về chính xác nơi nó dừng lại và tiếp tục thực hiện bắt đầu từ hướng dẫn tiếp theo. Các chức năng là một công cụ tuyệt vời để tái sử dụng mã. Nhiều ngôn ngữ lập trình hiện đại hỗ trợ các chức năng. Một bộ sưu tập các chức năng được gọi là một thư viện. Thư viện thường được sử dụng làm phương tiện chia sẻ và giao dịch phần mềm. Trong một số trường hợp, toàn bộ chương trình có thể là một chuỗi các chương trình con (ví dụ: biên dịch mã luồng).
Sự khác biệt giữa Gọi hệ thống và Gọi chức năng là gì?
Cuộc gọi hệ thống là một cuộc gọi đến chương trình con được tích hợp trong hệ thống, trong khi cuộc gọi chức năng là cuộc gọi đến chương trình con trong chương trình. Không giống như các cuộc gọi chức năng, các cuộc gọi hệ thống được sử dụng khi một chương trình cần thực hiện một số tác vụ mà nó không có đặc quyền. Các cuộc gọi hệ thống là các điểm vào trong kernel của hệ điều hành và không được liên kết với chương trình (như các lệnh gọi hàm). Không giống như các cuộc gọi hệ thống, các cuộc gọi chức năng là di động. Chi phí thời gian của một cuộc gọi hệ thống nhiều hơn chi phí cho một cuộc gọi chức năng vì phải thực hiện chuyển đổi giữa chế độ người dùng và chế độ nhân. Các cuộc gọi hệ thống được thực thi trong không gian địa chỉ kernel, trong khi các lệnh gọi hàm được thực thi trong không gian địa chỉ người dùng.