วันอังคารที่ 20 ธันวาคม พ.ศ. 2559

บทที่ 5 การติดตั้งระบบปฏิบัติการ

         สิทธิ์ความเป็นเจ้าของซอฟต์แวร์ ในมุมมองทางตลาด ถูกจัดแบ่งออกเป็นประเภทต่างๆ ดังนี้
          1. ซอฟต์แวร์เพื่อการพาณิชย์
          2. แชร์แวร์ (Shareware)
          3. ฟรีแวร์ (Freeware)
          4. ซอฟต์แวร์สาธารณะ

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

         ซอฟต์แวร์ตามมาตรฐานเปิด คือซอฟต์แวร์แบบ Open Source ที่ถูกสร้างขึ้นด้วยแนวคิดการอาศัยความร่วมมือจากโปรแกรมเมอร์หรือนักพัฒนาซอฟต์แวร์ทั่วโลก โดยมีความตั้งใจที่จะเปิดเผยชุดคำสั่งสู่สาธารณะ เพื่อให้เหล่านักพัฒนาช่วยกันสร้างซอฟต์แวร์เหล่านี้ขี้นมา

         การปิดระบบใน Windows 7 สามารถเลือกดำเนินการในรูปแบบต่างๆ ดังนี้
          - Shuttdown เป็นการปิดเครื่อง



          - Switch user เป็นการล็อกออนเข้าบัญชีผู้อื่น โดยงานของบัญชีผู้ใช้คนเดิมยังคงอยู่


          - Log off เป็นการปิดการทำงานของบัญชีผู้ใช้ที่อยู่ในปัจจุบัน เพื่อล็อกออนเข้าบัญชีผู้ใช้รายอื่น


          - Lock เป็นการหยุดพักการทำงานแบบชั่วคราว


          - Restart เป็นการปิดระบบ แล้วบูตเครื่องรอบใหม่


          - Sleep เป็นการหยุดพักระบบหรือให้ระบบหลับชั่วคราว สามารถกลับมาใช้งานเมื่อมีการขยับเมาส์หรือกดปุ่มคีย์ใดๆ บนคีย์บอร์ด


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


         ระบบปฏิบัติการ Windows 8 สามารถเลือกใช้งานใน 2 มุมมองด้วยกัน คือแบบเดสก์ท็อปกับแบบเมโทรอินเตอร์เฟซที่สนับสนุนจอภาพแบบสัมผัส




อ้างอิง
หนังสือการใช้งานระบบปฏิบัติการ
บทที่ 4 ประเภทของโปรแกรมระบบปฏิบัติการ


