วันจันทร์ที่ 18 สิงหาคม พ.ศ. 2551

หน่วยที่ 1 Introduction

What is an operating system ?
Simple Batch System
Multiprogramming Batched Systems
Time-Sharing Systems
Personal-Computer Systems
Parallel Systems
Distributed Systems
Real -Time Systems

What is an operating system ? OS คืออะไร
OS คือ โปรแกรมที่เป็นตัวกลางระหว่างผู้ใช้คอมพิวเตอร์กับตัวคอมพิวเตอร์
ป้าหมายของ OS
- ผู้ใช้จะสามารถจัการโปรแกรมและจัดการปัญกาของระบบได้อย่างสะดวก
- คอมพิวเตอร์ซึ่งจะสามารถใช้งานได้ง่ายมากขึ้น
OS จะทำให้คอมพิวเตอร์ทำงานได้อย่างมีระบบและมีประสิทธิภาพ
Computer Sytem Components ส่วนประกอบของระบบ
1.
ฮาร์ดแวร์ ประกอบด้วยทรัพยากรต่างๆ ที่มีในระบบ ได้แก่ อุปกรณ์นำข้อมูลเข้า/ออก หน่วยประมวลผลกลาง และหน่วยความจำ นอกจากนี้ยังหมายความรวมถึง โปรแกรมภาษาเครื่อง และไมโครโปรแกรม ซึ่งเป็นส่วนที่บริษัทผู้ผลิตสร้างขึ้นเพื่อใช้เป็นซอฟร์แวร์ในระดับพื้นฐาน (primitive level) โดยสามารถทำงานได้โดยตรงกับทรัพยากรระบบด้วยคำสั่งง่ายๆ เช่น ADD MOVE หรือ JUMP คำสั่งเหล่านี้จะถูกกำหนดเป็นขั้นตอน การทำงานของวงจรภายในเครื่องคอมพิวเตอร์ ชุดคำสั่งที่ไมโครโปรแกรมต้องแปลหรือตีความหมายจะอยู่ใน รูปแบบภาษาเครื่องและมักเป็นคำสั่งในการคำนวณ เปรียบเทียบ และการควบคุมอุปกรณ์นำข้อมูลเข้า/ออก
ระบบปฏิบัติการ เป็นโปรแกรมที่ทำงานเป็นตัวกลางระหว่างผู้ใช้เครื่องและฮาร์ดแวร์ โดยมีวัตถุประสงค์เพื่อจัดสภาพแวดล้อมให้ผู้ใช้ระบบสามารถปฏิบัติงานบนเครื่องคอมพิวเตอร์ได้ โดยจะเอื้ออำนวยการพัฒนาและการใช้โปรแกรมต่างๆ รวมถึงการจัดสรรทรัพยากรต่างๆ ให้ได้อย่างมีประสิทธิภาพ
โปรแกรมประยุกต์ คือซอฟต์แวร์หรือโปรแกรมที่ถูกเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ เช่น งานส่วนตัว งานทางด้านธุรกิจ งานทางด้านวิทยาศาสตร์ โปรแกรมทางธุรกิจ เกมส์ต่างๆ ระบบฐานข้อมูล ตลอดจนตัวแปลภาษา เราอาจเรียกโปรแกรมประเภทนี้ว่า User's Program โปรแกรมประเภทนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงในการพัฒนา เช่นภาษา C, C++, COBOL, PASCAL, BASIC ฯลฯ ตัวอย่างของโปรแกรมที่พัฒนาขึ้นใช้ในทางธุรกิจ เช่น โปรแกรมระบบบัญชีจ่ายเงินเดือน (Payroll Program) โปรแกรมระบบเช่าซื้อ (Hire Purchase) โปรแกรมระบบสินค้าคงหลัง (Stock Program) ฯลฯ ซึ่งแต่ละโปรแกรมก็จะมีเงื่อนไขหรือแบบฟอร์มที่แตกต่างกัน ตามความต้องการหรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งโปรแกรมประเภทนี้เราสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมเองได้ เพื่อให้ตรงกับความต้องการของผู้ใช้งานโปรแกรม โปรแกรมเหล่านี้เป็นตัวกำหนดแนวทางในการใช้ทรัพยากรระบบ เพื่อทำงานต่างๆ ให้แก่ผู้ใช้หลากหลายประเภท ซึ่งอาจเป็นได้ทั้งบุคคล โปรแกรม หรือเครื่องคอมพิวเตอร์ เช่นตัวแปรภาษาต้องใช้ทรัพยากรระบบในการแปลโปรแกรมภาษาระดับสูงให้เป็นภาษาเครื่องแก่โปรแกรมเมอร์ ดังนั้น ระบบปฏิบัติการต้องควบคุมและประสานงานในการใช้ทรัพยากรระบบของผู้ใช้ให้เป็นไปอย่างถูกต้อง
ผู้ใช้ ถึงแม้ระบบคอมพิวเตอร์จะประกอบด้วยองค์ประกอบทั้งทางด้านฮาร์ดแวร์และซอฟต์แวร์ แต่ระบบคอมพิวเตอร์จะไม่สามารถทำงานได้ถ้าขาดอีกองค์ประกอบหนึ่ง ซึ่งได้แก่ องค์ประกอบทางด้านบุคลากรที่จะเป็นผู้จัดการและควบคุมระบบคอมพิวเตอร์ให้สามารถปฏิบัติงานได้อย่างราบรื่น คอยแก้ไขปัญหาต่าง ๆ ที่เกิดขึ้นกับระบบคอมพิวเตอร์ พัฒนาโปรแกรมประยุกต์ต่าง ๆ รวมไปถึงการใช้งานโปรแกรมประยุกต์ที่ถูกพัฒนาขึ้น
2. ระบบปฏิบัติการ เป็นโปรแกรมที่ทำงานเป็นตัวกลางระหว่างผู้ใช้เครื่องและฮาร์ดแวร์ โดยมีวัตถุประสงค์เพื่อจัดสภาพแวดล้อมให้ผู้ใช้ระบบสามารถปฏิบัติงานบนเครื่องคอมพิวเตอร์ได้ โดยจะเอื้ออำนวยการพัฒนาและการใช้โปรแกรมต่างๆ รวมถึงการจัดสรรทรัพยากรต่างๆ ให้ได้อย่างมีประสิทธิภาพ
3. โปรแกรมประยุกต์ คือซอฟต์แวร์หรือโปรแกรมที่ถูกเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ เช่น งานส่วนตัว งานทางด้านธุรกิจ งานทางด้านวิทยาศาสตร์ โปรแกรมทางธุรกิจ เกมส์ต่างๆ ระบบฐานข้อมูล ตลอดจนตัวแปลภาษา เราอาจเรียกโปรแกรมประเภทนี้ว่า User's Program โปรแกรมประเภทนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงในการพัฒนา เช่นภาษา C, C++, COBOL, PASCAL, BASIC ฯลฯ ตัวอย่างของโปรแกรมที่พัฒนาขึ้นใช้ในทางธุรกิจ เช่น โปรแกรมระบบบัญชีจ่ายเงินเดือน (Payroll Program) โปรแกรมระบบเช่าซื้อ (Hire Purchase) โปรแกรมระบบสินค้าคงหลัง (Stock Program) ฯลฯ ซึ่งแต่ละโปรแกรมก็จะมีเงื่อนไขหรือแบบฟอร์มที่แตกต่างกัน ตามความต้องการหรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งโปรแกรมประเภทนี้เราสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมเองได้ เพื่อให้ตรงกับความต้องการของผู้ใช้งานโปรแกรม โปรแกรมเหล่านี้เป็นตัวกำหนดแนวทางในการใช้ทรัพยากรระบบ เพื่อทำงานต่างๆ ให้แก่ผู้ใช้หลากหลายประเภท ซึ่งอาจเป็นได้ทั้งบุคคล โปรแกรม หรือเครื่องคอมพิวเตอร์ เช่นตัวแปรภาษาต้องใช้ทรัพยากรระบบในการแปลโปรแกรมภาษาระดับสูงให้เป็นภาษาเครื่องแก่โปรแกรมเมอร์ ดังนั้น ระบบปฏิบัติการต้องควบคุมและประสานงานในการใช้ทรัพยากรระบบของผู้ใช้ให้เป็นไปอย่างถูกต้อง
4. ผู้ใช้ ถึงแม้ระบบคอมพิวเตอร์จะประกอบด้วยองค์ประกอบทั้งทางด้านฮาร์ดแวร์และซอฟต์แวร์ แต่ระบบคอมพิวเตอร์จะไม่สามารถทำงานได้ถ้าขาดอีกองค์ประกอบหนึ่ง ซึ่งได้แก่ องค์ประกอบทางด้านบุคลากรที่จะเป็นผู้จัดการและควบคุมระบบคอมพิวเตอร์ให้สามารถปฏิบัติงานได้อย่างราบรื่น คอยแก้ไขปัญหาต่าง ๆ ที่เกิดขึ้นกับระบบคอมพิวเตอร์ พัฒนาโปรแกรมประยุกต์ต่าง ๆ รวมไปถึงการใช้งานโปรแกรมประยุกต์ที่ถูกพัฒนาขึ้น
Operating System Definitions คำอธิบาย OS
- มีการจัดการทรัพยากร บริหารทรัพยากร
- ควบคุมโปรแกรม โดยการควบคุมนั้นทำโดยผู้ใช้เป็นผู้อกคำสั่งแต่ OS จะเป็นผู้ปฏิบัติงานให้ตามคำสั่ง
- โปรแกรมจะทำงานได้ที่ละคัวในเวลาเดียวกัน
หน้าที่ของ OS
1.ติดต่อกับผู้ใช้ (user interface) ผู้ใช้สามารถติดต่อหรือควบคุมการทำงานของเครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการได้ โดยระบบปฏิบัติการจะเครื่องหมายพร้อมต์ (prompt) ออกทางจอภาพเพื่อรอรับคำสั่งจากผู้ใช้โดยตรง ตัวระบบปฏิบัติการจึงเป็นตัวกลางที่ทำหน้าที่เชื่อมโยงระหว่างผู้ใช้กับฮาร์ดแวร์ของเครื่อง นอกจากนี้ผู้ใช้อาจเขียนโปรแกรมเพื่อใช้งานกรณีนี้ผู้ใช้ก็สามารถติดต่อกับระบบปฏิบัติการได้โดยผ่านทาง System Call
2.ควบคุมการทำงานของโปรแกรม และอุปกรณ์รับ/แสดงผลข้อมูล (input/output device) ตลอดจนการให้ความสะดวกแก่ผู้ใช้ในการใช้งานอุปกรณ์ต่างๆ ได้ง่าย เช่น การเข้าถึงข้อมูลในแฟ้มหรือติดต่อกับอุปกรณ์รับ/แสดงผลข้อมูล จึงทำให้ผู้พัฒนาโปรแกรมไม่จำเป็นต้องเขียนโปรแกรมเพื่อควบคุมตัวขับดิสก์เพราะระบบปฏิบัติการจัดบริการให้มีคำสั่งสำหรับติดต่อกับอุปกรณ์เหล่านี้ได้อย่างง่ายๆเนื่องจากผู้ใช้เครื่องคอมพิวเตอร์ผ่านทางระบบปฏิบัติการ อาจไม่มีความจำเป็นต้องมีความรู้ความเข้าใจถึงหลักการทำงานภายในของเครื่อง ดังนั้น ระบบปฏิบัติการจึงมีหน้าที่ควบคุมการทำงานของโปรแกรม การทำงานของอุปกรณ์ต่างๆ เพื่อให้การทำงานของระบบเป็นไปอย่างถูกต้องและสอดคล้องกัน ระบบปฏิบัติการจึงมีส่วนประกอบของหน้าที่ต่างๆ ที่ควบคุมอุปกรณ์แต่ละชนิดที่มีหน้าที่แตกต่างกันไป โดยผู้ใช้อาจเรียกใช้ผ่านทาง System Call หรือเขียนโปรแกรมขึ้นมาควบคุมอุปกรณ์เหล่านั้นได้เอง
3.จัดสรรให้ใช้ทรัพยากรระบบร่วมกัน (shared resources) ซึ่งทรัพยากรหลักที่ต้องมีการจัดสรร ได้แก่ หน่วยประมวลผลกลาง หน่วยความจำหลัก อุปกรณ์รับ/แสดงผลข้อมูลและแฟ้มข้อมูล เช่น การจัดลำดับให้บริการใช้เครื่องพิมพ์การสับหลีกงานหลายงานในหน่วยความจำหลักและการจัดสรรหน่วยความจำหลักให้กับโปรแกรมทั้งหลาย ทรัพยากร คือสิ่งที่ซึ่งถูกใช้ไปเพื่อให้โปรแกรมดำเนินไป ซึ่งเหตุที่ต้องมีการจัดสรรทรัพยากรก็เพราะ
- ทรัพยากรของระบบมีขีดจำกัด เช่นซีพียูในระบบมีอยู่เพียงตัวเดียว แต่ทำงานในระบบมัลติโปรแกรมมิ่งมีการทำงานหลายโปรแกรม จึงจะต้องมีการจัดสรรซีพียูให้ทุกโปรแกรมอย่างเหมาะสม
- ทรัพยากรมีอยู่หลายประเภท แต่ละโปรเซสหรือโปรแกรมมีความต้องการใช้ทรัพยากรเพียง อย่างเดียว หรือหลายอย่างพร้อมกัน ระบบปฏิบัติการจึงต้องจัดเตรียมทรัพยากรต่างๆ ตามความต้องการของโปรแกรม
องค์ประกอบของ Operating System
- การซิงโครไนซ์กระบวนการ (process synchronization) ในระบบมัลติโปรแกรมมิ่ง โปรแกรมที่ทำงานพร้อมๆกันอาจต้องการใช้อุปกรณ์หรือทรัพยากร เช่น ใช้เครื่องพิมพ์ร่วมกัน แม้ว่าเครื่องพิมพ์จะสามารถใช้ร่วมกันได้ แต่ต้องมีข้อจำกัดเช่นว่าต้องผลัดกันใช้ คือต้องรอให้ผู้ที่ใช้อยู่เสร็จงานเสียก่อน ผู้อื่นจึงสามารถมาใช้ต่อได้ มิใช่ว่าสลับกันใช้ ลักษณะการควบคุมการแบ่งหรือผลัดกันใช้ทรัพยากรนี้ ต้องระมัดระวังไม่ให้งานต่างๆ ที่จะไปก้าวก่ายหรือสร้างความเสียหายให้กับงานอื่น ซึ่งโดยที่งาน แต่ละงานจะไม่รับรู้ถึงความเป็นไปของงานอื่นใดทั้งสิ้น (โดยนึกว่ามีงานนั้นเพียงงานเดียวในระบบ) ในลักษณะนี้การจัดจังหวะหรือสับหลีกการทำงานให้สอดคล้องกันนี้เรียกว่า การซิงโครไนซ์กระบวนการ จึงตกเป็นหน้าที่ของระบบปฏิบัติการ
- การบริหารทรัพยากร (resource management) การบริหารทรัพยากรนี้มีวัตถุประสงค์เพื่อให้เกิดความยุติธรรมต่อผู้ใช้และ ให้ประสิทธิภาพการทำงานของระบบสูงด้วย ทรัพยากรที่จำเป็นต้องควบคุมได้แก่ หน่วยประมวลผลกลาง, หน่วยความจำหลัก,อุปกรณ์รอบข้าง และข้อมูล
- การจัดการหน่วยประมวลผลกลาง (Central Processing Unit Management) เนื่องจากอุปกรณ์รับส่งข้อมูลและแสดงผลสามารถทำงานไปพร้อมกันกับหน่วยประมวล ผลกลางได้ ดังนั้นการจะใช้ประโยชน์ระบบให้ได้เต็มที่จึงต้องให้มีโปรแกรมสองประเภททำงานคู่ขนานกันไป โดยโปรแกรมหนึ่งจะทำการรับและแสดงผล ส่วนโปรแกรมอีกประเภทหนึ่งจะใช้หน่วยประมวลผลกลาง แต่อย่างไรก็ดี การสั่งให้อุปกรณ์นำข้อมูลเข้า/ออกเริ่มการทำงาน (เช่นบอกว่า ข้อมูลที่จะพิมพ์ อยู่ในส่วนใดของหน่วยความจำหลัก) ต้องอาศัยหน่วยประมวลผลกลางเป็นผู้ทำอีกอยู่ดี ดังนั้นถ้าหากนำเอางานที่ใช้แต่เฉพาะหน่วยประมวลผลกลางเข้าทำงานเหล่านั้นจะจับจองหน่วยประมวลผลกลางไปเรื่อยๆ ทำให้ไม่สามารถเริ่มงานรับข้อมูลและแสดงผลได้ การจัดให้เกิดความยุติธรรมและเพิ่มประโยชน์ใช้สอยของระบบนี้ มักประสบกับความต้องการที่ขัดแย้งกันของงานต่างๆ ทำให้การจัดสรรหน่วยประมวลผลกลางเป็นเรื่องลำบาก ก่อให้เกิดความยุ่งยากต่อระบบ ปฏิบัติการมาก
- การจัดการหน่วยความจำหลัก (Memory management) การจัดการหน่วยความจำหลักสัมพันธ์อย่างใกล้ชิดกับการจัดการหน่วยประมวลผลกลาง เหตุเพราะโปรแกรมต้องอยู่ในหน่วยความจำหลักก่อน แล้วจึงจะสามารถเข้าใช้หน่วยประมวลผลกลางได้ แต่ก็ ไม่ควรให้โปรแกรมยึดครองหน่วยความจำหลัก หากไม่มีโอกาสอันดีที่จะได้เข้าใช้หน่วยประมวลผลกลาง
- การจัดการอุปกรณ์ (Device management) อุปกรณ์ (device) คือ ส่วนประกอบของคอมพิวเตอร์ที่ไม่ใช่หน่วยประมวลผลกลางหรือหน่วยความจำหลัก เช่น เครื่องพิมพ์ หรือจานแม่เหล็ก อุปกรณ์บางอย่างสามารถใช้ร่วมกันได้ระหว่างโปรแกรมหลายโปรแกรมในขณะเดียวกัน เช่น จานแม่เหล็ก แต่อุปกรณ์บางอย่างเช่น เครื่องพิมพ์ แม้จะใช้ร่วมกันได้ แต่ต้อง ผลัดกันใช้ หมายถึงว่าต้องพิมพ์ผลของงานหนึ่งให้เสร็จสิ้นลงเสียก่อน จึงสามารถเริ่มพิมพ์ผลของอีกงานหนึ่งได้การจัดสรรอุปกรณ์มีผลต่อการใช้ประโยชน์ของระบบได้ด้วย ตัวอย่างเช่น งาน ก. และ งาน ข. ต้องการใช้ตู้เทปแม่เหล็กสองและสามตู้ตามลำดับ หากในระบบมีเทปอยู่สามตู้ แต่ว่างเพียงสองตู้ในขณะนั้น ก็น่าจะให้งาน ก.ได้ใช้ตู้เทปทั้งสองที่ว่างอยู่ แต่หากงาน ข. ในขณะนั้นใช้องค์ประกอบอื่นของระบบอยู่มากแล้ว เช่น กินเนื้อที่หน่วยความจำหลักถึงสองในสามของระบบ ก็น่าจะให้งาน ก.รอก่อนให้ตู้เทปว่างลงอีกตู้ แล้วให้งาน ข. เข้าใช้ทั้งสามตู้ เพื่อใช้งาน ข. สำเร็จลุล่วงไปโดยเร็ว จะได้ปลดปล่อยหน่วยความจำหลักที่ยึดครองไว้ศาสตร์ในการจัดสรรอุปกรณ์ในปัจจุบัน ยังคงเป็นการแก้ปัญหาเฉพาะหน้าเป็นส่วนมาก โดยอาศัยความชำนาญและประสบการณ์ของพนักงานควบคุมเครื่องเป็นสำคัญ เนื่องจากความต้องการและองค์ประกอบต่างๆ ในระบบใหญ่ๆ ซับซ้อนเกินกว่าจะนิยามออกมาเป็นหลักเกณฑ์ทางคณิตศาสตร์ได้
- การจัดสรรข้อมูล (Data management ข้อมูล (data หรือ information) อาจแบ่งได้เป็นสองประเภทคือ โปรแกรมสำเร็จรูปที่ใช้ร่วมกัน (ไม่นับระบบปฏิบัติการ) และส่วนที่เป็นแฟ้มข้อมูล (data file) ของผู้ใช้

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