วันจันทร์ที่ 16 พฤษภาคม พ.ศ. 2554

หน่วยความจำเสมือน virtual Memory คืออะไร


         มาทำความเข้าใจกันก่อนว่า 
Virtual Memory คืออะไร ขออธิบายแบบง่าย ๆ ลองนึกภาพว่าหากเรามีหน่วยความจำหรือ RAM ใส่อยู่ในครื่องคอมพิวเตอร์จำนวนหนึ่ง เช่น 32MB. เมื่อใช้งาน Windows จริง ๆ แล้วการทำงานองWindows หรือระบบซอฟต์แวร์จะต้องทำการโหลดข้อมูลทุก ๆ อย่างไปเก็บไว้ในหน่วยความจำหรือ RAM ก่อนแล้วซีพียูจึงจะทำการประมวลผลจากข้อมูลเหล่านั้น ซึ่งโดยปกติแล้วเฉพาะ Windows อย่างเดียวก็กินพื้นที่ของ RAM ไปมากพอแล้ว นอกจากนั้นยังต้องมีพื้นที่สำหรับการเก็บข้อมูลและรับโปรแกรมหรือซอฟต์แวร์อื่น ๆ อีกมากมาย ดังนั้นRAM ขนาด 32MB. ย่อมไม่พอใช้งานแน่นอนแต่ใน Windows ก็มีระบบการจัดการกับ RAM ที่มีจำนวนน้อยนิดนี้ได้โดยจะทำการเขียนข้อมูลต่าง ๆ ที่ยังไม่จำเป็นต้องใช้งานในขณะนั้นลงเก็บไว้ในฮาร์ดดิสก์ชั่วคราวก่อน เมื่อต้องการใช้งานข้อมูลในส่วนนี้จึงจะทำการอ่านขึ้นมาใช้งานโดยจะทำการอ่านและเขียนแบบนี้สลับกันไปตามความต้องการใช้งานของข้อมูลเราเรียกการทำงานแบบนี้ว่าการทำ Swap File ซึ่งจะทำให้เราสามารถรันซอฟต์แวร์ที่มีขนาดใหญ่ ๆ หรือรันซอฟต์แวร์พร้อม ๆ กันหลาย ๆ ตัวได้
         ในระบบ Windows ที่ทำการติดตั้งแบบมาตราฐานทั่ว ๆ ไป การตั้งค่าจำนวนของฮาร์ดดิสก์ที่จะสำรองไว้สำหรับทำ Swap File นี้จะถูกจัดการโดย Windows ซึ่งจะทำการปรับเปลี่ยนขนาดของ Swap File อัตโนมัติตามขนาดของหน่วยความจำหรือจำนวนพื้นที่ที่ต้องการรันซอฟต์แวร์ในขณะนั้น นอกจากนี้เรายังสามารถทำการกำหนดขนาดของ Swap File ที่ว่านี้ให้มีขนาดคงที่จำนวนหนึ่งได้ด้วยโดยหากทำการกำหนดขนาดของ Swap File ให้คงที่แล้ว Windows ก็จะใช้งานไฟล์ในขนาดที่ได้ทำการกำหนดไว้แล้วเท่านั้น

ข้อเปรียบเทียบการกำหนด
 Swap File ทั้ง แบบ

การกำหนด 
Swap File โดยอัตโนมัติจาก Windows
         1. ไฟล์จะมีขนาดเปลี่ยนไปได้เรื่อย ๆ ทำให้ Windows สามารถใช้งานพื้นที่ทั้งหมดของฮาร์ดดิสก์มาเป็นSwap File ได้
         2. เมื่อไฟล์มีการปรับเปลี่ยนขนาดอยู่ตลอดเวลาจะทำให้การจัดเรียงข้อมูลของไฟล์บนฮาร์ดดิสก์กระจัดกระจายไม่ต่อเนื่อง
         3. การอ่านและเขียนข้อมูลของ Swap File จะทำได้ช้าลงเพราะไฟล์มีการกระจายมากขึ้น

การกำหนด 
Swap File ให้มีค่าคงที่
         1. ไฟล์จะมีขนาดคงที่ ทำให้เรากำหนดและคำนวนการใช้งานฮาร์ดดิสก์ที่เหลือได้
         2. ข้อมูลของไฟล์จะไม่กระจายมากนัก เพราะจะใช้พื้นที่เดิม ๆ ที่ได้กำหนดขนาดไว้แล้วในการเก็บข้อมูล
         3. การอ่านและเขียนข้อมูลของ Swap File จะเร็วขึ้นเพราะไฟล์มีการกระจายน้อยลง

