ระบบรับ และแสดงผล (Input/Output systems)
สารบัญ :: #1 :: #2 :: #3 :: #4 :: #5 :: #6 :: #7 :: #8 :: #9 :: #10 :: #11 :: #12 :: Linux ::
ระบบรับ และแสดงผล

สาระการเรียนรู้
1. อุปกรณ์รับ และแสดงผล
2. Application I/O Interface
3. Kernel I/O Subsystem

จุดประสงค์การสอน
1. เข้าใจอุปกรณ์รับ และแสดงผล
2. เข้าใจ Application I/O Interface
3. เข้าใจ Kernel I/O Subsystem
4. สามารถบอกได้ว่าอุปกรณ์ใดเป็นอุปกรณ์ input หรือ output
5. สามารถติดตั้งอุปกรณ์ I/O ใหม่ได้

แนะนำบทเรียน
นอกจากหน่วยประมวลผล และหน่วยความจำหลักจะสำคัญแล้ว หน่วยนำข้อมูลเข้า (Input Unit) และหน่วยนำข้อมูลออก (Output Unit) ก็เป็นองค์ประกอบที่จะขาดไม่ได้เช่นกัน และอุปกรณ์เหล่านี้ถูกพัฒนาให้มีความหลากหลาย รองรับความต้องการของผู้ใช้เพิ่มขึ้น ความเร็วของแต่ละอุปกรณ์ก็เพิ่มขึ้น เช่น USB กับ Firewire ก็เป็นที่แน่ชัดว่า USB 3.0 จะเป็นสื่อมาตรฐาน ส่วนช่องต่อสาย LAN ก็ยังมีอยู่ แต่ผู้คนส่วนใหญ่นิยมใช้ WiFi แทน สำหรับการเชื่อมต่ออินเทอร์เน็ตในระยะใกล้ เพราะสะดวกกว่ามาก ทั้ง Mouse และ Keyboard ก็มีผู้ใช้หันไปใช้แบบไร้สายเพิ่มขึ้น การเชื่อมต่อที่เคยใช้ Modem ก็เป็น ADSL และกำลังเป็น 3G ในไม่ช้า สื่อเก็บข้อมูลก็มีการใช้ SD Card แทน Harddisk บ้างแล้ว

