koonpuii.files.wordpress.com  · web view2013. 10. 9. · user interface) ผู้ใช้ ......

46
1 รรรรรร รรรรรร รรรรรรรรรรรรรร รรรรรรรรร รรรรรร รรรรร รรรรรรร รรรร รรรรรรร รรรรรรร รรรรรรรร รรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรรรรรรร รรรรรรรร 30702213

Upload: others

Post on 02-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

1

รายงาน

เรื่อง ระบบปฏิบัติการ 

จัดทำโดย

นางสาว กนกกร ทุมเสนา

เสนอ

อาจารย์ สุพรรณี เขียวไกร

รายงานเล่มนี้เป็นส่วนหนึ่งของรายวิชาคอมพิวเตอร์และเทคโนโลยีสารสนเทศธุรกิจ รหัสวิชา 30702213

ภาคเรียนที่ 1 ปีการศึกษา 2556

คณะวิทยาการจัดการและเทคโนโลยีสารสนเทศ

มหาวิทยาลัยนครพนม

คำนำ

รายงานวิชา ระบบปฏิบัติการ  ซึ่งเรียบเรียงเนื้อหาตรงตามจุดประสงค์รายวิชา รายงานเล่มนี้ประกอบด้วยเนื้อหา ดังนี้ ความรู้เบื้องต้นเกี่ยวกับระบบปฏิบัติการ  ระบบปฏิบัติการ 

หน้าที่ของระบบปฏิบัติการ โครงสร้างพื้นฐานของเครื่องคอมพิวเตอร์ แชลแนลและหน่วยควบคุมอุปกรณ์ การติดต่อระหว่างอุปกรณ์รอบข้างกับซีพียู วิวัฒนาการและชนิดของระบบปฏิบัติการ องค์ประกอบของระบบปฏิบัติการ อ้างอิง

ผู้เรียบเรียงหวังเป็นอย่างยิ่งว่ารายงานเล่มนี้ จะเป็นเอกสารประกอบการเรียนที่เป็นประโยชน์ต่อการสอนของคณะอาจารย์ และการเรียนรู้ของนักศึกษาเพื่อให้การศึกษาทัดเทียมกับระดับสากล

นางสาว กนกกร ทุมเสนา

สารบัญ

คำนำ2

สารบัญ3

ความรู้เบื้องต้นเกี่ยวกับระบบปฏิบัติการ 4

ระบบปฏิบัติการ  4-6

หน้าที่ของระบบปฏิบัติการ7-8

โครงสร้างพื้นฐานของเครื่องคอมพิวเตอร์9-10

แชลแนลและหน่วยควบคุมอุปกรณ์ 10-11

การติดต่อระหว่างอุปกรณ์รอบข้างกับซีพียู11-14

วิวัฒนาการและชนิดของระบบปฏิบัติการ14-23

องค์ประกอบของระบบปฏิบัติการ23-25

อ้างอิง26

ความรู้เบื้องต้นเกี่ยวกับระบบปฏิบัติการ คอมพิวเตอร์ได้ถูกพัฒนามาอย่างมากมายหลายรุ่น ตั้งแต่ยุคแรกๆ จนกระทั่งถึงปัจจุบัน ยุคแรกๆ คอมพิวเตอร์ถูกสร้างขึ้นมาจากหลอดสูญญากาศ มีขานาดใหญ่มาก แต่ในปัจจุบันนี้ คอมพิวเตอร์ผลิตจากแผงวงจรรวมที่มีประสิทธิภาพและมีความสามารถสูง ขนาดเล็ก พกพาได้สะดวกขึ้นมาก แต่ถึงแม้ว่าตัวเครื่องคอมพิวเตอร์ได้ถูกพัฒนาไปอย่างมากจนชนิดเทียบกับอดีตเป็นคนละเรื่องกันก็ตาม โครงสร้างพื้นฐานของระบบคอมพิวเตอร์ก็ยังคงมีลักษณะเหมือนเดิม

ระบบปฏิบัติการ เป็นซอฟต์แวร์ที่เอาไว้ใช้สำหรับควบคุมและประสานงานระหว่างอุปกรณ์ภายในคอมพิวเตอร์ทั้งหมด ตั้งแต่ซีพียู หน่วยความจำ ไปจนถึงส่วนนำเข้าและส่งออกผลลัพธ์ ( input/output device ) บางครั้งก็นิยมเรียกรวม ๆ ว่า แพลตฟอร์ม (platform ) คอมพิวเตอร์จะทำงานได้จำเป็นต้องมีระบบปฏิบัติการติดตั้งอยู่ในเครื่องเสียก่อน ซึ่งก็ขึ้นอยู่กับบริษัทผู้ผลิตเครื่องนั้น ๆ ว่าจะเลือกใช้แพลตฟอร์ม หรือระบบปฏิบัติการอะไรในการทำงาน เราจะพบเห็นระบบปฏิบัติการอยู่ในคอมพิวเตอร์แทบจะทุกประเภทตั้งแต่เครื่องขนาดใหญ่อย่างเครื่องเมนเฟรมจนถึงระดับเล็กสุด เช่น เครื่องคอมพิวเตอร์พกพาประเภทพีดีเอ

คุณสมบัติการทำงาน ระบบปฏิบัติการโดยทั่วไปจะมีคุณสมบัติในการทำงานแบบต่าง ๆ ดังต่อไปนี้

การทำงานแบบ Multi – Tasking คือ ความสามารถในการทำงานได้หลาย ๆ งาน หรือหลาย ๆ โปรแกรมในเวลาเดียวกัน เช่น พิมพ์รายงานควบคู่ไปกับการท่องเว็บ ซึ่งในสมัยก่อนการทำงานของระบบปฏิบัติการจะอยู่ในรูปแบบที่เรียกว่า single-tasking ซึ่งจะทำงานทีละโปรแกรมคำสั่ง ผู้ใช้ไม่สามารถที่จะสลับงานไประหว่างโปรแกรมหรือทำงานควบคู่กันได้ แต่สำหรับในปัจจุบันจะพบเห็นลักษณะการทำงานแบบนี้มากขึ้น เช่น ในระบบปฏิบัติการ Windows รุ่มใหม่ ๆ ซึ่งทำให้การใช้งานได้สะดวกและทำงานได้หลาย ๆ โปรแกรม

การทำงานแบบ Multi - Tasking

การทำงานแบบ Multi – User ในระบบการเชื่อมโยงคอมพิวเตอร์เข้าไว้ด้วยกันแบบเครือข่าย ระบบปฏิบัติการที่ทำหน้าที่ควบคุมจะมีคุณสมบัติอย่างหนึ่งที่เรียกว่า multi-user หรือความสามารถในการทำงานกับผู้ใช้ได้หลาย ๆ คน ขณะที่มีการประมวลผลของงานพร้อม ๆ กัน ทำให้กระจายการใช้ได้ทั่วถึงมากยิ่งขึ้น

การทำงานแบบ Multi – Use

1.1 ระบบปฏิบัติการ (Operating System : OS) คืออะไร

ระบบคอมพิวเตอร์แทบทุกระบบถือว่าระบบปฏิบัติการเป็นส่วนสำคัญของระบบ โดยทั่วไประบบคอมพิวเตอร์แบ่งเป็น 4 ส่วน คือ ฮาร์ดแวร์ ระบบปฏิบัติการ โปรแกรมประยุกต์ และผู้ใช้

1. ฮาร์ดแวร์ ประกอบด้วยทรัพยากรต่างๆ ที่มีในระบบ ได้แก่ อุปกรณ์นำข้อมูลเข้า/ออก หน่วยประมวลผลกลาง และหน่วยความจำ นอกจากนี้ยังหมายความรวมถึง โปรแกรมภาษาเครื่อง และไมโครโปรแกรม ซึ่งเป็นส่วนที่บริษัทผู้ผลิตสร้างขึ้นเพื่อใช้เป็นซอฟร์แวร์ในระดับพื้นฐาน (primitive level) โดยสามารถทำงานได้โดยตรงกับทรัพยากรระบบด้วยคำสั่งง่ายๆ เช่น ADD MOVE หรือ JUMP คำสั่งเหล่านี้จะถูกกำหนดเป็นขั้นตอน การทำงานของวงจรภายในเครื่องคอมพิวเตอร์ ชุดคำสั่งที่ไมโครโปรแกรมต้องแปลหรือตีความหมายจะอยู่ใน รูปแบบภาษาเครื่องและมักเป็นคำสั่งในการคำนวณ เปรียบเทียบ และการควบคุมอุปกรณ์นำข้อมูลเข้า/ออก