ซอฟต์แวร์ระบบปฏิบัติการ มีหลากหลายชนิดด้วยกัน เนื่องจากถูกออกแบบและสร้างขึ้นบน  พื้นฐานของความต้องการที่แตกต่างกันคือ
           1. อินเตอร์เฟซของระบบปฏิบัติการ
         2. ประเภทของระบบปฏิบัติการ
         3. ชนิดของซีพียูที่สนับสนุน

          อินเตอร์เฟซแบบคำสั่ง หรือ Command Line เป็นอินเตอร์เฟซที่ผู้ใช้ต้องมีความรู้ในการโต้ตอบกับคอมพิวเตอร์ผ่านคำสั่งต่างๆ ดังนั้น ผู้ใช้จึงต้องรู้ว่า ต้องป้อนคำสั่งอะไรลงไปเพื่อโต้ตอบกับคอมพิวเตอร์


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

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

            ระบบปฏิบัติการเครือข่าย เป็นระบบปฏิบัติการที่สร้างขึ้นเพื่อใช้งานบนระบบเครือข่ายเป็นหลักที่สามารถรองรับการเชื่อมต่อจากเครื่องลูกข่ายนับร้อยๆ เครื่องได้ เช่น Windows,Server,Novell NetWare และ Unix เป็นต้น


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


          ซีพียู RISC ภายในซีพียูจะมีชุดคำสั่งที่น้อยกว่า โยจะบรรจุชุดคำสั่งพื้นฐานง่ายๆ ที่ใช้งานอยู่เป็นประจำ ส่วนคำสั่งที่ซับซ่อนก็จะปล่อยให้เป็นหน้าที่ของระบบปฏิบัติการในการนำคำสั่งพื่นฐานที่มีอยู่มาประกอบเข้าด้วยกัน จึงทำให้ซีพียูมีขนาดเล็ก และใช้พลังงานน้อยกว่าตัวอย่างซีพียูที่ใช้สถาปัตยกรรม RISC เช่น ชิปตระกูล Power PC, Silicon Graphics และ DEC Alpha


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


          ระบบปฏิบัติการ Windows เป็นระบบปฏิบัติการจากค่ายไมโครซอฟต์ที่มีส่วนแบ่งตลาดมากกว่า 90 % มีหลากหลายเวอร์ชั่น หลากหลายระดับให้เลือกใช้ตั้งแต่ระบบปฏิบัติการส่วนบุคคล ระบบปฏิบัติการเครือข่าย และระบบปฏิบัติการในระบบเคลื่อนที่


          ระบบปฏิบัติการ Mac เป็นผลิตภัณฑ์จากค่ายแอปเปิลที่ออกกแบบมาใช้งานบนเครื่องแมคโดยเฉพาะ เป็นระบบปฏิบัติการที่พัฒนาขึ้นจากพื้นฐานระบบปฏิบัติการยูนิกส์


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


          ระบบปฏิบัติการ Linux เป็นสายพันธ์หนึ่ง Unix และยังเป็นระบบเปิด ที่เปิดโอกาศให้นักพัฒนานำไปปรับปรุงเพื่อแบ่งปันใช้งานบนอินเตอร์เน็ต สามรถดาวน์ดหลดมาใช้งานได้ฟรีบนอินเทอร์เน็ต สำหรับลินุกซ์ประเทศไทย ได้รับการพัฒนาขึ้นภายใต้หน่วยงาน NECTEC ดดยใช้ชื่อว่า ลินุกซ์ทะเล (Linux Tle) 


            ระบบปฏิบัติการบนโทรศัพท์เคลื่อนที่ เป็นระบบปฏิบัติการที่ถูกออกแบบมาเป็นกรณีพิเศษ เพื่อใช้งานบนอุปกรณ์โดยเแพาะ เช่น Windows phone,Android,Apple iOS , BlackBerry,HP webOS และ Symbian เป็นต้น