บทนำ อุปกรณ์ที่ปะติดกับคอมพิวเตอร์มีมากมายที่ผู้ใช้รู้จัก และมีหน้าที่เชื่อมต่อแตกต่างกันไป เช่น ส่งเป็นตัวอักษร หรือเป็นชุดตัวอักษร เข้าถึงแบบ Sequentially หรือ Randomly ส่งข้อมูลแบบ Synchronously หรือ Asynchronously บางอุปกรณ์ Dedicated หรือ Shared บางอุปกรณ์ Read-only หรือ Read-write และทุกอุปกรณ์ความเร็วสูงต่ำต่างกัน
อุปกรณ์เมื่อแยกตามชนิดข้อมูลสามารถแยกได้ 2 ประเภท
1. อุปกรณ์ชนิดข้อมูลเป็นสาย (stream) อุปกรณ์ประเภทนี้ข้อมูลที่ส่งเข้าออกจะเรียงมาเป็นลำดับก่อน-หลัง การแบ่งแยกข้อมูลทำได้โดยตรวจสอบลำดับของข้อมูล อุปกรณ์ประเภทนี้สามารถจัดการได้ง่าย เพียงแต่จัดการรับ-ส่งข้อมูลให้ถูกต้องก็เพียงพอแล้ว ตัวอย่างของอุปกรณ์ชนิดนี้ได้แก่ คีย์บอร์ด ซึ่งข้อมูลที่ส่งเข้ามาในระบบจะเป็นไปตามลำดับการกดคีย์ คีย์ใดถูกกดก่อนก็จะถูกส่งมาก่อน เครื่องพิมพ์ที่จัดอยู่ในอุปกรณ์ประเภทนี้ ข้อมูลที่ถูกส่งออกไปก่อนก็จะถูกพิมพ์ก่อน ข้อมูลที่ถูกส่งไปทีหลังจะถูกพิมพ์ทีหลัง
2. อุปกรณ์ชนิดข้อมูลไม่เป็นสาย (non-stream) อุปกรณ์ประเภทนี้ ข้อมูลที่ส่งและรับไม่ขึ้นอยู่กับลำดับการส่ง เราต้องอาศัยข้อมูลเพิ่มเติมเพื่อที่จะแยกแยะข้อมูลแต่ละตัว การจัดการอุปกรณ์ประเภทนี้ ระบบปฏิบัติการจะต้องมีวิธีจัดการโดยเฉพาะ ขึ้นอยู่กับลักษณะของอุปกรณ์ชนิดนั้นๆ ตัวอย่างอุปกรณ์ชนิดนี้ เช่น จอภาพ ข้อมูลหรือตัวอักษรที่ส่งไปให้จอภาพแสดงนั้น จะต้องส่งไปในตำแหน่งที่ถูกต้อง ตำแหน่งของตัวอักษรที่แสดงอยู่บนจอภาพแต่ละตัวจะมีแอดเดรสประจำตำแหน่งนั้นๆ เมื่อเราส่งตัวอักษรไปยังแอดเดรสใดตัวอักษรก็จะปรากฎอยู่บนจอภาพ ณ ตำแหน่งแอดเดรสนั้นๆ ดังนั้น จะเห็นได้ว่า การส่งตัวอักษรไปให้จอภาพไม่จำเป็นต้องลำดับการส่งที่ถูกต้อง แต่ต้องการแอดเดรสที่ตรงกับตำแหน่งเท่านั้น
7.1 อุปกรณ์รับ และแสดงผล อุปกรณ์อินพุต (Input device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่าง ๆ จากโลก ภายนอกได้ ตัวอย่างเช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์
อุปกรณ์นำข้อมูลเข้า คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์สามารถสัมผัสและรับรู้สิ่งต่างๆ จากภายนอกเครื่องได้ อันได้แก่ โปรแกรมหรือชุดคำสั่งที่เขียนสั่งงาน ให้คอมพิวเตอร์ทำงานตามขั้นตอน และข้อมูลที่ต้องใส่เข้าไปพร้อมกับโปรแกรม เพื่อส่งไปให้หน่วยประมวลผลกลางทำการประมวลผล และผลิตผลลัพธ์ที่ต้องการออกมา ตัวอย่างเช่น เครื่องอ่านบัตร คีย์บอร์ด เมาส์ จอยสติก จอสัมผัส ปากกาแสง กล้องดิจิตอล สแกนเนอร์ เป็นต้น
อุปกรณ์เอาต์พุต (Output device) คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์คอมพิวเตอร์ควบคุมหรือส่งผลออกมาสู่โลกภายนอกได้ ตัวอย่างเช่น เครื่องเจาะบัตร จอภาพ เครื่องพิมพ์
อุปกรณ์นำข้อมูลออก หรืออุปกรณ์แสดงผล คือ อุปกรณ์ที่ทำให้คอมพิวเตอร์ควบคุมหรือส่งผลออกมาสู่ภายนอกตัวเครื่องได้ หลังจากที่คอมพิวเตอร์ได้ทำการประมวลผลแล้ว ก็จะต้องมีวิธีในการนำผลลัพธ์ออกมาแสดง ซึ่งสามารถแบ่งอุปกรณ์แสดงผลนี้ ออกได้เป็น 3 ประเภทคือ อุปกรณ์แสดงผลลัพธ์ชั่วคราว เช่น จอภาพ (Monitor) อุปกรณ์แสดงผลลัพธ์ถาวร เช่น เครื่องพิมพ์ (Printer) และอุปกรณ์แสดงผลลัพธ์ถาวรทางด้านกราฟิก เช่น พลอตเตอร์ (Plotter) เป็นต้น
7.1.1 การลงคะแนน (Polling)
(1) A communications technique that determines when a terminal is ready to send data. The computer continually interrogates its connected terminals in a round robin sequence. If a terminal has data to send, it sends back an acknowledgment and the transmission begins. Contrast with an interrupt-driven system, in which the terminal generates a signal when it has data to send.
(2) A technique that continually interrogates a peripheral device to see if it has data to transfer. For example, if a mouse button was pressed or if data is available at a communications port. Contrast with event-driven or interrupt-driven techniques, in which the operating system generates a signal and interrupts the system. (Techweb.com)
ระเบียบวิธีการที่สมบูรณ์ ในการเชื่อมต่อระหว่าง host และ ตัวควบคุม มีการทำ handshaking เป็นพื้นฐาน โดยสมมติให้มี 2 bits เชื่อมประสาน producer และ consumer หรือ controller และ host โดยมีการบ่งบอกสถานะขณะทำงาน
7.1.2 ขัดจังหวะ (Interrupts)
การขัดจังหวะจะทำงานอย่างต่อเนื่องร่วมกับ CPU จึงถูกเรียกว่า Interrupt-request line โดยทำงานเป็น Interrupt-driven I/O cycle สำหรับ 7 องค์ประกอบ
1. device driver initialtes I/O
2. initiates I/O
3. input ready, output complete, or error generates interrupt signal
4. CPU receiving interrupt, transfers control to interrupt handler
5. interrupt handler processes data, returns from interrupt
6. CPU resumes processing of interrupted task
7. CPU executing checks for interrupts between instructions

7.1.3 เข้าถึงหน่วยความจำโดยตรง (Direct memory access)
(Direct Memory Access) Specialized circuitry or a dedicated microprocessor that transfers data from memory to memory without using the CPU. Although DMA may periodically steal cycles from the CPU, data are transferred much faster than using the CPU for every byte of transfer. On PCs, there are eight DMA channels commonly used as follows. Most sound cards are set to use DMA channel 1
DMA คือ วงจรพิเศษที่ออกแบบมาเพื่อส่งข้อมูลระหว่าง หน่วยความจำ ถึงหน่วยความจำโดยไม่ใช้การทำงานของ CPU และเป็นการทำงานที่คาดหวัง หรือทำนายข้อมูลล่วงหน้า ในการเรียกข้อมูลที่ต้องการใช้ แทนที่จะให้ CPU เป็นคนสั่งงานให้เรียกข้อมูลโดยตรง
ภาพแสดงขั้นตอนการทำงานร่วมกันของ CPU, Cache, CPU memory bus, DMA, PCI bus, IDE disk controller และ Disk มีขั้นตอนต่าง ๆ 6 ขั้นตอน
1. device driver is told to transfer disk data to buffer at address X
2. device driver tells disk controller to transfer C bytes from disk to buffer at address X
3. disk controller initiates DMA transfer
4. disk controlelr sends each byte to DMA controller
5. DMA controller transfers bytes to buffer X, increasing memory address and decreasing c until c = 0
6. when c = 0, DMA interrupts CPU to signal transfer completetion
ความเร็วของอุปกรณ์ต่าง ๆ
อุปกรณ์ความเร็ว
คีย์บอร์ด10 Bps
เมาส100 Bps
โมเด็ม 56 KB7 KBps
แชนแนลโทรศัพท์8 KBps
คู่สาย ISDN16 KBps
เครื่องพิมพ์เลเซอร์100 KBps
สแกนเนอร์400 KBps
อีเธอร์เน็ต (Classic)1.2 MBps
USB (Universal serial bus)1.5 MBps
ดิจิทอลแคมคอร์ดเดอร์4 MBps
ดิสก์ IDE5 MBps
ซีดีรอม 40X6 MBps
อีเทอร์เน็ต (Fast)12.5 MBps
บัส ISA16.7 Bps
ดิสก์ EIDE (ATA-2)16.7 MBps
FireWire (IEEE 1394)50 MBps
มอนิเตอร์ XGA60 MBps
เน็ตเวิร์ค SONET OC-1278 MBps
ดิสก์ SCSI Ultra 280 MBps
อีเธอร์เน็ต (Gigabit)125 MBps
เทป Ultrium320 MBps
บัส PCI528 MBps
SUN Gigaplane XB backplane20 GBps
7.2 Application I/O Interface 7.2.1 Block and character devices
โดยปกติระบบปฏิบัติการจะคาดหวังการเชื่อมต่อผ่าน read() write() หรือ seek() ซึ่งเป็นอุปกรณ์ส่งข้อมูลแบบ simple linear array of block หรือ raw I/O ตัวอย่างอุปกรณ์แบบนี้ที่เห็นได้ชัดที่สุดก็คือ keyboard

7.2.2 Network devices
ในระบบเครือข่ายจะมีการติดต่อสื่อสารกันผ่าน socket interface นอกจากการติดต่อแบบ read() write() และ seek() ยังมีการใช้อุปกรณ์ในเครือข่ายเชื่อมต่อเข้ามาผ่าน socket ได้อีกทางหนึ่ง โดยไม่ได้คำนึงถึงระบบปฏิบัติการว่าจะเป็น UNIX หรือ Windows แต่สนใจเฉพาะสิ่งที่ส่งเข้ามาว่าเข้ามาทางใด

7.2.3 Clocks and timers
คอมพิวเตอร์ส่วนใหญ่มี hardware clock และ timer ให้ข้อมูลพื้นฐานเกี่ยวกับเวลา 3 อย่าง
- บอกเวลาปัจจุบัน (Current time)
- บอกเวลาที่ผ่านไป (Elapsed time)
- ตั้ง trigger ที่จะปฏิบัติการต่อเวลา

7.2.4 Blocking and nonblocking I/O
การมี system-call interface รองรับ I/O ที่มาจาก blocking และ nonblocking เพราะผู้ใช้อาจใช้ทั้ง mouse และ keyboard ส่งข้อมูลพร้อมกัน ในขณะที่กำลังเปิดภาพยนต์จากแผ่น CD จึงต้องรอบรับข้อมูลต่าง ๆ ที่เข้ามา
ลักษณะของอุปกรณ์ I/O
Characteristics of I/O devices
aspectvariationexample
data-transfer modecharacter
block
terminal
disk
access methodsequential
random
modem
CD-ROM
transfer schedulesynchronous
asynchronous
tape
keyboard
sharingdedicated
sharable
tape
keyboard
device speedlatency
seek time
transfer rate
delay between operations
I/O directionread only
write only
read-write
CD-ROM
graphics controller
disk
7.3 Kernel I/O Subsystem เคอเนล (Kernel) คือ แก่นของระบบ ที่ให้บริการต่าง ๆ มากมาย และสัมพันธ์กับ I/O ด้านต่าง ๆ หรือกล่าวได้ว่าทั้ง 6 เรื่องต่อไปนี้ คือระบบย่อยของการจัดการภายใน kernel ที่เกี่ยวกับ I/O
7.3.1 I/O scheduling
7.3.2 Buffering (เก็บข้อมูลที่ปรากฎ)
7.3.3 Caching (เก็บข้อมูลที่เรียกใช้บ่อย และทำให้การเรียกใช้เร็วกว่า)
7.3.4 Spooling and device reservation (เป็น buffer ที่เก็บผลลัพธ์ของอุปกรณ์ เช่น printer)
7.3.5 Error handling (การจัดการกับข้อผิดพลาด)
7.3.6 Kernel data structures (โครงสร้างข้อมูลเคอเนล)
7.4 ปฏิบัติการติดตั้งอุปกรณ์เพิ่มเติม - ฝึกติดตั้งอุปกรณ์ใหม่เพิ่มเข้าไป
- ฝึกตรวจสอบความเร็วของอุปกรณ์ input และ output ต่าง ๆ
- ฝึกเขียนแผนภาพแสดงการเชื่อมต่อระหว่าง CPU กับ I/O controller
- ค้นคว้าข้อมูลเกี่ยวกับ ระบบรับ และแสดงผล จากอินเทอร์เน็ต แล้วทำรายงาน และส่งตัวแทนนำเสนอหน้าชั้น
ถาม - ตอบ ส่วนหนึ่งเรียบเรียงจากหนังสือของ รศ.ดร.กฤษดา ขันกสิกรรม
ถามอุปกรณ์ของระบบ (Device) แบ่งได้กี่แบบ มีอะไรบ้าง
ตอบแบ่งได้ 3 แบบ
1. Times-multiplexing devices เป็นอุปกรณ์ที่จัดสรรให้เพียง 1 โปรเซสในแต่ละช่วงเวลา อาทิ printer
2. Space-multiplexing devices เป็นอุปกรณ์ที่จัดสรรให้หลายโปรเซสในแต่ละช่วงเวลา อาทิ ดิสก์ หรือ printer ที่มี spooling
3. Virtual devices เป็นอุปกรณ์ที่จัดสรรให้หลายโปรเซสในแต่ละช่วงเวลาแบบเสมือนจริง อาทิ printer ที่มี spooling เสมือนมีหลายโปรเซสเข้าใช้พร้อมกันได้
ถามสื่อบันทึกข้อมูล แบ่งได้กี่แบบ มีอะไรบ้าง
ตอบแบ่งได้ 2 แบบ
1. Sequential Access Storage Devices (SASD) เป็นสื่อบันทึกข้อมูลแบบลำดับ อาทิ punched card, paper tape, magnetic tape
2. Direct Access Storage Devices (DASD) เป็นสื่อบันทึกข้อมูลแบบเข้าถึงได้โดยตรง อาทิ Optical disk, CD-ROM, Magnetic Disk, Floppy Disk
ถามสื่อบันทึกข้อมูลแบบเข้าถึงได้โดยตรง (Direct Access Storage Devices : DASD) มีหัวอ่านกี่แบบ อะไรบ้าง
ตอบแบ่งได้ 2 แบบ
1. Fixed-head Drums and Disks เป็นหัวอ่านประจำ Track ในดิสก์
2. Movable-head Drums and Disks เป็นหัวอ่านที่ย้ายจาก Track หนึ่งไปอีก Track หนึ่งได้
ถามAccess times คืออะไร
ตอบAccess time คือ เวลาทั้งหมดที่ใช้ในการเข้าถึงข้อมูล ประกอบด้วย
1. Seek Times เป็นเวลาที่เลื่อนหัวอ่านไปยัง Track ที่ต้องการ จะใช้กับอุปกรณ์แบบ Movable-head Drums and Disks เพื่อหา Track ที่ต้องการ
2. Search Times หรือ Rotational Delay เป็นเวลาที่หมุนดิสก์ไปจนถึงระเบียนที่ต้องการ
3. Transfer Times เป็นเวลาเคลื่อนย้ายข้อมูลจากหน่วยเก็บข้อมูลสำรอง ไปหน่วยเก็บข้อมูลหลัก
ถามอัลกอริทึมการจัดตารางดิสก์ มีกี่แบบ อะไรบ้าง
ตอบแบ่งได้ 8 แบบ
1. อัลกอริทึม First Come First Served (FCFS)
2. อัลกอริทึม Shortest Seek Time First (SSTF)
3. อัลอกริทึม Scan เลื่อนหัวอ่านสลับไปมาระหว่างในสุด กับนอกสุด
4. อัลกอริทึม Look หรืออัลกอริทึม Elevator คล้าย Scan แต่จะตรวจสอบการร้องข้อครั้งถัดไป แล้วเลือกทำหรือหยุด
5. อัลกอริทึม Circular Scan หรือ C-Scan คล้าย Scan แต่จะทำงานขาเดียว จากในไปนอก ขาไปอ่าน แต่ขากลับไม่อ่าน
6. อัลกอริทึม Circular Look หรือ C-Look คล้าย Scan แต่จะตรวจสอบการร้องข้อครั้งถัดไป แล้วเลือกทำหรือหยุด และทำงานขาไปขาเดียว
7. อัลกอริทึม F-Scan จะไม่ทำงานทันทีเมื่อได้รับการร้องขอ แต่จะเก็บเป็นกลุ่ม แล้วนำมาจัดลำดับการร้องขอก่อนเลื่อนหัวอ่านอย่างมีประสิทธิภาพ
8. อัลกอริทึม N-Step Scan จะนำคำร้องทั้งหมดมาแบ่งเป็นคิวย่อย คิวย่อยแต่ละคิวจะย้ายหัวอ่านไปยังจุดที่ใกล้กัน
ถามอัลกอริทึมเพิ่มประสิทธิภาพของการจัดการอุปกรณ์ มีกี่แบบ มีอะไรบ้าง
ตอบแบ่งได้ 3 แบบ
1. อัลกอริทึม SLTF Scheduling (Shortest Letency Time First) นำคำร้องมาจัดลำดับตาม Search Time แล้วจัดคิว
2. อัลกอริทึม SPTF Scheduling (Shortest Positioning Time First) นำคำร้องมาจัดลำดับตาม Position time (Search Time + Seek Time) แล้วจัดคิว วิธีนี้ดี แต่อาจเกิดการรอคอยไม่สิ้นสุดได้ หากมีการร้องขอข้อมูลขนาดใหญ่
3. อัลกอริทึม SATF Scheduling (Shortest Access Time First) นำคำร้องมาจัดลำดับตาม Access time (Search Time + Seek Time + Transfer Time) แล้วจัดคิว วิธีนี้ดี แต่อาจเกิดการรอคอยไม่สิ้นสุดได้ หากมีการร้องขอข้อมูลขนาดใหญ่
แนะนำเว็บไซต์ (Website guide) + http://whatis.techtarget.com/definition/BIOS-basic-input-output-system
เอกสารอ้างอิง (Reference) [1] Abraham silverschatz, Peter baer galvin, "Operating system concept", John wiley & Sons, New York, 2003.
[2] Milan Milenkovic, "Operating systems: concepts and design", McGraw-Hill inc., New York, 1992.
[3] William stallings, "Operating system", Prentice hall, New York, 1999.
[4] ไพศาล โมลิสกุลมงคล และคณะ, "ระบบปฏิบัติการ", สำนักพิมพ์ดวงกมลสมัย, กรุงเทพฯ, 2545.
[5] พิเชษฐ์ ศิริรัตนไพศาลกุล, "ระบบปฏิบัติการ (Operating system)", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2546.
[6] ดร.ยรรยง เต็งอำนวย, "ระบบปฏิบัติการ (Operating system)", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2541.
[7] ประชา พฤกษ์ประเสริฐ, "ระบบปฏิบัติการ", บริษัท ซัคเซส มีเดีย จำกัด., กรุงเทพฯ, 2549.
[8] วศิน เพิ่มทรัพย์, "คู่มือ MS-DOS", พี.เอ็น.การพิมพ์, กรุงเทพฯ, 2545.
[9] ชนินทร์ เชาวมิตร, "คู่มือยูนิกซ์เดสก์ทอป", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2538.
[10] รศ.ดร.กฤษดา ขันกสิกรรม, "ระบบปฏิบัติการ (Operating Systems)", อาง้วนการพิมพ์, นครสวรรค์, 2555.

http://goo.gl/72BPC