1.แบบมาก่อนออกก่อน(FIFO)
ข้อเสียหน้านี้สามารถถูกสัปเปลี่ยนออกไปอาจเป็นส่วนของโปรแกรมเริ่มต้นซึ่งถูกใช้ในตอนต้น และไม่มีความต้องการอีกต่อไปหรือ หน้าที่ถูกสับเปลี่ยนออก อาจเก็บค่าตัวแปรหลักในโปรแกรม โดยถูกกำหนดค่าเริ่มต้นในตอนแรกๆ ของโปรแกรม
ถึงแม้ว่าเราจะสับเปลี่ยนหน้าที่ใช้บ่อยออกไป การทำงานของกระบวนการก็ยังคงถูกต้องเหมือนเดิม เพราะเมื่อหน้านั้นถูกอ้างอิงมาอีกจะถูกนำกลับเข้ามาใหม่ ซึ่งอาจจะทำให้เกิดการผิดหน้า และทำให้ระบบทำงานช้าลง แต่จะไม่ทำให้ระบบทำงานผิดพลาด
เช่น เมื่อมีเนื้อที่ 4 หน้า เกิดการผิดหน้า 10ครั้ง ซึ่งมากกว่าเมื่อใช้เนื้อที่ 3 หน้า(เกิดการผิดหน้า 9 ครั้ง) ผลลัพธ์ที่ไม่ปกตินี้ เรียกว่า Balady's amomaly แสดงให้เห็นว่า ขั้นตอนวิธีสับเปลี่ยนหน้าอาจทำให้เกิดการผิดหน้าเพิ่มแม้ว่าจะมีพื่นที่เพิ่ม
2.แบบที่ดีที่สุด(Optimal Algorithm)
เพื่อให้เกิดการผิดหน้าต่ำสุดและย่อมไม่เกิดปรากฏการณ์เบลาดี้ คือสับเปลื่ยนหน้าที่ถูกเรียกใช้ในอนาคตอันไกลที่สุด
จะดีกว่าแบบมาก่อน-ออกก่อน ถึง2เท่า แต่ยากที่จะสร้างเพราะต้องรู้อานาคตว่าจะมีการอ้างอิงหน้าใด ถ้าเรามีขั้นตอนวิธีแบบใหม่ เราอาจเปรียบเทียบกับแบบที่ดีที่สุดเพื่อจะได้ทราบว่า แบบใหม่มีประสิทธิภาพใกล้เคียงแบบดีที่สุดเท่าใด
3.มานานที่สุดออกก่อน(LRU Alorithm)
จะบันทึกเวลาที่แต่ละหน้าถูกอ้างอิง ครั้งล่าสุดเมื่อต้องการเลื่อกหน้าเพื่อสับเปลี่ยนออก ก็เลือกหน้าที่ไม่ได้ใช้มาเป็นเวลานานที่สุด (หน้าที่มีตัวเลขเวลาน้อยที่สุด) วิธีนี้ย้อนไปอดีต แทนที่จะมองอนาคต จำเป็นต้องใช้ HWช่วยมาก เพื่อช่วยบันทึกเวลาที่มีการอ้างอิงแต่ละหน้าครั้งล่าสุด ทำได้2วิธี
- ใช้ตัวนับ(Counters)
ทำโดยการเพิ่มฟิลด์เข้าไปในตารางอีกฟิลด์หนึ่ง เพื่อใช้เก็บเวลที่หน้านั่นถูกอ้างอิงและกำหนด logical Clock เพิ่มค่าเวลาทุกครั้ง ที่มีการอ้างอิงหน่วยความจำ มีการอ้างอิงหน้าใด ระบบก็จะเอาเลขเวลาลงไปเขียนช่องเก็บเวลาของหน้านั้นๆ (page table) จะได้เวลาแต่ละหน้าถูกอ้างอิงล่าสุด เมื่อต้องการหน้าว่าง เราเรียกหน้าที่มีเลขเวลาน้อยที่สุดเพื่อสับเปลี่ยนออก
วิธีนี้จะต้องมีการตรวจดูเลขเวลาในตารางเลขหน้าทั้งตาราง เพื่อจะหาค่าน้อยสุด เลขเวลาจะต้องติดไปกับpage table เมื่อมีการเปลี่ยนตาราง(เนื่องจากการจัดตารางการทำงานของหน่วยประมวลผลกลาง) logical clockเพิ่มขึ้นเรื่อยๆ จนค่าสูงสุดที่จะรับได้