ความแตกต่างที่สำคัญ – การโทรของระบบเทียบกับการโทรในห้องสมุด
การเรียกระบบและการโทรในห้องสมุดเกี่ยวข้องกับระบบปฏิบัติการของคอมพิวเตอร์ คอมพิวเตอร์สามารถทำงานได้สองโหมด คือโหมดผู้ใช้และโหมดเคอร์เนล ความแตกต่างที่สำคัญระหว่างการเรียกระบบและการเรียกไลบรารีคือการเรียกระบบเป็นฟังก์ชันที่เคอร์เนลให้ไว้เพื่อเข้าสู่โหมดเคอร์เนลเพื่อเข้าถึงทรัพยากรฮาร์ดแวร์ในขณะที่การเรียกไลบรารีเป็นฟังก์ชันที่จัดเตรียมโดยไลบรารีการเขียนโปรแกรม ตัวอย่างเช่น open () เป็นการเรียกระบบและ fopen () เป็นการเรียกไลบรารี เมื่อ fopen () ในโปรแกรม C ให้ใช้ไลบรารีส่วนหัว stdio.h จากนั้นระบบจะใช้การเรียก 'open (), ' จากเคอร์เนลเพื่อทำงานเปิดไฟล์ให้เสร็จสิ้น
System Call คืออะไร
คอมพิวเตอร์ทำงานในสองโหมด คือโหมดผู้ใช้และโหมดเคอร์เนล กระบวนการบางอย่างกำลังทำงานอยู่บนระบบคอมพิวเตอร์ กระบวนการคือโปรแกรมที่กำลังดำเนินการ เมื่อโปรแกรมแอปพลิเคชันทำงาน คอมพิวเตอร์จะอยู่ในโหมดผู้ใช้ หากจำเป็นต้องใช้ทรัพยากรฮาร์ดแวร์ กระบวนการจะส่งคำขอไปยังเคอร์เนล และคอมพิวเตอร์จะเข้าสู่โหมดเคอร์เนล คำขอเหล่านี้ถูกส่งโดยใช้การเรียกของระบบ คอมพิวเตอร์มีการสลับระหว่างสองโหมดนี้บ่อยๆ เมื่องานเสร็จสิ้น คอมพิวเตอร์จะกลับสู่โหมดผู้ใช้จากโหมดเคอร์เนล การเปลี่ยนโหมดนี้เรียกว่า "การสลับบริบท" การเรียกระบบเป็นส่วนต่อประสานระหว่างระบบปฏิบัติการและโปรแกรมผู้ใช้
รูปที่ 01: System Calls
การเรียกระบบมีหลายประเภท สร้าง ยุติกระบวนการ ดำเนินการตามกระบวนการ จัดสรร และเพิ่มหน่วยความจำได้โดยใช้ "การเรียกระบบควบคุมกระบวนการ" “File Management System Calls” สามารถใช้สร้าง ลบ อ่าน เขียน เปิด ปิดไฟล์ กระบวนการนี้ต้องใช้ทรัพยากรบางอย่างในการดำเนินการให้เสร็จสิ้น การขอและปล่อยอุปกรณ์ทำได้ผ่าน "Device Management System Calls" “การเรียกระบบการจัดการข้อมูล” สามารถใช้เพื่อรับข้อมูลระบบและรับกระบวนการและคุณสมบัติของอุปกรณ์ กระบวนการต่างๆ กำลังสื่อสารกัน การสื่อสารนี้ทำได้โดยใช้ "การเรียกระบบสื่อสาร" การส่งข้อมูลสถานะ การสร้างและการลบการเชื่อมต่อการสื่อสาร และการส่งข้อความ การรับข้อความสามารถทำได้โดยใช้การเรียกของระบบการสื่อสาร
การเรียกห้องสมุดคืออะไร
การเรียกไลบรารีเป็นฟังก์ชันที่จัดเตรียมโดยไลบรารีโปรแกรมมิ่ง ก่อนทำการเรียกไลบรารี ไลบรารีนั้นควรถูกนำเข้า การโทรในห้องสมุดอาจขึ้นอยู่กับการเรียกของระบบ
ในภาษา C ฟังก์ชันเหล่านี้สามารถใช้ในโปรแกรมโดยรวมไฟล์ส่วนหัว ไฟล์ส่วนหัวจะถูกรวมโดยใช้คำสั่งประมวลผลล่วงหน้า include ตัวประมวลผลล่วงหน้าจะสแกนไฟล์ที่ระบุก่อนดำเนินการต่อกับไฟล์ต้นทางที่เหลือ ฟังก์ชันไลบรารีทั่วไปบางอย่างมีดังนี้ ไลบรารี "math.h" มีฟังก์ชันที่เกี่ยวข้องกับการดำเนินการทางคณิตศาสตร์ ไลบรารี "stdio.h" มีฟังก์ชันสำหรับดำเนินการอินพุตและเอาต์พุต “fopen()” เปิดชื่อไฟล์ที่ชี้ “fclose()” ปิดไฟล์ “printf() ใช้เพื่อส่งเอาต์พุตที่จัดรูปแบบไปยังเอาต์พุตมาตรฐาน “fprintf ()” ใช้เพื่อส่งเอาต์พุตที่จัดรูปแบบไปยังสตรีม “scanf()” ใช้เพื่ออ่านอินพุตที่จัดรูปแบบจากอินพุตมาตรฐาน “stdlib.h” มีฟังก์ชันสำหรับการจัดการหน่วยความจำ และ “time.h” มีฟังก์ชันสำหรับการจัดการเวลาและวันที่
ความคล้ายคลึงกันระหว่าง System Call และ Library Call คืออะไร
ทั้งสองเกี่ยวข้องกับระบบปฏิบัติการ
ความแตกต่างระหว่าง System Call และ Library Call คืออะไร
การโทรระบบกับการโทรในห้องสมุด |
|
การเรียกของระบบคือฟังก์ชันที่เคอร์เนลให้ไว้เพื่อเข้าสู่โหมดเคอร์เนลเพื่อเข้าถึงทรัพยากรฮาร์ดแวร์ | การเรียกไลบรารีเป็นฟังก์ชันที่จัดเตรียมโดยไลบรารีโปรแกรมมิ่ง |
โหมดการดำเนินการ | |
A เรียกระบบในโหมดเคอร์เนล | เรียกห้องสมุดในโหมดผู้ใช้ |
สลับโหมด | |
A การเรียกระบบสลับจากโหมดผู้ใช้เป็นโหมดเคอร์เนล | ไม่มีการสลับจากโหมดผู้ใช้เป็นโหมดเคอร์เนลในการเรียกไลบรารี |
พกพา | |
A การโทรระบบไม่สามารถพกพาได้ | โทรห้องสมุดแบบพกพา |
สรุป – การโทรของระบบเทียบกับการโทรในห้องสมุด
A การเรียกระบบถูกใช้งานในเคอร์เนล และการเรียกไลบรารีถูกใช้งานในพื้นที่ผู้ใช้ ความแตกต่างระหว่างการเรียกระบบและการเรียกไลบรารีคือการเรียกระบบเป็นฟังก์ชันที่เคอร์เนลให้ไว้เพื่อเข้าสู่โหมดเคอร์เนลเพื่อเข้าถึงทรัพยากรฮาร์ดแวร์ และการเรียกไลบรารีเป็นฟังก์ชันที่จัดเตรียมโดยไลบรารีโปรแกรมมิง การเรียกไลบรารีอาจขึ้นอยู่กับการเรียกของระบบเพื่อให้งานเสร็จสมบูรณ์ open (), fork(), cd() คือตัวอย่างบางส่วนของการเรียกระบบ fopen (), fprintf () เป็นตัวอย่างของการโทรในห้องสมุด
ดาวน์โหลดเวอร์ชัน PDF ของ System Call เทียบกับ Library Call
คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดเวอร์ชัน PDF ที่นี่ ความแตกต่างระหว่างการเรียกระบบและการโทรในห้องสมุด