วันพุธที่ 7 ธันวาคม พ.ศ. 2559

บทที่2

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

     ระบบคอมพิวเตอร์  ( Computer  System)
 
ในการใช้คอมพิวเตอร์ทำงานแล้วให้ได้ผลลัพธ์ออกมาตามความต้องการของผู้ใช้งาน นั้น  ย่อมต้องมีองค์ประกอบที่เรียกว่า ระบบคอมพิวเตอร์เข้ามาเกี่ยวข้องเสมอ ระบบคอมพิวเตอร์ประกอบด้วยอุปกรณ์ อิเล็กทรอนิกส์หลายประเภททำงานร่วมกัน โดยมีคำสั่งหรือที่เรียกว่าโปรแกรมเป็นตัวสั่งการให้อุปกรณ์เหล่านั้นทำงาน ได้ตามที่มนุษย์ต้องการ ดังนั้นเมื่อกล่าวถึงระบบคอมพิวเตอร์สิ่งสำคัญของระบบจึงได้แก่ ฮาร์ดแวร์(hardware) ซอฟต์แวร์(software) และบุคลากร(Peopleware) นั่นคือ เครื่องคอมพิวเตอร์จะทำงานได้ต้องประกอบด้วยองค์ประกอบ 3 ประการ คือ 1 ฮาร์ดแวร์ 2 ซอฟต์แวร์ 3บุคลากร

การอินเตอร์รัพท์

ในระบบที่มีอุปกรณ์ต่างๆหลายชนิดนั้น บางครั้งเราอาจจะสงสัยว่าในขณะที่นาฬิกาของเครื่องเดินไปได้ตลอดเวลาพร้อมๆกับที่เราใช้ง านอย่างอื่นโดยที่เวลาเดินไปอย่างไม่ผิดพลาด หรือว่าเครื่องได้อ่านแผ่นดิสก์อยู่ ในขณะเดียวกับที่เราพิมพ์ข้อมูลผ่านทางแป้นพิมพ์ได้ ซึ่งเสมือนว่าเครื่องสามารถทํางานได้หลายๆอย่างในเวลาเดียวกัน ซึ่งการที่จะทําได้เช่นนี้นั้น ซีพียูจำเป็นต้องมีวิธีการติดต่อกับอุปกรณ์ภายนอกต่างๆอย่าง มีประสิทธิภาพ วิธีหนึ่งก็คือ ให้ซีพียูใช้เวลาส่วนใหญ่ในการทำโปรแกรมหลัก และหันมาสนใจอุปกรณ์ภายนอกก็ต่อเมื่ออุปกรณ์ภายนอกส่งสัญญาณ เข้ามาขัดจังหวะการทำงานที่ซีพียูทำอยู่ในขณะนั้น ซึ่งซีพียูมีสิทธิที่จะยอมรับหรือปฏิเสธการขัดจังหวะนั้นก็ไ ด้ อาจเปรียบได้ว่าเรากําลังเขียนรายงานอยู่ แล้วมีเสียงโทรศัพท์ดังขึ้นมา เราก็จะต้องตัดสินใจว่าสิ่งใดมีความสําคัญมากกว่ากัน หา กคิดว่าโทรศัพท์สําคัญกว่า ก็หยุดการ เขียนรายงานและไปรับโทรศัพท์ก่อน แล้วจึงกลับมาเขียนรายงานต่อ ดังนั้นในลักษณะนี้ หากว่าซีพียูยอมรับการขัดจังหวะนั้น ซีพียู จะหยุดจากการทำงานในโปรแกรมหลักและไปทำงานในโปรแกรมย่อยซึ่งอุปกรณ์นั้นๆร้องขอมา เมื่อเสร็จแล้ว ซีพียูก็จะกลับมาทำโปรแกรมเดิมที่ หยุดไปต่อ ไป ลักษณะเช่นนี้เรียกว่า การอินเตอร์รัพท์ (Interrupt)
ประเภทของการอินเตอร์รัพท์
การอินเตอร์รัพท์สามารถแบ่งได้เป็น 2 ประเภทใหญ่ๆดังนี้คือ
  1. Non-maskable Interrupt (NMI) คือ การอินเตอร์รัพท์ที่ซีพียูไม่สามารถปฏิเสธได้ หากมีการอินเตอร์รัพท์ประเภทนี้มา ซีพียูต้องหยุดการทำงานของโปรแกรมที่ทำอยู่ในขณะนั้นโดยไ ม่มีข้อแม้ และเปลี่ยนไปทำงานให้การอุปกรณ์ที่มีการส่งอินเตอร์รัพท์เข้ามา
  2. Maskable Interrupt (INT) คือ การอินเตอร์รัพท์ที่ซีพียูสามารถปฏิเสธได้ โดยปรกติ ซีพียูจะมีการกำหนดว่าในขณะนั้น ซีพียูจะอยู่ในภาวะ Disable Interrupt (DI) หรือ Enable (EI) ถ้าหากว่า ในขณะที่มีการอินเตอร์รัพท์เข้ามานั้น ซีพียูอยู่ในภาวะ Disable Interrupt แล้ว การอินเตอร์รัพท์นั้นก็จ ะได้รับการปฏิเสธไป แต่ถ้าเป็น Enable Interrupt การอินเตอร์รัพท์นั้นก็จะได้รับการสนองตอบ
