วิวัฒนาการและชนิดของระบบปฏิบัติการ
ศาสตร์ด้านระบบปฏิบัติการนี้ได้รับอิทธิพลจากความสลับซับซ้อนของระบบมัลติโปรแกรมมิ่ง ซึ่งถ้าพิจารณาถึงองค์ประกอบของระบบปฏิบัติการที่ควรแก่การศึกษา ก็จะเป็นบรรดาองค์ประกอบที่ช่วยในการจัดโปรแกรมหลายๆ โปรแกรมให้ทำงานพร้อมๆ กันได้ ซึ่งอาจแบ่งได้เป็นสองประเภทใหญ่ๆ ด้วยกันคือการซิงโครไนซ์กระบวนการ (process synchronization) และการบริหารทรัพยากร (resource management)
o การซิงโครไนซ์กระบวนการ(process synchronization) ในระบบมัลติโปรแกรมมิ่ง โปรแกรมที่ทำงานพร้อมๆกันอาจต้องการใช้อุปกรณ์หรือทรัพยากร เช่น ใช้เครื่องพิมพ์ร่วมกัน แม้ว่าเครื่องพิมพ์จะสามารถใช้ร่วมกันได้ แต่ต้องมีข้อจำกัดเช่นว่าต้องผลัดกันใช้ คือต้องรอให้ผู้ที่ใช้อยู่เสร็จงานเสียก่อน ผู้อื่นจึงสามารถมาใช้ต่อได้ มิใช่ว่าสลับกันใช้ ลักษณะการควบคุมการแบ่งหรือผลัดกันใช้ทรัพยากรนี้ ต้องระมัดระวังไม่ให้งานต่างๆ ที่จะไปก้าวก่ายหรือสร้างความเสียหายให้กับงานอื่น ซึ่งโดยที่งาน แต่ละงานจะไม่รับรู้ถึงความเป็นไปของงานอื่นใดทั้งสิ้น (โดยนึกว่ามีงานนั้นเพียงงานเดียวในระบบ) ในลักษณะนี้การจัดจังหวะหรือสับหลีกการทำงานให้สอดคล้องกันนี้เรียกว่า การซิงโครไนซ์กระบวนการ จึงตกเป็นหน้าที่ของระบบปฏิบัติการ
o การบริหารทรัพยากร (resource management) การบริหารทรัพยากรนี้มีวัตถุประสงค์เพื่อให้เกิดความยุติธรรมต่อผู้ใช้และ ให้ประสิทธิภาพการทำงานของระบบสูงด้วย ทรัพยากรที่จำเป็นต้องควบคุมได้แก่ หน่วยประมวลผลกลาง, หน่วยความจำหลัก,อุปกรณ์รอบข้าง และข้อมูล
· การจัดการหน่วยประมวลผลกลาง(Central Processing Unit Management) เนื่องจากอุปกรณ์รับส่งข้อมูลและแสดงผลสามารถทำงานไปพร้อมกันกับหน่วยประมวล ผลกลางได้ ดังนั้นการจะใช้ประโยชน์ระบบให้ได้เต็มที่จึงต้องให้มีโปรแกรมสองประเภททำงานคู่ขนานกันไป โดยโปรแกรมหนึ่งจะทำการรับและแสดงผล ส่วนโปรแกรมอีกประเภทหนึ่งจะใช้หน่วยประมวลผลกลาง แต่อย่างไรก็ดี การสั่งให้อุปกรณ์นำข้อมูลเข้า/ออกเริ่มการทำงาน (เช่นบอกว่า ข้อมูลที่จะพิมพ์ อยู่ในส่วนใดของหน่วยความจำหลัก) ต้องอาศัยหน่วยประมวลผลกลางเป็นผู้ทำอีกอยู่ดี ดังนั้นถ้าหากนำเอางานที่ใช้แต่เฉพาะหน่วยประมวลผลกลางเข้าทำงานเหล่านั้นจะจับจองหน่วยประมวลผลกลางไปเรื่อยๆ ทำให้ไม่สามารถเริ่มงานรับข้อมูลและแสดงผลได้ การจัดให้เกิดความยุติธรรมและเพิ่มประโยชน์ใช้สอยของระบบนี้ มักประสบกับความต้องการที่ขัดแย้งกันของงานต่างๆ ทำให้การจัดสรรหน่วยประมวลผลกลางเป็นเรื่องลำบาก ก่อให้เกิดความยุ่งยากต่อระบบ ปฏิบัติการมาก
· การจัดการหน่วยความจำหลั(Memorymanagement) การจัดการหน่วยความจำหลักสัมพันธ์อย่างใกล้ชิดกับการจัดการหน่วยประมวลผลกลาง เหตุเพราะโปรแกรมต้องอยู่ในหน่วยความจำหลักก่อน แล้วจึงจะสามารถเข้าใช้หน่วยประมวลผลกลางได้ แต่ก็ ไม่ควรให้โปรแกรมยึดครองหน่วยความจำหลัก หากไม่มีโอกาสอันดีที่จะได้เข้าใช้หน่วยประมวลผลกลาง
· การจัดการอุปกรณ์ (Device management) อุปกรณ์ (device) คือ ส่วนประกอบของคอมพิวเตอร์ที่ไม่ใช่หน่วยประมวลผลกลางหรือหน่วยความจำหลัก เช่น เครื่องพิมพ์ หรือจานแม่เหล็ก อุปกรณ์บางอย่างสามารถใช้ร่วมกันได้ระหว่างโปรแกรมหลายโปรแกรมในขณะเดียวกัน เช่น จานแม่เหล็ก แต่อุปกรณ์บางอย่างเช่น เครื่องพิมพ์ แม้จะใช้ร่วมกันได้ แต่ต้อง ผลัดกันใช้ หมายถึงว่าต้องพิมพ์ผลของงานหนึ่งให้เสร็จสิ้นลงเสียก่อน จึงสามารถเริ่มพิมพ์ผลของอีกงานหนึ่งได้ การจัดสรรอุปกรณ์มีผลต่อการใช้ประโยชน์ของระบบได้ด้วย ตัวอย่างเช่น งาน ก. และ งาน ข. ต้องการใช้ตู้เทปแม่เหล็กสองและสามตู้ตามลำดับ หากในระบบมีเทปอยู่สามตู้ แต่ว่างเพียงสองตู้ในขณะนั้น ก็น่าจะให้งาน ก.ได้ใช้ตู้เทปทั้งสองที่ว่างอยู่ แต่หากงาน ข. ในขณะนั้นใช้องค์ประกอบอื่นของระบบอยู่มากแล้ว เช่น กินเนื้อที่หน่วยความจำหลักถึงสองในสามของระบบ ก็น่าจะให้งาน ก.รอก่อนให้ตู้เทปว่างลงอีกตู้ แล้วให้งาน ข. เข้าใช้ทั้งสามตู้ เพื่อใช้งาน ข. สำเร็จลุล่วงไปโดยเร็ว จะได้ปลดปล่อยหน่วยความจำหลักที่ยึดครองไว้ ศาสตร์ในการจัดสรรอุปกรณ์ในปัจจุบัน ยังคงเป็นการแก้ปัญหาเฉพาะหน้าเป็นส่วนมาก โดยอาศัยความชำนาญและประสบการณ์ของพนักงานควบคุมเครื่องเป็นสำคัญ เนื่องจากความต้องการและองค์ประกอบต่างๆ ในระบบใหญ่ๆ ซับซ้อนเกินกว่าจะนิยามออกมาเป็นหลักเกณฑ์ทางคณิตศาสตร์ได้
· การจัดสรรข้อมูล (Data management) ข้อมูล (data หรือ information) อาจแบ่งได้เป็นสองประเภทคือ โปรแกรมสำเร็จรูปที่ใช้ร่วมกัน (ไม่นับระบบปฏิบัติการ) และส่วนที่เป็นแฟ้มข้อมูล (data file) ของผู้ใช้
สำหรับส่วนที่เป็นซอฟร์แวร์หรือโปรแกรมสำเร็จรูป (package หรือ library program) ซึ่งมีผนวกอยู่ในระบบปฏิบัติการเพื่อเอื้ออำนวยผู้ใช้ โดยปกติจัดอยู่ในรูป reentrant code คือมีส่วนของโปรแกรมเพียงสำเนาเดียว แต่สามารถให้ผู้ใช้เรียกใช้ได้พร้อมๆ กันหลายคน โดยแยกส่วนที่เป็นข้อมูลของแต่ละผู้ใช้ไป เช่น โปรแกรมแปลภาษา (translator หรือ compiler) โปรแกรมจัดคำ (editor) เป็นต้น ลักษณะนี้ลดความซ้ำซ้อน ได้มาก เพราะถ้าโปรแกรมร่วมนี้ไม่เป็น reentrant code แล้วผู้ใช้โปรแกรมนี้แต่ละคน จะต้องมีสำเนาของโปรแกรมร่วมนี้คนละชุดเกิดเป็นสำเนาของโปรแกรมร่วมหลายๆ ชุดอยู่ในหน่วยความจำทำให้สิ้นเปลืองโดยใช่เหตุ
สำหรับส่วนที่เป็นแฟ้มข้อมูลของผู้ใช้นั้น การจัดการแฟ้มข้อมูลจะต้องคำนึงถึงการเอื้ออำนวยให้สะดวกที่จะใช้ข้อมูล นอกจากนี้ยังจะต้องคำนึงถึงประสิทธิภาพในการเก็บและเรียกใช้ตลอดจนการรักษาความปลอดภัยของแฟ้มข้อมูลของผู้ใช้แต่ละคนด้วย
หน้าที่ของระบบปฏิบัติการ
จากที่ได้กล่าวมาแล้วว่า ระบบปฏิบัติการถูกสร้างขึ้นมาด้วยวัตถุประสงค์หลักคือ อำนวยความสะดวกแก่ผู้ใช้เครื่องคอมพิวเตอร์ ในลักษณะที่ผู้ใช้ไม่จำเป็นต้องทราบกลไกการทำงานหรือฮาร์ดแวร์ของระบบ จึงสามารถแบ่ง หน้าที่หลักของระบบปฏิบัติการได้ดังนี้
1. ติดต่อกับผู้ใช้ (user interface) ผู้ใช้สามารถติดต่อหรือควบคุมการทำงานของเครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการได้ โดยระบบปฏิบัติการจะเครื่องหมายพร้อมต์ (prompt) ออกทางจอภาพเพื่อรอรับคำสั่งจากผู้ใช้โดยตรง ตัวระบบปฏิบัติการจึงเป็นตัวกลางที่ทำหน้าที่เชื่อมโยงระหว่างผู้ใช้กับฮาร์ดแวร์ของเครื่อง นอกจากนี้ผู้ใช้อาจเขียนโปรแกรมเพื่อใช้งานกรณีนี้ผู้ใช้ก็สามารถติดต่อกับระบบปฏิบัติการได้โดยผ่านทาง System Call
2. ควบคุมการทำงานของโปรแกรม และอุปกรณ์รับ/แสดงผลข้อมูล (input/output device) ตลอดจนการให้ความสะดวกแก่ผู้ใช้ในการใช้งานอุปกรณ์ต่างๆ ได้ง่าย เช่น การเข้าถึงข้อมูลในแฟ้มหรือติดต่อกับอุปกรณ์รับ/แสดงผลข้อมูล จึงทำให้ผู้พัฒนาโปรแกรมไม่จำเป็นต้องเขียนโปรแกรมเพื่อควบคุมตัวขับดิสก์เพราะระบบปฏิบัติการจัดบริการให้มีคำสั่งสำหรับติดต่อกับอุปกรณ์เหล่านี้ได้อย่างง่ายๆเนื่องจากผู้ใช้เครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการ อาจไม่มีความจำเป็นต้องมีความรู้ความเข้าใจถึงหลักการทำงานภายในของเครื่อง ดังนั้น ระบบปฏิบัติการจึงมีหน้าที่ควบคุมการทำงานของโปรแกรม การทำงานของอุปกรณ์ต่างๆ เพื่อให้การทำงานของระบบเป็นไปอย่างถูกต้องและสอดคล้องกัน ระบบปฏิบัติการจึงมีส่วนประกอบของหน้าที่ต่างๆ ที่ควบคุมอุปกรณ์แต่ละชนิดที่มีหน้าที่แตกต่างกันไป โดยผู้ใช้อาจเรียกใช้ผ่านทาง System Call หรือเขียนโปรแกรมขึ้นมาควบคุมอุปกรณ์เหล่านั้นได้เอง
3. จัดสรรให้ใช้ทรัพยากรระบบร่วมกัน (shared resources) ซึ่งทรัพยากรหลักที่ต้องมีการจัดสรร ได้แก่ หน่วยประมวลผลกลาง หน่วยความจำหลัก อุปกรณ์รับ/แสดงผลข้อมูลและแฟ้มข้อมูล เช่น การจัดลำดับให้บริการใช้เครื่องพิมพ์การสับหลีกงานหลายงานในหน่วยความจำหลักและการจัดสรรหน่วยความจำหลักให้กับโปรแกรมทั้งหลาย ทรัพยากร คือสิ่งที่ซึ่งถูกใช้ไปเพื่อให้โปรแกรมดำเนินไป ซึ่งเหตุที่ต้องมีการจัดสรรทรัพยากรก็เพราะ
· ทรัพยากรของระบบมีขีดจำกัด เช่นซีพียูในระบบมีอยู่เพียงตัวเดียว แต่ทำงานในระบบมัลติโปรแกรมมิ่งมีการทำงานหลายโปรแกรม จึงจะต้องมีการจัดสรรซีพียูให้ทุกโปรแกรมอย่างเหมาะสม
· ทรัพยากรมีอยู่หลายประเภท แต่ละโปรเซสหรือโปรแกรมมีความต้องการใช้ทรัพยากรเพียง อย่างเดียว หรือหลายอย่างพร้อมกัน ระบบปฏิบัติการจึงต้องจัดเตรียมทรัพยากรต่างๆ ตามความต้องการของโปรแกรม
ดังนั้นหน้าที่อันสำคัญประการหนึ่งของระบบปฏิบัติการก็คือ การจัดสรรทรัพยากรของระบบให้เกิดประโยชน์สูงสุด โดยคำนึงถึงความยุติธรรมต่อผู้ใช้แต่ละคน และให้เกิดประสิทธิภาพเป็นหลักสำคัญ ถ้าระบบปฏิบัติการจัดสรรทรัพยากรได้อย่างมีประสิทธิภาพ ระบบก็สามารถรันโปรแกรมได้อย่างรวดเร็วและได้งานเพิ่มขึ้น ทรัพยากรหลักที่ระบบปฏิบัติการจัดสรรได้แก่ โปรเซสเซอร์ (ซีพียู),หน่วยความจำ,อุปกรณ์นำข้อมูลเข้า/ออก และข้อมูล เป็นต้น
ระบบปฏิบัติการอาจเป็นได้ทั้ง Hardware Software หรือ Firmware หรือผสมผสานกันก็ได้ โดยมี เป้าหมายเดียวกันคือสามารถช่วยให้ผู้ใช้คอมพิวเตอร์สามารถใช้คอมพิวเตอร์ได้ดังที่ได้กล่าวมาแล้ว
Hardware OS เป็น OS ที่อยู่ในรูปของอุปกรณ์ ถูกสร้างขึ้นเพื่อควบคุมการทำงานของเครื่องคอมพิวเตอร์และเป็นส่วนหนึ่งของฮาร์ดแวร์ มีความเร็วในการทำงานสูง แต่ราคาแพงและแก้ไขยาก ไม่นิยมในการแก้ไขส่วนมากจะเป็นการเปลี่ยนอุปกรณ์มากกว่าการแก้ไข
Software OS เป็น OS ที่เป็นโปรแกรมที่เขียนขึ้นเพื่อควบคุมการทำงานของเครื่องคอมพิวเตอร์ เช่นเดียวกัน มีความเร็วช้ากว่า Hardware OS แต่เป็นที่นิยมมากที่สุดเพราะง่ายแก่การแก้ไข และราคาถูก
Firmware OS เป็น OS ที่เป็นส่วนของโปรแกรมที่เก็บไว้เป็นส่วนหนึ่งของเครื่องคอมพิวเตอร์ เขียนขึ้นโดยใช้คำสั่งไมโคร หลายๆ คำสั่งของคำสั่งไมโครรวมกันเรียกว่าไมโครโปรแกรม มีความเร็วสูงกว่า Software OS แต่ช้ากว่า Hardware OS |