วันพุธที่ 2 พฤศจิกายน พ.ศ. 2559

ระบบการทำงานของคอมพิวเตอร์แบ่งออกเป็น 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) อาจทำให้ผู้ใช้สามารถเปลี่ยนแปลงโปรแกรมได้ ซึ่งก่อให้เกิดความผิดพลาดตามมาหรือแม้กระทั่งเป็นโปรแกรมธรรมดาก็ตาม ถ้าถูกอ้างถึงอย่างผิด ๆ จะทำให้โปรแกรมนั้นเกิดข้อผู้พลาดตามไปด้วย เพื่อป้องกันการเข้าถึงข้อมูลผิดตำแหน่ง จึงมีการใช้รีจีสเตอร์ 2 ตัว เพื่อใส่ค่าบอกความกว้างของแต่ละโปรแกรม (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