อ้างอิง
หนังสือการใช้งานระบบปฏิบัติการ
บทที่ 3 ระบบปฏิบัติการกับการจัดการทัพยากรระบบ

          โปรเซส คือโปรแกรมที่ถูกประมวลผลโดยซีพียู


          สถานะของโปรเซส จะประกอบด้วยสถานะ New, Ready, Running, waiting และ Terminated



          การจัดตารางการทำงานแบบมาก่อนได้ก่อน (FCFS) เป็นวิธีที่โปรเซสใดร้องขอหน่วยซีพียูก่อน จะได้รับการบริการจากซีพียูก่อน ซึ่งเป็นไปตามลำดับคิวนั้นเอง



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



          การจัดตารางการทำงานตามลำดับความสำคัญ (Priority Scheduling) เป็นวิธีที่มีการกำหนดความสำคัญของโปรเซสแต่ละโปรเซสไม่เท่ากัน โดยโปรเซสที่จะเข้าครอบครองซีพียูได้ต้องมีลำดับความสำคัญสูงสุดในกลุ่ม



          การจัดตารางการทำงาน แบบหมุนเวียน การทำงาน (Round-Robin Scheduling) ถูกออกแบบมาให้ใช้กับระบบคอมพิวเตอร์แบบแบ่งเวลา โดยจะใช้พื้นฐานวิธีแบบมาก่อนได้ก่อนเป็นหลัก แต่ละโปรเซสจะใช้บริการซีพียูด้วยเวลาเท่าๆกัน หมุนเวียนกันไป ที่เรียกว่า เวลาควันตัม (Quantum Time)



          หากทั้งโปรเซส A และ B ต่างไม่ยอมปลดทรัพยากรของตนเองเพื่อให้อีกโปรเซสหนึ่งใช้งานก็จะเกิดวงจรลูปขึ้นมา เนื่องจากทั้งโปรเซส A และโปรเซส B ต่างก็รอคอยทรัพยากร ของอีกโปรเซสหนึ่งที่ครอบครองอยู่ และต่างก็ไม่ยอมปลดทรัพยากรของตนจนกว่าจะได้ใช้งานทรัพยากรของอีกฝ่ายหนึ่ง จึงเป็นที่มาของ วงจรอับ (Deadlock)

          หากระบบเกิดวงจรอับขึ้นมา นั่นหมายถึงการทำงานของโปรเซสที่เกี่ยวข้องจะติดค้างอยู่ ตลอด ไม่มีวันจบสิ้น ซึ่งสามารถเเก้ไขได้ด้วยการให้โปรเซสหนึ่งในวงจรลูปปลดปล่อยทรัพยากรที่ครอบครองอยู่ เพื่อให้ฌปรเซสที่เหลือทำงานต่อไปได้

          การจัดสรรหน่วยความจำ เเบ่งออกเป็น 2 ประเภทด้วยกันคือ การจัดสรรหน่วยความจำแบบต่อเนื่อง เเละการจัดสรรหน่วยความจำแบบไม่ต่อเนื่อง

          ระบบโปรเกรมเดี่ยว คือ ระบบปฎิบัติการที่สามารถรันโปรเเกรมของผู้ใช้ได้เพียงครั้งละหนึ่งโปรเเกรมเท่านั้น

          ระบบหลายโปรเเกรม คือ ระบบปฎิบัติการที่สามารถรันหลายๆโปรเเกรมได้ในขณะเดียวกัน

          เเนวคิดของ หน่วยความจำเสมือน เกิดขึ้นจากหลักการที่ว่า ถึงเเม้ว่าโปรเเกรมที่นำมาโปรเซส จะมีขนาดใหญ่กว่าหน่วยกว่าความจำหลักที่มีอยู่จริงก็ตาม  ก็ต้องสามารถรันโปรเเกรมเหล่านั้นได้

          การจัดเก็บไฟล์ข้อมูล มีหลักการอยู่ 2 วิธีด้วยกันคือ การบันทึกข้อมูลในไฟล์แบบเรียงติดกัน เเละการเเบ่งไฟล์เป็นบล็อก




อ้างอิง
หนังสือการใช้งานระบบปฏิบัติการ
บทที่ 2 โครงสร้างของระบบคอมพิวเตอร์และโครงสร้างของระบบปฏิบัติการ

ระบบการทำงานของคอมพิวเตอร์แบ่งออกเป็น 3 ส่วนหลักคือๆ
1.หน่วยประมวลผลกลาง (Central Processing Unit = CUP) เปรียบเสมือนสมองของ คอมพิวเตอร์ เพราะทำหน้าที่คิดคำนวณและประมวลผลชุดคำสั่ง ๆที่เราสั่งเข้าไป


2.หน่วยรับข้อมูลเข้า (Input Unit) เป็นอุปกรณ์ที่รับและส่งข้อมูลเข้าไปในระบบ คอมพิวเตอร์เช่น แป้นพิมพ์ (Keyboard) , และเมาส์ (Mouse) เป็นต้น


3.หน่วยแสดงผลข้อมูล (Output Unit) ทำหน้าที่แสดงผลลัพธ์ได้จากการประมวลผลต่างๆ โดยอาจจะแสดงออกมา เช่น
จอภาพ
เครื่องพิมพ์
แฟกซ์

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

การขัดจังหวะอุปกรณ์อินพุต/เอาท์พุต (I/O Interrupts)
          การขัดจังหวะจะทำงานอย่างต่อเนื่องร่วมกับ CPU จึงถูกเรียกว่า Interrupt-request line โดยทำงานเป็น Interrupt-driven I/O cycle สำหรับ 7 องค์ประกอบ
          1. Device driver initiates I/O
          2. Initiates I/O
          3. Input ready, output complete, or error generates interrupt signal
          4. CPU receiving interrupt, transfers control to interrupt handler
          5. Interrupt handler processes data, returns from interrupt
          6. CPU resumes processing of interrupted task
          7. CPU executing checks for interrupts between instructions

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

