อินพุต/เอาต์พุต

ในการคำนวณอินพุต/เอาต์พุต ( I/O , i/oหรือไม่เป็นทางการioหรือIO ) คือการสื่อสารระหว่างระบบประมวลผลข้อมูล เช่น คอมพิวเตอร์และโลกภายนอก อาจเป็นมนุษย์หรือระบบประมวลผลข้อมูลอื่น อินพุตคือสัญญาณหรือข้อมูลที่ระบบได้รับและเอาต์พุตคือสัญญาณหรือข้อมูลที่ส่งจากระบบ คำนี้ยังสามารถใช้เป็นส่วนหนึ่งของการกระทำได้ การ "ดำเนินการ I/O" คือการดำเนินการ อินพุตหรือเอาต์พุต

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

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

ในสถาปัตยกรรมคอมพิวเตอร์ การรวมกันของCPUและหน่วยความจำหลักซึ่ง CPU สามารถอ่านหรือเขียนได้โดยตรงโดยใช้คำสั่ง เฉพาะ ถือเป็นสมองของคอมพิวเตอร์ การถ่ายโอนข้อมูลไปยังหรือจากคอมโบ CPU/หน่วยความจำ เช่น โดยการอ่านข้อมูลจากดิสก์ไดรฟ์จะถือเป็น I/O [1] CPU และวงจรที่รองรับอาจจัดให้มีI /O ที่แมปหน่วยความจำ ที่ใช้ใน การเขียนโปรแกรมคอมพิวเตอร์ระดับต่ำเช่น ในการใช้งานไดรเวอร์อุปกรณ์หรืออาจให้การเข้าถึงช่อง I/O อัลกอริธึม I/Oเป็นอัลกอริธึมที่ออกแบบมาเพื่อใช้ประโยชน์จากท้องถิ่นและดำเนินการอย่างมีประสิทธิภาพเมื่อแลกเปลี่ยนข้อมูลกับอุปกรณ์จัดเก็บข้อมูลรอง เช่น ดิสก์ไดรฟ์

อินเตอร์เฟซ

จำเป็นต้องมีอินเทอร์เฟซ I/O ทุกครั้งที่อุปกรณ์ I/O ถูกขับเคลื่อนโดยโปรเซสเซอร์ โดยทั่วไป แล้วCPU จะสื่อสารกับอุปกรณ์ต่างๆ ผ่านทางบัส อินเทอร์เฟซต้องมีตรรกะที่จำเป็นในการตีความที่อยู่อุปกรณ์ที่สร้างโดยโปรเซสเซอร์ การจับมือควรดำเนินการโดยอินเทอร์เฟซโดยใช้คำสั่งที่เหมาะสม (เช่น BUSY, READY และ WAIT) และโปรเซสเซอร์สามารถสื่อสารกับอุปกรณ์ I/O ผ่านทางอินเทอร์เฟซได้ หากมีการแลกเปลี่ยนรูปแบบข้อมูลที่แตกต่างกัน อินเทอร์เฟซจะต้องสามารถแปลงข้อมูลอนุกรมเป็นรูปแบบขนานและในทางกลับกัน เนื่องจากจะเป็นการสิ้นเปลืองหากโปรเซสเซอร์ไม่ได้ใช้งานในขณะที่รอข้อมูลจากอุปกรณ์อินพุต จึงต้องมีการจัดเตรียมสำหรับการสร้างอินเทอร์รัปต์ [2] และหมายเลขประเภทที่เกี่ยวข้องสำหรับการประมวลผลเพิ่มเติมโดยโปรเซสเซอร์หากจำเป็น [ ต้องการคำชี้แจง ]

คอมพิวเตอร์ที่ใช้I/O ที่แมปหน่วยความจำจะเข้าถึงฮาร์ดแวร์โดยการอ่านและเขียนไปยังตำแหน่งหน่วยความจำเฉพาะ โดยใช้คำสั่งภาษาแอสเซมบลีเดียวกันกับที่คอมพิวเตอร์ปกติใช้ในการเข้าถึงหน่วยความจำ อีกวิธีหนึ่งคือผ่าน I/O ตามคำสั่ง ซึ่งต้องการให้ CPU มีคำสั่งเฉพาะสำหรับ I/O [1]ทั้งอุปกรณ์อินพุตและเอาต์พุตมี อัตรา การประมวลผลข้อมูลที่แตกต่างกันอย่างมาก [2]เนื่องจากอุปกรณ์บางตัวสามารถแลกเปลี่ยนข้อมูลด้วยความเร็วสูงมากการเข้าถึงโดยตรงไปยังหน่วยความจำ (DMA) โดยไม่ต้องใช้ CPU อย่างต่อเนื่องจึงเป็นสิ่งจำเป็น [2]