2. ระบบปฏิบัติการ เป็นโปรแกรมที่ทำงานเป็นตัวกลางระหว่างผู้ใช้เครื่องและฮาร์ดแวร์ โดยมีวัตถุประสงค์เพื่อจัดสภาพแวดล้อมให้ผู้ใช้ระบบสามารถปฏิบัติงานบนเครื่องคอมพิวเตอร์ได้ โดยจะเอื้ออำนวยการพัฒนาและการใช้โปรแกรมต่างๆ รวมถึงการจัดสรรทรัพยากรต่างๆ ให้ได้อย่างมีประสิทธิภาพ

3. โปรแกรมประยุกต์ คือซอฟต์แวร์หรือโปรแกรมที่ถูกเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ เช่น งานส่วนตัว งานทางด้านธุรกิจ งานทางด้านวิทยาศาสตร์ โปรแกรมทางธุรกิจ เกมส์ต่างๆ ระบบฐานข้อมูล ตลอดจนตัวแปลภาษา เราอาจเรียกโปรแกรมประเภทนี้ว่า User's Program โปรแกรมประเภทนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงในการพัฒนา เช่นภาษา C, C++, COBOL, PASCAL, BASIC ฯลฯ ตัวอย่างของโปรแกรมที่พัฒนาขึ้นใช้ในทางธุรกิจ เช่น โปรแกรมระบบบัญชีจ่ายเงินเดือน (Payroll Program) โปรแกรมระบบเช่าซื้อ (Hire Purchase) โปรแกรมระบบสินค้าคงหลัง (Stock Program) ฯลฯ ซึ่งแต่ละโปรแกรมก็จะมีเงื่อนไขหรือแบบฟอร์มที่แตกต่างกัน ตามความต้องการหรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งโปรแกรมประเภทนี้เราสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมเองได้ เพื่อให้ตรงกับความต้องการของผู้ใช้งานโปรแกรม โปรแกรมเหล่านี้เป็นตัวกำหนดแนวทางในการใช้ทรัพยากรระบบ เพื่อทำงานต่างๆ ให้แก่ผู้ใช้หลากหลายประเภท ซึ่งอาจเป็นได้ทั้งบุคคล โปรแกรม หรือเครื่องคอมพิวเตอร์ เช่นตัวแปรภาษาต้องใช้ทรัพยากรระบบในการแปลโปรแกรมภาษาระดับสูงให้เป็นภาษาเครื่องแก่โปรแกรมเมอร์ ดังนั้น ระบบปฏิบัติการต้องควบคุมและประสานงานในการใช้ทรัพยากรระบบของผู้ใช้ให้เป็นไปอย่างถูกต้อง

4. ผู้ใช้ ถึงแม้ระบบคอมพิวเตอร์จะประกอบด้วยองค์ประกอบทั้งทางด้านฮาร์ดแวร์และซอฟต์แวร์ แต่ระบบคอมพิวเตอร์จะไม่สามารถทำงานได้ถ้าขาดอีกองค์ประกอบหนึ่ง ซึ่งได้แก่ องค์ประกอบทางด้านบุคลากรที่จะเป็นผู้จัดการและควบคุมระบบคอมพิวเตอร์ให้สามารถปฏิบัติงานได้อย่างราบรื่น คอยแก้ไขปัญหาต่าง ๆ ที่เกิดขึ้นกับระบบคอมพิวเตอร์ พัฒนาโปรแกรมประยุกต์ต่าง ๆ รวมไปถึงการใช้งานโปรแกรมประยุกต์ที่ถูกพัฒนาขึ้น

1.2 หน้าที่ของระบบปฏิบัติการ

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

1. ติดต่อกับผู้ใช้ (user interface) ผู้ใช้สามารถติดต่อหรือควบคุมการทำงานของเครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการได้ โดยระบบปฏิบัติการจะเครื่องหมายพร้อมต์ (prompt) ออกทางจอภาพเพื่อรอรับคำสั่งจากผู้ใช้โดยตรง ตัวระบบปฏิบัติการจึงเป็นตัวกลางที่ทำหน้าที่เชื่อมโยงระหว่างผู้ใช้กับฮาร์ดแวร์ของเครื่อง นอกจากนี้ผู้ใช้อาจเขียนโปรแกรมเพื่อใช้งานกรณีนี้ผู้ใช้ก็สามารถติดต่อกับระบบปฏิบัติการได้โดยผ่านทาง System Call

2. ควบคุมการทำงานของโปรแกรม และอุปกรณ์รับ/แสดงผลข้อมูล (input/output device) ตลอดจนการให้ความสะดวกแก่ผู้ใช้ในการใช้งานอุปกรณ์ต่างๆ ได้ง่าย เช่น การเข้าถึงข้อมูลในแฟ้มหรือติดต่อกับอุปกรณ์รับ/แสดงผลข้อมูล จึงทำให้ผู้พัฒนาโปรแกรมไม่จำเป็นต้องเขียนโปรแกรมเพื่อควบคุมตัวขับดิสก์เพราะระบบปฏิบัติการจัดบริการให้มีคำสั่งสำหรับติดต่อกับอุปกรณ์เหล่านี้ได้อย่างง่ายๆเนื่องจากผู้ใช้เครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการ อาจไม่มีความจำเป็นต้องมีความรู้ความเข้าใจถึงหลักการทำงานภายในของเครื่อง ดังนั้น ระบบปฏิบัติการจึงมีหน้าที่ควบคุมการทำงานของโปรแกรม การทำงานของอุปกรณ์ต่างๆ เพื่อให้การทำงานของระบบเป็นไปอย่างถูกต้องและสอดคล้องกัน ระบบปฏิบัติการจึงมีส่วนประกอบของหน้าที่ต่างๆ ที่ควบคุมอุปกรณ์แต่ละชนิดที่มีหน้าที่แตกต่างกันไป โดยผู้ใช้อาจเรียกใช้ผ่านทาง System Call หรือเขียนโปรแกรมขึ้นมาควบคุมอุปกรณ์เหล่านั้นได้เอง

3. จัดสรรให้ใช้ทรัพยากรระบบร่วมกัน (shared resources) ซึ่งทรัพยากรหลักที่ต้องมีการจัดสรร ได้แก่ หน่วยประมวลผลกลาง หน่วยความจำหลัก อุปกรณ์รับ/แสดงผลข้อมูลและแฟ้มข้อมูล เช่น การจัดลำดับให้บริการใช้เครื่องพิมพ์การสับหลีกงานหลายงานในหน่วยความจำหลักและการจัดสรรหน่วยความจำหลักให้กับโปรแกรมทั้งหลาย ทรัพยากร คือสิ่งที่ซึ่งถูกใช้ไปเพื่อให้โปรแกรมดำเนินไป ซึ่งเหตุที่ต้องมีการจัดสรรทรัพยากรก็เพราะ

· ทรัพยากรของระบบมีขีดจำกัด เช่นซีพียูในระบบมีอยู่เพียงตัวเดียว แต่ทำงานในระบบมัลติโปรแกรมมิ่งมีการทำงานหลายโปรแกรม จึงจะต้องมีการจัดสรรซีพียูให้ทุกโปรแกรมอย่างเหมาะสม

· ทรัพยากรมีอยู่หลายประเภท แต่ละโปรเซสหรือโปรแกรมมีความต้องการใช้ทรัพยากรเพียง อย่างเดียว หรือหลายอย่างพร้อมกัน ระบบปฏิบัติการจึงต้องจัดเตรียมทรัพยากรต่างๆ ตามความต้องการของโปรแกรม

