บทที่ 6 ระบบรับและแสดงผลข้อมูล ... ·...

15
บทที6 ระบบรับและแสดงผลข้อมูล (Input/output System) การติดต่อระหว่างอุปกรณ์คอมพิวเตอร์ ในการรับข้อมูลหรือส่งผลลัพธ์ที่ได้จากการ ประมวลผลออกจาเป็นจะต้องมีระบบปฏิบัติการเพื่อใช้ควบคุมการดาเนินการต่างๆ เป็นไปอย่างอิสระ และมีประสิทธิภาพ เรียกระบบจัดการส่วนนี้ว่า ระบบรับและแสดงผลข้อมูล (I/O System)” ซึ่ง เป็นระบบที่ใช้ควบคุมการทางานของอุปกรณ์ต่างๆ ที่ใช้รับและแสดงผลข้อมูล การเชื่อมต่อตลอดจน การลดช่องว่างระหว่างอุปกรณ์ส่วนต่อประสาน (Hardware Interface) กับคอมพิวเตอร์ ซึ่งมีลักษณะการ ทางานและวิธีการดาเนินการส่วนต่อประสาน (Application Interface) ที่แตกต่างกันให้สามารถทางาน ร่วมกันได้ ในบทนี้จะกล่าวถึงระบบรับและแสดงผลข้อมูล (I/O System) ซึ่งเป็นส่วนหนึ่งของการ ติดต่อระหว่างคอมพิวเตอร์กับผู้ใช้ การรับข้อมูลเข้าหรือส่งผลลัพธ์ที่ได้จากประมวลผลแล้วออกไปให้ อยู่ในรูปแบบที่เหมาะสม อธิบายได้ตามหัวข้อต่างๆ ดังนี้ (ศัพท์บัญญัติ ราชบัณฑิตยสถาน, 2544) 5.1 หลักการทางานและประเภทของ I/O System ระบบรับและแสดงผลข้อมูล (I/O System) เป็นระบบที่ใช้ควบคุมการทางานของอุปกรณ์ต่างๆ ที่ใช้รับและแสดงผลข้อมูล ซึ่งเรียกอุปกรณ์ประเภทนี้ว่า อุปกรณ์ต่อพ่วง ( Peripheral Device)แสดงได้ดังรูปที5.2 ซึ่งในปัจจุบันมีการพัฒนาอุปกรณ์ที่ทาหน้าที่ในการรับหรือส่งข้อมูลขึ้นมา หลากหลายประเภท ดังนี1. อุปกรณ์ประเภทรับข้อมูลเข้า เช่น เมาส์ (Mouse) แป้นพิมพ์ (Keyboard) จอสัมผัส (Touch Screen) และไมโครโฟน (Microphone) เป็นต้น 2. อุปกรณ์ประเภทแสดงผลข้อมูลออก เช่น จอภาพ (Monitor) ลาโพง (Speaker) และ เครื่องพิมพ์ (Printer) เป็นต้น 3. อุปกรณ์ประเภทบันทึก เช่น จานบันทึก ( disk) เทป ( Tape ) และซีดีรอม (CD-ROM) เป็นต้น จะเห็นว่าอุปกรณ์แต่ประเภทมีลักษณะการทางานและความเร็วในการรับส่งข้อมูลทีแตกต่างกัน ดังนั้นระบบปฏิบัติการจะต้องให้การสนับสนุนตลอดจนกลไกในการควบคุมอุปกรณ์แต่ละ ประเภทและจะต้องทราบขั้นตอนและรูปแบบการทางานของอุปกรณ์แต่ละประเภทให้สามารถทางาน ได้อย่างถูกต้องและเกิดประสิทธิภาพสูงสุด Page | 76

Transcript of บทที่ 6 ระบบรับและแสดงผลข้อมูล ... ·...

Page 1: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

บทท 6 ระบบรบและแสดงผลขอมล (Input/output System) การตดตอระหวางอปกรณคอมพวเตอร ในการรบขอมลหรอสงผลลพธทไดจากการประมวลผลออกจ าเปนจะตองมระบบปฏบตการเพอใชควบคมการด าเนนการตางๆ เปนไปอยางอสระและมประสทธภาพ เรยกระบบจดการสวนนวา “ระบบรบและแสดงผลขอมล (I/O System)” ซงเปนระบบทใชควบคมการท างานของอปกรณตางๆ ทใชรบและแสดงผลขอมล การเชอมตอตลอดจนการลดชองวางระหวางอปกรณสวนตอประสาน (Hardware Interface) กบคอมพวเตอร ซงมลกษณะการท างานและวธการด าเนนการสวนตอประสาน (Application Interface) ทแตกตางกนใหสามารถท างานรวมกนได ในบทนจะกลาวถงระบบรบและแสดงผลขอมล (I/O System) ซงเปนสวนหนงของการตดตอระหวางคอมพวเตอรกบผใช การรบขอมลเขาหรอสงผลลพธทไดจากประมวลผลแลวออกไปใหอยในรปแบบทเหมาะสม อธบายไดตามหวขอตางๆ ดงน (ศพทบญญต ราชบณฑตยสถาน, 2544)

5.1 หลกการท างานและประเภทของ I/O System

ระบบรบและแสดงผลขอมล (I/O System) เปนระบบทใชควบคมการท างานของอปกรณตางๆ ทใชรบและแสดงผลขอมล ซงเรยกอปกรณประเภทนวา “อปกรณตอพวง (Peripheral Device)” แสดงไดดงรปท 5.2 ซงในปจจบนมการพฒนาอปกรณทท าหนาทในการรบหรอสงขอมลขนมาหลากหลายประเภท ดงน 1. อปกรณประเภทรบขอมลเขา เชน เมาส (Mouse) แปนพมพ (Keyboard) จอสมผส (Touch Screen) และไมโครโฟน (Microphone) เปนตน 2. อปกรณประเภทแสดงผลขอมลออก เชน จอภาพ (Monitor) ล าโพง (Speaker) และ เคร องพมพ (Printer) เปนตน 3. อปกรณประเภทบนทก เชน จานบนทก (disk) เทป (Tape) และซดรอม (CD-ROM) เปนตน

จะเหนวาอปกรณแตประเภทมลกษณะการท างานและความเรวในการรบสงขอมลทแตกตางกน ดงนนระบบปฏบตการจะตองใหการสนบสนนตลอดจนกลไกในการควบคมอปกรณแตละประเภทและจะตองทราบขนตอนและรปแบบการท างานของอปกรณแตละประเภทใหสามารถท างานไดอยางถกตองและเกดประสทธภาพสงสด

Page | 76

Page 2: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