ลำดับชั้นของหน่วยความจำ
             หน่วยความจำมีอยู่หลายชนิดด้วยกัน  แต่ละชนิดต่างก็มีอัตราความเร็วที่แตกต่างกันรวมทั้งขนาดความจุและราคาที่แตกต่างกัน  สาเหตุที่เป็นเช่นนั้นก็เพราะว่า เพื่อให้เราเลือกหน่วยความจำใช้งานได้อย่างเหมาะสมนั้นเอง
               จากรูปที่ 1 หน่วยความจำลำดับบนสุดเป็นหน่วยความจำที่มีความเร็วสูง และลดหลั่นลงมาเรื่อย ๆ ก็จะมีความเร็วที่มีขนาดใหญ่ขึ้น  ในทำนองเดียวกัน หน่วยความจำที่มีขนาดใหญ่นั้นจะมีต้นทุนหรือราคาต่ำกว่าหน่วยความจำที่มีขนาดเล็ก


รูปที่1. ลำดับชั้นหน่วยความจำ  (Memory Hierarchy )

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

หน่วยความจำแคช (cache memory)
          แคช (CACHE) คือ หน่วยความจำภายในชนิดหนึ่ง ซึ่งมีขนาดเล็ก  และมีความเร็วสูง  จากโครงสร้างหน่วยความจำของเครื่องคอมพิวเตอร์ที่มีการจัดโครงสร้างเป็นแบบลำดับชั้น  หน่วยความจำแคช (CACHE) เป็นลำดับชั้นที่อยู่ถัดลงมาจากลำดับชั้นสูงสุด  ซึ่งแคชหากมีหลายระดับ เรียกว่าแคช ระดับ L1,L2,…

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


การป้องกันฮาร์ดแวร์
          ข้อผิดพลาดหลายอย่างมักจะตรวจสอบได้โดยฮาร์ดแวร์ ซึ่งสามารถควบคุมได้โดยระบบปฏิบัติการ ซึ่งจะทำการจัดการข้อผิดพลาดนั้นไปเลย

การป้องกันข้อผิดพลาดของอุปกรณ์รับ-ส่งข้อมูล (I/O Protection)
          เพื่อป้องกันการเรียกใช้อุปกรณ์รับ-ส่งข้อมูลแบบผิด ๆ หรืออ้างอิงตำแหน่งในหน่วยความจำที่อยู่ในส่วนของระบบปฏิบัติการ หรือไม่คืน การควบคุมซีพียูให้ระบบซึ่งมีการกำหนดว่าคำสั่งเรียกใช้อุปกรณ์รับ-ส่งข้อมูลเป็นคำสั่งสงวน (Privileged Instruction) ผู้ใช้ไม่สาม  รถเรียกใช้อุปกรณ์เองได้ ต้องให้ระบบปฏิบัติการเป็นผู้จัดการให้

การป้องกันข้อผิดพลาด เนื่องจาการเข้าถึงข้อมูลผิดตำแหน่ง
          การป้องกันการเข้าถึงข้อมูลผิดตำแหน่ง มีความสำคัญโดยเฉพาะ ถ้าตำแหน่งที่ถูกอ้างถึงอย่างผิด ๆ เป็นตำแหน่งของโปรแกรมสำหรับสัญญาณ (Interrupt Service Routine) อาจทำให้ผู้ใช้สามารถเปลี่ยนแปลงโปรแกรมได้ ซึ่งก่อให้เกิดความผิดพลาดตามมาหรือแม้กระทั่งเป็นโปรแกรมธรรมดาก็ตาม ถ้าถูกอ้างถึงอย่างผิด ๆ จะทำให้โปรแกรมนั้นเกิดข้อผู้พลาดตามไปด้วย เพื่อป้องกันการเข้าถึงข้อมูลผิดตำแหน่ง จึงมีการใช้รีจีสเตอร์ ตัว เพื่อใส่ค่าบอกความกว้างของแต่ละโปรแกรม (Limit Register)และคำที่บอกถึงตำแหน่งเริ่มต้นของโปรแกรม (Base Register)เช่น โปรแกรม (Job 2) เริ่มต้นที่ตำแหน่ง300040(Base register) มีความกว้าง 120900(Limit Register)

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

