การเรียกใช้ระบบช้าเป็นสิ่งที่คล้ายกับ TCP socket read () - หากคุณไม่ได้ตั้ง O_ASYNC (หรืออะไรก็ตาม) ไว้ก็สามารถรอได้
การเรียกใช้ระบบอย่างรวดเร็วเป็นสิ่งที่ต้องการ gettimeofday () หรือ getpid () ซึ่งทั้งสองอย่างนี้จะส่งคืนข้อมูลไปยังกระบวนการที่เคอร์เนลมีให้ใช้งานทันที
การอ่านดิสก์อยู่ในหมวดหมู่ของการเรียกระบบช้า หากกระบวนการทำการอ่าน () ในไฟล์ดิสก์จริงตัวอธิบายไฟล์เคอร์เนลอาจต้องอ่านในบล็อกดิสก์หนึ่งบล็อกหรือมากกว่าเพื่อตอบสนองการอ่าน ทั้งนี้ขึ้นอยู่กับโครงสร้างบนดิสก์ของระบบไฟล์พื้นฐานซึ่งอาจหมายถึงการอ่าน on-disk-inode เพื่อรับหมายเลขบล็อกดิสก์ของ "การบล็อกทางอ้อม" การอ่านบล็อกทางอ้อมเพื่อรับบล็อกข้อมูลแล้วอ่านบล็อกข้อมูลเอง . ค่อนข้างเสียเวลาอย่างน้อยก็ในแง่ของรอบการใช้งาน CPU ต่อการเข้าถึงดิสก์วันนี้อาจแย่กว่าสมัยก่อน ๆ
ฉันไม่ได้เห็นสิ่งนี้มานาน แต่รหัสไดรเวอร์อุปกรณ์ไดรฟ์ Unix "ครึ่งล่าง" จะบล็อกสัญญาณ / ขัดจังหวะเพื่อให้ง่ายต่อการรักษาความสมบูรณ์ของระบบไฟล์บนดิสก์ ในบางครั้งไดรเวอร์ buggy หรือดิสก์ที่ล้มเหลวจะไม่ส่งดิสก์บล็อกที่กระบวนการร้องขอและกระบวนการจะล้มลงอย่างถาวร แม้แต่การฆ่า -9 ก็ไม่ได้ทำอะไรเลย