ความรู้เบื้องต้นเกี่ยวกับระบบปฏิบัติการ Operating Systems ความรู้เบื้องต้นเกี่ยวกับระบบปฏิบัติการ (Chapter 1) วัตถุประสงค์ นำเสนอหลักการของระบบปฏิบัติการ
เนื้อหา 1. OS คืออะไร 2. ระบบคอมพิวเตอร์ในอดีต 2. ระบบคอมพิวเตอร์ในอดีต early systems, batch systems, multiprogramming, time-sharing, desktop systems 3. ระบบคอมพิวเตอร์ในปัจจุบัน multiprocessor systems, distributed, real-time, handheld, etc.
1. OS คืออะไร User 1 User 2 User N ….. ….. Application Software compiler editor database Operating System Computer Hardware
คุณลักษณะที่สำคัญ OS คือโปรแกรมที่ทำงานเป็นตัวเชื่อมต่อระหว่างผู้ใช้และเครื่องคอมพิวเตอร์ ซึ่งมีหน้าที่ที่สำคัญดังนี้ เตรียมสิ่งแวดล้อมเพื่อให้ผู้ใช้สามารถเอ็กซีคิวต์ (Execute) โปรแกรมได้ ทำให้การใช้งานเครื่องคอมพิวเตอร์สะดวกสบาย ทำให้ใช้งานคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ continued
นิยามของระบบปฏิบัติการ การจัดสรรทรัพยากร (Resource allocator) เช่น เวลา CPU , หน่วยความจำ, ฮาร์ดดิสก์, อุปกรณ์ I/O ให้เกิดประโยชน์อย่างเต็มที่ หลีกเลี่ยงการติดขัด (dead lock) การควบคุม (control program) ควบคุมการเอ็กซีคิวต์โปรแกรมของผู้ใช้และการทำงานของอุปกรณ์รับส่งข้อมูล แก่นแท้ (Kernel) เป็นโปรแกรมที่ทำงานตลอดเวลา
2. ระบบคอมพิวเตอร์ในอดีต 2.1. Early Systems 2.2. Batch Systems 2.3. Multiprogramming Systems 2.4. Time-Sharing 2.5. Desktop Systems
2.1. Early Systems ใช้งานได้คนเดียวเฉพาะผู้ที่เข้าใจระบบเท่านั้น ส่วนใหญ่จะเป็นคนที่สร้างคอมพิวเตอร์เครื่องนั้นขึ้นมา ทำหน้าที่ควบคุมการทำงานของคอมพิวเตอร์โดยการควบคุมสวิทช์และหลอดไฟต่าง ๆ โหลดโปรแกรมจากเทป การ setup ช้า คอมพิวเตอร์ราคาแพงมาก Compute Read Print Compute Read Print
2.2. Batch Systems Motivation: ใช้งานคอมพิวเตอร์มีประสิทธิภาพเพิ่มขึ้น มีผู้ควบคุมเฉพาะในแต่ละเครื่อง การ์ด และ เทป จะต้องนำส่งผู้ควบคุมเครื่อง งานที่เหมือนกันจะส่งไปทำงานในลำดับเดียวกัน ไม่มีการตอบสนองระหว่างเครื่องกับผู้ใช้ ข้อผิดพลาดจะถูกพิมพ์ออกกระดาษเพื่อใช้ตรวจสอบ ใช้เวลาทำงานในแต่ละงานนาน
Control Cards User’s cards included control cards to guide the monitor. $END data cards $RUN program cards $JOB
Off-line,On-line I/O Processing Line Printer Card Reader CPU Off-line: Line Printer Card Reader CPU tape drives tape drives
Spooling Job pool on disk, scheduled by OS disk I/O Card Reader Line Printer CPU
Benefit Of Spooling Compute Read Print Compute Read Print Compute Read
2.3. Multiprogrammed Systems มีหลาย ๆ งานในหน่วยความจำ ณ เวลาหนึ่ง Multiprogramming อนุญาตให้ OS สลับการทำงานถ้างานหนึ่งต้องหยุดรอเหตุการณ์บางอย่าง OS อาจจะสลับงานเข้า-ออกดิสก์ ต้องมีวิธีการจัดการ CPU
ตัวอย่างการจัดสรรหน่วยความจำ ระบบปฏิบัติการ งานที่ 1 งานที่ 2 งานที่ 3 งานที่ 4 ตัวอย่างการจัดสรรหน่วยความจำ
2.4 ระบบแบ่งส่วนเวลา (Time-Sharing) หลาย ๆ งาน สามารถทำงานโดยการสลับกันใช้งาน CPU คล้าย ๆ multiprogramming แตกต่างกันคือความเร็ว : ผู้ใช้แต่ละคนจำเป็นต้องใช้ซีพียูไทม์ (CPU time) เพียงเล็กน้อย ระบบจะสลับจากโปรเซสหนึ่งไปยังอีกโปรเซสหนึ่งอย่างรวดเร็วจนผู้ใช้งานรู้สึกว่างานของเค้าทำงานตลอดเวลา โปรแกรมที่กำลังทำงานเรียกว่า โปรเซส continued
2.5. Desktop Systems Personal computers I/O devices คอมพิวเตอร์ใช้งานคนเดียว ณ เวลาหนึ่ง I/O devices keyboards, mice, display screens, small printers ผู้ใช้สามารถใช้งานได้อย่างสะดวกสบายคอมพิวเตอร์สามารถตอบสนองได้ตลอดเวลา continued
3. ระบบคอมพิวเตอร์ในปัจจุบัน 3. ระบบคอมพิวเตอร์ในปัจจุบัน 3.1. Multiprocessor Systems 3.2. Distributed Systems 3.3. Real-time Systems 3.4. Handheld Systems
3.1. Multiprocessor Systems คอมพิวเตอร์ที่มี cpu มากกว่า 1 ตัว แต่สามารถแชร์ bus, clock, memory and devices การเชื่อมต่อแบบแน่น (Tightly coupled system) continued
ประโยชน์: เพิ่ม Throughput คืออัตราความสำเร็จของงาน ประหยัดเงิน เพราะสามารถแชร์ทรัพยากรกันได้ เพิ่มความน่าเชื่อถือ เช่นถ้าเรามี ซีพียู 10 ตัว ชำรุดไป 1 ตัวระบบก็ยังสามารถทำงานต่อได้ มี 2 ประเภทคือ: symmetric multiprocessing asymmetric multiprocessing
3.1.1. Symmetric Multiprocessing ระบบมัลติโปรเซสเซอร์แบบสมมาตร เป็นระบบที่มีการแบ่งการประมวลผลงานที่เข้ามาอย่างเท่าเทียมกัน ไม่มีซีพียูตัวใดรับโหลดมากกว่าตัวอื่น งาน หรือ ทรัพยากร จะแบ่งกันโดยอัตโนมัติ ระบบปฏิบัติการในปัจจุบันสนับสนุน symmetric (SMP)
3.1.2. Asymmetric Multiprocessing ระบบมัลติโปรเซสเซอร์แบบไม่สมมาตร เป็นระบบที่มีการจัดสรรงานแต่ละแบบให้ซีพียูแต่ละตัวประมวลผลที่แน่นอน โดยจะมีซีพียูตัวหลัก (master CPU) ทำหน้าที่ควบคุมระบบ และกำหนดงานให้กับซีพียูอื่น (slave CPU) CPU แต่ละตัวทำงานคนละงาน
3.2. ระบบกระจาย (Distributed Systems) “The system is the network.” continued
Multiprocessors, but not sharing memory, clock, etc. บางทีอาจจะอยู่คนละพื้นที่ ระบบที่มีการเชื่อมต่อแบบหลวม (Loosely coupled system) ประโยชน์ : ไม่ต้องแบ่งทรัพยากร , ความเร็ว, ความน่าเชื่อถือ เหมาะกับธุรกิจในปัจจุบัน
3.3. ระบบโต้ตอบฉับพลัน (Real-time Systems) เป็นระบบคอมพิวเตอร์ที่มีการตอบสนองทันทีทันใดเมื่อได้รับอินพุตเข้าไป ส่วนใหญ่ใช้ในการควบคุมเครื่องในโรงงานอุตสาหกรรม การแพทย์
3.4. Handheld Systems Personal Digital Assistants (PDAs) Cellular telephones Issues: limited memory slow processors small display screens
ตัวอย่างระบบปฏิบัติการ MS-DOS WINDOWS LINUX UNIX FreeBSD Macintosh
วิวัฒนาการของ Microsoft Windows MS-DOS WINDOWS 3.XX WINDOWS 95 WINDOWS 98 WINDOWS ME WINDOWS 2000 WINDOWS XP Windows Server 2003 Windows Vista Windows Server 2008