โครงสร้างของระบบปฏิบัติการ

          1.การจัดการกระบวนการ (Process Management)
กระบวนการคือ โปรแกรมที่กำลังทำงานอยู่ ได้แก่ งานแบบกลุ่ม (batch job) โปรแกรมของผู้ใช้ในระบบปันส่วน (time-shared user program) งานสปุลลิ่ง เป็นต้น
           กระบวนการต้องใช้ทรัพยากรต่าง ๆ ในการทำงานหนึ่ง ๆ เช่น เวลาประมวลผล หน่วยความจำ แฟ้มข้อมูล และอุปกรณ์รับส่งข้อมูล ซึ่งกระบวนการอาจได้รับทรัพยากรเหล่านี้ตั้งแต่ตอนที่ถูกสร้างขึ้น หรือได้มาระหว่างทำงาน ทั้งยังสามารถส่งผ่านทรัพยากรไปสู่กระบวนการอื่นได้อีกด้วย เช่น กระบวนการหนึ่งมีหน้าที่แสดงสถานะของแฟ้มข้อมูลหนึ่ง บนจอภาพ ก็จะได้รับข้อมูลเข้าเป็นชื่อแฟ้มข้อมูล และก็จะทำคำสั่งบางอย่างเพื่อให้ได้ข้อมูลสถานะของแฟ้มนั้นมาเพื่อแสดงต่อไป
            กระบวนการเป็นหน่วยย่อยของงานในระบบ ระบบประกอบไปด้วยกระบวนการหลาย ๆ กระบวนการ กระบวนการบางอันเป็นของระบบปฏิบัติการเอง บางอันเป็นของผู้ใช้ระบบ กระบวนการเหล่านี้สามารถทำงานไปเสมือนพร้อมกัน (concurrent) ได้ โดยการสลับกันใช้หน่วยประมวลผลกลาง

            2.งานบริการของระบบปฏิบัติการ (Operating – System Service)
ระบบปฏิบัติการ เป็นผู้จัดสภาพแวดล้อมให้โปรแกรมทำงาน โดยให้บริการต่าง ๆ แก่โปรแกรม และผู้ใช้ระบบ ระบบปฏิบัติการต่าง ๆ มักมีการให้บริการที่แตกต่างกัน แต่จะมีส่วนหนึ่งที่เหมือนกัน เพื่อให้ความสะดวกต่อผู้ใช้ หรือ ผู้เขียนโปรแกรม ในการทำงานต่าง ๆ ให้ง่ายและรวดเร็ว บริการเหล่านี้ ได้แก่
การให้โปรแกรมทำงาน (Program Execution) ระบบต้องสามารถนำโปรแกรมลงสู่หน่วยความจำหลัก และให้โปรแกรมทำงาน โดยที่การทำงานต้องมีวันสิ้นสุด ไม่ว่าจะเป็นปกติหรือไม่ปกติก็ตาม
การรับส่งข้อมูล (I/O Operation) โปรแกรมของผู้ใช้อาจต้องการรับส่งข้อมูล โดยผ่านแฟ้มข้อมูล หรือ อุปกรณ์รับส่งข้อมูล อุปกรณ์รับส่งข้อมูลบางชนิดต้องการคำสั่งช่วยพิเศษ เช่น เครื่องขับเทป ต้องการการถอยหลังกลับเมื่อเต็ม หรือจอภาพต้องการคำสั่งล้างจอเมื่อเริ่มต้นทำงาน เนื่องจากผู้ใช้ไม่สามารถใช้อุปกรณ์รับส่งข้อมูลได้โดยตรง ดังนั้น ระบบจึงต้องจัดหาวิธีการเพื่อเป็นตัวกลางใช้แทน

              การใช้ระบบแฟ้มข้อมูล (File – system Manipulation) ระบบแฟ้มข้อมูลเป็นสิ่งจำเป็นอย่างยิ่ง โปรแกรมต้องการอ่าน หรือ เขียนข้อมูลลงในแฟ้มข้อมูล นอกจากนี้ ยังต้องการสร้าง หรือ ลบแฟ้มข้อมูลด้วยการใช้ชื่อแฟ้ม
