ความแตกต่างระหว่าง System Call และ Function Call

Anonim

การเรียกระบบและการเรียกฟังก์ชัน

ตัวประมวลผลทั่วไปดำเนินการคำแนะนำทีละรายการ แต่อาจมีบางครั้งที่โปรเซสเซอร์ต้องหยุดการสอนปัจจุบันและรันโปรแกรมหรือส่วนรหัสอื่น ๆ (พำนักอยู่ในที่อื่น ๆ) หลังจากทำเช่นนี้โปรเซสเซอร์จะกลับสู่การปฏิบัติตามปกติและดำเนินต่อไปจากที่ที่เหลืออยู่ การเรียกระบบและการเรียกฟังก์ชันเป็นเช่นนั้น การเรียกระบบคือการเรียกใช้ subroutine ที่สร้างขึ้นในระบบ การเรียกฟังก์ชันคือการเรียกใช้โปรแกรมย่อยภายในโปรแกรมเอง

การโทรระบบคืออะไร?

การเรียกระบบมีโปรแกรมที่รันบนเครื่องคอมพิวเตอร์เป็นอินเทอร์เฟซเพื่อพูดคุยกับระบบปฏิบัติการ เมื่อโปรแกรมต้องการที่จะขอบริการ (ซึ่งมันไม่ได้รับอนุญาตให้ทำด้วยตัวเอง) จากเคอร์เนลของระบบปฏิบัติการระบบจะใช้การเรียกระบบ กระบวนการระดับผู้ใช้ไม่มีสิทธิ์เหมือนกันกับกระบวนการที่โต้ตอบกับระบบปฏิบัติการโดยตรง ตัวอย่างเช่นการสื่อสารกับอุปกรณ์ภายนอก I / O หรือการโต้ตอบกับกระบวนการอื่น ๆ โปรแกรมจะใช้การเรียกระบบ

Call ฟังก์ชันคืออะไร?

เรียกฟังก์ชันเรียกว่าการเรียกใช้โปรโตคอล subroutine (เรียกอีกอย่างว่า procedure, function, method หรือ routine) เป็นส่วนหนึ่งของโปรแกรมขนาดใหญ่ที่รับผิดชอบในการปฏิบัติงานเฉพาะ โปรแกรมขนาดใหญ่อาจทำงานหนักและ subroutine อาจทำงานได้เพียงงานเดียวซึ่งเป็นอิสระจากโปรแกรมที่เหลืออยู่ ฟังก์ชั่นถูกเข้ารหัสในรูปแบบที่เรียกว่าหลาย ๆ ครั้งและจากที่ต่างๆ (แม้กระทั่งจากภายในฟังก์ชันอื่น ๆ) เมื่อมีการเรียกใช้ฟังก์ชันตัวประมวลผลอาจไปที่ตำแหน่งของรหัสสำหรับฟังก์ชั่นที่อยู่และเรียกใช้คำแนะนำของฟังก์ชั่นทีละตัว หลังจากเสร็จสิ้นการทำงานแล้วโปรเซสเซอร์จะกลับไปที่ตำแหน่งที่เหลือและดำเนินการให้ดำเนินการต่อจากคำสั่งถัดไป ฟังก์ชั่นเป็นเครื่องมือที่เหมาะสำหรับการนำโค้ดมาใช้ใหม่ หลายฟังก์ชันสนับสนุนภาษาการเขียนโปรแกรมสมัยใหม่ ชุดของฟังก์ชันเรียกว่าไลบรารี ห้องสมุดมักใช้เป็นเครื่องมือในการแบ่งปันและซื้อขายซอฟต์แวร์ ในบางกรณีโปรแกรมทั้งหมดอาจเป็นลำดับของ subroutines (เช่นการรวบรวมโค้ดแบบเธรด)

อะไรคือความแตกต่างระหว่าง System Call และ Function Call?

การเรียกระบบคือการเรียกใช้โปรแกรมย่อยที่มีอยู่ในระบบในขณะที่การเรียกฟังก์ชันคือการเรียกใช้โปรแกรมย่อยภายในโปรแกรม ซึ่งแตกต่างจากการเรียกฟังก์ชันการเรียกระบบจะใช้เมื่อโปรแกรมต้องการทำงานบางอย่างซึ่งไม่มีสิทธิ์สำหรับ การเรียกระบบคือจุดเริ่มต้นของเคอร์เนลของระบบปฏิบัติการและไม่ได้เชื่อมโยงกับโปรแกรม (เช่นการเรียกใช้ฟังก์ชัน)ซึ่งแตกต่างจากการเรียกระบบสายงานเป็นแบบพกพา ค่าโสหุ้ยเวลาของการเรียกระบบมากกว่าค่าใช้จ่ายสำหรับการเรียกฟังก์ชันเนื่องจากต้องมีการเปลี่ยนระหว่างโหมดผู้ใช้และโหมดเคอร์เนล การเรียกระบบถูกเรียกใช้งานในพื้นที่ที่อยู่ของเคอร์เนลในขณะที่การเรียกฟังก์ชันถูกเรียกใช้ในพื้นที่ที่อยู่ของผู้ใช้