ดังนั้นหน้าที่อันสำคัญประการหนึ่งของระบบปฏิบัติการก็คือ การจัดสรรทรัพยากรของระบบให้เกิดประโยชน์สูงสุด โดยคำนึงถึงความยุติธรรมต่อผู้ใช้แต่ละคน และให้เกิดประสิทธิภาพเป็นหลักสำคัญ ถ้าระบบปฏิบัติการจัดสรรทรัพยากรได้อย่างมีประสิทธิภาพ ระบบก็สามารถรันโปรแกรมได้อย่างรวดเร็วและได้งานเพิ่มขึ้น ทรัพยากรหลักที่ระบบปฏิบัติการจัดสรรได้แก่ โปรเซสเซอร์ (ซีพียู),หน่วยความจำ,อุปกรณ์นำข้อมูลเข้า/ออก และข้อมูล เป็นต้น ระบบปฏิบัติการอาจเป็นได้ทั้ง Hardware Software หรือ Firmware หรือผสมผสานกันก็ได้ โดยมี เป้าหมายเดียวกันคือสามารถช่วยให้ผู้ใช้คอมพิวเตอร์สามารถใช้คอมพิวเตอร์ได้ดังที่ได้กล่าวมาแล้ว

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

2. Software OS เป็น OS ที่เป็นโปรแกรมที่เขียนขึ้นเพื่อควบคุมการทำงานของเครื่องคอมพิวเตอร์ เช่นเดียวกัน มีความเร็วช้ากว่า Hardware OS แต่เป็นที่นิยมมากที่สุดเพราะง่ายแก่การแก้ไข และราคาถูก

3. Firmware OS เป็น OS ที่เป็นส่วนของโปรแกรมที่เก็บไว้เป็นส่วนหนึ่งของเครื่องคอมพิวเตอร์ เขียนขึ้นโดยใช้คำสั่งไมโคร หลายๆ คำสั่งของคำสั่งไมโครรวมกันเรียกว่าไมโครโปรแกรม มีความเร็วสูงกว่า Software OS แต่ช้ากว่า Hardware OS

 

1.3 โครงสร้างพื้นฐานของเครื่องคอมพิวเตอร์

โครงสร้างหลักๆ ของระบบคอมพิวเตอร์ในส่วนของฮาร์ดแวร์ ได้แก่ อุปกรณ์นำข้อมูลเข้า/ออก หน่วยประมวลผลกลาง และหน่วยความจำ โดยที่หน่วยประมวลผลกลางและตัวควบคุมอุปกรณ์เชื่อมต่อกันด้วยบัส (BUS) เพื่อให้เข้าถึงหน่วยความจำหลักที่จะใช้ร่วมกันได้ หน้าที่หลักอันหนึ่งของระบบปฏิบัติการคือการควบคุมอุปกรณ์นำข้อมูลเข้า/ออก เพื่อทำงานให้กับโปรเซสที่ร้องขอจากอุปกรณ์ที่มีอยู่ในระบบ โดยการส่งคำสั่งไปยังอุปกรณ์เหล่านั้น ดักจับสัญญาณการขัดจังหวะ (สัญญาณอินเทอร์รัพต์) จัดการกับข้อผิดพลาดที่เกิดขึ้นและมีส่วนเชื่อมโยงระหว่างอุปกรณ์ต่างๆ และส่วนอื่นๆ ของระบบคอมพิวเตอร์ให้ใช้งานได้และไม่ผูกติดกับประเภทของอุปกรณ์ ซึ่งจำแนกโครงสร้างหลักของระบบคอมพิวเตอร์ได้ดังนี้

1. อุปกรณ์นำข้อมูลเข้า/ออก (Input/output) เป็นส่วนที่ใช้ในการรับ-ส่งข้อมูลระหว่างเครื่องคอมพิวเตอร์กับผู้ใช้ ทำให้ทราบถึงการปฏิบัติงานของเครื่องคอมพิวเตอร์

2. หน่วยความจำ (Memory) เป็นส่วนที่สร้างขึ้นเพื่อนำมาเก็บข้อมูลหรือคำสั่งที่คอมพิวเตอร์หรือผู้ใช้ต้องการเอาไว้ใช้ โดยแยกเป็นหน่วยความจำหลักซึ่งมีหน้าที่ติดต่อกับซีพียูโดยตรง ซึ่งประกอบด้วยหน่วยความจำ ROM และ RAM และหน่วยความจำสำรองซึ่งเป็นส่วนหนึ่งของอุปกรณ์นำข้อมูลเข้า/ออก ที่มีหน้าที่นำมาเก็บ ข้อมูลตามที่ต้องการ

4. หน่วยประมวลผลกลาง (Central Processing Unit : CPU) เป็นส่วนที่ทำหน้าที่ปฏิบัติตามคำสั่ง ที่รับมาจากส่วนของอุปกรณ์นำเข้ามาประมวลผลเพื่อให้ได้ผลลัพธ์ตามที่ต้องการ การปฏิบัติตามคำสั่งหรือการประมวลผลนี้เรียกว่า การเอ็กซีคิ้ว (execute) หรือการรันโปรแกรม

การจัดแบ่งโครงสร้างของระบบคอมพิวเตอร์เป็นดังนี้

· ระบบภายใน หรือที่เรียกว่าเครื่องคอมพิวเตอร์ ซึ่งประกอบไปด้วย ซีพียู และหน่วยความจำหลัก

· ระบบภายนอก หรือที่เรียกว่าอุปกรณ์รอบข้าง (peripheral) ซึ่งประกอบไปด้วย อุปกรณ์นำข้อมูล เข้า/ออกและหน่วยความจำสำรอง

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

1.4 แชลแนลและหน่วยควบคุมอุปกรณ์ (Channel and Device Control Unit)

หน่วยประมวลผลที่เป็นหัวใจและเป็นหลักของระบบคอมพิวเตอร์ก็คือ ซีพียู ในระบบคอมพิวเตอร์ที่ใหญ่ๆ จะมีหน่วยประมวลผลหรือโปรเซสเซอร์อื่นๆ เพื่อช่วยซีพียูทำงาน โปรเซสเซอร์เหล่านี้จะไปควบคุมการทำงานของอุปกรณ์รอบข้างต่างๆ ทั้งนี้เพราะอุปกรณ์เหล่านี้ทำงานได้ช้ามากเมื่อเปรียบเทียบกับซีพียู ดังนั้นถ้าหากให้ซีพียูซึ่งมีประสิทธิภาพสูง และทำงานได้รวดเร็วต้องมารอการทำงานของอุปกรณ์เหล่านี้ ก็จะทำให้การทำงานของซีพียูทำงานได้ไม่เต็มประสิทธิภาพ เราจึงใช้โปรเซสเซอร์อื่นๆ ที่มีราคาถูกและความสามารถต่ำกว่าตัวซีพียูมาควบคุมหรือมาจัดการงานทางด้านอุปกรณ์นำข้อมูลเข้า/ออก(Input/Output) ที่เชื่องช้า โปรเซสเซอร์นี้เรียกว่า โปรเซสเซอร์สำหรับอุปกรณ์รอบข้าง (Peripheral processor : I/O processor) หรือดาต้าแชนแนล (data channel) เราอาจเรียกสั้นๆว่า แชนแนล

1. ในระบบเล็กๆ อุปกรณ์นำข้อมูลเข้า/ออกจะต่อกันโดยตรงกับซีพียูผ่านทาง "พอร์ท" (port) แต่ในระบบใหญ่ๆ แชนแนลจะต่อเข้าระหว่างซีพียูกับอุปกรณ์นำข้อมูลเข้า/ออกหลายๆชนิด ซึ่งรวมกันเป็นระบบคอมพิวเตอร์ขึ้นมา แชนแนลนี้จะไปต่อกับหน่วยควบคุมอุปกรณ์ (device control unit) หรือที่เรียกสั้นๆ ว่า CU หรือตัวควบคุมอุปกรณ์รอบข้าง (peripheral controller) หน่วยควบคุมอุปกรณ์จะต่อเข้ากับอุปกรณ์นำข้อมูลเข้า/ออกจริงๆ อีกทอดหนึ่ง