นอกจากนี้ การอินเตอร์รัพท์ยังมีการจัดลำดับความสำคํญของแต่ละอินเตอร์รัพท์ที่เข้ามาอีกด้วย ดังจะกล่าวในหัวข้อถัดไปนี้

การจัดลําดับความสําคัญของการอินเตอร์รัพท์
ถึงแม้ว่าจะมีวงจรจากอุปกรณ์ภายนอกมากมายที่สามารถสร้างและส่งส่งสัญญาณอินเตอร์รัพท์มาให้ซีพียูได้ แต่ซีพียูก็ยังสามารถแยกแยะได้ว่าวงจรใดเป็นผู้สร้างสัญญาณอินเตอร์รัพท์นั้นๆขึ้นมาได้ เนื่องจากแต่ละวงจรจะให้อินเตอร์รัพท์เวกเตอร์ที่ต่างกัน ทําให้ซีพียูกระ โดดไปทํางานในอินเตอร์รัพท์เซอร์วิสรูทีนต่างๆกันโดนที่แต่ละโปรแกรมก็ถูกเขียนให้ทํางานบริการแก่อุปกรณ์นั้นๆ
แม้ว่าซีพียูจะสามารถแยกแยะได้ว่าอุปกรณ์ใดเป็นผู้ส่งสัญญาณอินเตอร์รัพท์แล้วก็ตาม แต่ในทางปฏิบัติแล้ว เมื่อมีอุปกรณ์มากกว่าหนึ่งอุปก รณ์ต้องการจะติดต่อกับซีพียูพร้อมๆกัน ปัญหาว่าซีพียูจะติดต่อกับอุปกรณ์ใดก่อนก็จะเกิดขึ้น จึงต้องมีการจัดให้ความสําคัญต่ออุปกรณ ์ไม่เท่ากัน (Priority Arbitration)
อุปกรณ์ภายนอกจะไม่ได้ต่อสัญญาณอินเตอร์รัพท์ของตนเข้าโดยตรงกับซีพียู แต่จะต่อผ่านวงจรจัดลําดับความสําคัญ ถ้ามีอุปกรณ์หลายตัวต้องการ ที่จะส่งสัญญาณอินเตอร์รัพท์ (INT) เข้าซีพียูพร้อมๆกัน วงจรจัดลําดับความสําคัญจะส่งผ่านสัญญาณอินเตอร์รัพท์และ Interrupt Vector ของอุปกรณ์ที่มีความสําคัญ (Priority) สูงสุด< WBR>ไปยังซีพียู ซีพียูจะตอบรับและให้บริการอุปกรณ์ที่ส่งอินเตอร์รัพท์นั้นมาให้เสร็จสิ้นเสียก่อน แลัวจึงเริ่มให้ความสนใจแก่อินเตอร์รัพท์ของอุปกรณ์ที่มีความสําคัญรองลงไปตามลําดับ
การจัดระบบอินเตอร์รัพท์ไม่ว่าจะเป็นกลไลการกระโดด, การตอบรับ หรือกลไลการเก็บสถานะ การจัดระบบดังกล่าวนี้ของซีพียูก็จะแตกต่างกันออกไปแล้วแต่บริษัทผู้ผลิตจะออกแบบตัวไมโครโปรเซสเซอร์มาเช่นไร ทั้งนี้ก็ขึ้นอยู่กับวัตถุประสงค์ของงานที่จะนําซีพียูตัวนั้น ๆ ไปใช้