การติดต่อสื่อสาร (Communications) บางครั้งกระบวนการหนึ่งอาจต้องการส่งข้อมูลให้อีกกระบวนการหนึ่ง โดยที่กระบวนการทั้งสองนั้น อาจอยู่ในเครื่องคอมพิวเตอร์เดียวกันหรือคนละเครื่องกัน แต่ติดต่อผ่านเครือข่ายคอมพิวเตอร์ การติดต่อสื่อสารนี้อาจทำได้โดยใช้ หน่วยความจำร่วม (share memory) หรือ การส่งผ่านข้อความ (message passing) โดยมีระบบปฏิบัติการเป็นตัวกลาง

                การตรวจจับข้อผิดพลาด (Error detection) ระบบปฏิบัติการจำเป็นต้องมีกลไกในการตรวจจับข้อผิดพลาดที่อาจจะเกิดขึ้นได้ เช่น ในหน่วยประมวลผลกลาง (เครื่องเสีย ไฟดับ) ในอุปกรณ์รับส่งข้อมูล (เทปเสีย การติดต่อผ่านเครือข่ายล้มเหลว หรือกระดาษพิมพ์หมด) หรือในโปรแกรมของผู้ใช้ (เช่น คำนวณผิด ระบุตำแหน่งในหน่วยความจำผิด หรือ ใช้ CPU time มากไป) สำหรับข้อผิดพลาดแต่ละชนิด ระบบปฏิบัติการจะจัดการด้วยวิธีที่เหมาะสมเพื่อแก้ข้อผิดพลาดเหล่านั้น

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

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

           3.System Calls (การเรียกระบบ)
                 System Call จัดเตรียมส่วนต่อประสาน (interface) ระหว่างกระบวนการหนึ่งกับระบบปฏิบัติการ การเรียกระบบมักเป็นคำสั่งภาษา assembly บางระบบอาจอนุญาตให้เรียกระบบได้โดยตรงจากโปรแกรมภาษาระดับสูง ซึ่งกรณีนี้การเรียกระบบจะถูกกำหนดเป็นหน้าที่ หรือ subroutine call (การเรียกระบบย่อย) ภาษาหลาย ๆ ภาษา เช่น C , Bliss , BCPL , PL/360 , และ PERL ถูกนำมาใช้แทน assembly สำหรับการเขียนโปรแกรมระบบ
                    ตัวอย่างการเรียกระบบ ลองดูการโปรแกรมซึ่งอ่านข้อมูลจากแฟ้มข้อมูลหนึ่งแล้วเขียนลอกลงในอีกแฟ้มหนึ่ง ขั้นแรกโปรแกรมต้องทราบชื่อของแฟ้มข้อมูลทั้งสองนั้นเสียก่อน (input file และ output file) ถ้าเป็นระบบที่ใช้สัญลักษณ์ภาพ และตัวชี้ (icon –based และ mouse – based) มักมีรายชื่อแฟ้มบนจอภาพให้ผู้ใช้เลือก โดยใช้ตัวชี้ และ กดปุ่มบนตัวชี้ เพื่อกำหนดแฟ้มรับ และ แฟ้มส่งข้อมูล

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

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

                  เมื่อคัดลอกแฟ้มข้อมูลจนหมดแล้ว โปรแกรมจะปิดแฟ้มทั้งสอง (เรียกระบบอีก) และ แสดงข้อความบนจอภาพ (เรียกระบบอีก) ว่าเสร็จแล้ว และสุดท้ายหยุดโปรแกรม (เรียกระบบเป็นครั้งสุดท้ายเช่นกัน) จากตัวอย่างนี้ จะเห็นว่าโปรแกรมหนึ่ง ๆ อาจเรียกระบบบ่อยครั้งมาก การติดต่อระหว่างโปรแกรมกับสิ่งแวดล้อม จำเป็นต้องทำผ่านระบบปฏิบัติการทั้งสิ้น


อ้างอิง
http://www.thaiall.com/os/os07.htm
http://info.muslimthaipost.com/main/index.php?page=sub&category=33&id=20189