การนำไปปฏิบัติในระดับที่สูงขึ้น

ระบบปฏิบัติการระดับสูง และสิ่งอำนวยความสะดวกด้าน การเขียนโปรแกรมใช้แนวคิด I/O และพื้นฐานที่แยกจากกันและเป็นนามธรรม มากขึ้น ตัวอย่างเช่น ระบบ ปฏิบัติการส่วนใหญ่จัดเตรียมแอปพลิเคชันโปรแกรมด้วยแนวคิดของไฟล์ ภาษา การเขียนโปรแกรม CและC++และระบบปฏิบัติการใน ตระกูล Unixไฟล์และอุปกรณ์ที่เป็นนามธรรมแบบดั้งเดิมเป็นสตรีมซึ่งสามารถอ่านหรือเขียนได้ หรือบางครั้งทั้งสองอย่าง ไลบรารีมาตรฐาน Cมีฟังก์ชันสำหรับจัดการสตรีมสำหรับอินพุตและเอาต์พุต

ในบริบทของภาษาการเขียนโปรแกรมALGOL 68 สิ่งอำนวยความสะดวก อินพุตและเอาต์พุตเรียกรวมกันว่าทรานสพุไลบรารี ทรานสพุ ALGOL 68รู้จักไฟล์/อุปกรณ์มาตรฐานต่อไปนี้: stand in, stand outและstand errors.stand back

อีกทางเลือกหนึ่งสำหรับฟังก์ชันดั้งเดิมพิเศษคือI/O monadซึ่งอนุญาตให้โปรแกรมอธิบาย I/O เท่านั้น และการดำเนินการจะดำเนินการนอกโปรแกรม สิ่งนี้มีความโดดเด่นเนื่องจาก ฟังก์ชัน I/Oจะทำให้เกิดผลข้างเคียงกับภาษาการเขียนโปรแกรมใดๆ แต่สิ่งนี้ทำให้การเขียนโปรแกรมเชิงฟังก์ชันล้วนๆสามารถใช้งานได้จริง

ช่องสัญญาณเข้า/ออก

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

I/O ที่แมปพอร์ต

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

I/O ที่แมปหน่วยความจำ

I/O ที่แมปหน่วยความจำจะกำหนดพื้นที่หน่วยความจำอย่างน้อยหนึ่งพื้นที่ให้กับอุปกรณ์

การเข้าถึงหน่วยความจำโดยตรง

การเข้าถึงหน่วยความจำโดยตรง (DMA) เป็นวิธีหนึ่งสำหรับอุปกรณ์ในการถ่ายโอนข้อมูลจำนวนมากเข้าและออกจากหน่วยความจำโดยไม่ขึ้นอยู่กับ CPU

ดูสิ่งนี้ด้วย

อ้างอิง

  1. ↑ ab Null, ลินดา; จูเลีย โลเบอร์ (2549) สิ่งจำเป็นขององค์กรคอมพิวเตอร์และสถาปัตยกรรม การเรียนรู้ของโจนส์และบาร์ตเลตต์ พี 185. ไอเอสบีเอ็น 0763737690. เก็บถาวรจากต้นฉบับเมื่อ 20 ธันวาคม 2016 . สืบค้นเมื่อ 11 ธันวาคม 2559 .
  2. ↑ abc อับด์-เอล-บาร์, มอสตาฟา; เฮชัม เอล-เรวินี (2005) ความรู้พื้นฐานด้านการจัดระบบคอมพิวเตอร์และสถาปัตยกรรม จอห์น ไวลีย์ แอนด์ ซันส์ หน้า 161–162. ไอเอสบีเอ็น 9780471478331. เก็บถาวรจากต้นฉบับเมื่อ 21 ธันวาคม 2016 . สืบค้นเมื่อ 11 ธันวาคม 2559 .

ลิงค์ภายนอก

  • สื่อที่เกี่ยวข้องกับอินพุต/เอาท์พุตที่วิกิมีเดียคอมมอนส์
Retrieved from "https://en.wikipedia.org/w/index.php?title=Input/output&oldid=1185266226"