การควบคุมอินเตอร์รัพท์
การควบคุมการอินเตอร์รัพท์คือการควบคุมซีพียูว่าจะให้ตอบรับอินเตอร์รัพท์หรือไม่ เนื่องจากในบางขณะที่ซีพียูกําลังทำงานที่ต่อเนื่องอยู่ เช่น โปรแกรมนาฬิกา ซึ่งหากมีการอินเตอร์รัพท์เข้ามาก็จะก่อให้เกิดความผิดพลาดของนาฬิกา ดังนั้นจึงต้องมีการบังคับไม่ให้มีการสนองตอบต่อการร้องขออินเตอร์รัพท์เข้ามา เมื่อโปรแกรมนาฬิกาเสร็จแล้ว จึงอนุญาตให้มีการตอบสนองได้
คําสั่งที่ใช้ในการเซ็ตหรือรีเซ็ตแฟล็กอินเตอร์รัพท์นั้นเรียกว่า คําสั่งอินเตอร์รัพท์ ซึ่งได้แก่
  • DI ซึ่งย่อมาจาก Disable Interrupt เป็นการเซ็ตให้ซีพียูอยู่ในภาวะไม่ตอบสนอง
  • EI ซึ่งย่อมาจาก Enable Interrupt ใช้เพื่อรีเซ็ตแฟล็กให้อยู่ในภาวะตอบสนอง


หลักการทำงานของอินเตอร์รัพท์
ในไมโครโปรเซสเซอร์แทบจะทุกประเภทนั้น การอินเตอร์รัพท์จะเกิดขึ้นโดยอุปกรณ์อินพุทเอาท์พุทได้ส่งสัญญาณอิเลกทรอนิกส์เพื่อไปเปลี่ยนระดับสัญญาณที่ขาใด< WBR>ขาหนึ่งของไมโครโปรเซสเซอร์ ซึ่งขานั้นจะถูกเรียกว่า ขาอินเตอร์รัพท์ (Interrupt Pin) เพื่อเป็นการแจ้งแก่ไมโครโปรเซสเซอร์ถึงการอินเตอร์รัพท์ โดยจะมีขั้นตอนต่างๆดังนี้
  1. วงจรภายนอกส่งสัญญาณอินเตอร์รัพท์มายังซีพียู
  2. หากซีพียูอยู่ในสภาวะ Enable Interrupt (EI) ก็จะตอบรับการอินเตอร์รัพท์ด้วยการส่งสัญญาณ Interrupt Acknowledge กลับไปยังวงจรภายนอก
  3. เซ็ตซีพียูให้อยู่ในสภาวะ Disable Interrupt (DI) เพื่อป้องกันการอินเตอร์รัพท์ซ้อน
  4. หยุดการทำงานในโปรแกรมหลัก
  5. วงจรภายนอกส่งอินเตอร์รัพท์เวกเตอร์มาให้ซีพียูเพื่อบอกตําแหน่งที่จะให้ซีพียูกระโดดไป
  6. ซีพียูส่งค่าในรีจิสเตอร์ PC และรีจิสเตอร์ทั่วไป ไปเก็บไว้ในสแต็ก
  7. ไปทำงานในโปรแกรมย่อยเพื่อบริการอุปกรณ์ที่ส่งอินเตอร์รัพท์เข้ามาจนเสร็จ
  8. รับค่าที่ไปเก็บไว้ในสแต็กคืนสู่รีจิสเตอร์ PC และ รีจิสเตอร์ทั่วไปตามเดิม
  9. เซ็ตซีพียูให้กลับสู่สภาวะ Enable Interrut (EI)
  10. ทำงานในโปรแกรมหลักที่ค้างอยู่ต่อไป


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