2. หน่วยควบคุมอุปกรณ์นี้แต่ละตัวจะดูแลเฉพาะแต่ละประเภท เช่น ตัวขับดิสก์ หรือดิสก์ไดร์ฟ ก็ต้องมีหน่วยควบคุมของดิสก์ไดร์ฟ ซึ่งควบคุมลักษณะการทำงานตามลักษณะทางกายภาพของมัน หน่วยควบคุมดิสก์ไดร์ฟจะไปควบคุมการทำงานของเครื่องพิมพ์หรือจอภาพ หรืออุปกรณ์อื่นๆ ไม่ได้

3. ซีพียูสามารถติดต่อกับแชนแนลได้หลายๆ แชนแนล (ปกติในเครื่องคอมพิวเตอร์แต่ละตัวจะประกอบด้วย 7 แชนแนล) แชนแนลสามารถติดต่อกับ CU ได้หลายๆ ตัว ซึ่ง CU แต่ละตัวติดต่อกับอุปกรณ์ได้หลายตัวแต่ต้องเป็นอุปกรณ์ชนิดเดียวกัน ทั้งนี้หน่วยประมวลผลกลางและตัวควบคุมอุปกรณ์สามารถทำงานพร้อมกันเพื่อแย่งชิงหน่วยความจำ (Memory cycle) กัน และตัวควบคุมอุปกรณ์จำเป็นต้องทำหน้าที่ประสานการเข้าใช้หน่วยความจำหลักร่วมกันของตัวควบคุมอุปกรณ์ทั้งหลายให้เป็นไปตามลำดับ

4. แชนแนลสามารถรันโปรแกรมทางด้านอุปกรณ์นำข้อมูลเข้า/ออกและรับส่งข้อมูลระหว่างหน่วยความจำกับอุปกรณ์นำข้อมูลเข้า/ออก ตัวอย่างเช่น ซีพียูต้องการข้อมูลจากอุปกรณ์ภายนอก ซีพียูจะส่งสัญญาณ I/O request ไปยังแชนแนล ถ้าแชนแนลว่างอยู่มันจะรันโปรแกรมเกี่ยวกับงานทางด้านนำข้อมูลเข้า/ออกซึ่งเรียกว่า แชนแนลโปรแกรม (channel program) เพื่อรับข้อมูลมาจากอุปกรณ์นำข้อมูลเข้า/ออก เมื่อแชนแนลรับข้อมูลมามันจะนำไปไว้ในหน่วยความจำ (RAM) และจะส่งสัญญาณไปบอกให้ซีพียูรับทราบ เพื่อที่ซีพียูจะได้รับไปทำงานต่อไป

1.5 การติดต่อระหว่างอุปกรณ์รอบข้างกับซีพียู

การเริ่มต้นการทำงานของเครื่องคอมพิวเตอร์ จำเป็นต้องมีโปรแกรมสำหรับเริ่มต้นปฏิบัติการ เรียกว่า บูธส์แทรป (Bootstrap) ซึ่งจะทำหน้าที่กำหนดค่าเริ่มต้นให้กับรีจีสเตอร์ภายในหน่วยประมวลผลกลาง ตัวควบคุมอุปกรณ์ ตลอดจนหน่วยความจำ และทำการโหลดระบบปฏิบัติการลงในหน่วยความจำเพื่อเริ่มต้นการทำงาน โดยที่ระบบปฏิบัติการจะสร้างโปรเซสแรกชื่อว่า init และรอเหตุการณ์โดยใช้วิธีการขัดจังหวะจากฮาร์ดแวร์หรือซอฟต์แวร์ ถ้าสัญญาณการขัดจังหวะมาจากฮาร์ดแวร์ การขัดจังหวะอาจเกิดขึ้นเวลาใดก็ได้ โดยส่งสัญญาณทางบัสไปยังหน่วยประมวลผลกลาง แต่ถ้าส่งมาโดยซอฟต์แวร์ การขัดจังหวะจะเกิดขึ้นได้โดยทำตามคำสั่งพิเศษที่เรียกว่า คำสั่งระบบ (System call หรือ monitor call) เหตุการณ์ต่างๆ ที่ทำให้เกิดการขัดจังหวะ เช่น การเสร็จสิ้นการทำงานของอุปกรณ์นำข้อมูลเข้า/ออก การเกิดข้อผิดพลาดจากการหารด้วยศูนย์ และการร้องขอการบริการจากระบบปฏิบัติการ การขัดจังหวะแต่ละประเภทจะมีส่วนบริการเฉพาะของตนเองที่ต้องให้บริการแก่การขัดจังหวะประเภทนั้นๆ เมื่อเกิดสัญญาณการขัดจังหวะ หน่วยประมวลผลกลางจะหยุดการทำงานขณะนั้นและโยกย้ายมาปฏิบัติการ ณ ตำแหน่งเริ่มต้นของส่วนการบริการของการขัดจังหวะที่เกิดขึ้น หลังจากทำงานในส่วนบริการเสร็จสิ้น หน่วยประมวลผลกลางจึงกลับไปทำงานที่ถูกขัดจังหวะนั้นต่อไป การขัดจังหวะเป็นส่วนสำคัญของสถาปัตยกรรมคอมพิวเตอร์ซึ่งในการออกแบบเครื่องคอมพิวเตอร์แต่ละรุ่น มีกลไกการขัดจังหวะเฉพาะของตนเอง แต่หน้าที่โดยทั่วไปเหมือนกัน เมื่อเกิดสัญญาณการขัดจังหวะ จะมีตัวจัดการขัดจังหวะ (interrupt handle) ทำการตรวจสอบก่อนว่าสัญญาณนั้นเป็นสัญญาณขัดจังหวะประเภทใด จากนั้นก็โยกย้ายการควบคุมไปยังตำแหน่งเริ่มต้นของส่วนการบริการการขัดจังหวะประเภทนั้นๆ ซึ่งการจัดการงานนี้ต้องทำอย่างรวดเร็วโดยใช้ตารางเก็บตำแหน่งส่วนบริการการขัดจังหวะ (interrupt vector table) ที่อยู่ในหน่วยความจำหลัก ซึ่งข้อมูลในตารางนี้เป็นตำแหน่งที่อยู่เริ่มต้นของส่วนบริการการขัดจังหวะแต่ละประเภท ระบบปฏิบัติการยูนิกซ์และไมโครซอฟต์ดอส ก็อาศัยกลไกการขัดจังหวะนี้ นอกจากนี้กลไกการขัดจังหวะจะต้องเก็บตำแหน่งของคำสั่งที่ถูกขัดจังหวะด้วย เพื่อให้หน่วยประมวลผลกลางสามารถกลับมาทำงานที่ถูกขัดจังหวะต่อไปได้ เดิมทีนั้นมีการออกแบบให้เก็บตำแหน่งดังกล่าวไว้ในที่ที่กำหนดให้แน่นอนแล้วหรือโดยใช้หมายเลขอุปกรณ์เป็นดัชนีของที่ที่กำหนดให้ แต่ในปัจจุบันนี้ ระบบเก็บตำแหน่งการกลับคืนนั้นเก็บไว้บนสแต็กของระบบ ถ้าส่วนการบริการการขัดจังหวะจำเป็นต้องเปลี่ยนแปลงสถานะเดิมของหน่วยประมวลผลกลาง เช่น ค่าในรีจีสเตอร์ก็จะต้องทำการเก็บรักษาค่าต่างๆที่ถูกกระทบไว้บนสแต็กก่อนและหลังจากการทำงานในส่วนบริการเสร็จสิ้น ทำการกำหนดค่าเดิมเหล่านั้นกลับคืนให้เพื่อรักษาสถานะเดิมของระบบ ดังนั้นเมื่อหน่วยประมวลผลกลางกลับมาทำงานเดิมที่ถูกขัดจังหวะไป ก็สามารถดำเนินต่อไปได้เสมือนว่างานนั้นไม่เคยถูกขัดจังหวะ โดยปกติ ขณะที่ระบบปฏิบัติการกำลังบริการให้กับสัญญาณการขัดจังหวะหนึ่งนั้น จะไม่สนใจสัญญาณการขัดจังหวะอื่น ๆ ที่เข้ามาในระหว่างนั้น เพราะถ้าระบบปฏิบัติการยอมรับสัญญาณขัดจังหวะใหม่ที่เข้ามาอีก จะทำให้ข้อมูลสถานะต่างๆ ของสัญญาณการขัดจังหวะแรกหายไปทันที อย่างไรก็ตาม กลไกการขัดจังหวะที่ซับซ้อนมากขึ้น จะยอมรับการเกิดสัญญาณการขัดจังหวะใหม่ได้โดยใช้หลักการของลำดับความสำคัญที่กำหนดให้กับการร้องขอแต่ละชนิด และจัดเก็บข้อมูลของการดำเนินการขัดจังหวะแยกตามลำดับความสำคัญนั้นๆ ทั้งนี้สัญญาณการขัดจังหวะที่มีลำดับความสำคัญมากกว่าจะได้เข้าปฏิบัติการก่อน แม้ว่าขณะนั้นระบบปฏิบัติการกำลังทำงานให้กับสัญญาณการขัดจังหวะที่มีลำดับความสำคัญต่ำกว่า แต่ถ้าสัญญาณการขัดจังหวะที่เข้ามานั้นเป็นสัญญาณการขัดจังหวะที่มีลำดับความสำคัญเท่ากันหรือต่ำกว่า ระบบปฏิบัติการก็จะไม่ยอมรับรู้เช่นกัน ระบบปฏิบัติการสมัยใหม่เป็นระบบที่ทำงานโดยใช้การขัดจังหวะ ถ้าไม่มีโปรเซสที่ระบบปฏิบัติการไม่ต้องให้บริการอุปกรณ์ใดๆ และไม่มีการตอบสนองไปยังผู้ใช้ ระบบปฏิบัติการก็จะว่างและรอเหตุการณ์ใดๆ เกิดขึ้น ซึ่งเหตุการณ์เหล่านั้นถูกส่งมาในรูปของสัญญาณของการขัดจังหวะที่เกิดจากซอฟต์แวร์สร้างขึ้น โดยอาจจะเกิดข้อผิดพลาด เช่นการเกิดหารด้วยศูนย์ หรือการเข้าถึงหน่วยความจำไม่ถูกต้อง หรืออาจเกิดจากการร้องขอของโปรแกรมผู้ใช้ที่ระบบปฏิบัติการต้องกระทำการให้ ลักษณะการทำงานโดยใช้การขัดจังหวะของระบบปฏิบัติการนี้เป็นตัวกำหนดโครงสร้างโดยทั่วไปของระบบ เมื่อมีการขัดจังหวะเกิดขึ้น ฮาร์ดแวร์จะส่งการควบคุมไปยังระบบปฏิบัติการ เพื่อทำการเก็บค่าสถานะของหน่วยประมวลผลกลาง ได้แก่ รีจีสเตอร์และตำแหน่งคำสั่งถัดไปในการปฏิบัติการของโปรแกรม จากนั้นระบบปฏิบัติการจะพิจารณาว่าเป็นการขัดจังหวะประเภทใด โดยใช้วิธีการการติดต่อระหว่างซีพียูกับอุปกรณ์รอบข้างที่เรียกว่า การขัดจังหวะหรือการอินเตอร์รัพ (interrupt) ซึ่งมีการติดต่อแบบต่างๆ คือแบบพอลลิ่ง (polling),แบบ อินเตอร์รัพ (interrupt) และแบบเมลบ๊อกซ์ (mailbox) ดังมีรายละเอียดดังนี้

