โปรเซสเซอร์ดำเนินการโปรแกรมทั้งในโหมดผู้ใช้หรือโหมดเคอร์เนล และในขณะที่คุณใช้พีซี โปรเซสเซอร์ของคุณจะสลับไปมาระหว่างสองสิ่งนี้เป็นประจำ ขึ้นอยู่กับว่ากำลังทำอะไรอยู่ แต่โหมดผู้ใช้และโหมดเคอร์เนลคืออะไร และทั้งสองต่างกันอย่างไร
มาดูกันว่าโหมดเหล่านี้คืออะไรและทำไม CPU จึงต้องสลับไปมาระหว่างโหมดเหล่านี้
"โหมดผู้ใช้" ใน Windows คืออะไร?
เครดิตภาพ:Hertzsprung/ Creative Commons
เมื่อคุณบูตโปรแกรมบน Windows โปรแกรมจะเปิดขึ้นในโหมดผู้ใช้ เมื่อใดก็ตามที่โปรแกรมโหมดผู้ใช้ต้องการเรียกใช้ Windows จะสร้างกระบวนการขึ้นมา กระบวนการเป็นเพียงโปรแกรมที่โปรเซสเซอร์กำลังทำงานหรือโปรแกรมที่ Windows ได้กำหนดให้ดำเนินการ และเมื่อใดก็ตามที่ Windows สร้างกระบวนการ มันจะสร้างพื้นที่ที่อยู่เสมือนสำหรับกระบวนการนั้นด้วย
พื้นที่ที่อยู่เสมือนเป็นคอลเลกชันของตรรกะ (ที่ไม่ใช่ทางกายภาพ) ที่อยู่ที่ได้รับมอบหมายให้ Windows กระบวนการ กระบวนการสามารถใช้ที่อยู่เหล่านี้เพื่อจัดเก็บข้อมูลในหน่วยความจำกายภาพ
นอกจากนี้ ช่องว่างที่อยู่เสมือนจะถูกแยกออก ดังนั้น พื้นที่ที่อยู่เสมือนของกระบวนการหนึ่งจึงไม่รบกวนพื้นที่ที่อยู่ของกระบวนการอื่น และเนื่องจากโปรแกรมโหมดผู้ใช้มีช่องว่างที่อยู่แยกจากกัน หากโปรแกรมหนึ่งขัดข้อง โปรแกรมก็จะล่มเพียงอย่างเดียวและจะไม่ทำลายโปรแกรมอื่นหรือระบบปฏิบัติการทั้งหมดด้วย
ที่เกี่ยวข้อง: เคล็ดลับเพื่อช่วยคุณแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินของ Windows 10
อีกวิธีหนึ่งในการอธิบายแอปพลิเคชันโหมดผู้ใช้คือการใช้คำว่า "มีสิทธิ์น้อย" Windows จำกัดไม่ให้แอปพลิเคชันในโหมดผู้ใช้เข้าถึงทรัพยากรระบบที่สำคัญได้โดยตรง ซึ่งทำให้แอปพลิเคชันเหล่านี้มีสิทธิพิเศษน้อยลง ตัวอย่างเช่น หากแอปพลิเคชันต้องการเข้าถึงฮาร์ดแวร์ แอปพลิเคชันนั้นจะต้องผ่านเคอร์เนล OS โดยใช้การเรียกของระบบ
พูดง่ายๆ ก็คือ โปรแกรมแอปพลิเคชัน เช่น วิดีโอเกมทำงานในโหมดผู้ใช้ พวกมันมีสิทธิพิเศษน้อยกว่า จึงไม่มีสิทธิ์เข้าถึงทรัพยากรระบบอย่างไม่จำกัด แอปพลิเคชันโหมดผู้ใช้แต่ละรายการมีพื้นที่ที่อยู่ของตนเอง แอปพลิเคชันไม่สามารถเปลี่ยนพื้นที่ที่อยู่ของแอปพลิเคชันอื่นได้ ดังนั้น หากโปรแกรมใดโปรแกรมหนึ่งขัดข้อง จะไม่มีผลกับโปรแกรมอื่นที่ทำงานบนคอมพิวเตอร์
ที่เกี่ยวข้อง: สัญญาณเตือนว่าคอมพิวเตอร์ของคุณจะพัง (และต้องทำอย่างไร)
"โหมดเคอร์เนล" ใน Windows คืออะไร?
เครดิตรูปภาพ: Bobbo / Wikimedia Commonms
ก่อนที่เราจะพูดถึงโหมดเคอร์เนล เราต้องมาก่อนว่า "เคอร์เนล" คืออะไร และมันทำงานอย่างไรกับ Windows
เคอร์เนลเป็นสมองของระบบปฏิบัติการ เป็นส่วนประกอบซอฟต์แวร์หลักที่ส่วนประกอบอื่นๆ ทั้งหมดภายในระบบปฏิบัติการใช้ เคอร์เนลจัดการฮาร์ดแวร์คอมพิวเตอร์ กำหนดการซึ่งกระบวนการทำงานบนคอมพิวเตอร์และเมื่อใด และจัดการการโต้ตอบระหว่างฮาร์ดแวร์และซอฟต์แวร์แอปพลิเคชัน
กล่าวโดยย่อ เคอร์เนลเป็นโค้ดที่ได้รับสิทธิพิเศษสูงสุดที่ทำงานอยู่บนระบบ นั่นเป็นเพราะมันเป็นรหัสที่โต้ตอบโดยตรงกับฮาร์ดแวร์ ทุกโปรแกรมที่ต้องการใช้ทรัพยากรฮาร์ดแวร์ต้องร้องขอการเข้าถึงผ่านเคอร์เนล
เมื่อแอพพลิเคชั่นโปรแกรมทำงานภายใต้โหมดผู้ใช้และต้องการเข้าถึงฮาร์ดแวร์เช่นเว็บแคม จะต้องร้องขอเคอร์เนลโดยใช้การเรียกของระบบ เพื่อให้บริการตามคำขอเหล่านี้ CPU จะเปลี่ยนจากโหมดผู้ใช้เป็นโหมดเคอร์เนลในขณะที่ดำเนินการโปรแกรม
หลังจากการดำเนินการของกระบวนการเสร็จสิ้น CPU จะสลับกลับไปที่โหมดผู้ใช้และเริ่มดำเนินการตามกำหนดการถัดไป สิ่งนี้เรียกว่า “การสลับบริบท”
โหมดผู้ใช้และโหมดเคอร์เนลต่างกันอย่างไร
ความแตกต่างที่สำคัญระหว่างโหมดผู้ใช้และโหมดเคอร์เนลคือระดับสิทธิ์ที่แต่ละโหมดมีให้ ในโหมดผู้ใช้ แอปพลิเคชันมีสิทธิ์น้อยลง พวกเขาไม่มีสิทธิ์เข้าถึงทรัพยากรฮาร์ดแวร์โดยตรงและไม่สามารถเขียนไปยังพื้นที่ที่อยู่ของแอปพลิเคชันอื่นได้
ที่เกี่ยวข้อง: วิธีใช้ตัวจัดการอุปกรณ์เพื่อแก้ไขปัญหา Windows 10
รหัสที่ทำงานในโหมดเคอร์เนลมีสิทธิ์ระดับสูง ไม่เพียงแต่สามารถเข้าถึงฮาร์ดแวร์คอมพิวเตอร์ได้โดยตรงเท่านั้น แต่โปรแกรมทั้งหมดที่ทำงานในโหมดเคอร์เนล รวมถึงระบบปฏิบัติการ ยังใช้พื้นที่ที่อยู่เดียวกันอีกด้วย ดังนั้น หากโปรแกรมในKernel Mode ล่มก็สามารถลบ OS ทั้งหมดลงได้ เพื่อให้แน่ใจว่าจะไม่เกิดปัญหาดังกล่าว Windows จะอนุญาตให้บางกระบวนการทำงานในโหมดเคอร์เนลเท่านั้น
Windows ใช้แนวทางแบบแบ่งชั้นเพื่อแยกโปรแกรมผู้ใช้ออกจากทรัพยากรระบบ
Windows ใช้โมเดลแบบเลเยอร์เพื่อกำหนดระดับสิทธิ์ของกระบวนการ แอปพลิเคชันที่อยู่ชั้นนอกสุดเป็นแอปพลิเคชันที่มีสิทธิ์การเช่า ที่แกนกลางของเลเยอร์เหล่านี้คือเคอร์เนล ด้วยเหตุนี้ เคอร์เนลจึงสามารถเข้าถึงทรัพยากรระบบปฏิบัติการได้ไม่จำกัด
วิธีการแบบเลเยอร์ยังช่วยปกป้องการทำงานของระบบปฏิบัติการที่สำคัญอีกด้วย เมื่อโปรแกรมในเลเยอร์บนเกิดแครชแบบสุ่ม จะไม่มีผลกับระบบปฏิบัติการ ในทางกลับกัน เมื่อเคอร์เนลขัดข้อง ระบบปฏิบัติการทั้งหมดจะหยุดทำงาน