การอินเตอร์รัพท์จากหลายอุปกรณ์
ในซีพียูจะมีขาที่ใช้รับสัญญาณอินเตอร์รัพท์เพียงขาเดียว ดังนั้นในกรณีที่มีอุปกรณ์หลายอุปกรณ์ร้องขอการอินเตอร์รัพท์เข้ามา ทุกๆอุปกรณ์ก็จะ ต้องป้อนสัญญาณอินเตอร์รัพท์ให้แก่ซีพียูที่ขาเดียวกันนี้ จึงมีปัญหาเกิดขึ้นคือ เมื่อมีสัญญาณอินเตอร์รัพท์เกิดขึ้น ซีพียูจะจำแนกได้อย่างไรว่า< WBR>สัญญาณที่เข้ามานั้นมาจากอุปกรณ์ตัวใด วิธีการจำแนกสามารถทำได้หลายวิธี แต่แบ่งวิธีที่สำคัญออกเป็น 2 วิธี คือ วิธีซอฟท์แวร์ เรียกว่า ก ารโพล (Polling) และวิธีฮาร์ดแวร์ซึ่งต้องต้องต่อชิ้นส่วนอิเลกทรอนิกส์เข้าช่วย

  • การโพล หมายถึงการที่ซีพียูจะตรวจสอบการแฟล็กการขออินเตอร์รัพท์ของหน่วยรับส่งข้อมุลเข้าออกที่ต่อกับอุปกรณ์แต่ละตัวตามลำดับเพื่อหา ว่าสัญญาณนั้นส่งมาจากอุปกรณ์ใด เมื่อตรวจพบแล้วก็จะทำตามขั้นตอนของอินเตอร์รัพท์ต่อ คือป้อนค่าจากรีจิสเตอร์ต่างๆภายในซีพียูไปเก็บไว้ที่สแต็ก จากนั้นไปทำงานตามโปรแกรมย่อยเพื่อให้บริการแก่อุปกรณ์ที่ขออินเตอร์รัพท์เข้ามา เมื่อจบแล้วก็จะป้อนค่าต่างๆจากสแต็กกลับ สู่รีจิสเต อร์ตามเดิม และกลับไปทำงานของโปรแกรมหลักที่ค้างไว้ การโพลจะช่วยค้นหาอุปกรณ์ที่ส่งสัญญาณอินเตอร์รัพท์และในขณะเดียวกันก็จะจัดลำด ับความสำคัญก่อนหลัง (Priority) ของอินเตอร์รัพท์จากอุปกรณ์ต่างๆที่ร้องขอมา เพื่อในกรณีที่ทีการอินเตอร์รัพท์เข้ามาพร้อมๆกัน
  • วิธีฮาร์ดแวร์ วิธีฮาร์ดแวร์จะมีวงจรอิเลิกทรอนิกส์เพิ่มเติมเพื่อช่วยค้นหาว่าสัญญาณอินเตอร์รัพท์ถูกส่งมาจากอุปกรณ์ไหน เทื่อซีพียูได้รับสัญญาณอินเตอร์รัพท์ ( INT) ก็จะส่งสัญญาณตอบสนองอินเตอร์รัพท์ (INTA = Interrupt Acknowledge) ผ่านกลับไปให้แต่ละอุปกรณ์เพื่อตรวจสอบว่าอุปกรณ์ใดเป็นผู้ส่งสัญญาณอินเตอร์รัพท์ม า เมื่อตรวจพบแล้วอุปกรณ์นั้นก็จะส่งตำแหน่งที่เก็บโปรแกรมย่อยของการอินเตอร์รัพท์นั้นให้แก่ซีพียู สัญญาณตอบสนองที่ซีพียูส่งออกไปนั้นจะอ่านอุปกรณ์ที่ละตัวตามลำดับก่อนหลังที่ได้กำหนดไว้ จนกว่าจะจะพบว่าอุปกรณ์ใดเป็นผู้ส่งสัญญาณอินเตอร์รัพท์มา วงจรอิเลกทรอนิกส์ที่จะนำมาต่อเพิ่มเติมนั้นจะเป็นไอซีเฉพาะกิจที่บริษัทผู้ผลิตไมโครโปรเซสเซอร์ผลิตอ อกมาจำหน่ายด้วย
                      บรรณานุกรม
https://www.cpe.ku.ac.th/~yuen/204471/micro/interrupt/
http://www.thaigoodview.com/library/contest2552/type2/tech03/32/p2.html


 

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

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