1. การติดต่อแบบพอลลิ่ง (polling) ลักษณะการติดต่อแบบนี้คือ ทุกๆ ช่วงเวลาหนึ่ง (Quantum time) ซีพียูจะหยุดงานที่ทำอยู่ชั่วคราวและไปตรวจเช็คที่แต่ละแชนแนลเพื่อดูว่า มีอุปกรณ์ตัวใดบ้างต้องการส่งข้อมูลมาให้ซีพียูจากอุปกรณ์แรกไปถึงอุปกรณ์สุดท้าย ถ้าอุปกรณ์ต้องการส่งข้อมูล ซีพียูก็จะรับข้อมูลมาแต่ถ้าอุปกรณ์นั้นไม่ต้องการส่งข้อมูล ซีพียูก็จะเปลี่ยนไปตรวจสอบอุปกรณ์ตัวอื่นต่อไปจนกระทั่งตรวจสอบครบหมด ซีพียูจะกลับไปทำงานของมันตามเดิม วนรอบ (Loop) การทำงานเช่นนี้เรื่อยไปลักษณะของการพอลลิ่ง อาจยกตัวอย่างของการสอนหนังสือในห้องเรียนมาประกอบเพื่อความเข้าใจ นั่นคือในขณะที่ครูกำลังสอนนักเรียน ทุก ๆ 10 นาที คุณครูจะหยุดสอนและไล่ถามนักเรียนทีละคนว่ามีปัญหาอะไรหรือไม่ ถ้านักเรียนคนที่ถูกถามไม่มีคำถามหรือข้อสงสัยคุณครูก็เปลี่ยนไปถามนักเรียนคนถัดไป แต่ถ้า นักเรียนคนนั้นมีปัญหาจะถาม ครูก็จะอนุญาตให้นักเรียนถามได้ เมื่อถาม-ตอบเสร็จแล้วครูก็จะไปถามนักเรียนคนอื่นต่อจนหมดชั้น แล้วครูจึงกลับไปสอนต่อจนอีก 10 นาทีจึงเริ่มต้นถามใหม ข้อเสียของการพอลลิ่งคือ ในกรณีที่อุปกรณ์ต่างๆ ไม่ต้องการส่งข้อมูลเลย ซีพียูจะเสียเวลาที่ต้องตรวจเช็คอุปกรณ์ทุกตัว (คุณครูเสียเวลาในการถามนักเรียนทุกคน โดยที่อาจไม่มีนักเรียนคนไหนมีคำถามเลย) และอีกประการหนึ่งคืออุปกรณ์ที่ต้องการส่งข้อมูลจะส่งข้อมูลให้ซีพียูได้เฉพาะเมื่อถึงเวลาที่ซีพียูตรวจเช็คมาถึงตัวมันเท่านั้น ทำให้อุปกรณ์นั้นเสียเวลาในการรอ (นักเรียนต้องรอจนกว่าคุณครูถามมาถึงตัวเขา เขาถึงจะถามคำถามได้)

2. การติดต่อแบบอินเตอร์รัพ (interrupt) ลักษณะการติดต่อแบบนี้จะลดข้อเสียแบบพอลลิ่งได้มาก มีขั้นตอนดังนี้คือ เมื่ออุปกรณ์ตัวใดต้องการส่งข้อมูล มันจะส่งสัญญาณผ่านทางแชนแนลไปบอกซีพียู เมื่อซีพียูรับทราบแล้วจะหยุดงานที่ทำอยู่ชั่วคราว เพื่อให้อุปกรณ์ทำการส่งข้อมูลจนกระทั่งเสร็จสิ้นลง ซีพียูจึงกลับไปทำงานที่ทำค้างไว้ต่อ เปรียบได้กับการที่คุณครูสอนไปเรื่อยๆ เมื่อนักเรียนคนใดมีคำถามจะถาม ก็ยกมือเป็นการบอกให้คุณครูรับทราบ (ส่งสัญญาณให้ซีพียู) เมื่อคุณครูเห็นนักเรียนยกมือ (CPU รับรู้การต้องการส่งข้อมูล) ก็หยุดสอนชั่วคราวเปิดโอกาสให้นักเรียนได้ถาม (ส่งข้อมูล) และตอบคำถาม เมื่อนักเรียนเข้าใจในปัญหาที่มีอยู่ (การส่ง ข้อมูลสิ้นสุดลง) ครูก็เริ่มสอนนักเรียนต่อไป (ซีพียูกลับมาทำงานที่ค้างไว้) การติดต่อแบบอินเตอร์รัพต์ ซีพียูไม่ต้องเสียเวลาในการตรวจเช็คความต้องการส่งข้อมูลของอุปกรณ์ ทุกตัว และในทำนองเดียวกันอุปกรณ์ก็ไม่ต้องเสียเวลารอแต่อย่างไรก็ตามซีพียูอาจไม่สามารถหยุดงานที่กำลังทำอยู่ได้ในทันที ในกรณีนี้อุปกรณ์ตัวนั้นต้องรอจนกระทั่งงานที่ซีพียูกำลังทำอยู่นี้เสร็จสิ้นลงเสียก่อน มันจึงส่งข้อมูลได้

