นั่นคือวิธีที่ 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
จากระบบไฟล์ได้) .