รปท 5.1 แสดงอปกรณตอพวงตางๆ (Peripheral Devices) ทมา : (https://www.google.co.th/search?q=Peripheral+Device)

ดงนนจงจ าเปนตองออกแบบและพฒนาระบบปฏบตการใหรองรบการท างานทเปนอสระตอประเภทและอปกรณแตละชนด (Device Independence) ซงจะมองอปกรณตางๆ เปนเพยงชองทางในการรบหรอสงขอมลเทานน โดยไมตองค านงถงคณลกษณะพเศษของอปกรณนนๆ จงท าใหระบบปฏบตการสามารถตดตอกบอปกรณทกประเภทไดอยางเปนอสระและมประสทธภาพ โดยเรยกระบบยอยทใชจดการภายใน (Kernel) ทเกยวของกบอปกรณ I/O นวา “ระบบรบและแสดงผลขอมล I/O System” คอยท าหนาทในการสงงาน ควบคม และตรวจสอบสถานะของอปกรณ I/O ทงหมด สามารถทจะเรยกใชอปกรณ I/O ไดอยางสะดวก แสดงโครงสรางการท างานของระบบรบและแสดงผลขอมล ซงแตละอปกรณทเชอมตอกบระบบปฏบตการจะมฮารดแวรทใชควบคมการท างานของอปกรณตางๆ โดยเฉพาะ ประกอบดวย ตวควบคมอปกรณ (Device Controller) ท าหนาทรบและสงขอมลและตวขบ (Device Driver) เปนซอฟตแวรท าหนาทตดตอกบอปกรณ I/O แตละประเภท แสดงไดดงรปท 5.2

รปท 5.2 แสดงโครงสรางพนฐานของระบบรบและแสดงผลขอมล (Infrastructure of I/O System)

OS Kernel

I/O Subsystem

อปกรณขบ (Device Driver)

อปกรณขบ (Device Driver)

อปกรณควบคม (Device Controller)

อปกรณควบคม (Device Controller)

อปกรณ A (Device A)

อปกรณ B (Device B)

Page | 77

Page 3: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

5.2 ฮารดแวรของหนวยรบและแสดงผลขอมล (I/O Hardware)

ฮารดแวรของหนวยรบและแสดงผลขอมล (I/O Hardware) ประกอบดวยอปกรณของหนวยรบและแสดงผลประเภทตางๆ ทมความสมพนธกน ดงนนระบบคอมพวเตอรจะตองสามารถทจะใชซอฟตแวรเชอมตอเพอควบคมการท างานรวมกนระหวางอปกรณฮารดแวรจ านวนมาก ซงอปกรณฮารดแวรแตละประเภทกจะมวธการเชอมตอทแตกตางกนออกไป ดงนนการเชอมตออปกรณรบและแสดงผลขอมล (I/O Devices) ตางๆ เขากบระบบคอมพวเตอรจ าเปนจะตองมสวนตอประสานทเปนมาตรฐานเพอใชในการตดตอสอสารระหวางเครองคอมพวเตอรกบอปกรณตางๆ โดยการสงสญญาณไปตามสายสงผานสวนตอประสานชนดตางๆ เชน

1. การตดตอผานสวนตอประสานทเรยกวา “พอรต (Port”) เปนสวนตอประสานทตดตงมาพรอมกบตวเครองคอมพวเตอร มกใชเชอมตอกบอปกรณตวเดยวเขาดวยกน เชน การเชอมตอแบบอนกรม (Serial Port) การเชอมตอแบบขนาน (Parallel Port) การเชอมตอโดยใชเมาส (Mouse) เปนตน

2. การตดตอผานสวนตอประสานทเรยกวา “บส (Bus)” เปนสวนตอประสานทใชเชอมตอกบอปกรณหลกหลายตว โดยการออกแบบโปรโตคอลเพอใชกลมค าสงในการควบคมการสงสญญาณผายสายสง ซงเรยกวธการสงสญญาณแบบนวา “Daisy Chain” ซงเปนวธการทใชสายสญญาณหรอสวนตอประสานของอปกรณหลายประเภทเขาดวยกน แสดงไดดงรปท 5.3

สวนตอประสานอปกรณในระบบคอมพวเตอรโดยทวไป จะเชอมตอโดยผานจดเชอมตอทเรยกวา “PCI Bus” ทตอประสานกบจอภาพ (Monitor) หนวยประมวลผล (Processor) หนวยความจ า (Memory) และอปกรณประเภทอนทมความเรวสง ซงจะมระบบการเชอมตอโดยใชสวนตอประสานทเรยกวา SCSI (Small Computer System Interface) หรอสวนตอประสานทเรยกวา IDE (Integrated Development Environment) ซงเปนมาตรฐานอเลกทรอนกสในการใชสวนตอประสานวธหนงเพอเชอมตออปกรณและสามารถทจะแลกเปลยนขอมลระหวางอปกรณฮารดแวรกบบส เชน อปกรณจ าพวกจานบนทก (disk) นอกจากนยงประกอบไปดวยบสสวนขยาย (Expansion Bus) เพอใชเชอมตออปกรณทมความเรวต า เชน แปนพมพ (Keyboard) เปนตน โดยทอปกรณแตละประเภทจะมหนวยควบคม (Controller) ซงเปนแผงวงจรอเลกทรอนกสทประกอบเขาเปนตวซบ (Chip) บรรจลงบนแผนวงจร (Circuit Broad) ท าหนาทในการควบคมการท างานของอปกรณแตละประเภท ใหสามารถเชอมตอกนไดอยางมประสทธภาพสงสด

Page | 78

Page 4: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

รปท 5.3 แสดงโครงสรางการเชอมตออปกรณแตละชนดของระบบคอมพวเตอร (A Typical PC Bus Structure)

ในการควบคมการรบสงค าสงและขอมลระหวางอปกรณผานทางจดเชอมตอ (Port) จะอยภายใต การควบคมของโดยหนวยประมวลผลกลาง (CPU) ซงจะมการใชค าสง (I/O Instruction) ในการสลบชองทาง (Triggers Bus Lines) เพอตดตอกบอปกรณและสงขอมลเขาออกในระดบบตซงจะท าใหเกดการเปลยนแปลงคารจสเตอร (Register) บางตวในหนวยควบคมอปกรณนนและเรยกวธการนวา “Memory-Mapped I/O” โดยต าแหนงของจดเชอมตอของอปกรณรบและแสดงผลแตละประเภท แสดงไดดงรปท 5.4 ซงจะเกยวของกบรจสเตอรทส าคญ 4 ชนด ดงน 1. รจสเตอรบอกสถานะ (The Status Register) ประกอบดวยบตเพอบอกสถานะวาสามารถอานขอมล หรอแสดงความผดพลาดของอปกรณ (Device Error) 2. รจสเตอรควบคม (The Control Register) ประกอบดวยค าสงในการควบคมอตราความเรวการรบสงขอมลรวมถงการใชบตตรวจสอบ (Parity Checking Bit) 3. รจสเตอรแสดงขอมลเขา (The Data-In Register) ประกอบดวยค าสงทแสดงวาพรอมทจะอานขอมลเขามาเกบในรจสเตอร 4. รจสเตอรแสดงขอมลเขา (The Data-Out Register) ประกอบดวยค าสงทแสดงวาพรอมทจะเขยน ขอมลและสงขอมลออกไปยงอปกรณ I/O

SCSI Controller

Disk

Disk

Disk

Monitor

Serial Port Parallel Port port

Expansion Bus Interface Keyboard IDE Disk Controller

Disk Disk

Processor

Cache

Memory

PCI bus

Expansion bus

SCSI

Bus

Graphic Controller Bridge/Memory controller

Page | 79

Page 5: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

รปท 5.4 แสดงต าแหนงของจดเชอมตอของอปกรณรบและแสดงผลแตละประเภท (Device I/O Port Location on PCs :partial)

วธรบหรอสงขอมลระหวางหนวยประมวลผลกลางกบอปกรณน าเขา/แสดงผล (CPU with I/O Device ) 1. การโพลลง (Polling) เปนวธการสงสญญาณโตตอบกนระหวางหนวยประมวลผลกลาง (CPU) กบอปกรณ I/O เพอของทราบสถานะท างานของอปกรณ I/O นนๆ ซงเกยวของกบค าสงแสดงสถานะการท างาน ดงน 1.1 ค าสงพรอม (Command Ready) เปนค าสงทแสดงวาอปกรณพรอมทจะรบค าสงใหท างานตามค าขอ 1.2 ไมวาง-รอกอน (Busy-Waiting) เปนค าสงทแสดงวาอปกรณไมพรอมทจะท างาน เนองจากมการใชงานอปกรณ I/O นนอย ตองรอจนกวาอปกรณ I/O นนจะถกใชงานจนเสรจ 1.3 ผดพลาด (Error) เปนค าสงทแสดงวาอปกรณขดของ หรอไมสามารถรบค าสงใดๆ ได วธการแบบ Polling นมขอเสยตรงทวาหนวยประมวลกลาง (CPU) ตองเสยเวลาในการรอคอยการใชงานอปกรณ I/O บางประเภทเปนเวลานานๆ ท าใหไมสามารถท างานประเภทอนตอไปไดเพราะตองรอจนกวาอปกรณ I/O นนจะถกใชงาน

ต าแหนงของอปกรณรบและแสดงผล (เลขฐานสบหก)

ประเภทอปกรณ (Device)

000-00F ตวควบคมการเขาถงหนวยความจ าโดยตรง (DMA Controller)

020-021

ตวควบคมการขดจงหวะ (Interrupt Controller)

040-043 ตวควบคมเวลา (Timer)

200-20F ตวควบคมเกมส Game Controller

2F8-2FF พอรตแบบอนกรม (พอรต 2) Serial Port (Secondary)

320-32F ตวควบคมฮารดดสก Hard-Disk Controller

378-37F พอรตแบบขนาน Parallel Port

3D0-3DF ตวควบคมกราฟก

Graphics Controller

3F0-3F7 ตวควบคมดสกไดรฟ Diskettes-Drive Controller

3F8-3FF พอรตแบบอนกรม (พอรต 1) Serial Port (Secondary)

Page | 80

Page 6: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

จนเสรจ เชน การอานหรอบนทกขอมลลงในจานบนทก (disk) เปนตน ซงมกเรยกสภาวะการทเกดขนนวา “Busy-Wait Cycle” 2. การขดจงหวะ (Interrupts) เปนวธทชวยใหหนวยประมวลกลาง (CPU) สามารถท างานอยางอนไดโดยไมตองรอการใชงานอปกรณ I/O จนเสรจ โดยการสงสญญาณการไปขดจงหวะ ( Interrupt) การท างานของหนวยประมวลกลาง (CPU) เพอบอกวาอปกรณ I/O พรอมทจะรบสงขอมลแลวผานทาง Interrupt-Request Line เมอ CPU ไดรบสญญาณขดจงหวะผานชองทางดงกลาวกจะหยดการท างานชวคราวเพอใหบรการกบอปกรณทรองขอการขดจงหวะเขามา ซงแสดงขนตอนการวนรอบการขดจงหวะของอปกรณรบและแสดงผลขอมล แสดงไดดงรปท 5.5

รปท 5.5 แสดงการวนรอบการขดจงหวะของอปกรณรบและแสดงผล (Interrupt-Device I/O Cycle)

3. การเขาถงหนวยความจ าหลกโดยตรง (Direct Access Memory) เปนวธทพฒนาขนมาเพอการรบหรอสงขอมลปรมาณมากๆ ในเวลาเดยวกน โดยใชอปกรณตวควบคมการด าเนนการในการรบสงขอมลระหวางหนวยความจ าหลก (Main Memory) กบอปกรณ I/O ทเรยกวา ตวควบคมการเขาถงหนวยความจ าหลกโดยตรง (Direct Access Memory: DMA) โดยไมจ าเปนตองผาน

ตวขบสงใหอปกรณ I/O เรมตนท างาน

CPU ไดรบสญญาณขดจงหวะและสงการควบคมไปยง Interrupt

Handler

Interrupt Handler ประมวลผลขอมลทไดรบสงคาการขดจงหวะ

กลบคนไป

CPU ตรวจสอบการขดจงหวะ

1

CPU ยอนกลบมาประมวลผลโปรเซสเดมทท างานคาวอยกอนท

จะถกขดจงหวะ

5

ขอมลพรอม

เตรยมความพรอมอปกรณ I/O เพอเรมตนท างาน

หนวยรบและควบคมการประมวลผล (I/O Controller)

หนวยประมวลผลกลาง (Central Processing Unit: CPU)

2

3

4

7 6

Page | 81

Page 7: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

หนวยประมวลผลกลางจงท าให การรบหรอสงขอมลท าไดเรวขนเพราะหนวยประมวลผลกลางไมตองเสยเวลาในรอการท างานของอปกรณ I/O ท าใหสามารถใชงานหนวยประมวลผลกลางไดอยางเตมท ตวควบคมการเขาถงหนวยความจ าหลกโดยตรง (DMA Controller) จะท าการสงผานขอมลจ านวน X ไบต จากอปกรณหนวยความจ าหลก โดยสงสญญาณการขดจงหวะ ( Interrupt) การท างานไปยง หนวยประมวลผลกลาง เมอไดรบค าสงตอบกลบ (Acknowledge) เปนหนาทของหนวยควบคมการเขาถงขอมล (DMA Controller) จะท าการยดคลองบส (Bus) และเรมขบวนการสงผานขอมลซงในขณะนนหนวยประมวลผลกลางยงสามารถทจะท างานดานอน ๆ ตอไปได แสดงไดดงรปท 5.6

รปท 5.6 แสดงขนตอนการท างานของการเขาถงหนวยความจ าหลก (Step in a DMA Transfer)

5.3 สวนตอประสานงานในระบบรบและแสดงผล (Application I/O Interface) เปนมาตรฐานการใชงานอปกรณแตละประเภททมความแตกตางกนสามารถตดตอกนระหวางระบบปฏบตการกบอปกรณ I/O ทมความแตกตางกนในหลายๆ ดาน เชน บรษทผผลต ชนดหรอประเภทของอปกรณ เปนตน เรยกมาตรฐานนวา “สวนประสาน (Interface)” ซงความแตกตางของตวอปกรณ I/O จะถกซอนรายละเอยดไวภายในคอรเนลโมดล (Kernel Modules) โดยใชไดรเวอร (Driver) เปนตวควบคมการท างานของอปกรณ I/O แตละประเภท เพอใหการตดตอระหวางอปกรณตางๆ กบระบบปฏบตการใชมาตรฐานเดยวกน แสดงโครงสรางการเชอมตอคอรเนล (Kernel) ของหนวยรบและแสดงผลขอมล แสดงไดดงรปท 5.7

IDE Disk Controller

Disk Disk

DMA/Bus/Interrupt Controller

Cache

Memory

PCI bus

CPU

CPU Memory Bus Buffer

x

1. ตวขบอปกรณไดรบค าสงใหถายโอนขอมลจากดสกไปยงบฟเฟอร ณ ต าแหนง X 2. ตวขบอปกรณสงค าสงไปยงตวควบคมดสกใหถายโอนขอมลจ านวน C ไบต จากดสกไปยงบฟเฟอร ณ ต าแหนง X 5. ตวควบคม DMA ถายโอนขอมล

ไปยงบฟเฟอร ณ ต าแหนง X 6. เมอ C = 0 DMA จะสงสญญาณการขดจงหวะไปแจงให CPU ทราบวาถายโอนขอมลเสรจสนแลว

3. ตวควบคมดสกเรมกระบวน ถายโอนขอมลดวยวธการเขาถงหนวยความจ าหลกโดยตรง 4. ตวควบคมดสกท าการสงขอมลแตละไบตไปยงตวควบคมการเขาถงหนวยความจ าหลก

Hard

ware

So

ftwar

e

Page | 82

Page 8: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

นอกจากนการพฒนาอปกรณ I/O ใหสอดคลองกบลกษณะการท างานรวมกบระบบปฏบตการแตละชนดซงตางกมมาตรฐานการใชอปกรณในการเชอมตอ (Device Driver interface) ทแตกตางกน ขนอยกบลกษณะการท างาน ฟงกชนและรปแบบการน าไปประยกตใชงานรวมกบระบบคอมพวเตอร

ตารางท 5.1 แสดงความแตกตางของลกษณะการท างานของอปกรณ I/O แตละประเภทในแงมมตางๆ

แงมม (Aspect)

ความแตกตาง (Variation)

อปกรณรบและแสดงผล (I/O Device)

รปแบบการสงขอมล (Data Transfer Mode)

ตวอกขระ (Character) บลอก (Bock)

วธการเขาถงขอมล (Access Method)

การระบการสง (Transfer Schedule)

เรยงล าดบ (Synchronous) ไมเรยงล าดบ (Asynchronous)

Keyboard Devices

Controller

SCSI Devices

SCSI Devices

Controller

SCSI Devices Driver

Keyboard

Keyboard Devices

Controller

Keyboard Devices Driver

Keyboard

Keyboard Devices Driver

PCI Bus

PCI Bus Devices

Controller

PCI Bus Devices Driver

Floppy-Disk Driver

Floppy Devices

Controller

Floppy Devices Driver

Disk, Tape

ATAPI Devices

Controller

ATAPI Devices Driver

Kernel I/O Subsystem

Kernel

อปกรณแสดงผล (Terminal) ดสก (Disk)

ตามล าดบ (Sequential) แบบสม (Random)

โมเดม (Modem) ซดรอม (CD-ROM)

เทป (Tape) แปนพมพ (Keyboard)

การใชงานรวมกน (Sharing)

ใชงานเฉพาะ (Dedicated) ท างานรวมกน (Sharable)

เทป (Tape) แปนพมพ (keyboard) ความเรวของอปกรณ

(Device Speed) Latency, Seek time Transfer rate, Delay between operations

อปแบบการเขาถงอปกรณ I/O (I/O Direction)

อานอยางเดยว (Read Only) เขยนอยางเดยว (Write Only) อานและเขยน (Read only)

ซดรอม (CD-ROM) ตวควบคมกราฟก (Graphic Controller) ดสก (Disk)

รปท 5.7 แสดงโครงสรางการเชอมตอคอรเนลของหนวยรบและแสดงผลขอมล (A Kernel I/O Structure)

Page | 83

Page 9: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

ประเภทของอปกรณทท าหนาทตดตอกบระบบรบและแสดงผลขอมล (I/O System)

1. อปกรณทใชรบหรอสงขอมลเปนกลม (Block and Character Device) เปนอปกรณทใชรบหรอสงขอมลเปนกลม (Block) จะเกยวของกบอปกรณคอ จานบนทก (disk) (Disk) ซงบางครงอาจจะเรยกวธการเขาถงแบบนวา การรบหรอแสดงผลเปนแถว (Raw I/O) โดยค าสง System Calls เพอใชในการเชอมตออปกรณ I/O ดงกลาว เชน ค าสง Read () ค าสง Write () และค าสง Seek () เปนตน สวนอปกรณทเกยวของกบการรบหรอสงขอมลทละตวอกษร (Character) มกจะเกยวของกบอปกรณคอ แปนพมพ (Keyboard) เมาส (Mouse) และโมเดม(Modem) โดยค าสง System Calls เพอใชในการเชอมตออปกรณ I/O ดงกลาวเชน ค าสง (Get) และค าสง (Put) เปนตน 2. อปกรณทใชรบหรอสงขอมลบนเครอขาย (Network Devices) เปนอปกรณทใชรบหรอสงขอมลบนเครอขาย ผานชดค าสงทเชอมตอทเรยกวา Socket Interface โดยตดตงมากบระบบปฏบตการโดยเฉพาะ เชน UNIX และ Windows NT เปนตน ภายใน Socket จะมฟงกชนการท างานในการเชอมตอเพอรบและสงขอมลอยภายในเรยกวาฟงกชน Select () โดยหนาทหลกของฟงกชนนจะท าการสงคนคาสถานะในขณะนนกลบไปยงสวนทมการเรยกใชงานโดยจะม Socket Packet เพอคอยรบขอมลในฝงรบและม Socket Room ท าหนาสงขอมลในฝงสงตามทก าหนด 3. อปกรณสญญาณนาฬกาและอปกรณบอกเวลา (Clock and Timers) เปนอปกรณตดตงมากบเครองคอมพวเตอรโดยมท าหนาทหลก 3 อยาง คอ 1. แสดงวา ณ ปจจบน 2. แสดงเวลาทผานพนไป 3. ตงเวลาเพอทจะด าเนนการกระตน (Trigger) เชน เวลาทจะใชในการขดจงหวะ (Interrupt) ทง 3 หนาทอยภายใตการด าเนนการของระบบปฏบตการ โดยมอปกรณทใชแสดงเวลาทผานพนไปตงและตงเวลาเพอทจะด าเนนการกระตน (Trigger) เรยกวา “Programmable Interval Timer” โดยสามารถทจะตงเวลารอคอย (Wait) และเวลาทจะขดจงหวะ (Interrupt) ในการด าเนนการของกระบวนการ (Process) ในแตละครงได 4. อปกรณรบ/สงขอมลภายใตก าหนดเวลาทแนนอนและไมแนนอน (Blocking and Nonblocking I/O) บางครงอาจจะเรยกอปกรณประเภทนวา Synchronous and Asynchronous Device โดยอปกรณประเภททรบหรอสงขอมลทก าหนดเวลาทแนนอน (Synchronous) เชน เทป เปนตน หลกการท างานแบบนอยภายใตค าสงระบบเรยกใชงาน (System Call) โดยกระบวนการ (Process) ทก าลงประมวลผลอยจะหยดการท างานชวคราว เพอใหค าสงทระบบเรยกใชงาน (System Call) ท างานจนเสรจสนกอน จงจะสามารถกลบมาประมวลผลกระบวนการ (Process) เดมตอไปได ส าหรบอปกรณประเภททรบหรอสงขอมลทก าหนดเวลาทไมแนนอน (Asynchronous) เชน แปนพมพ (Keyboard) เมาส (Mouse) เปนตน กระบวนการ (Process) ทก าลงประมวลผลอยไมจ าเปนตองหยดการท างาน สามารถท างานจนเสรจสนกอน จงคอยใหค าสงทระบบเรยกใชงาน (System Call) เขามาประมวลผล ลกษณะการท างานแบบนเรยกวา เหตการณทเกดขนตอเนองกนหลายเหตการณ (Multithreading) เชน ขณะทใชงานอปกรณในการเขยนขอมล (Writer) ในขณะเวลาเดยวกนกสามารถประมวลผลอปกรณ I/O ควบคกนไปดวย เปนตน

Page | 84

Page 10: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

5.4 ระบบรบหรอแสดงผลยอย (Kernel I/O Subsystem)

ระบบปฏบตการโดยทวไปจะมสวนคอรเนล (Kernel) ไวคอยสนบสนนการใหบรการตางๆ ทเกยวพนกบอปกรณ I/O หลายอยาง เชน การจดตารางอปกรณ (I/O Scheduling) ทพกขอมล (Buffering) การเกบขอมลไวในหนวยความจ า (Caching) การจดการขอผดพลาด (Error Handing) การจดโครงสรางขอมลภายในคอรเนล (Kernel Data Structures) เปนตน ซงถกจดการโดยระบบรบหรอแสดงผลยอย (Kernel I/O Subsystem) 1. การจดตารางอปกรณ (I/O Scheduling) เปนการก าหนดความส าคญในการใชงานอปกรณตางๆ อยางเปนระบบ โดยการบนทกขอมลการท างานของอปกรณ I/O แตละตวไวใน ตารางแสดงสถานะการท างานของแตละอปกรณ (Device-Status Table) เพอตรวจสอบสถานะวาอปกรณ I/O นนพรอมทจะท างานหรอไม ถาพรอม ระบบปฏบตการกจะท าการตรวจสอบสญญาณขดจงหวะ (Interrupt) วามาจากอปกรณ I/O ตวใดกจะท าการปรบเปลยนคาใหถกตองตามสญญาณขดจงหวะนน และพรอมกบท าการตรวจสอบวามอปกรณ I/O ใดเขาคว (Queue) กจะท างานตามค ารองขอ (Request) ถดไป เมอด าเนนการเสรจสนแลวกจะท าการคนคา การควบคมเพอกลบไปประมวลผลงานเดมกอนทจะถกขดจงหวะ 2. ทพกขอมล (Buffering) เปนพนทในหนวยความจ า (Memory) ทใชเกบขอมลขณะทมการถายโอนระหวางอปกรณ 2 ชนดกนหรอระหวางอปกรณกบงานทท าอย เนองจากอตราความเรวในการท างานของแตละอปกรณกบหนวยประมวลผลกลาง (CPU) มความเรวไมเทากน ดงนนจ าเปนจะตองมทพกขอมลชวคราว เพอใหการถายโอนขอมลระหวาง 2 อปกรณมความตอเนอง และเพมประสทธภาพการท างานใหกบระบบคอมพวเตอร แสดงไดดงรปท 5.8

รปท 5.8 แสดงความเรวในการโอนขอมลของแตละอปกรณ (Sun Enterprise 6000 Device-Transfer Rate: Logarithmic)

แปนพมพ (keyboard)

0 0.01 0.1 1 10 100 1000 10000 100000 1000000

เมาส (Mouse)

โมเดม (Modem)

เครองพมพเลเซอร (Laser Printer)

การดเครอขาย (Ethernet)

ฮารดดสก (Hard disk)

การดเครอขายชนดเรว (Fast Ethernet)

SCSI Bus

SBUS

Gigaplane Bus

Page | 85

Page 11: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

3. การเกบขอมลไวในหนวยความจ า (Caching) โดยทแคลช (Cache) เปนหนวยความจ าความเรวสงทอยระหวางหนวยประมวลผลกลาง (CPU) และหนวยความจ าหลก (Main Memory) ท าหนาทในการพกขอมลไวชวคราว โดยการน าขอมลบางสวนมาใสไวในแคลช (Cache) เนองจากการอานขอมลไดเรวกวา แตถาไมมขอมลในแคลช (Cache) กจะไปอานขอมลในหนวยความจ าแทน การใชงานของแคลช (Cache) มรปแบบ การท างานทไมแตกตางจากทพกขอมล (Buffering) มากนก เพยงแตท างานไดเรวกวา แตมราคาคอนขางแพง ดงนนงานทตองการความเรวมกจะนยมใช แคลช (Cache) เปนตวจดการ

4. การพกขอมลชวคราว (Spooling and Device Reservation) เปนทพกขอมลชวคราวส าหรบจดเกบขอมลทจะถกสงออกไปยงอปกรณ I/O เพอแกปญหาของอปกรณทไมสามารถสลบการท างานหรอท างานพรอมกนระหวางกระบวนการ (Process) ได การใชเครองพมพรวมกน (Share Printer) ระบบปฏบตการจะวธการพกขอมลชวคราว (Spooling) เพอจดล าดบควงานในการสงขอมลเขามาใหกบเครองพมพ และในขณะเดยวกนกสามารถทจะยกเลกการพมพไดเพราะล าดบของควตางๆ ทเกบอยในทพกขอมลชวคราว (Spooling) ผใชสามารถควบคมการท างานผานระบบปฏบตการได

5. การจดการขอผดพลาด (Error Handing) ระบบปฏบตจะท าหนาทเปนตวกลางในการประสานการท างาน ระหวางอปกรณตางๆและชดค าสงส าเรจรป (Application Program) ของผใช ดงนนระบบปฏบตจะตองคอยปองกนการใชงานหนวยความจ า (Protected Memory) และจดการขอผดพลาดทอาจจะเกดขนในขณะสงผานขอมลหรอทมการเรยกใชงานอปกรณ I/O นนๆ อยเพอใหระบบไมเกดการตดขดและสามารถท างานตอไปได เชน ขอผดพลาดทเกดขนกบเครองพมพกรณการทใชพมพอยหมด ระบบปฏบตจะตองมการจดขอผดพลาดในการใชงานใหกบผใชทราบไดทนท เปนตน

6. การจดโครงสรางขอมลภายในคอรเนล (Kernel Data Structures) ภายในคอรเนล (Kernel) ตองการทจะเกบสถานะการท างานทเกยวของกบการใชงานอปกรณ I/O แตละชนด วธการหนงคอการจดโครงสรางขอมลภายในคอรเนล (Kernel Data Structures) เชน การเปดไฟล (Open-File) ดงรปท 5.9 แสดงตารางโครงสรางภายในคอรเนล (Kernel) ในการตดตาม (Track) การเชอมตอระบบเครอขาย การตดตอสอสารกบอปกรณสงผานขอมลอกขระ (Character-Device) หรอกจกรรมอนทเกยวของกบการใชอปกรณ I/O เปนตน

Page | 86

Page 12: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

รปท 5.9 แสดงความเรวในการโอนขอมลของแตละอปกรณ (UNIX I/O Kernel Structure)

5.5 การสงขอมลอยางตอเนอง (Streams)

เปนวธการจดการในตดตอและการสงขอมลอยางตอเนองระหวางอปกรณตวขบ (Device Driver) กบผใชในระดบกระบวนการ (User-Level Process) ซงโครงสรางการสงขอมลอยางตอเนอง (Stream) ประกอบดวยสวนหวของการสง (Stream Head) โดยท าการเชอมตอกบสวนของกระบวนการผใชและตวขบสดทายหรอสวนสนสด (Driver end) ท าการควบคมอปกรณสตรมโมดล (Stream module) แตและตว โดยทสวนหวของ การสง (Stream Head) ตวขบสดทายหรอตวสนสด (Driver end) และแตละโมดลประกอบดวยคของแถวล าดบ จ านวนหลายค (Pair of Queues) เชน คของแถวล าดบการอาน (Read Queue) กบแถวล าดบการเขยน (Write Queue) โดยการสงผานขอมลจะกระท าโดยคแถวล าดบใน แตละแถวล าดบ แสดงไดดงรปท 5.10

Kernel Memory

System-wide open-file table

User-process memory

File-system record Inode pointer Pointer to read and write functions Pointer to select function Pointer to ioctl function Pointer to close function

Networking (socket) record Pointer to network info Pointer to read and write functions Pointer to select function Pointer to ioctl function Pointer to close function

Active-inode table

Active-inode table

Per-process open-file table

File descriptor

.

.

.

.

.

.

Page | 87

Page 13: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

รปท 5.10 แสดงโครงสรางการสงขอมลอยางตอเนอง (The Streams Structure)

5.6 ประสทธภาพการท างาน (Performance)

ปจจยทมผลกบประสทธภาพการท างานของอปกรณ I/O ขนอยกบเหตการณหรองานทเขามาประมวลผลในหนวยประมวลผลกลาง (CPU) ควบคกบชดค าสงขบอปกรณ (Device-Driver Code) และการจดตารางการท างานใหแตละกระบวนการวามประสทธภาพดมากนอยเพยงไร ตลอดจนประสทธภาพของการรบหรอสงขอมลภายใตก าหนดเวลาทแนนอนและไมแนนอน (Block and Unblocked) อกทงยงขนอยกบสถาปตยกรรมของระบบคอมพวเตอรทเลอกใชงานอกดวย

สวนหวของการสง (Stream Head)

โปรเซส (User Process)

ล าดบการอาน (read queue) ล าดบการเขยน (write queue)

ล าดบการอาน (read queue) ล าดบการเขยน (write queue)

ล าดบการอาน (read queue) ล าดบการเขยน (write queue)

สวนทาย (Driver End)

ล าดบการอาน (read queue) ล าดบการเขยน (write queue)

โปรเซส (Diver)

โมดลการท างานแตละประเภท (Modules)

Page | 88

Page 14: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

สรป พนฐานของระบบคอมพวเตอรแตละสวนจะเกยงของและตดตอประสานการท างานระบบรบและแสดงผลขอมล (I/O System) ซงมตวควบคมการท างาน (Device Controllers) เปนของตวเอง โดยหลกการท างานจะเปนการโอยยายขอมลระหวางอปกรณและหนวยความจ าหลก (Main Memory) ถกจดการโดยหนวยประมวลผลกลาง (CPU) ผานชดค าสงทใชจดการอปกรณ I/O หรอจดการอยภายในการควบคมการเขาถงหนวยความจ าหลกโดยตรง (Direct Access Memory) โดยมระบบปฏบตการเขามาควบคมเพอให การด าเนนงานตางเปนไปอยางราบรนและเกดประสทธภาพ ระบบการท างานยอยทท าหนาทในการควบคมการเขาถงอปกรณรบและแดงผลขอมลทเรยกวา “I/O Subsystem” ซงในปจจบนมการพฒนาอปกรณทท าหนาทในการรบหรอสงขอมลขนมาหลากหลายประเภท ดงน 1. อปกรณประเภทรบขอมลเขา เชน เมาส (Mouse) แปนพมพ (Keyboard) จอสมผส (Touch Screen) และไมโครโฟน (Microphone) เปนตน 2. อปกรณประเภทแสดงผลขอมลออก เชน จอภาพ (Monitor) ล าโพง (Speaker) และเครองพมพ (Printer) เปนตน 3. อปกรณประเภทบนทก เชน จานบนทก (disk) เทป (Tape) และซดรอม (CD-ROM) เปนตน โดยแตละอปกรณทเชอมตอกบระบบปฏบตการจะมฮารดแวรทใชควบคมการท างานของอปกรณตาง ๆ โดยเฉพาะ ประกอบดวย ตวควบคมอปกรณ (Device Controller) ท าหนาทรบและสงขอมลและตวขบ (Device Driver) เปนซอฟตแวรท าหนาทตดตอกบอปกรณ I/O แตละประเภท

วธรบ-สงขอมลระหวางหนวยประมวลผลกลางกบอปกรณน าเขาและแสดงผลขอมล (CPU with I/O Device) สามารถท าไดหลายวธ เชน วธการท า Polling วธการขดจงหวะ (Interrupts) วธการเขาถงหนวยความจ าหลกโดยตรง (Direct Access Memory) เปนตน นอกจากนอปกรณ I/O ยงสามารถแบงตามฟงกชน การท างานของชดค าสงประยกตทแตละบรษทผลตขนมาใชงาน เชน อปกรณทใชรบหรอสงขอมลเปนกลม (Block and Character Device) อปกรณทใชรบหรอสงขอมลบนเครอขาย (Network Devices) อปกรณสญญาณนาฬกาและอปกรณบอกเวลา (Clock and Timers) อปกรณรบ/สงขอมลภายใตก าหนดเวลาทแนนอนและไมแนนอน (Blocking and Nonblocking I/O) เปนตน โดยแตละวธจะมรปแบบการท างานทแตกตางกนขนอยกบสถาปตยกรรมของผออกแบบระบบปฏบตการทใชอยในปจจบน

Page | 89

Page 15: บทที่ 6 ระบบรับและแสดงผลข้อมูล ... · 2020-02-23 · เพื่อใช้เชื่อมต่ออุปกรณ์ที่มีความเร็วต่

ค าถามทบทวน

1. จงยกตวอยางพรอมอธบายอปกรณทท าหนาทในการรบหรอสงขอมลแตละประเภททนยมใชในปจจบน 2. จงอธบายความแตกตางระหวางการตดตอผานจดเชอมตอทเรยกวา “พอรต (Port”) และ “บส (Bus)” 3. อปกรณทเรยกวา Memory-Mapped I/O จะเกยวของกบรจสเตอรทส าคญ 4 ชนดอะไรบาง 4. จงอธบายวธรบหรอสงขอมลระหวางหนวยประมวลผลกลางกบอปกรณน าเขา/แสดงผลตอไปน 4.1 การโพลลง (Polling) 4.2 การขดจงหวะ (Interrupts) 4.3 การเขาถงหนวยความจ าหลกโดยตรง (Direct Access Memory) 5. จงแสดงโครงสรางการเชอมตอคอรเนลของหนวยรบและแสดงผลขอมล (A Kernel I/O Structure) 6. Programmable Interval Timer คออะไร 7. จงอธบายระบบรบหรอแสดงผลยอย (Kernel I/O Subsystem) ตอไปน 7.1 การจดตารางอปกรณ (I/O Scheduling) 7.2 ทพกขอมล (Buffering) 7.3 การเกบขอมลไวในหนวยความจ า (Caching) 7.4 การพกขอมลชวคราว (Spooling and Device Reservation) 7.5 การจดการขอผดพลาด (Error Handing) 7.6 การจดโครงสรางขอมลภายในคอรเนล (Kernel Data Structures) 8. จงอธบายโครงสรางการสงขอมลอยางตอเนอง (The Streams Structure) พรอมวาดรปประกอบ

Page | 90