3. การติดต่อแบบเมลบ๊อกซ์ (mailbox) ลักษณะการติดต่อแบบนี้ ระบบต้องเสียเนื้อที่ในหน่วย ความจำบางส่วนเพื่อเป็นที่สำหรับพักข้อมูล เมื่อมีอุปกรณ์บางตัวที่ต้องการส่งข้อมูล มันก็จะส่งข้อมูลไปไว้ที่หน่วยความจำส่วนนี้ และสำหรับซีพียูทุกๆ ช่วงเวลาหนึ่งๆ ซีพียูจะหยุดงานที่ทำไว้เพื่อจะไปตรวจสอบที่หน่วยความจำส่วนนี้เพื่อดูว่ามีข้อมูลอยู่หรือไม่ ถ้าไม่มี ข้อมูลถูกส่งไปไว้ในหน่วยความจำนี้ ซีพียูจะกลับไปทำงานเดิมที่ค้างไว้ แต่ถ้ามีมันก็จะรับข้อมูลเข้ามา จะเห็นได้ว่าการติดต่อแบบเมลบ๊อกซ็นี้เป็นการผสมผสานระหว่างการอินเทอร์รัพต์กับการพอลลิ่ง

ที่อธิบายมานี้เป็นการติดต่อในรูปแบบที่อุปกรณ์ภายนอกต้องการส่งข้อมูลให้ซีพียู ในทำนองเดียวกับ ถ้าซีพียูต้องการส่งข้อมูลให้กับอุปกรณ์ต่างๆ ก็ทำได้ในลักษณะเดียวกัน

 

1.6 วิวัฒนาการและชนิดของระบบปฏิบัติการ

ในสมัยก่อนที่เริ่มมีการประดิษฐ์เครื่องคำนวณ ผู้ประดิษฐ์เครื่องจะเป็นผู้เดียวที่สามารถใช้เครื่องนั้นได้ หรือไม่ก็ต้องเป็นผู้ที่มีความรู้เกี่ยวกับการทำงานของเครื่องอย่างถ่องแท้เท่านั้นที่จะใช้เครื่องได้ จุดประสงค์ของการสร้างเครื่องคำนวณก็เพื่อช่วยเหลือนักวิทยาศาสตร์ในการคำนวณฟังก์ชั่นต่างๆที่ยุ่งยากสลับซับซ้อน และเสียเวลาในการคำนวณนาน เมื่อสร้างเป็นเครื่องจักรขึ้นมาจึงทำให้นักวิทยาศาสตร์ไม่ต้องเสียเวลาในการคำนวณฟังก์ชั่นเหล่านั้น เพียงแต่ส่งให้เครื่องคำนวณช่วยคำนวณให้ อย่างไรก็ตามนักวิทยาศาสตร์ก็ยังต้องอาศัยผู้สร้างซึ่งเป็น ผู้เดียวที่สามารถใช้เครื่องนั้นได้ การพัฒนาเครื่องคำนวณเหล่านี้มีมาตลอดจนกระทั่งมาเป็นเครื่องคอมพิวเตอร์ ในปัจจุบัน เครื่องคอมพิวเตอร์ในยุคแรกๆ ก็ยังมีปัญหาเช่นเดียวกับเครื่องคำนวณ คือ ผู้ประดิษฐ์เครื่องเท่านั้น ที่จะเขียนโปรแกรมควบคุมมันได้ ทั้งนี้เพราะโปรแกรมต้องอาศัยความเข้าใจในการทำงานทุกขั้นตอนของเครื่องและต้องใช้คำสั่งเป็นภาษาเครื่อง (machine language) เท่านั้น ซึ่งภาษาเครื่องนี้ผู้ประดิษฐ์เครื่องจะเป็นผู้กำหนดขึ้นเอง ซึ่งจะลำดับวิวัฒนาการระบบปฏิบัติการดังต่อไปนี้

1. การป้อนงานแบบกลุ่มด้วยมือ (Manual batch system) พ.ศ. 2483 – 2492

ในสมัยแรกเริ่มราวปี พ.ศ.2483-2492 เครื่องคอมพิวเตอร์มีแต่เครื่องเปล่าๆ ยังไม่มีระบบปฏิบัติการใดๆ เลย ผู้ใช้เครื่องต้องเขียนโปรแกรมเป็นภาษาเครื่องทั้งหมด รวมถึงควบคุมเครื่อง ตระเตรียมงาน ตรวจสอบ และทำโปรแกรม และลักษณะการใช้เช่นนี้ ทำให้ประโยชน์ใช้สอย (utilization) ของเครื่องต่ำมาก โดยเฉพาะเมื่อเครื่องในสมัยก่อนมีราคาแพงมากเมื่อเทียบกับเครื่องในสมัยนี้ ซึ่งมีความสามารถทัดเทียมกัน ดังนั้น จึงมีการจ้างพนักงานคุมเครื่อง (operator) เพื่อลดเวลาที่เสียไปในการตระเตรียมงาน (set-up time) และเวลาที่ต้องเก็บกวาด (tear-down time) ซึ่งนอกจากพนักงานคุมเครื่องอาชีพจะชำนาญกว่าผู้ใช้แล้ว ยังสามารถจัดงานที่มีลักษณะคล้ายคลึงกันไว้พวกเดียวกัน เช่น งานที่ต้องใช้ตัวแปลภาษา (translator หรือ compiler) ตัวเดียวกัน ลักษณะนี้เรียกว่า เป็นการป้อนงานแบบกลุ่มด้วยมือ (manual batch system) ระบบการทำงานแบบนี้ทำให้เกิดปัญหาคือการสั่งงานแต่ละครั้งซึ่งใช้เวลานาน เพราะในขณะที่มีการนำตัวแปลภาษาเข้าหรือออกจากหน่วยความจำหลักนั้นใช้เวลาในการติดตั้งนานแล้วยังทำให้สูญเสียเวลาของหน่วยประมวลผลโดยเปล่าประโยชน์ และต้องทำขั้นตอนเดิมๆ กับงานทุกงานที่เข้ามาในระบบ นอกจากนี้ยังเกิดข้อผิดพลาดในโปรแกรมและจะต้องเริ่มต้นใหม่เสมอ

2. การป้อนงานแบบกลุ่มโดยอัตโนมัติ (Automatic batch processing) พ.ศ. 2493 - 2497

