นั่นคือวิธีที่ GNU / Linux และระบบมัลติทาสก์อื่น ๆ ทำงานร่วมกันโดยใช้โปรเซสเซอร์ร่วมกันระหว่างกระบวนการทำงานdotไม่มี 99% แต่ 100% ในช่วง 99% ของเวลา แต่ละกระบวนการควบคุมโปรเซสเซอร์ในช่วงระยะเวลาหนึ่ง
สิ่งนี้จัดการโดย schedulers (linux มีหลาย schedulers บางตัวใช้กลยุทธ์ปกติบางคนพยายามให้เวลากับอินเทอร์เฟซผู้ใช้มากขึ้นเรื่อย ๆ )
ในกรณีของคุณปัญหาคือ - อาจ - ที่dotใช้เวลาประมวลผลไม่มาก แต่มีหน่วยความจำมากมาย และเมื่อโปรแกรมใช้หน่วยความจำมากเกินไปจะมีการฟาดฟันซึ่งเป็นกระบวนการที่ทำให้ระบบหยุดทำงานไม่ใช่เพราะdotกำลังทำอะไรมาก แต่เนื่องจากเคอร์เนลต้องย้ายหน้าหน่วยความจำไปมาระหว่างดิสก์ (พาร์ทิชันสลับ) และหน่วยความจำระบบ
แม้ว่าdotเป็นเพียงการ 99% ของเวลา CPU มีโอกาสที่จะเปลี่ยนไป terminal ข้อความจะเกือบจะทันทีสิ่งที่เกิดขึ้นคือว่าเมล็ดมีการย้ายdotสิ่งที่ออกมาจากหน่วยความจำเพื่อที่จะสามารถนำXกลับมาอยู่ในหน่วยความจำเพื่อให้Xสามารถมองเห็นกุญแจ คุณเพียงแค่กดและย้ายไปที่เทอร์มินัลข้อความจากนั้นเคอร์เนลจะต้องย้ายXออกจากหน่วยความจำdotที่ยังคงทำงานอยู่และจากนั้นก็ย้ายdotออกเพื่อย้ายกระบวนการเทอร์มินัลข้อความ (อาจlogin? (ถ้าลักษณะนี้ยุ่งมันไม่ได้เป็นเพียงเพราะตัวอย่างจะยุ่ง - ในความเป็นจริงนี้ . ยุ่ง)
ตัวอย่างคือถ้าคุณลงชื่อเข้าใช้เทอร์มินัลข้อความคุณอาจจะสามารถกดปุ่มกดแบ็คสเปซและมันจะเกิดขึ้นแบบเรียลไทม์ แต่ถ้าคุณทำบางอย่างง่าย ๆ เหมือนกับการใช้เครื่องมือขนาดเล็กpsมันจะ "หยุด" "ชั่วขณะหนึ่งเพราะต้องโหลดหน่วยความจำให้ว่างps(และต้องรอคิว I / O ของดิสก์ซึ่งใช้อย่างมากในการย้ายข้อมูลไปยังและจากหน่วยความจำจนกว่าจะสามารถร้องขอpsจากระบบไฟล์ได้) .