System Resource (ทรัพยากรระบบ): "ความมีนัยสำคัญ" เป็นลักษณะน่าประทับใจในโลกจริง ไม่ได้หมายถึงการมีทรัพยากรมากมาย แต่มาจากความสามารถในการเพิ่มศักยภาพสูงสุดจากทรัพยากรจำกัดที่มีอยู่ในเวลาใดเวลาหนึ่ง สิ่งนี้จริงไม่ได้ในโลกจริงอย่างเดียว แต่ในฮาร์ดแวร์และซอฟต์แวร์ที่เราใช้ประจำวันเช่นกัน เพื่อให้เห็นภาพชัดเจน แม้รถยนต์ประสิทธิภาพสูงจะถูกปรารถนาและฝันถึง แต่นักขับส่วนใหญ่ไม่ซื้อรถสปอร์ตแม้จะมีเงิน เพราะ "ไม่ปฏิบัติจริง"
หมายความว่า การเลือกของสังคมเราเอียงไปที่ ประสิทธิภาพ (efficiency) รถยนต์ที่ได้รับความนิยมมากที่สุดไม่ได้สวยงามที่สุด แต่ให้ประสิทธิภาพด้านค่าใช้จ่าย เศษน้ำมัน และค่าบำรุงรักษา ดังนั้น การมีฮาร์ดแวร์แพงที่สุดก็ไม่พอ หากมันใช้พลังงานมากมายแค่เพื่อแก้ไข spreadsheet ง่ายๆ ที่โทรศัพท์มือถือทำได้ หรือติดตั้งเกม/ซอฟต์แวร์แพงที่สุดแต่มันค้างทันทีที่เปิด คำตอบของ "สิ่งที่ทำให้มีประสิทธิภาพ" คือ ความสามารถในการจัดการทรัพยากรที่มีอยู่อย่างฉลาด ให้ประสิทธิภาพสูงสุดด้วยพลังงานและทรัพยากรน้อยที่สุด
System Resource คืออะไร?
นิยามสั้นและกระชับ: ความสามารถของระบบปฏิบัติการในการดำเนินงานที่ผู้ใช้ร้องขออย่างมีประสิทธิภาพ โดยใช้ฮาร์ดแวร์และซอฟต์แวร์ทั้งหมดให้เกิดประโยชน์สูงสุด
จากความก้าวหน้าทางเทคโนโลยีที่รวดเร็ว นิยามของระบบคอมพิวเตอร์ขยายออกไปไกลกว่า "กล่องที่มีไฟกระพริบ พร้อมคีย์บอร์ด จอภาพ และเมาส์" สมาร์ทโฟน โน้ตบุ๊ค แท็บเล็ต คอมพิวเตอร์บอร์ดเดี่ยว (single board computers) เปลี่ยนแนวคิดคอมพิวเตอร์โดยสิ้นเชิง แต่เทคโนโลยีพื้นฐานที่ขับเคลื่อนสิ่งมหัศจรรย์สมัยใหม่นี้ ยังคงเหมือนเดิม และไม่คาดว่าจะเปลี่ยนแปลงในเร็วๆ นี้
ลองขุดลึกว่า System Resource ทำงานอย่างไร: เหมือนทรัพยากรทั่วไป เมื่อเราเปิดเครื่อง ระบบจะตรวจสอบและยืนยันฮาร์ดแวร์ทั้งหมดที่เชื่อมต่ออยู่ ซึ่งจะถูกล็อกไว้ใน Windows Registry ข้อมูลความจุ พื้นที่ว่าง RAM ภาวะจัดเก็บภายนอก ฯลฯ อยู่ที่นี่
พร้อมกับนี้ ระบบปฏิบัติการเริ่ม background services และ processes นี่คือการใช้ทรัพยากรครั้งแรก ทางตัวอย่าง: หากติดตั้งแอนตี้ไวรัสหรือซอฟต์แวร์ที่ต้องอัปเดตบ่อย Services เหล่านี้เริ่มทำงานทันทีที่เปิดเครื่อง อัปเดตหรือสแกนไฟล์ในพื้นหลัง เพื่อปกป้องและอัปเดตเรื่อยๆ
Resource request อาจเป็น service ที่แอปพลิเคชันหรือระบบต้องการ หรือโปรแกรมที่รันเมื่อผู้ใช้สั่ง เมื่อเราเปิดโปรแกรม มันจะตรวจสอบทรัพยากรที่มีว่าพอสำหรับรันหรือไม่ หากครบ โปรแกรมทำงานตามปกติ แต่หากไม่ครบ OS จะตรวจสอบว่าแอปไหนกำลัง佔ทรัพยากรนั้น และพยายามยุติมัน
ในโลกที่สมดุล เมื่อแอปพลิเคชันขอทรัพยากร ต้องคืนกลับไปเมื่อเสร็จสิ้น แต่ความเป็นจริงคือ แอปที่ขอทรัพยากรเฉพาะเจาะจง มัก ไม่คืนทรัพยากร กลับหลังเสร็จงาน นี่คือเหตุผลที่แอปหรือระบบค้าง เพราะ service หรือแอปอื่น กำลัง佔ทรัพยากรที่จำเป็นในพื้นหลัง ทุกระบบมาพร้อมทรัพยากรจำกัด ดังนั้น การจัดการทรัพยากรจึงสำคัญที่สุด
ประเภทต่างๆ ของ System Resources
System resource ใช้โดยฮาร์ดแวร์หรือซอฟต์แวร์เพื่อสื่อสารกัน เมื่อซอฟต์แวร์ส่งข้อมูลไปอุปกรณ์ (เช่น บันทึกไฟล์ลงฮาร์ดดิสก์) หรือฮาร์ดแวร์ต้องการการสนใจ (เช่น กดปุ่มคีย์บอร์ด) มี 4 ประเภทของ system resources:
- Direct Memory Access (DMA) channels
- Interrupt request lines (IRQ)
- Input and Output addresses (I/O addresses)
- Memory addresses
เมื่อกดปุ่มคีย์บอร์ด คีย์บอร์ดต้องแจ้ง CPU ว่ามีปุ่มถูกกด แต่ CPU ยุ่งอยู่กับโปรเซสอื่น ไม่หยุดได้ จึงต้องมี Interrupt request lines (IRQ) ทำหน้าที่ interrupt CPU แจ้งว่ามี request ใหม่จากคีย์บอร์ด คีย์บอร์ดส่งโวลตेजบน IRQ line ที่ได้รับมอบหมาย โวลตेजนี้เป็นสัญญาณบอก CPU ว่ามีอุปกรณ์ร้องขอประมวลผล
ระบบปฏิบัติการจัดการหน่วยความจำเหมือนรายการเซลล์ยาวๆ ที่จัดเก็บข้อมูลและคำสั่ง คล้ายสเปรดชีต 1 มิติ Memory address เปรียบเสมือน หมายเลขที่นั่งในโรงละคร ทุกที่นั่งมีหมายเลข ไม่ว่าจะมีคนนั่งหรือไม่ คนนั่งในที่นั่งอาจเป็นข้อมูลหรือคำสั่ง OS ไม่เรียกคนด้วยชื่อ แต่เรียกด้วยหมายเลขที่นั่ง เช่น OS อาจพูดว่า ต้องการพิมพ์ข้อมูลใน memory address 500 ที่อยู่เหล่านี้มักแสดงเป็นเลขฐานสิบหก (hexadecimal) ในรูปแบบ segment offset
Input-output addresses (I/O addresses) หรือเรียกว่า ports CPU ใช้เข้าถึงอุปกรณ์ฮาร์ดแวร์คล้ายกับการใช้ memory addresses เข้าถึง physical memory Address bus บนเมนบอร์ด บางครั้งส่ง memory addresses บางครั้งส่ง I/O addresses
หาก address bus ตั้งค่าให้ส่ง I/O addresses อุปกรณ์ฮาร์ดแวร์ทุกตัวจะฟัง bus นี้ เช่น CPU ต้องการสื่อสารกับคีย์บอร์ด จะวาง I/O address ของคีย์บอร์ดบน address bus เมื่อวาง address แล้ว CPU ประกาศ address ให้ I/O devices ทั้งหมดบน address line ทุก controller ฟัง address ของตัวเอง HDD controller บอกไม่ใช่ของฉัน Floppy controller บอกไม่ใช่ แต่ Keyboard controller บอก "ของฉัน ฉันจะตอบ" นี่คือวิธีคีย์บอร์ดโต้ตอบกับ processor เมื่อกดปุ่ม วิธีคิดอีกอย่าง: I/O address lines บน bus ทำงานเหมือน party line โทรศัพท์เก่า - ทุกอุปกรณ์ได้ยิน address แต่เพียงตัวเดียวตอบ
Direct Memory Access (DMA) channel เป็นวิธีลัด ให้ I/O device ส่งข้อมูลตรงไปหน่วยความจำ ข้าม CPU ไปเลย บางอุปกรณ์ เช่น พิมพ์ถูกออกแบบให้ใช้ DMA channels บางตัวอย่างเมาส์ไม่ได้ใช้ DMA channels ไม่นิยมเท่าเดิม เพราะการออกแบบทำให้ช้ากว่าวิธีใหม่ แต่อุปกรณ์ช้า เช่น floppy drives, sound cards, tape drives อาจยังใช้ DMA channels
สรุป: ฮาร์ดแวร์เรียก CPU ด้วย Interrupt Requests ซอฟต์แวร์เรียกฮาร์ดแวร์ด้วย I/O address ซอฟต์แวร์จัดการหน่วยความจำเป็นอุปกรณ์เรียกด้วย memory address DMA channels ส่งข้อมูลระหว่างฮาร์ดแวร์และหน่วยความจำ
ข้อผิดพลาดที่อาจเกิดขึ้นกับ System Resources
System resource errors น่ากลัวที่สุด ทำงานอยู่ดีๆ แค่ดับเบิลคลิกโปรแกรมกินทรัพยากร บายบายระบบที่ทำงานได้ ทำไมถึงอย่างนี้? การเขียนโปรแกรมแย่ อาจเป็นเหตุผล แต่ซับซ้อนกว่านั้น เพราะเกิดขึ้นใน OS สมัยใหม่ด้วย โปรแกรมที่รันต้องแจ้ง OS ว่าต้องการทรัพยากรเท่าไหร่ และต้องการนานแค่ไหน บางครั้งทำไม่ได้เพื่อธรรมชาติของโปรเซส เรียกว่า memory leak แต่โปรแกรมควรคืนหน่วยความจำหรือทรัพยากรที่ขอไว้
เมื่อไม่คืน เราอาจเห็นข้อผิดพลาดอย่าง:
- "Your computer is low on memory" (คอมพิวเตอร์หน่วยความจำต่ำ)
- "System is dangerously low on resources" (ระบบทรัพยากรต่ำอันตราย)
- "Insufficient system resources exist to complete the requested service" (ทรัพยากรระบบไม่เพียงพอ)
- และอื่นๆ
วิธีแก้ไข System Resource Errors
คีย์เวทมนตร์ 3 ปุ่ม 'Alt' + 'Del' + 'Ctrl' ควรเป็นพื้นฐานสำหรับคนที่เจอระบบค้างบ่อย กดแล้วเข้าสู่ Task Manager ดูทรัพยากรที่แต่ละโปรแกรม/บริการใช้
ส่วนใหญ่จะพบว่าแอป/โปรแกรมไหนกินหน่วยความจำมาก หรือทำ disk reads/writes สูง เมื่อเจอแล้ว สามารถคืนทรัพยากรได้โดย จบโปรแกรมที่มีปัญหา (End task) หรือ ถอนการติดตั้ง (uninstall) หากไม่ใช่โปรแกรม ให้ไปดูส่วน Services ใน Task Manager จะเปิดเผย service ไหนกินทรัพยากรเงียบๆ ในพื้นหลัง
มี services เริ่มต้นพร้อม OS เรียกว่า startup programs หาได้ในแท็บ Startup ของ Task Manager ความดีของแท็บนี้คือ ไม่ต้องค้นหา service กินทรัพยากรด้วยตนเอง แท็บนี้แสดง services ที่ส่งผลต่อระบบพร้อม startup impact rating ใช้ข้อมูลนี้ตัดสินใจ disable services ไหน
ขั้นตอนข้างต้นช่วยได้หากคอมพิวเตอร์ไม่ค้างสมบูรณ์ หรือแค่แอปบางตัวค้าง แต่ถ้าระบบค้างสมบูรณ์? ไม่มีตัวเลือกอื่น แป้นพิมพ์ทำงานไม่ได้ OS ค้างเพราะขาดทรัพยากร จะต้อง รีสตาร์ทคอมพิวเตอร์ ควรแก้ปัญหาค้างหากมาจากแอปไม่เข้ากัน/ไม่รองรับ หลังรู้ว่าแอปไหนก่อให้เกิดปัญหา ให้ uninstall แอปนั้น
บางครั้งขั้นตอนข้างต้นไม่ช่วย หากระบบค้างต่อเนื่อง โอกาสมีว่าเป็นปัญหา ฮาร์ดแวร์ โดยเฉพาะ RAM (Random Access Memory) ต้องเข้าถึง RAM slot บนเมนบอร์ด หากมี RAM 2 แท่ง ลองรันระบบด้วย RAM แท่งเดียว สลับกัน เพื่อดูว่าแท่งไหนเสีย หากพบปัญหา RAM เปลี่ยน RAM ที่เสีย จะแก้ปัญหาค้างจากทรัพยากรระบบต่ำได้
สรุป
หวังว่าคุณเข้าใจแล้วว่า system resource คืออะไร ประเภทต่างๆ ที่มีในอุปกรณ์คอมพิวติ้ง ข้อผิดพลาดที่อาจพบในงานประจำวัน และขั้นตอนแก้ไขปัญหาทรัพยากรระบบต่ำอย่างสำเร็จ