บทที่ 7 การรบั เข้า/สง่ ออก(Input/Output System)
การรบั เขา้ /สง่ ออก• การทางานของระบบคอมพิวเตอร์ จาเปน็ ตอ้ งมี o การรบั ข้อมูลจากอปุ กรณร์ ับเขา้ (Input Device) เพอ่ื นาข้อมูลเข้าไปใน ระบบ o การนาขอ้ มูลออกไปบนั ทึกบนอุปกรณส์ ่งออก (Output Device)• ระบบปฏิบัติการ มีหน้าที่ จัดการและควบคุมการทางานของอุปกรณ์รับเข้า/ ส่งออก ตลอดจนอานวยความสะดวกแกผ่ ใู้ ชใ้ นการใช้งานอุปกรณ์ตา่ งๆ
ฮารด์ แวรข์ องการรบั เขา้ /สง่ ออก• อุปกรณ์ที่ใช้ในการรับ/ส่งข้อมูลในระบบคอมพิวเตอร์ สามารถแบ่งกลุ่มตาม ลกั ษณะการใช้งานได้ 3 กล่มุ ดงั น้ี o อุปกรณ์ท่ีใช้สาหรับบันทึกข้อมูล (Storage Device) เชน่ ดสิ ก,์ เทป o อุปกรณ์ช่วยในการส่งผ่านข้อมูล (Transmission Device) เช่น network cards, โมเดม็ o อุปกรณ์ช่วยในการติดต่อระหว่างผู้ใช้กับคอมพิวเตอร์ (Human Interfaces Device) เช่น จอภาพ, แปน้ พิมพ์, เมาส์
ฮารด์ แวรข์ องการรบั เขา้ /สง่ ออก• อุปกรณ์รบั เข้า/ส่งออกติดต่อกับระบบคอมพิวเตอร์ด้วยการส่งสัญญาณไปตาม สาย และติดต่อกบั เคร่ืองคอมพิวเตอรท์ ่ีจดุ เชอ่ื มตอ่ เรียกว่า พอรต์ (port)• ถ้ามีอุปกรณ์จานวนมากใช้สายหรือจุดเช่ือมต่อเดียวกัน ลักษณะของการ เช่ือมตอ่ นน้ั จะเรียกวา่ บัส (bus)
ฮารด์ แวรข์ องการรบั เขา้ /สง่ ออก• จากรูป ระบบนี้ใช้บัสในการเชื่อมต่อระหว่างอุปกรณ์ต่างๆ โดยอุปกรณ์แต่ละ ชนิดจะมีตัวควบคุมอุปกรณ์ (device controller) ทาหน้าที่ควบคุมการ ทางานของอุปกรณ์นั้นๆ• ปัญหาสาคัญของการทางานของระบบคือ ซีพียูจะต้องทาอย่างไรจึงจะส่งคาส่ัง และข้อมูลไปยังตัวควบคมุ อุปกรณ์ เพ่ือให้ตัวควบคุมอุปกรณ์ทาการควบคุมการ ทางานของอุปกรณน์ ั้นๆ ได้• วิธีการตดิ ต่อระหว่างซีพียูกับอปุ กรณ์ มดี งั นี้ o การแมพหนว่ ยความจา (Memory-Mapped I/O) o การเขา้ ถงึ หนว่ ยความจาโดยตรง (Direct Memory Access) o การขดั จงั หวะ (Interrupts)
การแมพหนว่ ยความจา• วิธีการทางาน คือ ตัวควบคุมอุปกรณ์แต่ละตัวจะมีรีจีสเตอร์ ซึ่งใช้สาหรับ ตดิ ต่อกับซพี ียโู ดยตรง โดยรจี ีสเตอร์ที่สาคญั คอื o รีจีสเตอร์สถานะ ทาหน้าที่ ควบคุมสถานะของอุปกรณ์รับเข้า/ส่งออก โดยระบบปฏิบัติการกาหนดให้ busy bit ของรีจีสเตอร์สถานะมีค่าเป็น 1 เมอ่ื อปุ กรณไ์ ม่ว่าง (busy) และใหม้ คี า่ เป็น 0 เมอื่ อปุ กรณว์ ่าง o รีจีสเตอร์คาส่ัง ทาหน้าที่ ควบคุมการทางานของอุปกรณ์ โดย ระบบปฏิบัติการกาหนดให้ command ready bit ของรีจีสเตอร์คาสั่ง มีค่าเป็น 1 เมื่อมีคาส่ังให้อุปกรณ์ทางาน และให้มีค่าเป็น 0 เม่ืออุปกรณ์ ทางานเสร็จเรียบร้อย
การแมพหน่วยความจา• ในการทางานของอุปกรณ์รับเข้า/ส่งออก อาจเป็นการอ่านข้อมูลจากอุปกรณ์ (read) หรือบันทึกข้อมูลลงบนอุปกรณ์ (write) ข้ึนกับการกาหนดค่าใน write bit และ read bit ของรีจีสเตอรค์ าส่งั• อุปกรณ์รับเข้า/ส่งออก สามารถมีบัฟเฟอร์ (Device buffer) เพ่ือใช้ สาหรับเกบ็ ขอ้ มูลในการทางานของอปุ กรณ์ได้• ปัญหาในการทางานรับเข้า/ส่งออก คือ การติดต่อระหว่างซีพียูกับรีจิสเตอร์ ของตัวควบคุมอุปกรณ์ และการติดต่อระหว่างซีพียูกับบัฟเฟอร์ของอุปกรณ์ วธิ ีการทเี่ อามาใชค้ ือ การแมพหนว่ ยความจา
การแมพหน่วยความจา• การแมพหน่วยความจา คือ ทาการกาหนดให้ส่งหรือแมพ (map) รีจีสเตอร์ ทุกตัวของตัวควบคุมอุปกรณ์ และบัฟเฟอร์ของอุปกรณ์ไปไว้ที่พ้ืนท่ีของ หน่วยความจาหลัก โดยท่ีหน่วยความจาหลักส่วนนี้จะไม่ถูกนาไปใช้งานอ่ืนๆ หรอื จะไม่ถกู จัดสรรใหก้ ับโปรเซสใดๆ
การแมพหน่วยความจา• ตัวอย่างเช่น การพิมพ์ข้อมูลออกทางเคร่ืองพิมพ์โดยใช้การแมพหน่วยความจา ในการทางาน o ซีพียทู าการตรวจสอบ busy bit ของรจี สี เตอรส์ ถานะของตัวควบคุมเครอื่ งพมิ พ์ ถ้า busy bit มีค่าเป็น 0 แสดงว่าเคร่ืองพิมพ์ว่าง ซีพียูสามารถส่ังให้เคร่ืองพิมพ์นั้น พิมพ์ข้อมูลที่ต้องการได้ด้วยการกาหนดให้ command ready bit และ write bit ในรจี ีสเตอรค์ าส่งั มีค่าเป็น 1 o เม่ือตัวควบคุมตรวจสอบได้ว่า write bit ในรีจีสเตอร์คาสั่งมีค่าเป็น 1 ตัวควบคุม เครื่องพมิ พ์จะอา่ นขอ้ มูลทบ่ี รรจุในบพั เฟอร์ และส่งให้เครือ่ งพิมพ์ทาการพมิ พ์ตอ่ ไป o เมื่อเครื่องพิมพ์ทางานเสร็จแล้ว ตัวควบคุมจะทาการเคลียร์ค่าของ command ready bit และ write bit ในรจี สี เตอรค์ าสั่งให้เปน็ 0
การแมพหน่วยความจา
การแมพหน่วยความจา
การเขา้ ถงึ หนว่ ยความจาโดยตรง• การเข้าถึงหน่วยความจาโดยตรง (Direct Memory Access : DMA) ระบบคอมพิวเตอร์จาเป็นต้องมีตัวควบคมุ DMA (DMA Controller) ซึ่ง เป็นฮาร์ดแวร์ท่ีประกอบด้วยรีจีสเตอร์จานวนมาก เช่น รีจีสเตอร์เก็บตาแหน่ง ของหนว่ ยความจาหลัก (MAR), รจี ีสเตอร์ควบคุม (Control register)• ตัวควบคุม DMA ทาหน้าท่ี ควบคุมการรับเข้า/ส่งออกระหว่างอุปกรณ์ รบั เขา้ /สง่ ออกกับหน่วยความจาหลัก ทาให้สามารถรับส่งข้อมูลระหวา่ งอุปกรณ์ และหน่วยความจาหลักได้โดยตรง ไม่จาเป็นต้องผ่านซีพียู ทาให้การรับส่ง เป็นไปด้วยความรวดเร็ว และซีพียูไม่ต้องเสียเวลารอให้อุปกรณ์รับเข้า/ส่งออก ทางานเสรจ็
การเขา้ ถึงหนว่ ยความจาโดยตรง• จากรูปแสดงตัวอย่างการอ่านข้อมูลจากดิสก์ เพ่ือบันทึกลงหน่วยความจาหลัก ทม่ี ีการใชต้ ัวควบคมุ DMA ชว่ ยในการทางาน• ตัวควบคุม DMA ตอ้ งได้รบั คาสงั่ และข้อมลู จากซพี ียูทใ่ี ห้รายละเอยี ดเกี่ยวกบั o การอ่านข้อมูลจากอุปกรณ์รบั เขา้ /สง่ ออก o การบันทึกขอ้ มูลนนั้ ลงหนว่ ยความจาหลัก o รายละเอียดเกี่ยวกับการอ่านข้อมูลจากหน่วยความจาหลักส่งไปยังอุปกรณ์ รบั เขา้ /สง่ ออก
การเขา้ ถงึ หนว่ ยความจาโดยตรง• เมือ่ ซพี ยี สู ง่ คาสงั่ และข้อมลู ทีส่ าคัญไปยังตัวควบคุม DMA เรียบรอ้ ยแลว้• ตัวควบคุม DMA จะส่งคาร้องขอไปยังตัวควบคุมดิสก์ เพื่อให้มีการถ่ายโอน ขอ้ มลู จากดิสกไ์ ปยงั หน่วยความจาหลกั• ตัวควบคุมดิสก์จะอ่านข้อมูลจากดิสก์ และถ่ายโอนข้อมูลที่ต้องการไปยัง หน่วยความจาหลัก จนกระท่งั การถา่ ยโอนขอ้ มูลเสร็จเรยี บร้อย• ตัวควบคุมดิสก์จะส่งสัญญาณแจ้งให้ตัวควบคุม DMA รับทราบ เพื่อให้ตัว ควบคมุ DMA แจ้งไปยงั ซพี ยี ูตอ่ ไป
การเขา้ ถงึ หนว่ ยความจาโดยตรง
การเขา้ ถึงหนว่ ยความจาโดยตรง• จะเห็นวา่ การรบั เข้า/ส่งออกทม่ี ีการใช้ตัวควบคุม DMA มาช่วยในการทางาน นั้น หลังจากท่ีซีพียูส่งคาสั่งให้ตัวควบคุม DMA เรียบร้อยแล้ว ซีพียูสามารถ สลับไปทางานอ่ืนได้ จนกระทั่งได้รับสัญญาณจากตัวควบคุม DMA ท่ีแจ้งว่า ทางานเสรจ็ เรยี บร้อยแลว้ ซพี ยี จู งึ กลับมาทางานสว่ นนต้ี ่อไป• การทางานในลักษณะนี้ ช่วยให้ซพี ยี ถู กู ใช้งานอย่างเต็มประสิทธิภาพ เนื่องจาก ไมต่ อ้ งเสยี เวลาในการหยุดรอการทางานของอุปกรณใ์ ดๆ
การขดั จงั หวะ• การควบคมุ การรับเข้า/ส่งออกโดยวิธีการขัดจังหวะ (Interrupts) นั้น ซีพียู ต้องมีสายสัญญาณขัดจังหวะ (Interrupt request line: IRQ) และ ชุดคาส่ังจดั การเร่อื งขัดจงั หวะ (Interrupt handler routine)• ในการทางาน เม่อื ซพี ียูวา่ งกจ็ ะตรวจสอบสัญญาณท่สี ายสญั ญาณขัดจังหวะว่ามี อุปกรณ์ใดส่งสัญญาณขัดจังหวะใหซ้ ีพียหู รือไม่• หากตรวจสอบแล้วพบว่ามีสัญญาณขัดจังหวะ ซีพียูจะใช้ชุดคาสั่งจัดการเร่ือง ขัดจังหวะ เพื่อตรวจสอบสาเหตุของการขัดจังหวะท่ีเกิดข้ึน ทาให้ซีพียูสามารถ ทางานตามการขดั จังหวะท่เี กดิ ขนึ้ ได้
การขดั จงั หวะ 3 12
การขดั จงั หวะ• จากรูปแสดงการติดต่อระหว่างอุปกรณ์รับเข้า/ส่งออกกับซีพียู โดยในการทางาน เมื่ออุปกรณ์รับเข้า/ส่งออกทางานเสร็จเรียบร้อยแล้ว ตัวควบคุมการขัดจังหวะจะส่ง สญั ญาณขัดจังหวะไปท่สี ายสัญญาณขดั จงั หวะของซีพียู• เมอื่ ซีพยี ูตรวจสอบพบว่า มสี ัญญาณขดั จงั หวะเกดิ ขึ้น ก็จะหยดุ การทางานท่ีกาลังทา อยู่ในขณะน้ัน แล้วไปทางานตามชุดคาสั่งของการขัดจังหวะท่ีเกิดข้ึน โดยหลังจากที่ ทางานเสรจ็ เรยี บรอ้ ยแล้ว ซีพียจู ึงกลับไปทางานเดมิ ก่อนท่ีจะถูกขดั จงั หวะตอ่ ไป• ขอ้ ดี คือ ทาใหก้ ารทางานเปน็ ไปอย่างรวดเร็ว ซีพียถู ูกใช้งานอย่างเต็มประสิทธิภาพ แต่ละอุปกรณส์ ามารถตดิ ตอ่ กับซพี ยี ไู ด้โดยตรง ไม่ตอ้ งเสียเวลาในการรอ• ข้อเสีย คือ ความยุ่งยากและซับซ้อนในการเขียนโปรแกรม เพ่ือจัดการกับการ ขดั จงั หวะ
ซอฟตแ์ วรข์ องการรบั เขา้ /สง่ ออก• นอกจากวิธีทางฮารด์ แวร์แล้ว ระบบคอมพิวเตอร์สามารถควบคุมการรับเข้า/ส่งออก ด้วยวิธกี ารทางซอฟต์แวร์ โดยซอฟต์แวรต์ ้องมีความสามารถท่สี าคญั คือ o สามารถตดิ ต่อกบั ฮาร์ดแวรไ์ ดโ้ ดยตรง โดยตดิ ตอ่ และควบคุมอุปกรณ์ต่างๆ ของระบบ ผ่านทางโปรแกรมขับอปุ กรณ์ ซ่ึงมีหนา้ ทค่ี วบคมุ การตดิ ตอ่ อุปกรณน์ ้นั ๆ o ความเป็นอสิ ระของอปุ กรณ์ ซง่ึ ชว่ ยใหโ้ ปรแกรมเมอร์สามารถเขียนโปรแกรมเพ่ือเข้าถึง อุปกรณต์ า่ งๆ ได้ โดยไม่จาเป็นต้องระบรุ ายละเอยี ดต่างๆ ของอปุ กรณน์ น้ั ๆ o สามารถจัดการกบั ข้อผดิ พลาดตา่ งๆ ทอ่ี าจเกิดข้นึ ได้• การควบคุมการรับเข้า/ส่งออกโดยวิธีการทางซอฟต์แวร์ สามารถทาได้ 3 วิธี คือ การรับเข้า/ส่งออกด้วยโปรแกรม, การรับเข้า/ส่งออกด้วยการขัดจังหวะ และการรบั เข้า/ส่งออกด้วยการเข้าถงึ หนว่ ยความจาโดยตรง
การรับเขา้ /สง่ ออกดว้ ยโปรแกรม• การรับเข้า/ส่งออกด้วยโปรแกรม (Programmed I/O) สาหรับวิธีน้ี ซีพียูทา หนา้ ทคี่ วบคมุ การรบั เข้า/ส่งออกของระบบ• ตวั อยา่ งเชน่ การส่งอกั ขระให้พมิ พอ์ อกทางเครอ่ื งพมิ พ์ โดยมีการควบคุมการรับเข้า/ ส่งออกด้วยโปรแกรม ในการทางานซพี ยี ูจะนากล่มุ ของอักขระ A, B, C, D ที่ผู้ใช้ ตอ้ งการใหพ้ มิ พ์ออกทางเคร่ืองพิมพ์ ส่งไปไวท้ ีบ่ ฟั เฟอร์• จากน้ันซีพียูจะส่งแต่ละอักขระไปยังเครื่องพิมพ์ เพ่ือให้เคร่ืองพิมพ์ทาการพิมพ์ โดย ซีพยี จู ะส่งอักขระไปก็ตอ่ เมอ่ื ตรวจสอบได้วา่ เครือ่ งพมิ พม์ สี ถานะว่าง• ขณะท่ีเคร่ืองพิมพ์ว่าง ซีพียูจะส่งอักขระ A ไปให้เคร่ืองพิมพ์ทาการพิมพ์ แต่ถ้า เคร่ืองพมิ พม์ ีสถานะไมว่ ่าง ซีพียูตอ้ งรอจนกว่าเครื่องพิมพ์จะว่าง
การรบั เขา้ /สง่ ออกดว้ ยโปรแกรม• หลงั จากที่แตล่ ะอกั ขระถกู พิมพ์เรียบรอ้ ยแล้ว ซีพียูจะเรียกอักขระตัวต่อไป พร้อมกับ ตรวจสอบสถานะของเคร่ืองพิมพ์ ทาซ้าเร่ือยๆ จนกว่าเครื่องพิมพ์จะพิมพ์ทุกอักขระ เสรจ็ เรยี บร้อย• การควบคมุ การรบั เข้า/สง่ ออกด้วยโปรแกรม เป็นวิธที งี่ า่ ยทีส่ ดุ แต่ซีพียูต้องเสียเวลา ทัง้ หมดในการควบคมุ การทางาน ดว้ ยการตรวจสอบสถานะของเครอื่ งพมิ พ์ ถ่ายโอน ข้อมูลไปยงั เคร่ืองพมิ พ์ และรอให้เคร่อื งพิมพ์ทางานเสร็จ ดังน้ันวิธีนี้จึงเป็นการใช้งาน ซีพยี อู ยา่ งไม่เต็มประสทิ ธิภาพ
การรบั เขา้ /สง่ ออกดว้ ยโปรแกรมabcd
การรับเขา้ /สง่ ออกดว้ ยการขดั จงั หวะ• จากข้อเสียของการรับเข้า/ส่งออกแบบโปรแกรม ที่ซีพียูต้องเสียเวลารอจนกว่า อุปกรณ์รับเข้า/ส่งออกทางานเสร็จ จึงได้นาการขัดจังหวะมาช่วยในการควบคุมการ รบั เข้า/ส่งออก• จากตัวอย่างการพิมพ์อักขระออกทางเคร่ืองพิมพ์ เม่ือซีพียูส่งอักขระให้เครื่องพิมพ์ เรียบร้อยแล้ว ให้ซีพียูสลับไปทางานอ่ืนก่อน โดยท่ีซีพียูไม่ต้องหยุดการทางาน เพอื่ รอใหเ้ ครอื่ งพมิ พท์ างานเสรจ็• เมื่อเคร่ืองพิมพ์ทางานเสร็จ เครื่องพิมพ์จะส่งสัญญาณขัดจังหวะไปยังซีพียู เพื่อให้ ซพี ียกู ลบั มาทางานต่อ• วิธีนจ้ี ะช่วยใหซ้ ีพยี ถู ูกใช้งานอย่างเตม็ ประสทิ ธิภาพ แตต่ ้องเสียเวลาในการขดั จังหวะ
การรบั เขา้ /สง่ ออกดว้ ยการเขา้ ถงึ หนว่ ยความจาโดยตรง• วิธีการขัดจังหวะมีข้อเสียคือ อุปกรณ์จะต้องขัดจังหวะทุกครั้งเม่ืออุปกรณ์ถ่ายโอน ขอ้ มูลเสรจ็ หรอื เม่อื อปุ กรณท์ างานเสร็จ ทาให้เปน็ การเสยี เวลา• การควบคุมการรับเข้า/ส่งออกข้อมูลโดยใช้ตัวควบคุม DMA ที่ทาให้ระบบสามารถ เข้าถึงหน่วยความจาได้โดยตรง คือ ซีพียูสามารถสลับไปทางานอื่นได้ โดยไม่ จาเป็นต้องเสียเวลารอการทางานของอุปกรณ์ หรือรอการถ่ายโอนข้อมูล รวมถึง ซีพียูไมต่ ้องเสยี เวลาในการขดั จงั หวะ
การรบั เขา้ /สง่ ออกดว้ ยการเขา้ ถึงหนว่ ยความจาโดยตรง• จากตัวอย่างการพิมพ์อักขระออกทางเคร่ืองพิมพ์ หลังจากท่ีซีพียูนาข้อมูลท่ีผู้ใช้ ตอ้ งการใหพ้ ิมพ์ออกทางเครื่องพมิ พ์ สง่ ไปไว้ทบ่ี ัฟเฟอร์เรยี บร้อยแลว้• ตัวควบคมุ DMA จะทาหน้าทีต่ รวจสอบสถานะของเครื่องพิมพ์ และควบคุมการส่ง แต่ละอกั ขระไปให้เครอื่ งพิมพ์ จนกระท่ังข้อมูลในบัฟเฟอร์ถูกนาไปพิมพ์หมดแล้ว ทา ให้บัฟเฟอร์ว่าง• ตัวควบคุม DMA จะทาการขัดจังหวะการทางาน เพ่ือให้ซีพียูส่งข้อมูลต่อไปมาไว้ท่ี บฟั เฟอร์ หรอื ทางานเดมิ ทคี่ า้ งต่อไป• วิธีน้ีช่วยให้จานวนคร้ังของการขัดจังหวะลดลง เพราะเป็นการขัดจังหวะต่อบัฟเฟอร์ ไมใ่ ชก้ ารขดั จังหวะตอ่ อักขระเหมือนวธิ กี ารรับเข้า/ส่งออกดว้ ยการขัดจงั หวะ
Search
Read the Text Version
- 1 - 26
Pages: