Self-evaluation:system software

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

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

ในการแก้ไข กรุณากดปุ่ม [แก้ไข] ด้านขวามือขอหัวข้อเพื่อเลือกแก้ไขเป็นหัวข้อ หรือกดลิงก์ แก้ไข ด้านบนหน้าเพื่อแก้ไขทั้งหน้า

รายงานสถานะปัจจุบัน

ความสำคัญและบทบาทของรายวิชาในกลุ่มต่อหลักสูตรในภาพรวม

คำอธิบาย: การพิจารณาบทบาทเช่น จำนวนหน่วยกิตของรายวิชาที่ได้รับในกลุ่มวิชาหลัก จำนวนวิชาเลือกในกลุ่ม

วิชาในกลุ่มนี้เป็นส่วนที่เชื่อมโยง application software ในระดับบนเข้ากับ hardware ในระดับล่าง การมีอยู่ของ system software ก็เพื่อที่จะนำเสนอ interface ที่ง่ายต่อการใช้สำหรับ application software แทนที่จะให้มันไปติดต่อกับ hardware โดยตรง ถือว่าเป็น abstraction layer ในระบบคอมพิวเตอร์ที่มีความสำคัญ เป็นตัวช่วยเพิ่ม productivity ในการพัฒนา application ในระดับบน นอกจากนี้ยังช่วยในด้านความปลอดภัยในการใช้งานระบบคอมพิวเตอร์และช่วยให้การใช้ hardware มีประสิทธิผลสูงสุดอีกด้วย ในความเป็นวิศวกรคอมพิวเตอร์นั้น ควรที่จะเป็นผู้ที่มีความรู้ครอบคลุมตั้งแต่ระดับ application software ไปจนถึง hardware ในระดับล่าง และส่วนที่เชื่อมต่อทั้งสองระดับนี้เข้าด้วยกันก็คือ system software ดังนั้นจึงสมควรที่จะมีวิชาบังคับในด้านนี้เพื่อให้นิสิตได้เรียนรู้เทคโนโลยีในด้านนี้อย่างลึกซึ้ง


ในหลักสูตรปัจจุบันมีวิชาบังคับในกลุ่มนี้อยู่ 2 ตัวคือ Operating Systems และ System Software และมีวิชาเลือกคือ Object-Oriented Computing, Programming Language Translation, Parallel and Distributed Computing Systems, Programming Languages และ Grid Computing

ความเชื่อมโยงกับวิชาในกลุ่มอื่น ๆ

คำอธิบาย: เช่น เป็นพื้นฐานของวิชาในกลุ่มใด ต้องการวิชาใดเป็นวิชาพื้นฐาน หรือมีเนื้อหาเกี่ยวข้องกัน

โดยตามประเพณีในการเรียนศาสตร์ทางด้านคอมพิวเตอร์แล้ว เรามักจะเริ่มจากภาษาระดับสูงและสร้าง application ในระดับนั้นก่อน จากนั้นก็จะเรียนพื้นฐานทางด้าน hardware ในวิชา digital design และ computer architecture วิชาในกลุ่ม system software จะเรียนต่อจากที่ผู้เรียนได้เข้าใจแนวคิดแลการใช้งานของ hardware และ ภาษาระดับสูงอย่างดีเสียก่อน ดังนั้นจึงเป็นกลุ่มวิชาที่ผู้เรียนจะได้เรียนในระดับชั้นปีสูงๆคือปีสามหรือปีสี่ของหลักสูตร ดังที่ได้กล่าวมาแล้วว่าวิชาในกลุ่มนี้เป็นจุดเชื่อมระหว่าง hardware ในระดับล่าง และ application software ในระดับบน หากมีการเปลี่ยนแปลงใดๆจาก layer ทั้งสองนี้ ย่อมส่งผลกระทบมาทำให้เกิดการเปลี่ยนแปลงใน system software อย่างแน่นอน

รายงานทิศทางในอนาคต

ทิศทางในอนาคตที่สำคัญ และผลกระทบต่อรายวิขาในกลุ่มตนเอง

ในการพิจารณาทิศทางอาจแยกพิจารณาระหว่างทิศทางของการทำวิจัย กับทิศทางของวิชาในอุตสาหกรรม
ผลกระทบอาจจะระบุว่าควรเพิ่มหรือลดเนื้อหาส่วนใด อาจจะมีการเสนอเพิ่มหรือลดรายวิชา ในกรณีเพิ่มหรือลดรายวิชาควรระบุเหตุผลที่ชัดเจน
สำหรับกลุ่มวิชาที่รับผิดชอบทั้ง CPE และ SKE อาจจะต้องมีการวิเคราะห์แยกกันเนื่องจากมีรายวิชาที่ไม่เหมือนกัน