แม้ว่าจะมีการใช้พนักงานคุมเครื่องมืออาชีพ แต่เวลาของเครื่องก็ยังทิ้งเสียเปล่าในขณะที่พนักงาน ตรวจสอบความต้องการของงาน หางาน (ซึ่งโดยปกติอยู่ในรูปของบัตรเจาะรู และเทปแม่เหล็ก) และป้อนงานเข้า สู่เครื่อง (เช่นใส่บัตรในเครื่องอ่านบัตร หรือใสเทปในตู้เทป) รวมถึงการนำงานนั้นๆ ออกจากเครื่อง (เช่น เก็บเทป เก็บบัตร หรือฉีกกระดาษผลลัพธ์เป็นต้น) ดังนั้นในช่วงต้นทศวรรษที่ 5 General Motors Research Laboratories ได้พัฒนาระบบปฏิบัติการรุ่นแรก ออกมาโดยใช้กับเครื่อง IBM 701 ที่ใช้กันอยู่ในห้องทดลองนั้นเรียกว่าเป็นการประมวลผลแบบกลุ่มอัตโนมัติ (automatic batch processing) ระบบปฏิบัติการรุ่นแรกนี้ เป็นเพียงโปรแกรมเล็กๆ ซึ่งอยู่ในเครื่องตลอดเวลา (resident monitor) ประกอบด้วย 3 ส่วน คือ โหลดเดอร์ (loader) ตัวจัดลำดับงานโดยอัตโนมัติ (automatic job sequencing) และตัวแปรบัตรควบคุม (control card interpreter) ซึ่งตัวมอนิเตอร์นี้ ทำหน้าที่ส่งงานเข้าไปในระบบอย่างต่อเนื่องโดยอัตโนมัติ และอยู่ในหน่วยความจำหลักตลอดเวลาที่เครื่องคอมพิวเตอร์ทำงาน โดยมีการแบ่งหน่วยความจำหลักเป็น 2 ส่วน ส่วนหนึ่งสำหรับโปรแกรมของผู้ใช้ และอีกส่วนหนึ่งเป็นของระบบปฏิบัติการเมื่อเริ่มต้นระบบ ตัวระบบปฏิบัติการ(มอนิเตอร)์จะถูกเรียกใช้ โดยโหลดเดอร์จะนำโปรแกรมระบบและโปรแกรมผู้ใช้เข้าสู่หน่วยความจำหลักแล้วส่งการควบคุมไปยังโปรแกรมเพื่อทำงานต่อไป หลังจากสิ้นสุดการทำงานของโปรแกรมหนึ่งๆ จะส่งการควบคุมกลับไปยังตัวระบบปฏิบัติการ เพื่อนำงานชิ้นต่อไปเข้ามา และจะส่งมอบการควบคุมเครื่องให้กับโปรแกรมของผู้ใช้ทีละโปรแกรมเรียงลำดับตามกันไป ซึ่งในกรณีนี้ จะต้องมีข้อมูลปะหน้าและท้ายโปรแกรม เพื่อยกงานออกจากกัน รวมทั้งบอกระบบปฏิบัติการถึงลักษณะงาน เช่น ตัวแปลภาษาที่ต้องใช้ ตู้เทป และเลขหมายของม้วนเทป เป็นต้น ซึ่งเกิดเป็นภาษาใหม่ขึ้น คือ ภาษาคุมงาน (job control language หรือ JCL)ปัญหาที่สำคัญอีกประการหนึ่ง คือ ความแตกต่างของความเร็วระหว่างหน่วยประมวลผลกลาง กับอุปกรณ์นำข้อมูลเข้า/ออก แม้ว่าจะได้มีการพัฒนาอุปกรณ์นำข้อมูลเข้า/ออกแล้วก็ตาม แต่ขีดจำกัดของเครื่อง กลไกก็ยังทำให้อุปกรณ์เหล่านี้ช้ากว่าหน่วยประมวลผลกลางซึ่งทำงานด้วยความเร็วของวงจรอิเล็กทรอนิกส์เป็นหลายพันเท่า ความแตกต่างนี้ทำให้การใช้ประโยชน์ของหน่วยประมวลผลกลางต่ำมาก ตัวอย่างเช่น การแปลภาษาเครื่องของงานหนึ่ง ใช้เวลาของหน่วยประมวลผลกลางเพียง 4.8 วินาที ขณะที่การอ่านโปรแกรมนั้น (1,579 บัตร ความเร็ว 1,200 บัตรต่อนาที) ใช้เวลา 78.9 วินาที ดังนั้นหน่วยประมวลผลกลางจะต้องรอเครื่องอ่านบัตร 74.1 วินาที หรือร้อยละ 93.9 ของเวลาที่ใช้ในการทำงานชิ้นนี้ เรียกได้ว่าการใช้ประโยชน์ (utilization) ของหน่วยประมวลผลกลางเป็นเพียงร้อยละ 6.1 เท่านั้น ซึ่งหากรวมความล่าช้าในการแสดงผลเข้าไปด้วยแล้ว การใช้ประโยชน์ของหน่วยประมวลผลกลางก็ยิ่งต่ำลงไปอีก วิธีแก้ปัญหานี้ นับจากสมัยแรกเริ่ม ได้แก่การใช้ระบบ buffering ระบบ off-line และระบบ spooling

· การทำงานแบบ Buffering

แนวความคิดนี้คือ ให้หน่วยนำข้อมูลเข้า/ออกทำงานขนานไปพร้อมกันกับหน่วยประมวลผลกลางมากที่สุดเท่าที่จะทำได้ วิธีการคือ ขณะที่หน่วยประมวลผลกลางประมวลผลข้อมูลจำนวนหนึ่ง หน่วยรับข้อมูลจะอ่านข้อมูลถัดไปเข้ามาไว้ในหน่วยความจำ ส่วนที่เตรียมไว้เพื่อการนี้ ซึ่งเรียกว่าบัฟเฟอร์ (buffer) ซึ่งหากการอ่านข้อมูล (หรือการพิมพ์ผลลัพธ์) สำหรับข้อมูลแต่ละหน่วย ใช้เวลาเท่ากับการประมวลผลข้อมูลแต่ละหน่วยพอดี อุปกรณ์ทั้งสองประเภทนี้ไม่ต้องรอซึ่งกันและกัน ทำให้ได้ประโยชน์ใช้สอยเต็มที่ คือร้อยละร้อย แต่ในความจริงแล้วจะเกิดความเหลื่อมล้ำ (mismatch) ของเวลาการทำงานสำหรับข้อมูลแต่ละหน่วย ความเหลื่อมล้ำนี้ ขึ้นกับสาเหตุที่สำคัญสองประการคือ อัตราความเร็วของอุปกรณ์ต่างๆ และประเภทของงานที่ต่างกัน สำหรับสาเหตุของอัตราความเร็วของอุปกรณ์ต่างกันนั้น ไม่ว่าเครื่องคอมพิวเตอร์ประเภทใด หน่วยประมวลผลกลางจะมีความเร็วสูงกว่าหน่วยนำข้อมูลเข้า/ออกมาก แม้จะมีบัฟเฟอร์ แต่หน่วยประมวลผล ก็ยังต้องรออยู่ดี ส่วนสาเหตุประเภทของงานต่างกันนั้น หากงานที่เป็นพวกที่ใช้หน่วยนำข้อมูลเข้า/ออกมากๆ (I/O bounded) หน่วยประมวลผลกลางจะทำงานน้อย เพราะต้องรอข้อมูลจากหน่วยรับข้อมูล (หรือรอให้หน่วยแสดงผลนำผลที่ได้ไปแสดง) ในทำนองกลับกัน หากงานเป็นประเภทที่ใช้หน่วยประมวลผลกลางมากๆ (CPU bounded) ช่วงเวลาที่หน่วยประมวลผลกลางจะว่างก็ลดลง จนอาจถึงกับไม่ว่างเลย กลายเป็นว่าหน่วยนำข้อมูลเข้า/ออกต้องเป็นฝ่ายรอหน่วยประมวลผลกลาง ในสมัยเริ่มแรกนั้น (หรือแม้แต่ในปัจจุบันก็ตาม) ความเหลื่อมล้ำระหว่างหน่วยประมวลผลกลางกับหน่วยนำข้อมูลเข้า/ออก จะออกไปในทางที่ทำให้การใช้ประโยชน์หน่วยประมวลผลกลางต่ำมาก วิธีการแก้ทางหนึ่งคือ เพิ่มความเร็วของหน่วยนำข้อมูลเข้า/ออก แต่วิธีนี้ทำได้ยาก เพราะอุปกรณ์เหล่านั้นเป็นเครื่องกลไกซึ่งมี ข้อจำกัดทางด้านความเร็วเป็นธรรมดาอยู่แล้ว จึงได้มีการนำอุปกรณ์ที่มีความเร็วสูงขึ้นอีกระดับ เช่น เทปและจานแม่เหล็กมาคั่นระหว่างหน่วยประมวลผลกลาง และหน่วยนำข้อมูลเข้า/ออก ส่วนอีกวิธีหนึ่งคือ การทำงานหลายๆ งานพร้อมกัน เพื่อไม่ให้หน่วยประมวลผลกลางต้องอยู่เฉย ขณะรอการรับข้อมูลหรือแสดงผลของงานหนึ่งงานใด ซึ่งลักษณะนี้ คือการทำมัลติโปรแกรมมิ่ง (multiprogramming) ซึ่งจะกล่าวถึงต่อไป

· การทำงานแบบ Off-line

