ความหมาย หน้าที่ และความสําคัญของระบบปฏิบัติการ

(Operating System)

ระบบปฏิบัติการคือ
ระบบปฏิบัติการเป็นโปรแกรมควบคุมการทำงาน (ควบคุมการRun) ของโปรแกรมประยุกต์ ทำหน้าที่
โต้ตอบและเป็นสื่อกลางระหว่างโปรแกรมประยุกต์และฮาร์ดแวร์ (Hardware)
ระบบปฏิบัติการ (Operating System :OS) เป็นซอฟต์แวร์ระบบ (System Software) ที่ทำหน้าที่ควบคุมการทำงานของเครื่องและอุปกรณ์ ควบคุมและสั่งการให้ Hardware สามารถทำงานได้ เช่น ทำหน้าที่ในการตรวจเช็คอุปกรณ์ Keyboard ขณะเปิดเครื่อง ถ้าผู้ใช้ลืมเสียบสาย Keyboard ที่ port ด้านหลังของเครื่อง ขณะที่ซอฟต์แวร์ระบบตรวจสอบแล้วไม่พบอุปกรณ์เชื่อมต่อดังกล่าว จะมีข้อความแจ้งเตือนความผิดพลาด “Keyboard Error” นอกจากนี้ยังทำหน้าที่เป็นสื่อกลางในการเชื่อมการทำงานระหว่าง User ในการใช้โปรแกรมประยุกต์ ( Application Software) ของ user กับระบบเครื่องฯ อำนวยความสะดวกในการใช้งาน และเพิ่มประสิทธิ์ภาพของระบบ
บทบาทและเป้าหมายของระบบปฏิบัติการ (Goals & Roles of an OS)
• อำนวยความสะดวก ทำให้ผู้ใช้ (user) ใช้เครื่องฯ ได้ง่าย (Operating System Objectives Convenience)
ทำให้คอมฯ ง่ายและสะดวกต่อการใช้งาน
• ใช้งานเครื่องได้อย่างมีประสิทธิภาพ (Efficiency) จัดการการใช้ทรัพยากรของระบบได้อย่างมีประสิทธิภาพ
• เพิ่มความสามารถเพื่อพัฒนาโปรแกรม (Ability to evolve) เพื่อรองรับให้ผู้ใช้เพื่อให้ผู้ใช้สามารถพัฒนาโปรแกรมได้อย่างมี ประสิทธิภาพ, สามารถทดสอบโปรแกรม, และสามารถใช้ฟังก์ชั่นใหม่ ๆ ของระบบ โดยปราศจากการแทรกแซงของระบบปฏิบัติการในระหว่างการทำงาน
สรุปเป้าหมายและบทบาทของระบบปฏิบัติการ (OS) สามารถจำแนกได้ 2 เป้าหมายคือ
1. เป้าหมายหลัก ( Primary goal) คือ การอำนวยความสะดวกแก่ผู้ใช้งาน ให้สามารถใช้ระบบคอมฯ ได้ง่าย และสะดวกที่สุด (convenience for the user)
2. เป้าหมายหมายรอง (Secondary goal) คือ เพิ่มประสิทธิภาพให้กับระบบ
บางครั้ง 2 เป้าหมายนี้อาจขัดแย้งกัน เช่น ระบบ OS ที่ชาญฉลาดนั้นระหว่างทำงานระบบจะ
ตรวจจับข้อผิดพลาด (Error) อยู่ตลอดเวลา หากพบข้อผิดพลาดระหว่างการทำงานก็จะมีข้อความแจ้ง (Message) แก่ผู้ใช้ และหากมีข้อความแจ้งบ่อยครั้ง ก็จะกลายเป็นการขัดจังหวะการทำงานทำให้ผู้ใช้ ทำงานได้ไม่สะดวก ดังนั้นการออกแบบระบบปฏิบัติการ (OS) และการออกแบบสถาปัตยกรรมด้านตัวเครื่องควรมีความสอดคล้อง และหาจุดกลางระหว่างกันโครงสร้างระบบปฏิบัติการ (OPERATING SYSTEM STRUCTURES)ระบบปฏิบัติการเป็นซอฟต์แวร์ที่ทำหน้าที่ควบคุมการทำงานของฮาร์ดแวร์ ซึ่ง OS จะเป็นซอฟต์แวร์ที่ทำงานในระดับ Low level ควบคุมและสั่งการเครื่องและอุปกรณ์ได้โดยตรง สามารถแสดงโครงการการเข้าถึงฮาร์ดแวดร์ ได้ตามรูปด้านล่างนี้
• อำนวยความสะดวก ทำให้ผู้ใช้ (user) ใช้เครื่องฯ ได้ง่าย (Operating System Objectives Convenience)
ทำให้คอมฯ ง่ายและสะดวกต่อการใช้งาน
• ใช้งานเครื่องได้อย่างมีประสิทธิภาพ (Efficiency) จัดการการใช้ทรัพยากรของระบบได้อย่างมีประสิทธิภาพ
• เพิ่มความสามารถเพื่อพัฒนาโปรแกรม (Ability to evolve) เพื่อรองรับให้ผู้ใช้เพื่อให้ผู้ใช้สามารถพัฒนาโปรแกรมได้อย่างมี ประสิทธิภาพ, สามารถทดสอบโปรแกรม, และสามารถใช้ฟังก์ชั่นใหม่ ๆ ของระบบ โดยปราศจากการแทรกแซงของระบบปฏิบัติการในระหว่างการทำงาน
สรุปเป้าหมายและบทบาทของระบบปฏิบัติการ (OS) สามารถจำแนกได้ 2 เป้าหมายคือ
1. เป้าหมายหลัก ( Primary goal) คือ การอำนวยความสะดวกแก่ผู้ใช้งาน ให้สามารถใช้ระบบคอมฯ ได้ง่าย และสะดวกที่สุด (convenience for the user)
2. เป้าหมายหมายรอง (Secondary goal) คือ เพิ่มประสิทธิภาพให้กับระบบ
บางครั้ง 2 เป้าหมายนี้อาจขัดแย้งกัน เช่น ระบบ OS ที่ชาญฉลาดนั้นระหว่างทำงานระบบจะ
ตรวจจับข้อผิดพลาด (Error) อยู่ตลอดเวลา หากพบข้อผิดพลาดระหว่างการทำงานก็จะมีข้อความแจ้ง (Message) แก่ผู้ใช้ และหากมีข้อความแจ้งบ่อยครั้ง ก็จะกลายเป็นการขัดจังหวะการทำงานทำให้ผู้ใช้ ทำงานได้ไม่สะดวก ดังนั้นการออกแบบระบบปฏิบัติการ (OS) และการออกแบบสถาปัตยกรรมด้านตัวเครื่องควรมีความสอดคล้อง และหาจุดกลางระหว่างกันโครงสร้างระบบปฏิบัติการ (OPERATING SYSTEM STRUCTURES)ระบบปฏิบัติการเป็นซอฟต์แวร์ที่ทำหน้าที่ควบคุมการทำงานของฮาร์ดแวร์ ซึ่ง OS จะเป็นซอฟต์แวร์ที่ทำงานในระดับ Low level ควบคุมและสั่งการเครื่องและอุปกรณ์ได้โดยตรง สามารถแสดงโครงการการเข้าถึงฮาร์ดแวดร์ ได้ตามรูปด้านล่างนี้