วิธีการตั้ง 
Swap File หรือ Virtual Memory
         วิธีการตั้งการใช้งาน Virtual Memory ทำได้โดย เริ่มต้นจากการเรียก Control Panel โดยกดเลือกที่ Start menu >> Settings และเลือกที่ Control Panel เลือกที่เมนูของ System คลิกที่ป้าย Performance เลือกที่ Virtual Memory จะได้หน้าตาดังรูปที่เมนูของ Virtual Memory มีความหมายดังนี้
         Let Windows manage... เลือกตรงนี้ถ้าต้องการให้ Windows จัดการ virtual memory อัตโนมัติ
         Let me specify my own... เลือกที่นี่ ถ้าต้องการกำหนดขนาดของ virtual memory เป็นค่าคงที่เอง
         Harddisk เลือกฮาร์ดดิสก์ที่ต้องการทำ Virtual Memory หรือ Swap File
         Mimimun กำหนดขนาดต่ำสุดของ Swap File
         Maximum กำหนดขนาดสูงสุดของ Swap File
         Disable virtual memory คือการกำหนดให้ไม่ใช้ virtual memory (จะใช้ RAM จริง ๆ เท่านั้น)

         หลักการกำหนดขนาดของ virtual memory ควรจะกำหนดให้ minimum และ maximum มีขนาดเท่ากันเพื่อให้ Swap File มีขนาดคงที่ไม่มีการเปลี่ยนแปลงโดยขนาดที่แนะนำให้ใช้คือ ถ้าเครื่องมีแรมอยู่น้อยกว่า 64M ควรใส่เป็น 128 แต่ถ้าเครื่องมีแรม 128M หรือมากกว่านี้ควรใส่เป็น 256 โดยประมาณและนอกจากนี้ ควรเลือกฮาร์ดดิสก์ตัวที่มีความเร็วมากที่สุดสำหรับทำ Swap File เพื่อเพิ่มความเร็วในการใช้งาน Windows หลังจากที่ใส่ค่าตามต้องการแล้วก็กด OK จะมีเมนูยืนยันการเลือกอีกครั้งก็กด Yes และเมื่อปิดหน้าจอของการเลือก Windows จะต้องทำการRestart ใหม่ครั้งหนึ่ง การตั้งค่าต่าง ๆ จึงจะมีผล
         เราสามารถดูขนาดของ Swap File ได้โดยที่เมื่อกำหนดแล้วโดยจะเห็นเป็นไฟล์ในฮาร์ดดิสก์ชื่อ Win386.swpซึ่งหากลบทิ้งไป Windows ก็จะทำการสร้างขึ้นมาใหม่โดยอัตโนมัติ

ข้อแนะนำเพิ่มเติมของการทำ 
Virtual Memory
         การตั้ง Virtual Memory คือการจำลองพื้นที่ของฮาร์ดดิสก์มาใช้งานแทน RAM ดังนั้นถ้าจะให้ได้ผลดีที่สุดจะต้องหาทางทำให้พื้นที่ที่กำหนดให้เป็น Swap File เป็นพื้นที่ที่อยู่ในฮาร์ดดิสก์ตัวที่มีการอ่านเขียนข้อมูลได้เร็วที่สุดมาดูหลักการต่าง ๆ ของการกำหนดใช้ virtual memory ที่ถูกต้องว่ามีอะไรบ้าง

พื้นที่ส่วนไหนของฮาร์ดดิสก์ที่มีการอ่านเขียนได้เร็วที่สุด
         ลองนึกภาพฮาร์ดดิสก์ 1 ตัวที่มีจานดิสก์เป็นรูปวงกลมหมุนอยู่ด้วยความเร็วสูงและมีหัวอ่านที่เคลี่อนย้ายไปมาเพื่ออ่านหรือเขียนข้อมูล จะเห็นได้ว่าในการหมุนของจานดิสก์ รอบ พื้นที่ข้อมูลที่อยู่รอบนอกสุดจะสามารถอ่านได้จำนวนมากกว่าพื้นที่ที่อยู่ด้านในของจานฮาร์ดดิสก์ ดังนั้นหากเราสามารถกำหนดให้ Swap File อยู่ในส่วนของพื้นที่นอกสุดได้มากเท่าไรอัตราการอ่านเขียนข้อมูลก็จะทำได้เร็วมากขึ้นในการแบ่งฮาร์ดดิสก์ให้มีหลาย ๆ พาร์ติชัน การใช้งานพื้นที่ของพาร์ติชันแรกจะอยู่นอกสุดและพาร์ติชันถัดไป จะใช้พื้นที่ส่วนที่อยู่รอบในถัดเข้ามาเรื่อย ๆ

