บทที่ 6 ระบบรับและแสดงผลข้อมูล ... ·...
Transcript of บทที่ 6 ระบบรับและแสดงผลข้อมูล ... ·...
บทท 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
รปท 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
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
รปท 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
รปท 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
จนเสรจ เชน การอานหรอบนทกขอมลลงในจานบนทก (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
หนวยประมวลผลกลางจงท าให การรบหรอสงขอมลท าไดเรวขนเพราะหนวยประมวลผลกลางไมตองเสยเวลาในรอการท างานของอปกรณ 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
นอกจากนการพฒนาอปกรณ 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
ประเภทของอปกรณทท าหนาทตดตอกบระบบรบและแสดงผลขอมล (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
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
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
รปท 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
รปท 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
สรป พนฐานของระบบคอมพวเตอรแตละสวนจะเกยงของและตดตอประสานการท างานระบบรบและแสดงผลขอมล (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
ค าถามทบทวน
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