โครงสร้างการเข้าถึงฮาร์ดแวร์
3. อธิบายหลักการทำงานของ Personal computer Systems และเชื่อมโยงด้วยว่าสัมพันธ์กับสิ่งเหล่านี้ อย่างไรบ้าง ? (CPU, ALU, Control Unit, Register, Bus, RAM, Input device, Output device)โปรแกรมระบบปฏิบัติการ (Operating System)เป็นซอฟต์แวร์ที่สามารถเข้าถึงฮาร์ดแวร์ได้โดยตรง โดยทำหน้าที่จัดสรรทรัพยากร ควบคุมการทำงานของฮาร์ดแวร์ และทำหน้าที่เป็นตัวกลางในการควบคุมการสั่งการ ระหว่างโปรแกรมอรรถประโยชน์ (Utilities) และโปรแกรมประยุกต์ของผู้ใช้ (Application Programs)ซอฟต์แวร์ที่พัฒนาด้วยภาษาเครื่องจักร (Machine code)จะสามารถควบคุมและเข้าถึงฮาร์ดแวร์ได้โดยตรง แต่จะขั้นตอนที่ยุ่งยากในการเขียนชุดคำสั่ง
โปรแกรมอรรถประโยชน์ (Utilities)โปรแกรมอรรถประโยชน์ (Utilities) เป็นโปรแกรมอำนวยความสะดวกต่าง ๆ ในการทำงานเพื่อเพิ่ม
ประสิทธิภาพ แก่ระบบ เป็นกลุ่มโปรแกรมที่เน้นการจัดการไฟล์ (File) ควบคุม I/O, อุปกรณ์อื่น เช่น การสำรองข้อมูล การจัดเรียงไฟล์ หรือการเคลียร์ Temporary file โปรแกรมประยุกต์ (Application program)เป็นซอฟต์แวร์ที่อยู่ห่างไกลกับฮาร์ดแวร์ ไม่สามารถเข้าถึงฮาร์ดแวร์ได้โดยตรง จะต้องอาศัย OS เป็น
ตัว กลางในการเชื่อมการทำงาน โปรแกรมประยุกต์จะถูกเขียนขึ้นโดยโปรแกรมเมอร์ และใช้โปรแกรมภาษาระดับสูงในการพัฒนา ที่พัฒนาจาก programmer
ระบบปฏิบัติการสนับสนุนการทำงานของระบบในด้านใดบ้าง? (OS Support)
การจัดเตรียมบริการต่าง ๆ ของ OS ที่มีไว้เพื่อสนับสนุนการทำงานของระบบ มีดังนี้
• การพัฒนาโปรแกรม (Program development)
สนับสนุนเรื่องการพัฒนาโปรแกรม โดยจัดเตรียมบริการต่าง ๆ ให้ผู้พัฒนานั้นสามารถใช้งาน Editor ได้ง่าย สะดวก และหลากหลาย เช่น มี Editor และ debugger สำหรับช่วยโปรแกรมเมอร์ระหว่างเขียนโปรแกรมและตรวจสอบข้อผิดพลาด (Error) โดยระบบปฏิบัติการจะสนับสนุนสิ่งอำนวยความสะดวกและบริการต่างๆมากมาย เพื่อช่วยผู้พัฒนาโปรแกรมในการสร้างโปรแกรมประยุกต์ขึ้นมาใช้งาน
• การประมวลผลโปรแกรม (Program execution)
ช่วยในการทำงานและประมวลผลโปรแกรมประยุกต์ ซึ่งการประมวลผลโปรแกรมหนึ่งๆ นั้นจะมีงานที่เข้ามา เกี่ยวข้องมากมาย คำสั่ง ( instruction ) และข้อมูล ( data ) จะต้องถูกนำเข้ามาเก็บไว้ในหน่วยความจำหลัก อุปกรณ์ไอโอและแฟ้มข้อมูลที่ต้องการใช้ รวมทั้งทรัพยากรที่จำเป็นอื่นๆจะต้องถูกเตรียมพร้อมใช้งาน ระบบปฏิบัติการจะเป็นผู้ทำงานทั้งหมดนี้ให้โดยอัตโนมัติ
• การเข้าถึงอุปกรณ์ไอโอ (Access to I/O devices )การใช้อุปกรณ์ I/O แต่ละชิ้นจะต้องอาศัยชุดคำสั่งหรือสัญญาณควบคุมของตนเอง ระบบปฏิบัติการจะจัดการในรายละเอียดของการทำงานเหล่านี้ ทำให้ผู้พัฒนาโปรแกรมเหลือเพียงการตัดสินใจว่าจะทำการอ่านข้อมูลหรือบันทึก ข้อมูลเหล่านั้น
• การควบคุมการเข้าถึงแฟ้มข้อมูล (Controlled access to files)เช่น การการเปิดไฟล์ จะมีกระบวนการทำงานหลายขั้นตอน และในอนาคตกรณีของระบบที่ทำงานกับ ระบบปฏิบัติการหลายระบบ (multiuser OS) จะมีการเตรียมกลไกในการควบคุมการเข้าถึงไฟล์
การควบคุมการใช้งานแฟ้มข้อมูล นอกจากจะต้องเข้าใจลักษณะโดยธรรมชาติของอุปกรณ์ ที่จะนำมาใช้งานแล้ว ยังต้องเข้าใจในรูปแบบของข้อมูลที่เก็บอยู่ในสื่อจัดเก็บ ระบบปฏิบัติการจะทำหน้าที่ในส่วนนี้แทนผู้ใช้ และในกรณีที่ในระบบมีผู้ใช้งานได้หลายคนพร้อมกันก็จะต้องควบคุมลำดับและวิธี การเข้าถึงแฟ้มข้อมูลสำหรับผู้ใช้ทุกคนด้วย
• การเข้าถึงระบบ (System access)
การติดต่อระบบ ในกรณีที่เป็นระบบสาธารณะ หรือเป็นระบบที่ใช้งานร่วมกันระบบปฏิบัติการจะควบคุมการติดต่อเข้ากับระบบ คอมพิวเตอร์โดยส่วนรวม และทรัพยากรแต่ละชิ้น ฟังก์ชั่นการติดต่อจะต้องสนับสนุนการป้องกันทรัพยากร และข้อมูลจากผู้ที่ไม่มีสิทธิในการใช้งาน และจะต้องสามารถแก้ปัญหาการแย่งชิงการใช้อุปกรณ์ได้ด้วย ดังนั้นระบบที่มีการแบ่งปัน ( Share) การเข้าถึงข้อมูลและระบบแบบสาธารณะ (public) OS จะป้องกัน (protect) ทรัพยากรจากคนหรืองานที่ไม่ได้รับอนุญาต ตัวอย่างเช่นการป้องกันการเข้าใช้งานเครื่อง Mainframe จำเป็นต้องต้องมีการขออนุญาตเข้าใช้ กำหนดสิทธิ์การใช้งาน กำหนดการอนุญาตใช้ฮาร์ดแวร์ จะเห็นว่า OS ทำงานมากขึ้นสำหรับคอมพิวเตอร์ขนาดใหญ่อย่าง Mainframe ถ้าเป็นเครื่อง PC เราจะขออนุญาตตัวเองในการเข้าใช้งาน
• การตรวจจับข้อผิดพลาดและตอบกลับ (Error detection and response)
การตรวจหาข้อผิดพลาดในระบบและตอบกลับ ข้อผิดพลาด (Error) มีหลายชนิด ขึ้นอยู่กับระบบคอมพิวเตอร์ที่ทำงานอยู่
1)ข้อผิดพลาดที่เกิดจากทั้งภายในและภายนอกตัวเครื่อง(Hardwar) เช่น
• หน่วยความจำผิดพลาด (memory error)
• อุปกรณ์ผิดพลาด (device failure)
2)ข้อผิดพลาดที่เกิดจากซอฟต์แวร์ (Software) เช่น
• หน่วยคำนวณเต็ม (arithmetic overflow)
• การถูกยับยั้ง หรือไม่อนุญาตให้เข้าถึงพื้นที่หน่วยความจำ (memory location
การพยายามที่จะเข้าถึงพื้นที่ ที่ไม่อนุญาตในตำแหน่ง ( location) ของหน่วยความจำ ก็จะทำให้เกิดข้อผิดพลาด (error) ขึ้นได้
• โปรแกรมระบบปฏิบัติการ (OS) ไม่สามารถอนุญาตตามการร้องขอของโปแกรมประยุกต์ได้
Note : ในแต่ละกรณีที่เกิดข้อผิดพลาด OS มักจะเตรียมการแจ้งกลับ ( response) และพยายามจัดการกับเงื่อนไขของข้อผิดพลาด ( error) ที่เกิดขึ้นและให้มีผลกระทบน้อยที่สุดในการ run program
การตรวจหาข้อผิดพลาดและการตอบสนอง ข้อผิดพลาดสามารถเกิดขึ้นได้โดยสาเหตุต่างๆมากมายขณะที่ระบบกำลังทำงาน ในความผิดพลาดแต่ละกรณีที่เกิดขึ้น ระบบปฏิบัติการจะต้องตอบสนองโดยทำให้เกิดผลกระทบต่อโปรแกรมที่กำลังประมวลผล อยู่ในระดับต่ำที่สุด การตอบสนองโดยทั่วไปได้แก่ การหยุดการทำงานของโปรแกรมนั้น การพยายามทำคำสั่งนั้นใหม่ เป็นต้น
• การจัดทำบัญชี (Accounting)
– เก็บรวบรวมสถิติการใช้งานระบบ (collect statistics)
– ตรวจวัดประสิทธิภาพการใช้งานระบบ (monitor performance) เช่น เวลาในการตอบสนอง
– เพื่อเป็นข่าวสารที่จะใช้เป็นประโยชน์ในการยกระดับการทำงานให้สูงขึ้นในอนาคต(used to anticipate future enhancements)
– ใช้สำหรับออกรายชื่อผู้ใช้ (used for billing users)
บัญชีผู้ใช้ ระบบปฏิบัติการที่ดีจะรวบรวมข้อมูลสถิติการใช้งานของทรัพยากรต่างๆ และตรวจสอบตัวกำหนดค่าประสิทธิภาพเช่น ระยะเวลาการตอบสนอง ในระบบใดๆ ข้อมูลเหล่านี้จะเป็นประโยชน์สำหรับการคาดเดาการขยายขีดความสามารถของระบบใน อนาคต และในการปรับตัวกำหนดค่าทั้งหลายเพื่อให้ระบบมีประสิทธิภาพมากยิ่งขึ้น ในระบบที่มีผู้ใช้หลายคน ข้อมูลนี้สามารถนำมาใช้ในทางบัญชี เช่น การเรียกเก็บค่าบริการได้

ระบบคอมพิวเตอร์ประกอบด้วยอุปกรณ์ต่างๆ สำหรับการเคลื่อนย้าย การจัดเก็บ และการประมวลผลข้อมูลและการควบคุมฟังก์ชั่นการทำงานต่างๆ ระบบปฏิบัติการมีความรับผิดชอบในการบริหารทรัพยากรต่างๆเหล่านี้
อาจมีข้อสงสัยว่า ระบบปฏิบัติการเป็นตัวควบคุมการเคลื่อนย้าย การจัดเก็บ และการประมวลผลข้อมูลหรือไม่ ในมุมมองหนึ่งอาจตอบว่าใช่ เนื่องจากระบบปฏิบัติการจะต้องควบคุมหน้าที่การทำงานพื้นฐานในการบริหาร ทรัพยากรของเครื่องคอมพิวเตอร์ อย่างไรก็ตามการควบคุมนี้เป็นการกระทำในทางอ้อม โดยปกติผู้คนมักจะคิดว่ากลไกในการควบคุมเป็นองค์ประกอบภายนอกของสิ่งที่ถูก ควบคุม หรือย่างน้อยที่สุดก็เป็นอะไรบางอย่างที่มีตัวตนและเป็นส่วนที่แยกออกจาก สิ่งที่ถูกควบคุม
จากรูป แสดงให้เห็นว่าระบบปฏิบัติการคือผู้บริหารทรัพยากร ส่วนหนึ่งของระบบปฏิบัติการซึ่งได้แก่ส่วนที่เรียกว่า เคอร์นอล(kernel) และนิวเคลียส( nucleus) จะถูกเก็บไว้ที่หน่วยความจำหลัก หน่วยความจำส่วนที่เหลือจะถูกใช้ในการเก็บโปรแกรมและข้อมูลอื่นๆของผู้ใช้ การจัดสรรทรัพยากร(ในกรณีนี้คือหน่วยความจำ) ให้แก่โปรแกรมต่างๆรวมทั้งโปรแกรมระบบปฏิบัติการ จะถูกควบคุมร่วมกันระหว่างระบบปฏิบัติการกับฮาร์ดแวร์ที่ทำหน้าที่บริหาร หน่วยความจำ ระบบปฏิบัติการจะทำการตัดสินใจว่า จะมอบอุปกรณ์ไอโอตัวใดให้แก่โปรแกรมใดที่กำลังประมวลผลอยู่ รวมทั้งการควบคุมการเข้าถึงและเรียกใช้งานแฟ้มข้อมูล ตัวโปรเซสเซอร์เองก็จัดว่าเป็นทรัพยากรชนิดหนึ่ง จึงเป็นหน้าที่อย่างหนึ่งของระบบปฏิบัติการที่จะต้องกำหนดระยะเวลาการใช้งาน โปรเซสเซอร์ในการประมวลผลโปรแกรมผู้ใช้
ภาพรวมอื่นของระบบปฏิบัติการ (Other views of the OS)
• OS ทำหน้าที่เป็นผู้จัดสรรทรัพยากรภายในระบบ (resource allocator)
– ดูและและจัดสรรให้ใช้ทรัพยากร อันได้แก่ ฮาร์ดแวร์ (hardware),ซอฟต์แวร์ (Software) และข้อมูล (data) ในระหว่างการทำงานภายในระบบได้อย่างเหมาะสมและถูกต้อง
– จัดเตรียมสภาพแวดล้อมต่าง ๆ ระหว่างที่โปรแกรมมีการทำงาน
• OS ทำหน้าที่ควบคุมการทำงานของโปรแกรม (control program)
– ควบคุมการประมวลผล (execution) ของโปรแกรมและป้องกันโปรแกรมผู้ใช้จากข้อผิดพลาดและการใช้งานโปรแกรมที่ไม่เหมาะสมในระบบ
– ต้องควบคุมการทำงานและการจัดสรรอุปกรณ์ ไอโอ (I/O devices)