ทิศทางในอนาคตที่สำคัญ เป็นที่ชัดเจนแล้วว่าในปัจจุบันเกิดการเปลี่ยนแปลงพื้นฐานทางด้าน hardware อย่างที่ไม่เคยมีมาก่อน ยุคของการเติบโตของสมรรถนะของ hardware ที่เพิ่มขึ้น 50% ต่อปีมาเป็นเวลากว่า 30 ปี อย่างต่อเนื่องได้หยุดลง พร้อมกับการกลับมาอีกครั้งของ hardware ที่ใช้สถาปัตยกรรมแบบขนาน คำถามใหญ่ที่พวกเราในวงการคอมพิวเตอร์กำลังต้องการคำตอบอย่างยิ่งคือทำอย่างไรเราจะยังคงการเติบโตของสมรรถนะในการรันโปรแกรมให้ได้เมื่อ hardware เราไม่ได้เร็วขึ้นหากแต่มีจำนวนมากขึ้นและทำสามารถทำงานขนานกันไปได้ แน่นอนว่าการเปลี่ยนแปลงทาง hardware พื้นฐานขนาดนี้ ย่อมจะส่งผลกระทบถึง system software อยากหลีกเลี่ยงไม่ได้ ในอุดมคติ ถ้าเราไม่อยากให้ application software ต้องเปลี่ยนแปลงและสามารถที่จะรันโดยได้เร็วขึ้นบน parallel hardware ที่มีอยู่ system software ควรจะสามารถจัดการ map พวก application ที่เป็น sequential program ลงบน parallel hardware ได้โดยอัตโนมัติ นั่นคือจัดการ parallel ตัว sequential program นี้แล้ว schedule ลงแต่ละ CPU ทีมีเพื่อประมวลผลแบบขนานได้โดยที่ไม่ต้องเปลี่ยนแปลงตัว sequential program เลย อย่างไรก็ตาม การสร้าง abstraction ในระดับ system software ให้ได้มีความสามารถขนาดนี้ยังห่างไกลจากเทคโนโลยีปัจจุบันอยู่มาก ดังนั้นจึงต้องอาศัยความร่วมมือจาก application software ในระดับบนที่จะต้องมีการปรับให้เป็นแบบขนานเสียก่อน และ system software จะเป็นผู้ให้ primitives ที่จะทำให้การโปรแกรมแบบขนานนั้นง่ายขึ้น เช่น การใช้ threads และ transactional memory เป็นต้น


ผลกระทบต่อรายวิชาในกลุ่มตนเอง โดยหลักๆแล้วสิ่งที่เราจะเพิ่มเข้าไปในหลักสูตรที่ปรับปรุงใหม่ก็คือเนื้อหาทางด้าน parallel architecture และ parallel programming โดยจะเน้นไปที่ multicores architecture ซึ่งเป็น hardware ที่แพร่หลายที่สุดในขณะนี้ เราจะได้กล่าวถึงรายละเอียดของการเปลี่ยนแปลงในระดับรายวิชาโดยสังเขปต่อไป

ผลกระทบของการเปลี่ยนแปลงที่เสนอ กับรายวิชาในกลุ่มอื่น ๆ

ดังที่ได้กล่าวไว้ในเบื้องต้นว่าวิชาในกลุ่มนี้เป็นวิชาระดับชั้นปีที่สูงๆเรียน ดังนั้นการเปลี่ยนแปลงในกลุ่มนี้ย่อมจะส่งผลกระทบต่อกลุ่มอื่นๆน้อย อย่างไรก็ตามถ้าเราไม่มีการเปลี่ยนแปลงตั้งแต่วิชาทางด้าน hardware และ application software ที่ผู้เรียนจะต้องเรียนมาก่อนเพื่อเป็นพิ้นฐานที่จะก้าวเข้าสู่ system software การเปลี่ยนแปลงเฉพาะวิชาในกลุ่มนี้อย่างเดียวโดยที่กลุ่มอื่นๆไม่ได้เปลี่ยนตามให้รับกัน ย่อมจะไม่ได้ยังผลสูงสุดกับผู้เรียนอย่างสูงสุด

สรุปแนวทางการปรับปรุงวิชา

สรุปแนวทางการปรับปรุงรายวิชาโดยสังเขป

ในส่วนของวิชาบังคับ

1. ให้คง Operating Systems และ System Software ไว้โดยให้มีการปรับปรุงดังนี้

Operating Systems: ควรเพิ่มเนื้อหาในส่วนของ OS for parallel architecture เข้าไป

System Software: ควรจะเปลี่ยนชื่อให้สอดคล้องกับเนื้อหาที่เน้นคือ assembler linker และ loader

ในส่วนของวิชาเลือก

1. ควรจะตัดวิชาต่อไปนี้ออกและเอาไปไว้ในกลุ่มอื่นเพราะวิชาเหล่านี้ไม่เกี่ยวกับ system software โดยตรง: Object-Oriented Computing

2. วิชา Programming Language Translation ควรจะมีการเพิ่มเนื้อหาเกี่ยวกับการคอมไพล์สำหรับ parallel architecture

3. วิชา Parallel and Distributed Systems วิชานี้ควรจะแตกเป็นสองวิชาคือ Parallel Computer Architecture ที่เน้นทางด้าน hardware (ดูการปรับปรุงในส่วน hardware ประกอบ) และ Parallel Programming หรือ Programming for Performance ที่เน้นทางด้าน software

4. วิชา Grid Computing วิชานี้ควรจะตัดออกแล้วนำเนื้อหาเข้าไปอยู่ใน 2 วิชาในข้อ 3