บทที่ 5 ระบบปฏิบัติการ (OS: Operation System)
ระบบปฏิบัติการคืออะไร? ระบบปฏิบัติการเป็นโปรแกรมที่ทำหน้าที่เป็นอินเตอร์เฟสระหว่างผู้ใช้และฮาร์ดแวร์ของคอมพิวเตอร์และการควบคุมการทำงานของทุกชนิดของโปรแกรม เป้าหมายของระบบปฏิบัติการ รันโปรแกรมของผู้ใช้และทำให้ การแก้ปัญหาการใช้งานง่ายขึ้น - ทำให้ระบบคอมพิวเตอร์สะดวกในการใช้ - ใช้ฮาร์ดแวร์ของคอมพิวเตอร์ใน ลักษณะที่มีประสิทธิภาพ
นิยาม ระบบปฏิบัติการเป็นโปรแกรมที่ทำหน้าที่จัดสรรทรัพยากรระบบ จัดการทรัพยากรทั้งหมด ตัดสินใจในระหว่าง ความต้องการที่ขัดแย้งกันที่มีประสิทธิภาพและเป็นธรรมในการใช้ทรัพยากร ระบบปฏิบัติการมีหน้าที่ควบคุมโปรแกรม ควบคุมการทำงานของโปรแกรมเพื่อป้องกันข้อผิดพลาดและการใช้งานที่ไม่เหมาะสมของคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์ ระบบปฏิบัติการระบบคอมพิวเตอร์ มีซีพียูอย่างน้อย 1 ตัว ทำหน้าที่ควบคุมอุปกรณ์เชื่อมต่อผ่านระบบบัสในการเข้าถึงหน่วยความจำที่ใช้ร่วมกัน ดำเนินการการเข้าถึงพร้อมกันของซีพียูและอุปกรณ์ในการเข้าใช้งานหน่วยความจำ
ตัวอย่างฟังก์ชันที่สำคัญของระบบปฏิบัติการ การจัดการหน่วยความจำ การจัดการประมวลผลอุปกรณ์ การจัดการอุปกรณ์ การจัดการไฟล์ การจัดการรักษาความปลอดภัย การควบคุมการทำงานของระบบ ควบคุมบัญชีงาน ช่วยตรวจจับข้อผิดพลาดการทำงาน การประสานงานระหว่างซอฟต์แวร์และผู้ใช้
การจัดการหน่วยความจำ (Memory Management) การจัดการหน่วยจำจะเกี่ยวข้องกับหน่วยความจำหลักของคอมพิวเตอร์ (หน่วยความจำแรม หน่วยความจำแคช) ซีพียูสามารถเข้าถึงหน่วยความจำหลักได้รวดเร็วและโดยตรง ดังนั้นโปรแกรมที่เปิดใช้งานอยู่ต้องอยู่ในหน่วยความจำหลัก ระบบปฏิบัติการจะดำเนินการจัดการหน่วยความจำดังนี้ ระบบปฏิบัติการจะเก็บข้อมูลการใช้หน่วยความจำหลัก เช่น ตำแหน่งใดถูกใช้งานหรือตำแหน่งใดไม่ถูกใช้งาน ในส่วนที่มีการทำงานแบบหลายโปรแกรมพร้อมๆ กัน (multiprogramming) ระบบปฏิบัติการจะทำหน้าที่จัดสรรการใช้หน่วยความจำ มีการจัดสรรหน่วยความจำเมื่อโปรเซส (process) ร้องขอ และยกเลิกการจัดสรรหน่วยความจำเมื่อโปรเซสไม่ใช้ในระยะเวลาหนึ่งหรือจบการทำงานแล้ว
การจัดการหน่วยประมวลผล (Processor Management) ในรูปแบบการทำงานแบบหลายโปรแกรมพร้อมกัน ระบบปฏิบัติการจะทำหน้าที่ตัดสินว่าโปรเซสใดเข้าใช้งานหน่วยประมวลผลเมื่อไหร่และใช้งานเป็นระยะเวลาเท่าใด การทำงานแบบนี้เรียก การจัดตารางของกระบวนการ (Process Scheduling) ดังนี้ ติดตามการทำงานของโปรเซสเซอร์และสถานะของโปรเซส จองพื้นที่โปรเซสเซอร์ให้กับโปรเซสและคืนโปรเซสเซอร์เมื่อไม่มีการใช้โปรเซสเซอร์ในระยะเวลาหนึ่ง
การจัดการอุปกรณ์ (Device Management ) ระบบปฏิบัติการจัดการสื่อสารกับอุปกรณ์ผ่านโปรแกรมไดเวอร์ ดังนี้ ติดตามการทำงานของอุปกรณ์ทั้งหมดโดยใช้ I/O controller เลือกโปรเซสที่จะใช้อุปกรณ์ในขณะนั้น จัดสรรและยกเลิกการใช้อุปกรณ์อย่างมีประสิทธิภาพ
การจัดการไฟล์ (File Management) โดยทั่วไประบบไฟล์จะถูกจัดการให้อยู่ในรูปแบบของไดเร็คทอรี่เพื่อให้ง่ายต่อการเข้าถึง ซึ่งในไดเร็กทอรี่หนึ่งอาจจะประกอบไปด้วยไฟล์และไดเร็กทอรี่อื่นๆ ก็ได้ ดังเช่น เก็บข้อมูลเช่น ตำแหน่งที่เก็บ ผู้ใช้งาน สถานะ เป็นต้น ตัดสินใจว่าใครมีสิทธิในการใช้ทรัพยากร จัดสรรและยกเลิกการใช้ทรัพยากร
หน้าที่อื่นๆ ของระบบปฏิบัติการ ความปลอดภัย (Security) เป็นการกำหนดสิทธิการใช้งานโปรแกรมและข้อมูล ควบคุมประสิทธิภาพของระบบ (Control over system performance) จัดเก็บการเกิดดีเลย์ (Delays) ในระหว่างการร้องขอบริการและการตอบรับจากระบบ ตารางงาน (Job accounting) ติดตามการใช้เวลาและทรัพยากรที่ถูกใช้โดยหลายๆ งานและผู้ใช้หลายๆ ผู้ใช้ ตัวช่วยตรวจจับความผิดพลาด (Error detecting aids) การติดตาม การแจ้งข้อผิดพลาด การดีบัก เป็นต้น ประสานความร่วมมือระหว่างโปรแกรมและผู้ใช้ต่างๆ (Coordination between other software and users) ประสานงานและจัดการ compilers, interpreters, assemblers และโปรแกรมอื่นๆ ไปยังผู้ใช้อื่นๆ ของระบบคอมพิวเตอร์
ชนิดของระบบปฏิบัติการ ระบบแบบกลุ่ม (Batch operating system) ระบบแบบแบ่งเวลา (Time-sharing operating systems) ระบบแบบกระจาย (Distributed operating System) ระบบเครือข่าย (Network operating System) ระบบแบบสนองฉับพลัน (Real Time operating System)
ระบบปฏิบัติการแบบกลุ่ม (Batch operating system) ผู้ใช้งานระบบปฏิบัติการแบบกลุ่มไม่ได้มีปฏิสัมพันธ์ (interact) กับคอมพิวเตอร์โดยตรง ผู้ใช้งานแต่ละคนจะเตรียมงานไว้ในอุปกรณ์คอมพิวเตอร์ที่ไม่ได้ติดต่อโดยตรงกับหน่วยประมวลผลกลาง (off-line device ) เช่น แผ่นบันทึกข้อมูล แล้วส่งต่อให้กับคอมพิวเตอร์ดำเนินการ เพื่อให้กระบวนการทำงานเร็วขึ้น งานที่เหมือนกันจะถูกรวมเข้าไว้ด้วยกันและทำงานเป็นกลุ่ม ดังนั้น โปรแกรมเมอร์จะปล่อยให้โปรแกรมทำงานซึ่งจะจัดเรียงโปรแกรมตามความต้องการที่คล้ายคลึงกัน
ระบบปฏิบัติการแบบกลุ่ม(Batch operating system) (ต่อ) ข้อเสียของระบบปฏิบัติการแบบกลุ่ม ขาดการมีปฏิสัมพันธ์ระหว่างผู้ใช้งานและงาน ซีพียูมักจะถูกปล่อยให้เปล่าประโยชน์เนื่องจากความเร็วของกลไก I/O devices ช้ากว่าซีพียู ยากต่อการจัดลำดับความสำคัญตามความต้องการ
ระบบปฏิบัติการแบบแบ่งเวลา (Time-sharing operating systems) การแบ่งเวลาเป็นเทคนิคที่เปิดทางให้ผู้ใช้งานเครื่องคอมพิวเตอร์ต่างที่กันสามารถใช้ระบบคอมพิวเตอร์เดียวกันในเวลาเดียวกันได้ การแบ่งเวลาหรือการทำงานแบบหลายงานพร้อมๆ กัน (multitasking) เป็นส่วนขยายทางตรรกะของการทำงานแบบหลายโปรแกรมพร้อมๆ กัน (multiprogramming) เวลาของโพรเซสเซอร์ซึ่งถูกแบ่งระหว่างผู้ใช้งานหลายๆ คนไปพร้อมๆ กัน เรียกว่าเป็นการแบ่งเวลา ความแตกต่างหลักระหว่างระบบการทำงานหลายๆ โปรแกรมแบบกลุ่ม (Multiprogrammed Batch Systems) และระบบแบบแบ่งเวลา คือ ระบบการทำงานหลายๆ โปรแกรมแบบกลุ่มมีวัตถุประสงค์เพื่อเพิ่มการใช้งานโพรเซสเซอร์ ในขณะที่ระบบแบบแบ่งเวลามีวัตถุประสงค์เพื่อลดเวลาการตอบสนอง
ระบบปฏิบัติการแบบแบ่งเวลา (Time-sharing operating systems) (ต่อ) งานหลายๆ งานถูกดำเนินการโดยซีพียูโดยการสับเปลี่ยนงานแต่การสับเปลี่ยนจะเกิดเป็นประจำ ดังนั้นผู้ใช้งานสามารถรับการตอบสนองอย่างทันทีทันใด เช่น การประมวลผลด้วยรายการเปลี่ยนแปลง (transaction processing) โพรเซสเซอร์จะดำเนินการโปรแกรมของแต่ละผู้ใช้งานในช่วงเวลาสั้นๆ นั่นคือ ถ้ามีผู้ใช้งานในขณะนั้น n คน ผู้ใช้งานแต่ละคนจะมี time quantum เมื่อผู้ใช้งานส่งการสั่งการจะมีเวลาในการตอบสนองไม่กี่วินาที ระบบปฏิบัติการใช้ตารางการทำงานของซีพียูและการทำงานหลายๆ โปรแกรมพร้อมๆ กันเพื่อเตรียมเวลาส่วนหนึ่งให้ผู้ใช้ในแต่ละคน ระบบคอมพิวเตอร์ส่วนใหญ่ถูกออกแบบให้เป็นระบบแบบรวมกลุ่มที่สามารถปรับเปลี่ยนเป็นระบบแบบแบ่งเวลาได้
ระบบปฏิบัติการแบบแบ่งเวลา (Time-sharing operating systems) (ต่อ) ข้อดีของระบบปฏิบัติการแบบแบ่งเวลา มีการตอบสนองที่รวดเร็ว หลีกเลี่ยงการทำสำเนาของซอฟต์แวร์ ลดเวลาที่ซีพียูไม่ได้ใช้ประโยชน์ ข้อด้อยของระบบปฏิบัติการแบบแบ่งเวลา ปัญหาความน่าเชื่อถือ ความปลอดภัยและความสมบูรณ์ของผู้ใช้โปรแกรมและข้อมูล ปัญหาการสื่อสารข้อมูล
ระบบปฏิบัติการแบบกระจาย (Distributed operating System ) ระบบแบบกระจายใช้หน่วยประมวลผลกลางหลายๆ ตัวที่ทำงานหลายๆ งานและผู้ใช้งานหลายๆ คน การประมวลผลข้อมูลจะถูกกระจายไปยังโพรเซสเซอร์อย่างสอดคล้องกัน ซึ่งแต่ละโพรเซสเซอร์จะสามารถทำงานแต่ละงานได้อย่างมีประสิทธิภาพ โพรเซสเซอร์หนึ่งจะสื่อสารกับโพรเซสเซอร์อื่นๆ ผ่านเส้นทางการสื่อสารที่แตกต่างกัน (เช่น เส้นทางบัสหรือสายโทรศัพท์) ซึ่งถูกส่งต่อไปอย่างหลวมๆ กับระบบคู่หรือระบบแบบกระจาย โพรเซสเซอร์ในระบบแบบกระจายอาจจะมีหน้าที่หรือขนาดที่แตกต่างกันไป ซึ่งอาจถูกอ้างถึงเป็นที่ตั้ง (site) โหนด (node) และคอมพิวเตอร์ ฯลฯ
ระบบปฏิบัติการแบบกระจาย (Distributed operating System) (ต่อ) ข้อดีของระบบแบบกระจาย การแบ่งปันทรัพยากรช่วยอำนวยความสะดวกให้ผู้ใช้ที่อยู่ ณ ที่หนึ่งสามารถที่จะใช้ทรัพยากรที่มีอยู่ในที่อื่นๆ ได้ ถ้าเครื่องคอมพิวเตอร์เครื่องหนึ่งในระบบเสียก็ยังคงมีเครื่องอื่นๆ ที่ยังสามารถดำเนินการได้ ให้บริการกับผู้ใช้งานได้ดีขึ้น ลดภาระงานของเครื่องคอมพิวเตอร์หลัก ลดความล่าช้าในการประมวลผลข้อมูล
ระบบปฏิบัติการแบบเครือข่าย (Network operating System) ระบบปฏิบัติการแบบเครือข่ายทำงานบนเครื่องแม่ข่ายและเตรียมให้เครื่องแม่ข่ายมีความสามารถในการขัดการข้อมูล ผู้ใช้งาน กลุ่ม ความปลอดภัย โปรแกรมประยุกต์ และหน้าที่อื่นๆ ทางด้านเครือข่าย จุดประสงค์หลักของระบบปฏิบัติการแบบเครือข่ายเพื่อให้มีการแบ่งปันไฟล์และเครื่องพิมพ์ระหว่างเครื่องคอมพิวเตอร์หลายๆ เครื่องในเครือข่ายหรือที่เรียกว่าเครือข่าย LAN (Local Area Network) เครือข่ายส่วนบุคคล หรือเครือข่ายอื่นๆ ตัวอย่างระบบปฏิบัติการแบบเครือข่าย เช่น Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare
ระบบปฏิบัติการแบบเครือข่าย (Network operating System) (ต่อ) ข้อดีของระบบปฏิบัติการแบบเครือข่าย เครื่องแม่ข่ายที่เป็นศูนย์กลางมีความเสถียรสูง การรักษาความปลอดภัยถูกจัดการโดยเครื่องแม่ข่าย การอัพเกรดเทคโนโลยีและฮาร์ดแวร์ใหม่ทำได้ง่าย สามารถเข้าถึงเครื่องแม่ข่ายจากสถานที่และระบบที่แตกต่างกัน ข้อเสียของระบบปฏิบัติการแบบเครือข่าย มีค่าใช้จ่ายเกี่ยวกับเครื่องแม่ข่ายสูง การทำงานส่วนใหญ่ต้องพึ่งพาเครื่องที่เป็นศูนย์กลาง ต้องการการบำรุงรักษาและการอัพเกรด
ระบบปฏิบัติการแบบสนองฉับพลัน (Real Time operating System ) ระบบแบบสนองฉับพลันถูกนิยามเป็นระบบการประมวลผลข้อมูลที่มีการกำหนดช่วงเวลาในการประมวลผลและการโต้ตอบกับข้อมูลนำเข้า การประมวลผลแบบฉับพลันเป็นการต่อตรง (on line ) เนื่องจากระบบแบบต่อตรงไม่จำเป็นต้องเป็นแบบฉับพลัน เวลาที่ถูกใช้ไปโดยระบบตอบสนองต่อข้อมูลนำเข้าและแสดงผลสารสนเทศที่ต้องการที่ถูกเปลี่ยนแปลงในรูปแบบของเวลาที่ตอบสนอง ดังนั้นวิธีการนี้เวลาในการตอบสนองน้อยมากเมื่อเทียบกับการประมวลผลแบบออนไลน์ ระบบแบบฉับพลันจะถูกใช้เมื่อความต้องการในเรื่องของเวลาไม่ยืดหยุ่นในการดำเนินการของโพรเซสเซอร์หรือการไหลของข้อมูล และระบบแบบฉับพลันสามารถใช้เป็นอุปกรณ์ควบคุมในโปรแกรมประยุกต์เฉพาะงาน ระบบปฏิบัติการแบบสนองฉับพลันมีการระบุข้อจำกัดด้านเวลาไว้อย่างชัดเจนไม่เช่นนั้นแล้วระบบจะเกิดการล้มเหลว เช่น การทดลองทางด้านวิทยาศาสตร์ ระบบควบคุมด้านอุตสาหกรรม ระบบอาวุธ หุ่นยนต์ ระบบควบคุมเครื่องใช้ภายในบ้าน ระบบควบคุมการจราจรทางอากาศ ฯลฯ
ระบบปฏิบัติการแบบสนองฉับพลัน (Real Time operating System) (ต่อ) ระบบปฏิบัติการแบบสนองฉับพลัน แบ่งออกเป็น 2 ประเภท ระบบ Hard real-time รับประกันว่างานที่อยู่ในขั้นวิกฤตจะเสร็จสมบูรณ์ตรงเวลา ในระบบ Hard real-time หน่วยความจำสำรองจะถูกจำกัดหรือการสูญหายของข้อมูลที่ถูกเก็บใน ROM ในระบบนี้หน่วยความจำเสมือนเกือบจะไม่ถูกพบเลย ระบบ Soft real-time มีข้อจำกัดน้อยกว่า งาน Critical real-time ให้ระดับความสำคัญกับงานหนึ่งมากกว่างานอื่นๆ และยังคงระดับความสำคัญจนกระทั่งเสร็จสมบูรณ์ ระบบ Soft real-time มีความสามารถที่จำกัดมากกว่า ระบบ Hard real-time
โปรแกรมระบบปฏิบัติการ (Operating System Program) Netware เป็นระบบปฏิบัติการที่มีผู้นิยมใช้งานในระบบเครือข่ายมากสำหรับเครื่องไมโครคอมพิวเตอร์ในยุคแรกๆ พัฒนาโดยบริษัท Novell จัดเป็นระบบปฏิบัติการเครือข่ายที่ทำงานภายใต้ MS-DOS
โปรแกรมระบบปฏิบัติการ (Operating System Program) (ต่อ) ระบบปฏิบัติการวินโดว์ มีหลายรุ่น เช่น Windows XP, Windows Vista, Window 7, Window 8, Window NT, Windows 2000 Server เป็นระบบปฏิบัติการที่พัฒนาโดยบริษัท ไมโครซอฟต์ จำกัด สามารถนำไปประยุกต์ใช้งานได้หลากหลายรูปแบบ
โปรแกรมระบบปฏิบัติการ (Operating System Program) (ต่อ) ระบบปฏิบัติการ UNIX เป็นระบบปฏิบัติการที่กำเนิดมาบนเครื่องคอมพิวเตอร์ขนาดใหญ่ (Mainframe) ที่รองรับผู้ใช้จำนวนมากสำหรับระบบเครือข่ายในหน่วยงานใหญ่ๆ เป็นโปรแกรมจัดการระบบงาน (Operating system) ในเครือข่ายคอมพิวเตอร์ระบบหนึ่ง ได้รับการออกแบบโดยห้องปฏิบัติการเบลล์ของบริษัท AT&T ในปี ค.ศ. 1969 ถึงแม้ว่าระบบ UNIX จะคิดค้นมานานแล้ว แต่ยังเป็นที่นิยมใช้กันมาก UNIX ยังเป็นระบบที่ใช้ในลักษณะผู้ใช้ร่วมกันหลายคน (Multiuser) และงานหลายงานในขณะเดียวกัน (Multitasking) ผู้ใช้สามารถดัดแปลง หรือเพิ่มคำสั่งใน UNIX ด้วยตนเองเพื่อความสะดวกได้
โปรแกรมระบบปฏิบัติการ (Operating System Program) (ต่อ) ระบบปฏิบัติการ Linux เป็นระบบปฏิบัติการสำหรับระบบเครือข่าย ที่อยู่ในกลุ่มของ Freeware ที่มีคุณภาพ และประสิทธิภาพสูง Linux พัฒนาขึ้นโดยนายไลนัส ทอร์วัลด์ (Linus Torvalds) ขณะที่ยังเป็นนักศึกษาของมหาวิทยาลัยเฮลซิงกิ ประเทศฟินแลนด์ เขาได้ส่งซอสโค้ด(Source Code) ให้นักพัฒนาทั่วโลกร่วมกันพัฒนา โดยข้อดีของ Linux สามารถทำงานได้พร้อมกัน (Multitasking) และใช้งานได้พร้อมกัน หลายคน(Multiuser) ทำให้เป็นที่นิยมแพร่หลาย บางคนกล่าวว่า "Linux ก็คือน้องของ Unix" แต่จริงๆ แล้วลีนุกซ์มีข้อดีกว่ายูนิกซ์(Unix) คือสามารถทำงาน ได้บนเครื่องคอมพิวเตอร์ส่วนบุคคล (PC) ที่ใช้งานอยู่ทั่วๆ ไป เพราะว่า Linux เป็นระบบปฏิบัติการที่ใช้ทรัพยากรน้อย และมีเสถียรภาพในการดูแลระบบได้ดี
บทที่ 5 ระบบปฏิบัติการ (OS: Operation System) คำถามท้ายบท 1. จงอธิบายความหมายของระบบปฏิบัติการมาพอเข้าใจ 2. ระบบปฏิบัติการมีหน้าที่ในการทำงานอะไรบ้าง 3. โปรเซสในระบบปฏิบัติการคืออะไร 4. โพรเซสสามารถมีสถานะได้กี่สถานะและแต่ละสถานะเป็นอย่างไร 5. ระบบปฏิบัติการมีหน้าที่เกี่ยวกับการจัดการอุปกรณ์เรื่องอะไรบ้าง 6. ระบบปฏิบัติการจัดการอะไรเกี่ยวกับข้อมูล 7. ในการ ย้ายการลบในระบบปฏิบัติการวินโดว์ 7 มีวิธีการอย่างไรบ้าง 8. การเรียกคืนไฟล์ในระบบปฏิบัติการวินโดว์ 7 มีวิธีการอย่างไรบ้าง