กรณีที่มีฮาร์ดดิสก์ 
ตัว
         หากใครมีฮาร์ดดิสก์ต่ออยู่ ตัว ก็เป็นไปได้ที่จะกำหนดให้ใช้พื้นที่ส่วนนอกสุดของฮาร์ดดิสก์ตัวที่ มาทำเป็นVirtual Memory เพราะว่าจะเป็นส่วนสามารถอ่านเขียนข้อมูลที่เร็วที่สุดทั้งนี้จะใช้ได้ในกรณีที่ฮาร์ดดิสก์ทั้ง ตัวมีความเร็วพอ ๆ กันด้วย ถ้าหากฮาร์ดดิสก์ตัวที่ เป็นฮาร์ดดิสก์เก่าหรือมีความเร็วช้ากว่าตัวแรกก็แนะนำให้ไปทำในฮาร์ดดิสก์ตัวแรกดีกว่า

จะแบ่งพาร์ติชัน สำหรับทำ 
virtual memory ต่างหากไปเลย
         บางคนบอกว่าถ้าอย่างนั้นจัดการแบ่งพาร์ติชันของฮาร์ดดิสก์ให้เป็นหลาย ๆ พาร์ติชันและตั้งให้ทำ Virtual Memory หรือ Swap File ในพาร์ติชันที่แบ่งไว้โดยเฉพาะไปเลยจะดีไหม ก่อนอื่นต้องมาดูกันก่อนว่าการแบ่งพาร์ติชันนั้น ในพาร์ติชันแรกจะใช้พื้นที่นอกสุดของฮาร์ดดิสก์และพาร์ติชันถัดไปก็จะใช้พื้นที่ในส่วนรอบในของจานฮาร์ดดิสก์เข้าไปเรื่อย ๆ ดังนั้นสรุปว่าพาร์ติชันแรกสุดของฮาร์ดดิสก์จะมีอัตราการอ่านเขียนข้อมูลได้เร็วที่สุดหากจะแบ่งพาร์ติชันสำหรับทำ Swap File ในพาร์ติชันแรกก็เป็นการกระทำที่ถูกต้อง แต่ถ้าหากคิดจะแบ่งพาร์ติชันและเก็บการทำSwap File ไปไว้ในพาร์ติชันถัดไปอันนี้ไม่ใช่ทางเลือกที่ดีนักเพราะความเร็วการอ่านเขียนข้อมูลของพาร์ติชันถัดไปนี้จะช้ากว่าการอ่านเขียนข้อมูลของพาร์ติชันแรกในเรื่องนี้ ขอแนะนำว่าไม่มีความจำเป็นถึงขนาดนั้นเพียงแต่ว่าถ้าหากมีฮาร์ดดิสก์แค่ตัวเดียวก็ให้ทำ Swap File ไว้ในพาร์ติชันแรกของฮาร์ดดิสก์ตัวนั้นก็เพียงพอแล้ว

การใช้โปรแกรมบางประเภท ทำการย้าย 
Swap File มาไว้ส่วนแรกสุดของฮาร์ดดิสก์
         จะมีซอฟต์แวร์บางตัวเช่น Norton Speed Disk มีความสามารถในการย้ายส่วนของ Swap File มาไว้ในส่วนแรกสุดของฮาร์ดดิสก์เพื่อการเข้าถึงข้อมูลได้เร็วขึ้นอันนี้ก็เป็นอีกวิธีหนึ่งที่ช่วยเพิ่มประสิทธิภาพของการทำ Virtual Memory ได้ ซึ่งเท่าที่ทราบมาโปรแกรม Defrag ของ Windows ไม่มีความสามารถในส่วนนี้




ข้อมูลจาก http://www.com-th.net

ไม่มีความคิดเห็น:

แสดงความคิดเห็น