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

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


1.หน่วยประมวลผลกลาง(Central Processing Unit : CPU)คือ ส่วนที่ทำหน้าที่ปฏิบัติตามคำสั่งที่รับมาจากหน่วยรับข้อมูลและควบคุมการปฏิบัติงานของเครื่องคอมพิวเตอร์ฮาร์ดแวร์ที่สำคัญในหน่วยประมวลผลกลาง  คือ  ไมโครโพรเซสเซอร์  



2.หน่วยรับข้อมมูล (Input Unit)หน่วยรับข้อมูลทำหน้าที่รับโปรแกรมและข้อมูลเข้าสู่เครื่องคอมพิวเตอร์ โดยข้อมูลอาจส่งผ่านอุปกรณ์รับข้อมูลได้โดยตรง เช่น ผ่านแผงแป้นอักขระ (Keyboard) เมาส์ (Mouse) ปากกาแสง (Light Pen) ก้านควบคุม (Joystick) เครื่องอ่านรหัสแท่ง (Bar Code Reader) หรือโดยใช้อุปกรณ์รับข้อมูลอ่านข้อมูลในสื่อข้อมูล ซึ่งในกรณีนี้ต้องนำข้อมูลมาบันทึกลงสื่อข้อมูลเสียก่อน





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



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


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

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

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




การป้องกันฮาร์ดแวร์

เพื่อป้องกันข้อผิดพลาดในระบบ ที่อาจส่งผลเสียหายต่อโปรแกรมที่ส่งเข้ามาประมวลผลรวมถึงตัวระบบปฏิบัติการเอง ดังนั้น ในระบบที่รองรับการทำงานหลายงาน และมีการใช้ทรัพยากรร่วมกัน จึงต้องมีการแบ่งหน้าที่การทำงานเป็นโหมด ซึ่งประกอบด้วย
  1. โหมดการทำงานของผู้ใช้ (User Mode)
  2. โหมดการทำงานของระบบ (System Mode/Monitor Mode)

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

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

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


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

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

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

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น