การทำงานแบบนี้เป็นวิธีการนำมาเพื่อแก้ปัญหาความเหลื่อมล้ำของความเร็ว สามารถผ่อนหนักเป็นเบาได้วิธีหนึ่ง โดยการใช้เทปแม่เหล็กมาแทนเครื่องอ่านบัตรหรือเครื่องพิมพ์ที่มีความเร็วต่ำมาก วิธีการคือการจำลองข้อมูลจากบัตรลงบนเทปแม่เหล็ก เมื่อโปรแกรมต้องการอ่านบัตร ระบบปฏิบัติการจะเปลี่ยนไปอ่านเทปให้แทน ส่วนการพิมพ์ผลก็ทำทำนองเดียวกัน โดยการพิมพ์ลงเทปแม่เหล็กก่อน แล้วนำเทปนั้นไปถ่ายออกเครื่องพิมพ์อีกที การถ่ายเทข้อมูลผ่านเทปนี้กระทำได้สองวิธีคือ ใช้เครื่องอ่านบัตรและเครื่องพิมพ์ที่ออกแบบมาเป็นพิเศษ สามารถถ่ายเทข้อมูลกับเครื่องอ่านเทปแม่เหล็กได้โดยตรง ไม่ต้องผ่านหน่วยประมวลผลกลาง ส่วนอีกวิธีหนึ่งคือ ใช้อุปกรณ์มาตรฐานปกติ แต่ใช้เครื่องคอมพิวเตอร์ขนาดเล็ก เป็นตัวถ่ายเทข้อมูล แทนที่จะใช้เครื่องใหญ่ การทำงานโดยอาศัยเทปแม่เหล็กนี้ จะต้องได้รับความช่วยเหลือจากระบบปฏิบัติการในอันที่จะให้คำสั่งรับข้อมูลหรือแสดงผล (input/output operation) ในโปรแกรมของผู้ใช้สามารถเปลี่ยนไปใช้กับอุปกรณ์ ใดๆก็ได้ ขึ้นอยู่กับความเหมาะสมในการบริหารระบบ ลักษณะการทำงานเช่นนี้เรียกว่า อิสระภาพจากอุปกรณ์ (device independence) ข้อเสียของระบบ off-line คือ โปรแกรมจะต้องผ่านขั้นตอนมากขึ้น และในการเก็บข้อมูลลงเทปแม่เหล็ก ต้องรอให้มีหลายๆ โปรแกรมเสียก่อน จึงค่อยนำเข้าเครื่องคอมพิวเตอร์ใหญ่เสียทีหนึ่ง ทำให้ผู้ใช้ต้อง รอนานขึ้น แม้ว่าประโยชน์ใช้สอยของหน่วยประมวลผลกลางจะดีขึ้นก็ตาม

· การทำงานแบบ Spooling

เมื่อเทคโนโลยีของจานแม่เหล็กได้รับการพัฒนามากขึ้น ระบบปฏิบัติการก็เริ่มหันมาใช้จานแม่เหล็กแทนเทปแม่เหล็กด้วยเหตุผลสำคัญประการหนึ่งที่เห็นได้ชัด คือ การไม่สามารถทำการประมวลผลข้อมูลในเทป ไปพร้อมๆ กับที่ถ่ายเทข้อมูลจากเครื่องอ่านบัตร ลงเทปม้วนเดียวกันนั้นได้ หลักการใช้จานแม่เหล็กมีลักษณะคล้ายกับเทปแม่เหล็ก ข้อแตกต่างที่สำคัญมีด้วยกันสองประการคือ เนื่องจากการเข้าถึง (access) ของจานแม่เหล็กเป็นแบบตรง (direct) ไม่ใช่แบบเรียงลำดับ (sequential) อย่างเทปแม่เหล็ก จึงทำให้สามารถแยกงานออกจากกันได้ โดยสร้างตารางบ่งบอกว่าข้อมูล (หรือผลลัพธ์) ของงานใดอยู่ในส่วนใดของจานบันทึก เมื่อการใช้จานแม่เหล็กเป็นแบบตามสาย หรือต่อตรง (on-line) หน่วยประมวลผลที่ใช้ในการถ่ายเทข้อมูลระหว่างจานและอุปกรณ์นำข้อมูลเข้า/ออก จึงต้องเป็นตัวเดียวกับที่ใช้ในการประมวลงานของผู้ใช้ หรือกล่าวอีกนัยหนึ่งคือต้องมีโปรแกรมพิเศษตัวหนึ่ง ทำงานคู่ขนานไปกับโปรแกรมของผู้ใช้ เพื่อทำการถ่ายเท ข้อมูลกับจานแม่เหล็ก จึงเกิดเป็นการทำมัลติโปรแกรมมิ่งแบบพื้นฐานขึ้น หลักการใช้จานแม่เหล็กแทนอุปกรณ์นำข้อมูลเข้า/ออกนี้ เรียกว่า spooling ซึ่งย่อมาจาก Simultaneous Peripheral Operation On-Line ข้อดีที่สำคัญของ spooling คือความจำเป็นที่ต้องพัฒนาระบบมัลติโปรแกรมมิ่งแบบพื้นฐานขึ้น ซึ่งก่อให้เกิดความก้าวหน้าต่อวงการโดยเฉพาะทางศาสตร์ด้านระบบปฏิบัติการ ระบบนี้ทำให้สามารถเหลื่อมการประมวลผลของงานหนึ่งกับการรับข้อมูลและแสดงผล (โดยผ่านโปรแกรม spool) ของอีกงานหนึ่งได้ จุดนี้ต่างกับการใช้บัฟเฟอร์ ตรงที่การใช้บัฟเฟอร์นั้นเป็นการเหลื่อมกันระหว่างการประมวลผล และการรับและแสดงข้อมูลของโปรแกรมเดียวกัน ซึ่งก็ไม่อาจทำได้มากเท่าไรนัก ด้วยจำกัดอยู่ที่ขั้นตอนการทำงานของโปรแกรมนั้นๆ ข้อดีอีกประการหนึ่งของ spooling คือ ลักษณะการเข้าถึงแบบตรงของจานแม่เหล็กงานที่ถูกป้อนเข้ามาแบบเรียงลำดับ สามารถถูกจัดแยกเป็นอิสระ เกิดเป็น job pool ซึ่งระบบปฏิบัติการสามารถเลือกงานเข้าประมวลผลตามความเหมาะสมได้ เช่น ตามความสำคัญของงานซึ่งกำหนดโดยผู้ใช้หรือผู้บริหารระบบ หรือตามระดับและลักษณะการใช้งานอุปกรณ์ต่างๆ ในระบบ เช่น เลือกงานที่ใช้เทป เมื่อมีตู้เทปว่าง เป็นต้น ทำให้เกิดเป็นระบบคัดเลือกงาน (job scheduling) แบบพื้นฐานขึ้น 

3. ระบบมัลติโปรแกรมมิ่ง (Multiprogramming system) ระบบปฏิบัติการรุ่นที่ 2 พ.ศ. 2498-2508 แม้ว่า Spooling จะเป็นการทำงานแบบมัลติโปรแกรมมิ่งอย่างง่ายๆ โดยมีโปรแกรมวิ่งขนานกันอยู่สองโปรแกรม คือ โปรแกรม spool และโปรแกรมของผู้ใช้ (ในลักษณะการประมวลผลแบบกลุ่ม) แต่ลักษณะของโปรแกรมที่เกี่ยวข้อง ก็ยังไม่อาจใช้ประโยชน์องค์ประกอบต่างๆ ของคอมพิวเตอร์ได้เต็มที่ เหตุเพราะโปรแกรมของผู้ใช้อาจทำงานร่วมกับเทปแม่เหล็ก ซึ่งมีความเหลื่อมล้ำทางความเร็วกับหน่วยประมวลผลกลางมากอยู่ดี ในสมัยต่อมาจึงได้มีการขยายการทำมัลติโปรแกรมมิ่งออกไป เพื่อให้ประโยชน์ใช้สอยของระบบสูงขึ้น หลักการของระบบมัลติโปรแกรมมิ่ง คือ การที่ระบบยอมให้มีโปรแกรมอยู่ในหน่วยความจำหลักพร้อมที่จะถูกประมวลผลได้หลายๆ โปรแกรม ดังที่แสดงในรูปที่ 1.4 เพื่อให้การใช้ประโยชน์หน่วยประมวลผลกลางเป็นไปอย่างเต็มที่ โดยในช่วง