วันอาทิตย์ที่ 22 มีนาคม พ.ศ. 2552

หนังสืออ้างอิง

หนังสืออ้างอิง
1. P.Denning D. Comer; D Gries, M. Mulder, A. Turner,and
P. Yound, "Computing as Discpline" Report of the ACM T ask
Foree on the Core of computer Soience ACM Press; New Yourt
, 1988 Portions reprinted in Communieations of the ACM 32
January 1989 and Computer (March 1989)
ข้อมูลทางบรรณานุกรมของหอสมุดแห่งชาติ
ทักเกอร์ บี อัลเลน
การคอมพิวเตอร์ กรุงเทพฯ แมคเกอร์ ฮิล 2539,544หน้า
1.คอมพิวเตอร์ 1. รอม หิรัญพฤกษ์ ผู้แปล
2. มฤชา เลลี ผู้แลร่วม 3. ศิริกร พรหมมาส ผู้แปลร่วม 4. เบอร์เนต
แบรดลีย์ คัปเปอร์ สแครก ผู้แตงร่วม

วันศุกร์ที่ 20 มีนาคม พ.ศ. 2552

โครงสร้างของระบบปฏิบัติการ

โครงสร้างของระบบปฏิบัติการ
Operating System Structure
1.OS มีหน้าที่มากมายในการควบคุมดูแลการทำงานของระบบคอมพิวเตอร์
จึงทำให้โครงสร้างของ OS มีความสลับซับซ้อนมาก
2.เพื่อความสะดวกในการออกแบบผู้ออกแบบจึงจัดแบ่ง OS
ออกเป็นส่วนย่อย ๆ หลาย ๆ ส่วน และให้แต่ละส่วนมีหน้าที่รับผิดชอบ
การทำงานในแต่ละด้านโดยไม่คาบเกี่ยวกันแต่สัมพันธ์กัน

ระดับชั้นการทำงานของ OS
1.ถ้ามองระดับชั้นการทำงานของโปรแกรมต่างๆ ในแง่ผู้ใช้เราอาจแบ่งได้ออกเป็น 3 ระดับ
1.1โปรแกรมทั่วไปหรือผู้ใช้เอง
1.2ระบบปฏิบัติการ (OS)
1.3ฮาร์ดแวร์ของเครื่องคอมพิวเตอร์
ทั้ง 3 ระดับมีความสัมพันธ์กันคือระบบปฏิบัติการจะเป็นตัวเชื่อมโยงระหว่างผู้ใช้และฮาร์ดแวร์ของเครื่องโดยทำหน้าที่ติดต่อและควบคุมการทำงานของฮาร์ดแวร์ เพื่อให้โปรแกรมหรือคำสั่งของผู้ใช้ทำงานสำเร็จ ลุล่วงไปได้

ระดับชั้นการทำงานของโปรแกรม
OS
โปรแกรมผู้ใช้ทั่วไป
ฮาร์ดแวร์



ระดับชั้นภายในตัวระบบปฏิบัติการ
1. ระดับชั้นแรกสุด เป็นระดับชั้นที่ต่ำที่สุดมีชื่อเรียกว่า เคอร์เนล (Kernel)
เป็นชั้นที่มีหน้าที่รับผิดชอบงานต่าง ๆ ของโปรเซสของระบบปฏิบัติการเท่านั้น
เคอร์เนลประกอบด้วยส่วนย่อย ๆ พื้นฐาน 3 ส่วน คือ
1.ตัวส่ง (dispatcher) มีหน้าที่จัดการส่งโปรเซสเข้าไปให้ซีพียู
2.ตัวจัดการอินเตอร์รัพต์ขั้นแรก (first-level interrupt handler)
มีหน้าที่วิเคราะห์การอินเตอร์รัพต์ที่ เกิดขึ้น และเลือกใช้รูทีนที่เหมาะสมกับอินเตอร์รัพต์นั้นๆ
3.ตัวควบคุมมอนิเตอร์ (monitor control)
มีหน้าที่ควบคุมดูแลการเข้าถึงมอนิเตอร์ต่าง ๆ ของระบบ
การทำงานของส่วนย่อยทั้ง 3 ของเคอร์เนลต้องการความเร็วในการทำงานสูงมาก
เพราะเป็นงานขั้นพื้นฐานและมีการทำงานบ่อยมาก ดังนั้น เคอร์เนลมักจะถูกเขียนขึ้น
ด้วยภาษาแอสเซมบลี้ และเป็นส่วนที่ขึ้นอยู่กับฮาร์ดแวร์ของเครื่อง

ความสัมพันธ์ของเคอร์เนลและฮาร์ดแวร์
เคอร์เนลยังมีหน้าที่อื่นๆ อีกเช่น
จัดการเรื่องการเข้าจังเหวะของโปรเซส (process synchronization)
และการติดต่อระหว่างโปรเซส (process communication)


ชั้นที่ 2 ผู้จัดการหน่วยความจำ (memory manager)
1. มีหน้าที่จัดการเกี่ยวกับหน่วยความจำของระบบ
เช่น การทำหน่วยความจำเหมือนระบบหน้า เป็นต้น
2.เนื่องจากการจัดการหน่วยความจำบางส่วนต้องยุ่งเกี่ยวกับ
โครงสร้างทางฮาร์ดแวร์ของเครื่อง ดังนั้น ในส่วนของผู้จัดการ
หน่วยความจำจึงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์ด้วยเช่นเดียวกัน
3.บางครั้งการทำงานในชั้นนี้ก็อาศัย รูทีนบางอย่างของเคอร์เนลด้วย
ตัวอย่างเช่น เคอร์เนลตรวจสอบพบอินเตอร์รัพต์ที่เกิดจากความผิดพลาด
ในการใช้งานหน่วยความจำ เคอร์เนลจะเลือกและส่งงานที่เหมาะ
สมกับการจัดการสัญญาณอินเตอร์รัพต์ที่เกิดขึ้นมาใ
ห้ผู้จัดการหน่วยความจำจัดการแก้ไข

ระดับชั้นภายในตัวระบบปฏิบัติการ

ชั้นที่ 2 ผู้จัดการหน่วยความจำ (memory manager)


ระดับชั้นภายในตัวระบบปฏิบัติการ


ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (input-output control system) หรือ IOCS
จะมีหน้าที่จัดการงานทางด้านอินพุตเอาพุตของระบบ
ในชั้นนี้ยังคงมีลักษณะขึ้นอยู่กับฮาร์ดแวร์อยู่บ้าง เพราะการติดต่อกับ
อุปกรณ์อินพุต-เอาต์พุตต้องทราบโครงสร้างและการทำงานของอุปกรณ์นั้นๆด้วย
ซึ่งส่วนนี้เป็นหน้าที่ของตัวขับอุปกรณ์ (device driver)
นอกจากนี้ IOCS ยังต้องอาศัยรูทีนบางอย่างทั้งจากเคอร์เนล
และผู้จัดการหน่วยความจำในการทำงานของมันอีกด้วย ตัวอย่างเช่น
เคอร์เนลจัดหา รูทีนที่เหมาะสมกับการเกิดอินเตอร์รัพต์จากอุปกรณ์อินพุต-เอาต์พุต
ให้ IOCS ทำงานหรือ IOCS เรียกใช้รูทีนผู้จัดการหน่วยความจำ
ให้ช่วยหาเนื้อที่ในหน่วยความจำเพื่อใช้ทำบัฟเฟอร์ของอุปกรณ์ต่างๆ

ระดับชั้นภายในตัวระบบปฏิบัติการ


ชั้นที่ 3 ระบบ ควบคุมอินพุต-เอาต์พุต (input-output control system) หรือ IOCS

1.ระดับชั้นที่ 1,2 และ 3 เป็นส่วนที่มีความสำคัญและมีการถูกเรียกใช้งานบ่อยมาก
ดังนั้นผู้สร้างระบบปฏิบัติการส่วนใหญ่จะเขียนโปรแกรมในส่วนนี้ด้วย
ภาษาแอสเซมบลี้หรือภาษาที่สามารถเข้าถึงระบบการทำงานของเครื่องได้
เช่น ภาษา C เป็นต้น
2.ทั้งนี้เพื่อให้โปรแกรมทำงานได้รวดเร็วและมีประสิทธิภาพสูง
ส่งผลให้ประสิทธิภาพการทำงานของระบบดีขึ้น
3.ส่วนการทำงานของชั้นต่างๆ ตั้งแต่ระดับชั้นที่ 4
ขึ้นไปจะเรียกใช้รูทีนต่างๆ ของ 3 ระดับแรก


ระดับชั้นภายในตัวระบบปฏิบัติการ

ชั้นที่ 4 ผู้จัดการไฟล์ (file manager)
1.มีหน้าที่จัดการงานต่างๆ ที่เกี่ยวกับไฟล์ เช่น การเก็บไฟล์ลงดิสก์
การหาไฟล์ การอ่านข้องมูลของไฟล์ เป็นต้น
2.ผู้จัดการไฟล์นี้สามารถถูกออกแบบให้ไม่ขึ้นกับฮาร์ดแวร์
(hardware independent) ผู้จัดการไฟล์จะจะติดต่อกับฮาร์ดแวร์
โดยเรียกผ่านรูทีนต่างๆของ เคอร์เนล ผู้จัดการหน่วยความจำและ IOCS


ระดับชั้นภายในตัวระบบปฏิบัติการ

ชั้นที่ 4 ผู้จัดการไฟล์ (file manager)

ชั้นที่ 5 ตัวคิวระยะสั้น (short-term scheduler)
1.เป็นระดับชั้นแรกที่มีลักษณะไม่ขึ้นอยู่กับฮาร์ดแวร์โดยสมบูรณ์
2.มีหน้าที่จัดคิวของโปรเซสในสถานะพร้อม (ready state)
เมื่อใดที่ส่วนนี้ทำงานมันจะคัดเลือกเอาโปรเซสที่เหมาะที่สุดในคิวของสถานะ
พร้อมเพื่อให้โปรเซสนั้นเข้าไปครอบครองซีพียูที่ว่าง อยู่
โดยเรียกใช้ตัวส่งในส่วนของเคอร์เนล


ระดับชั้นภายในตัวระบบปฏิบัติการ

ชั้นที่ 6 ผู้จัดการทรัพยากร (resource manager)
เป็นระดับชั้นของส่วนที่ทำหน้าที่จัดสรรหาทรัพยากรอื่นๆในระบบ
1.บางครั้งตัวจัดคิวระยะสั้นและผู้จัดการทรัพยากรอยู่สลับที่กัน
2.ทั้งนี้เพราะหลังจากที่ตัวจัดคิวระยะสั้นส่งโปรเซสเข้าไปในสถานะรันแล้ว
โปรเซสนั้นอาจต้องการทรัพยากรอื่นๆ ในระบบ
ดังนั้นจึงต้องเรียกใช้รูทีนในชั้นผู้จัดการทรัพยากร




ระดับชั้นภายในตัวระบบปฏิบัติการ
ชั้นที่ 6 ผู้จัดการทรัพยากร (resource manager)

การสลับชั้นของตัวจัดคิดระยะสั้นและผู้จัดการทรัพยากร
ชั้นที่ 6 ผู้จัดการทรัพยากร (resource manager)


ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler)
1.เป็นชั้นของระบบปฏิบัติที่เริ่มมีความใกล้ชิดกับผู้ใช้และ
ห่างไกลกับฮาร์ดแวร์ของเครื่องมากขึ้น
2.มีหน้าที่จัดการและควบคุมโปรเซสต่างๆ ทั้งหมดในระบบเช่นสร้างโปรเซสต่าง ๆ
ใหม่เข้ามาในระบบและยุติโปรเซสเมื่อโปรเซสทำงานเสร็จสิ้นลง
3.การทำงานของตัวจัดคิวระยะยาวต้องใช้รูทีนต่างๆ
ในชั้นที่ 1 ถึง 6 ช่วยในการทำงาน

ระดับชั้นภายในตัวระบบปฏิบัติการ

ชั้นที่ 7 ตัวจัดคิวระยะยาว (long-term scheduler)


ชั้นที่ 8 เชลล์ (shell) หรือผู้แปลคำสั่ง (command interpreter)
1.เป็นชั้นสุดท้ายซึ่งเป็นชั้นที่ใกล้ชิดกับผู้ใช้มากที่สุด
2.มีหน้าที่ติดต่อกับผู้ใช้โดยตรง เช่น ส่งเครื่องหมายพร้อมต์ (prompt)
แสดงออกทางจอภาพ รับคำสั่งต่างๆ ของผู้ใช้มาตีความคำสั่งและ
เรียกรูทีนต่างๆของชั้นล่างๆ เพื่อให้ได้งานตามคำสั่งที่ได้รับ


ระดับชั้นภายในตัวระบบปฏิบัติการ
แสดงระดับชั้นที่ 8 ของ OS

ชั้นที่ 8 เชลล์ (shell) หรือผู้แปลคำสั่ง (command interpreter
แสดงตำแหน่งของผู้แปลคำสั่ง
ระดับชั้นต่างๆ ของโปรแกรม
แสดงระดับทั้งหมดของโปรแกรม
Kernel
Memory manager
IOCS
File manager
Short-term scheduler
Resource scheduler
Long-term scheduler
Command interpreter
Application program or user
Hardware
Independent
Hardware
dependent
Hardware
ระดับชั้นต่างๆ ของโปรแกรม

พอร์ตอินพุตและเอาต์พุต

พอร์ต มีความหมายถึงแอดเดรสหนึ่งที่ได้รับการกำหนดไว้เพื่อการโอนย้ายข้อมูลระหว่าง

ไมโคร คอนโทรลเลอร์กับอุปกรณ์ภายนอก การกำหนดประเภทของการติดต่อขึ้นอยู่กับทิศทางการ

ไหลของข้อมูลเมื่อพิจารณาจากไมโครคอนโทรลเลอร์เป็นหลัก

(ดูรูปที่ 4.1) ดังนั้นการนำเข้าข้อมูลจากวงจรภายนอกจึงเรียกว่า การอินพุต (input)

และในกรณีตรงกันข้ามเพื่อส่งออกข้อมูลก็จะเรียกว่า การเอาต์พุต (output)

เมื่อพิจารณาถึงวิธีการส่งข้อมูลภายในพอร์ตจะสามารถแยกประเภทของพอร์ตออก

ได้เป็นสองลักษณะ คือพอร์ตแบบขนาน (Parallel port) ซึ่งทำการส่งจำนวนบิต

ข้อมูลทั้งหมดออกมาหรือนำเข้าไปพร้อมกันในคราวเดียว และพอร์ตแบบอนุกรม (Serial port)

ซึ่งทำการโอนย้ายข้อมูลคราวละบิตๆ จนครบจำนวน แต่สำหรับในบทนี้จะกล่าว ถึงเฉพาะ

ในส่วนของพอร์ตแบบขนานเท่านั้น สำหรับการทำงานของพอร์ตแบบอนุกรมจะได้กล่าวภายหลัง


พอร์ตแบบขนานของ 8051


8051 มีโครงสร้างของพอร์ตที่สามารถใช้งานแบบขนานได้จำนวนทั้งหมดสี่พอร์ต

เรียกชื่อเรียงตามลำดับว่าพอร์ต0,1,2 และ 3 และเป็นพอร์ตขนาด 8 บิตทั้งหมด

การใช้งานพอร์ตสามารถทำได้ทั้งในลักษณะของเส้น สัญญาณเดี่ยวๆหรือกลุ่มของสัญญาณ

ได้ นอกจากนี้พอร์ต 0,2 และ 3 ยังสามารถนำไปใช้งานอื่นๆ ที่ไม่ใช่เป็นพอร์ต อินพุต/เอาต์พุต

ได้โดยพอร์ต 0 จะทำหน้าที่มัลติเพล็กซ์ ระหว่างบัสแอดเดรสไบต์ต่ำและ

บัส ข้อมูลสำหรับการติดต่อ กับวงจรประกอบร่วมข้อมูลบัสแอดเดรสไบต์สูงซึ่งจะ

ส่งออกมาทางพอร์ต 2 สำหรับพอร์ต 3 นั้น นอกเหนือไปจาก ความสามารถเช่นพอร์ต

ปกติแล้วสามารถนำไปเป็นขาสัญญาณของการอินเตอร์รัปต์ต่างๆ ซึ่งรวมทั้งการสร้างสัญญาณ

ควบคุม RD\ และ WR\ เพื่อทำหน้าที่อ่านหรือเขียนหน่วยความจำข้อมูลภายนอกด้วย

การใช้งานพอร์ตลักษณะงานแบบ อื่นๆที่ไม่ใช่เป็นพอร์ต/เอาต์พุทนี้จะดำเนินการโดย 8051 เองโดยอัตโนมัติ


โครงสร้างการทำงานของพอร์ต 8051


จากลักษณะโครงสร้างของแต่ละบิตภายในพอร์ตทั้งหมดของ 8051 ซึ่งได้แสดง

ไว้ในรูปที่ 4.2 นั้นจะเห็นว่ามีความคล้ายคลึงกันตามลักษณะโครงสร้างที่

เรียกว่า Quasi-bidirectional port ยกเว้นพอร์ต 0ซึ่งเพียง แต่ไม่มี

ตัวต้านทานทำหน้าที่ Pull-up สัญญาณไว้ภายในเท่านั้น วงจรประกอบอื่นภาย

ในยังมีฟลิปฟลอปแบบ D ซึ่งมีผลทำให้ พอร์ตสามารถแลตช์หรือค้างสภาวะ

ของสัญญาณได้ นอกจากนี้ในส่วนเอาต์พุตของฟลิปฟลอปเฉพาะของพอร์ต 0 และพอร์ต 2

จะมีโครงสร้างที่ทำหน้าที่คล้ายกับสวิตช์เพิ่มเติมขึ้น เพื่อควบคุมให้เอาต์พุตนี้ต่อเข้ากับส่วนของ

ทรานซิสเตอร์ในระหว่างที่ไม่ได้มีการทำงานในลักษณะของบัสแอดเดรสหรือบัสข้อมูลด้วย

สำหรับบัฟเฟอร์จำนวนสองตัวของทุกบิตในพอร์ตนั้นมีการทำงานแยกกันโดยอิสระ

โดยตัวที่อยู่ทางด้านบนจะยอมให้สัญญาณผ่านได้ก็ต่อ เมื่อมีการอ่านค่าข้อมูลที่ค้าง

ไว้ส่วนอีกตัวหนึ่งซึ่งอยู่ทางด้านล่างจะถูกใช้งานเฉพาะเมื่อได้มีการอ่านสถานะของขา สัญญาณเท่านั้น




การใช้งานพอร์ตเป็นการอินพุต


การใช้งานพอร์ตเป็นการอินพุตข้อมูลจะต้องเริ่มด้วยการส่งข้อมูลที่มีค่าเป็น 1 ออกมาทางบิตของพอร์ต

นั้นก่อนเป็นลำดับแรก เพื่อหยุดการทำงานของทรานซิสเตอร์ที่ทำหน้าที่ขับสัญญาณเอาต์พุตของบิตนั้น

ทำให้ขาสัญญาณของบิตถูกต่อเข้ากับตัวต้านทานซึ่งทำหน้าที่ Pull-up ภายในซึ่งมีผลให้บิตนั้นๆ

ของพอร์ต 1,2 และ 3 เป็น สภาวะของลอจิกสูง ตัวต้านทานนี้มีค่าประมาณ 50 K โอห์ม

ซึ่งเป็นค่าที่สูงมาก และทำให้อุปกรณ์ภายนอกสามารถขับสัญญาณของพอร์ตเหล่านี้เป็นลอจิกต่ำ

ได้ง่าย สำหรับบิตของพอร์ต 0 นั้น แม้ว่าจะมีหลักการทำงานที่คล้ายคลึงกัน กับบิตของพอร์ตอื่นๆ

แต่เนื่องจากการที่ไม่มีตัวต้านทานทำหน้าที่ Pull-up ภายในไว้ ทำให้เมื่อทรานซิสเตอร์ที่ทำหน้าที่

ขับสัญญาณเอาต์พุตนั้นหยุดการทำงาน ก็จะเป็นผลให้ขาสัญญาณนี้อยู่ในสภาวะอิมพีแดนซ์สูงแทน
การใช้งานพอร์ตเป็นการเอาต์พุต


เมื่อมีการส่งข้อมูลที่มีค่าเป็น 0 ให้กับแต่ละบิตของพอร์ตทุกพอร์ต

ข้อมูลนี้จะถูกส่งให้กับฟลิปฟลอปซึ่งจะค้างค่านี้ไว้ และมีผลทำ

ให้ทรานซิสเตอร์ที่ทำหน้าที่ขับสัญญาณเอาต์พุตนั้นทำงาน ดังนั้นขาสัญญาณก็จะมีสภาวะ

ลอจิกเป็นลอจิกต่ำส่วนการส่งข้อมูลที่มีค่าเป็น 1 ออกมานั้น

ในกรณีที่เป็นการทำงานในแต่ละบิตของพอร์ต 1,2 หรือ 3 จะทำ

ให้ทรานซิสเตอร์ที่ทำหน้าที่ขับสัญญาณเอาต์พุตนั้นหยุดการทำงาน

มีผลทำให้ขาของสัญญาณเป็นลอจิกสูงด้วยตัว ต้านทานที่ Pull-up

อยู่ภายในนั้น แต่สำหรับการทำงานในแต่ละบิตทางพอร์ต 0 นั้นจะมีผลที่แตกต่างออกไป

โดยขา สัญญาณจะเป็นสภาวะอิมพีแดนซ์สูงแทน เนื่องจาก

ไม่มีตัวต้านทานภายในเชื่อมต่ออยู่นั่นเอง ดังนั้นในการใช้งานพอร์ต 0 เป็นการเอาต์พุตข้อมูล

จึงจำเป็นต้องใช้ตัวต้านทานภายนอก Pull-up สัญญาณไว้กับลอจิกสูงแทน
ความสามารถอีกประการหนึ่งเกี่ยวกับพอร์ตอินพุต/เอาต์พุตของ 8051

เป็นวิธีการอ่านลิจิกจากพอร์ตซึ่งมีได้สองวิธีคือ การอ่านค่าลอจิกที่ขาสัญญาณ (Port pin)

และวิธีการอ่านลอจิกของการแลตช์ที่พอร์ต (Port latch) ดังจะสังเกต

ได้จากรูปที่ 4.2 วิธีการอ่านค่าจากพอร์ต ทั้งสองแบบนี้จะช่วยให้ระบบทำงานได้ด้วยความถูกต้องมาก

ยิ่งขึ้น ยกตัวอย่างเช่น หากว่าพอร์ตถูกนำไปต่อกับขาเบสของทรานซิสเตอร์แบบ NPN

และขาอิมิตเตอร์ต่อกับกราวด์ ของระบบ เมื่อมีการส่งค่า 1 ออกไปจะมีผลทำให้ทรานซิสเตอร์ทำงาน

ในขณะนั้นถ้าซีพียูมีการอ่านค่าลิจิกจากขา สัญญาณของพอร์ตนี้ก็จะได้ค่าลอจิกต่ำ

เนื่องจากมองเห็นค่าศักย์ไฟฟ้าระหว่างขาเบสและขาอิมิตเตอร์ซึ่งมีค่าประมาณ 0.6 โวลต์แทน

ดังนั้นในกรณีเช่นนี้หากว่าเป็นการอ่านค่าจากลอจิกของการแลตช์ ก็จะได้รับค่าระดับลอจิกสูงซึ่งเป็นค่า

ที่ถูกต้องสภาพที่เป็นจริง



ลักษณะสมบัติของพอร์ตอินพุต/เอาต์พุต

ดังได้กล่าวแล้วว่าพอร์ต 1,2 และ 3 ของ 8051 มีตัวต้านทาน (ซึ่งสร้างขึ้นจาก FET)

ทำหน้าที่ Pull-up ขาสัญญาณไว้และมีค่าประมาณ 50 K โอห์ม ซึ่งถือว่ามีค่าที่สูงมาก

เป็นผลให้การเปลี่ยนแปลงระดับสัญญาณลอจิก จากสูงไปต่ำทำได้อย่างรวดเร็ว แต่ในกรณีตรงข้าม

จะใช้เวลาการเปลี่ยนแปลงระดับสัญญาณนานกว่ามาก ทั้งนี้เนื่อง จากว่ากระแสจะ

ไหลผ่านตัวต้านทานนี้ได้น้อยมาก ดังนั้นในการแก้ปัญหาจึงได้มีการออกแบบตัวต้าน

ทานเพิ่มขึ้นอีกหนึ่ง ตัวขนานไว้โดยมีค่าประมาณ 1K โอห์ม เรียกว่า Speed-up resistor

ซึ่งยอมให้กระแสไหลผ่านได้มากขึ้นประมาณ 50-100 เท่า และจะมีการเชื่อมต่อตัว

ต้านทานที่เพิ่มขึ้นนี้เฉพาะเมื่อมีการเปลี่ยนระดับสัญญาณจากลอจิกต่ำไปเป็นลอจิก สูงเท่านั้น

โดยใช้เวลาประมาณ 2 คล็อกไซเคิล 4.6 คำสั่งการใช้งานพอร์ตอินพุต/เอาต์พุต เนื่องจาก 8051

ใช้หลักการที่เรียกว่า Memory mapped system กล่าวคือ การอ้างถึงพอร์ตรีจิสเตอร์

หรืออุปกรณ์ต่างๆ ภายในระบบ จะเป็นการติดต่อกับหน่วยความจำตำแหน่งหนึ่งเท่านั้น

ดังนั้นในการดำเนินการเพื่อนำ เข้าหรือส่งออกข้อมูลกับพอร์ต จึงใช้คำสั่งการอ่านค่า

จากหน่วยความจำซึ่งถูกออกแบบให้เป็นตำแหน่งของพอร์ตหรือ คำสั่งการเขียนค่าข้อมูลไปยังตำแหน่ง

หน่วยความจำนั้นแทน ดังนั้นจะสังเกตเห็นได้ว่าในตารางชุดคำสั่งของ 8051

จะไม่มีคำสั่งที่เกี่ยวกับการทำงานพอร์ตแต่ประการใด เช่น คำสั่ง IN (นำเข้าข้อมูลจากพอร์ต)

หรือคำสั่ง OUT(ส่ง ข้อมูลออกจากพอร์ต) เป็นต้น นอกจากนี้ 8051

ยังมีชุดคำสั่งที่จัดการข้อมูลแบบบิตได้โดยตรง (Single-bit Operation)

ดังนั้นเรา สามารถที่จะใช้คำสั่งนี้จัดการพอร์ตอินพุต/เอาต์พุตทั้งหมดแบบเส้นสัญญาณเดี่ยว

ได้โดยการใช้คำสั่ง SETB เพื่อ กำหนดค่าเป็น 1 หรือคำสั่ง CLR เพื่อทำให้บิตมีค่าเป็น

0 คำสั่งเหล่านี้มีประโยชน์มากและทำให้ลดความซับซ้อนในการ ใช้คำสั่งภายในโปรแกรมลงได้มาก

วันพฤหัสบดีที่ 19 มีนาคม พ.ศ. 2552

เทคนิคการทำงานของไอโอ

การเข้าถึงหน่วยความจำโดยตรง หรือ DMA (Direct Memory Access)
ในเทคนิคนี้จะมีการแลกเปลี่ยนข้อมูลกันโดยตรงระหว่างไอโอโมดูลและหน่วยความจำหลัก โดยโปรเซสเซอร์ไม่มีส่วนเกี่ยวข้องเลย
จะต้องมีเงื่อนไขหลัก 3 ประการคือ
1.ต้องมีวิธีการเชื่อมต่อของไอโอและหน่วยความจำ
2.ไอโอโมดูลที่สัมพันธ์กับดีไวซ์เฉพาะแบบจะต้องสามารถอ่านและเขียนข้อมูลในหน่วยความจำได้
3.ต้องหลีกเลี่ยงปัญหาระหว่างซีพียูและไอโอโมดูล

การเข้าถึงหน่วยความจำโดยตรง
1.เหมาะสำหรับการถ่ายโอนข้อมูลบนดิสก์ความเร็วสูง
2.ซีพียูไม่มีส่วนเกี่ยวข้องในขณะถ่ายโอน ทำให้สามารถทำงานอื่นได้
3.มีประโยชน์เป็นอย่างมากในระบบมัลติยูเซอร์
4.การถ่ายโอนจะอยู่ในทิศทางใดทิศทางหนึ่ง
5.ใช้โมดูลเพิ่มเติมที่เรียกว่า ดีเอ็มเอโมดูล (DMA Module) ในบัสหลัก
6.เลียนแบบการทำงานของโปรเซสเซอร์ สามารถถ่ายโอนข้อมูลในหน่วยความจำผ่านบัสหลักได้
7.ไม่ขัดขวางกาทำงานของโปรเซสเซอร์ ทำให้ทำงานได้อย่างต่อเนื่อง การทำงานแบบนี้เรียกว่า
“การขโมยวงรอบเวลา” (cycle stealing) ไดอะแกรมของการเข้าถึงหน่วยความจำโดยตรง
การเข้าถึงหน่วยความจำโดยตรงและจุดแยกสัญญาณอินเทอร์รัพต์ในวงรอบคำสั่ง

ข้อมูลที่ต้องมีเพื่อควบคุมการเข้าถึงหน่วยความจำโดยตรง
1.ตำแหน่งของข้อมูลของไอโอดีไวซ์
2.ตำแหน่งเริ่มต้นของบล็อกข้อมูลในหน่วยความจำ
3.ขนาดของบล็อกที่ถูกถ่ายโอน
4.ทิศทางของการถ่ายโอน, อ่าน (ไอโอไปหาหน่วยความจำ)
หรือเขียน (หน่วยความจำไปหาไอโอ)


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

รูปแบบการเข้าถึงหน่วยความจำโดยตรง
การรวมดีเอ็มเอฟังก์ชันเข้ากับไอโอฟังก์ชัน
ทำให้ลดจำนวนบัส
โดยจะมีเส้นทางที่แยกจากบัสเชื่อมต่อระหว่างดีเอ็มเอโมดูลและไอโอ โมดูล
ในทางลอจิกการทำงานของดีเอ็มเอโมดูลเป็นส่วนหนึ่งของไอโอโมดูล
หรืออาจจะแยกเป็นโมดูลต่างหากที่ควบคุมการทำงานของไอโอโมดูลอื่น ๆ ก็ได้


รูปแบบการเข้าถึงหน่วยความจำโดยตรง
การเชื่อมต่อไอโอโมดูลกับดีเอ็มเอโมดูลโดยใช้ไอโอบัส การเชื่อมต่อแบบนี้
จะช่วยลดจำนวนไอโออินเทอร์เฟซในดีเอ็มเอโมดูลลดเหลือเพียงอินเทอร์เฟซเดียวและ
ยังช่วยให้สามารถขยายความสามารถออกไปได้ด้วย



สถาปัตยกรรมซีพียู-หน่วยความจำ-อินพุต/เอาต์พุต
องค์ประกอบพื้นฐานการอินเทอร์เฟซระหว่างซีพียูและไอโอดีไวซ์
1.ซีพียู
2.ไอโอดีไวซ์
3.หน่วยความจำ, ยกเว้นอินพุต หรือเอาต์พุตชิ้นเดี่ยวที่สามารถถูกถ่ายโอนโดยตรงจากรีจิสเตอร์
4.ไอโอโมดูลที่เป็นเสมือนอินเทอร์เฟซระหว่างซีพียูหรือหน่วยความจำและไอโอดีไวซ์
5.บัสที่เชื่อมต่อองค์ประกอบเหล่านั้นเข้าด้วยกัน

เส้นทางพื้นฐานการเชื่อมต่อซีพียู-หน่วยความจำ-อินพุต/เอาต์พุต
1.เส้นทางที่เชื่อมต่อระหว่างซีพียูและไอโอโมดูลเพื่อให้ซีพียูใช้คำสั่งควบคุมอินพุต/เอkต์พุตด้วยโปรแกรม และส่งสัญญาณอินเทอร์รัพต์ไปยังซีพียู
2.ส่วนการเชื่อมต่อระหว่างไอโอโมดูลและหน่วยความจำสำหรับการเข้าถึงหน่วยความจำโดยตรง


สถาปัตยกรรมซีพียู-หน่วยความจำ-อินพุต/เอาต์พุต
1.เส้นทางที่เชื่อมต่อโดยตรงระหว่างองค์ประกอบนี้ ในความจริงแล้ว โครงสร้างการเชื่อมต่อ
ภายในพีซีอาจจะเป็นการเชื่อมต่อโดยตรง หรืออาจจะเป็นสวิตช์ที่ทำให้เกิดการเชื่อมต่อในเวลาที่ต้องการ ก็ได้
2.ความแตกต่างในการเชื่อมต่อนี้เกิดสถาปัตยกรรมระบบที่ต่างกันตามความต้องการของผู้ออกแบบ
เป้าหมายที่ต่างกัน และปรัชญาการออกแบบที่ต่างกัน นั่นเอง
3.สถาปัตยกรรมไอโอพื้นฐาน 2 แบบที่นำมาใช้คือ “สถาปัตยกรรมบัส” (bus architecture)
และ “สถาปัตยกรรมช่องทางข้อมูล” (channel architecture)





อินพุต/เอาต์พุตโมดูล (I/O Modules)
.ไอโอโมดูลเป็นอินเทอร์เฟซระหว่างซีพียูกับดีไวซ์
.ไอโอโมดูลมีฟังก์ชันที่สำคัญ 2 ส่วน
1.การอินเทอร์เฟซกับซีพียู : ไอโอโมดูลจะรับคำสั่งไอโอจากซีพียู,
ถ่ายโอนข้อมูลระหว่างโมดูลกับซีพียูหรือหน่วยความจำ และ
ส่ง อินเทอร์รัพต์และข้อมูลสถานะไปยังซีพียู
2.การอินเทอร์เฟซกับดีไวซ์ : ไอโอโมดูลจะมีหน้าที่ควบคุมการทำงานของดีไวซ์
เช่น การย้ายหัวอ่านในดิสก์ และการกรอเทป เป็นต้น
อินเทอร์เฟซของไอโอโมดูล
การอินเทอร์เฟซของไอโอโมดูลของดิสก์คอนโทรลเลอร์กับดิสก์

อินพุต/เอาต์พุตโมดูล (I/O Modules)
.ฟังก์ชันของไอโอโมดูล
1.รับแมสเสจที่เป็นแอ็ดเดรสเข้ามาแล้วรับคำสั่งจากซีพียูเพื่อทำงานกับดิสก์ที่กำหนด
2.เตรียมบัพเฟอร์ไว้เพื่อพักข้อมูล จนกว่าจะถ่ายโอนมายังดิสก์ได้
3.เตรียมรีจิสเตอร์ที่จำเป็น และสัญญาณควบคุมเพื่อการถ่ายโอนกับหน่วยความจำโดยตรง
4.ควบคุมดิสก์ไดรฟ์ โดยการย้ายหัวอ่านไปยังตำแหน่งที่ต้องการเขียน
5.ก็อปปี้ข้อมูลจากบัพเฟอร์ไปยังดิสก์
6.มีความสามารถในการอินเทอร์รัพต์ เพื่อใช้ในการแจ้งข่าวให้ซีพียูทราบเมื่อการถ่ายโอนข้อมูลเสร็จเรียบร้อย
อินพุต/เอาต์พุตโมดูล (I/O Modules)
1.ไอโอโมดูลต้องปลดภาระงานของไอโอออกจากซีพียูเพื่อแยกโมดูลที่ออกแบบสำหรับ
การถ่ายโอนข้อมูลและควบคุมดีไวซ์ของไอโอออกมา
2.ไอโอโมดูลที่เป็นหน่วยควบคุมที่ใช้ในการควบคุมดีไวซ์เรียกว่า “ดีไวซ์คอนโทรลเลอร์
” (Device controller) บ่อยครั้งที่เรียกตามชื่อดีไวซ์
3.การมีดีไวซ์คอนโทรลเลอร์ทำให้ซีพียูใช้คำสั่งเพื่อควบคุมโอเปอเรชันที่ซับซ้อนมากขึ้น
ดีไวซ์หลายตัวที่อยู่ในกลุ่มประเภทเดียวกันสามารถใช้คอนโทรลเลอร์เพียงตัวเดียว
ทำให้ลดเรื่องยุ่งยากในการเขียนโปรแกรมให้ซีพียูทำงานกับ ไอโอดีไวซ์ทั้งหมด
4.โอโมดูลยังสนับสนุนการเข้าถึงหน่วยความจำโดยตรง
ทำให้ซีพียูมีเวลาว่างจากการทำงานอื่น

อินพุตดีไวซ์ (Input Devices)
คีย์บอร์ด (Keyboard) : อุปกรณ์อินพุตพื้นฐานที่ต้องมีในคอมพิวเตอร์
ทุกเครื่องจะรับข้อมูลจากการกดคีย์ แล้วทำการเปลี่ยนเป็นรหัสเพื่อส่งต่อ
ไปให้กับคอมพิวเตอร์

เลย์เอาต์ของคีย์บอร์ดตามมาตรฐาน ECMA-23

อินพุตดีไวซ์ (Input Devices)
คีย์บอร์ด Dvorak

อินพุตดีไวซ์ (Input Devices)
เมาส์และแทร็กบอลล์
(Mouse & Trackball) :
อุปกรณ์อินพุตเลือกรายการหรือคำสั่งด้วยภาพ หรือไอคอน (icon)

อินพุตดีไวซ์ (Input Devices)
แทร็กบอลล์ (Trackball)


อินพุตดีไวซ์ (Input Devices)
ปากกาและจอสัมผัส (LightPens & Touchscreens) :
อุปกรณ์อินพุตที่มีแสงอิเล็กตรอนจะกระตุ้นสารเรืองแสง (phosphor)
ที่เคลือบอยู่ด้านหลังผิวจอภาพ สารเรืองแสงนี้จะสว่างและดับกลับไปสภาวะปกติ

อินพุตดีไวซ์ (Input Devices)
Bit Pad หรือ Digitizing Tablet :
เป็นอินพุตดีไวซ์ที่ประกอบด้วยพื้นผิวเรียบ และ stylus หรือ puck
แผ่นเรียบจะมีสายที่เป็นตาข่าย 2 มิติที่สามารถตรวจจับสัญญาณที่สร้างจาก
puck ที่เคลื่อนที่บนแผ่นเรียบนั้น แผ่นเรียบจะส่งตำแหน่ง
X-Y และสถานะของปุ่มบน puck

อินพุตดีไวซ์ (Input Devices)
จอยสติ๊ก (Joystick) :
บอกตำแหน่งแนวตั้งและแนวนอนด้วยระยะก้านที่ยื่นออกมาจากฐานของจอยสติ๊ก
ส่วนมากนิยมนำมาใช้งานกับวิดีโอเกมส์ และเพื่อกำหนดตำแหน่งในระบบกราฟิก

อินพุตดีไวซ์ (Input Devices)
สแกนเนอร์ (Scanner) :
อุปกรณ์ซึ่งจับภาพและเปลี่ยนแปลงภาพจากรูปแบบของแอนาลอกเป็นดิจิตอล

สแกนเนอร์แบบเลื่อนกระดาษ, แบบแท่นนอน และแบบมือถือ

เอาต์พุตดีไวซ์ (Output Devices)
จอภาพ CRT (Cathode Ray Tube) :
เอาต์พุตดีไวซ์ที่แสดงผลลัพธ์จากการประมวลของโปรเซสเซอร์ให้ผู้ใช้เห็น มีปืนอิเล็คตรอน
(Electron gun) 3 กระบอกอยู่ภายในท่อจะยิงลำแสงอิเล็คตรอนจากด้านหลังเข้ามา
ปืนแต่ละกระบอกจะยิงแต่ละสีของสีหลัก แดง (Red), เขียว (Green) และ
น้ำเงิน (Blue) ที่เรียกว่า RGB ลำแสงที่ยิงมานั้นจะกระทบสารเคลือบ (Phosphor)
ที่เคลือบอยู่ที่จอภาพ ทำให้เกิดการเรืองแสงแต่ละจุดที่เรียกว่าพิกเซล (pixel) ทำให้แต่ละ
จุดเกิดเป็นสีแดง, เขียว หรือน้ำเงินบนจอภาพ

เอาต์พุตดีไวซ์ (Output Devices)
ไดอะแกรมของ CRT

เอาต์พุตดีไวซ์ (Output Devices)
จอ LCD (Liquid Crystal Display)
:
จอภาพที่สร้างด้วยผลึกเหลว ซึ่งเป็นสสารที่แทบจะเรียกได้ว่าโปร่งใส
มีคุณสมบัติก้ำกึ่งระหว่างของแข็ง และของเหลว ที่อุณหภูมิห้องผลึกเหลวจะอยู่ใน
สถานะของเหลว แต่เมื่อมีแสงผ่านมาจะเกิดการจัดเรียงโมเลกุลใหม่ที่มีคุณสมบัติเป็น
ของแข็งแทน เมื่อแสงผ่านไปเรียบร้อยแล้วจะกลับมามีคุณสมบัติเป็นของเหลวเหมือนเดิม

เอาต์พุตดีไวซ์ (Output Devices)
โครงสร้างของจอภาพ LCD

อินพุตดีไวซ์ (Input Devices)
เครื่องพิมพ์ (Printer)
:
อุปกรณ์ที่เชื่อมต่อเข้ากับคอมพิวเตอร์เพื่อทำหน้าที่ในการแปลผลลัพธ์ที่
ได้จากการประมวลผลของเครื่องคอมพิวเตอร์ให้อยู่ในรูปของอักขระ
หรือรูปภาพที่จะไปปรากฏอยู่บนกระดาษ

เครื่องพิมพ์ดอตแมทริกซ์, เลเซอร์ และอิงค์เจ็ต

เอาต์พุตดีไวซ์ (Output Devices)
พล็อตเตอร์ (Plotter) : เครื่องพิมพ์ชนิดที่ใช้ปากกาในการเขียนข้อมูลต่างๆ
ลงบนกระดาษขนาดใหญ่ (A0 หรือ A1) เหมาะสำหรับงาน
เกี่ยวกับการเขียนแบบทางวิศวกรรม และงานตกแต่งภายในของสถาปนิก
เอาต์พุตดีไวซ์ในอนาคต
การระบุตำแหน่งด้วยระบบ GPS
(Global Positioning System)
การจดจำลายนิ้วมือ (Fingerprint Recognition)
การจดจำเสียง (Voice Recognition)

การจัดลำดับความสำคัญของอินเทอร์รัพต์

การจัดลำดับความสำคัญของอินเทอร์รัพต์
ถ้ามีอินเทอร์รัพต์เกิดขึ้นมากมายในเวลาเดียวกัน ทำให้มีคำถามที่น่าสนใจ 2 คำถาม
คำถามแรกก็คือถ้ามีอินเทอร์รัพต์เกิดขึ้นพร้อมกันหลาย อินเทอร์รัพต์เพื่อคอย

การตอบสนองจากซีพียู แล้วซีพียูจะมีวิธีการจัดลำดับการตอบสนองอินเทอร์รัพต์เหล่านั้นอย่างไร
คำถามที่สองก็คือซีพียูทราบได้อย่างไรว่าดีไวซ์ใดส่ง อินเทอร์รัพต์เข้ามา

วิธีหาดีไวซ์ที่ส่งอินเทอร์รัพต์
Vectored interrupt
ซึ่งในสัญญาณอินเทอร์รัพต์นั้นจะมีแอ็ดเดรสของ อินเทอร์รัพต์ดีไวซ์รวมมาด้วย
วิธีหาดีไวซ์ที่ส่งอินเทอร์รัพต์
Polled interrupt
โดยใช้พต์ พูลลิ่งแต่ละดีไวซ์ ใช้ “daisy chaining”

ซึ่งจะวางอินเทอร์รัพต์ไปบนสายอินเทอร์รัพต์เพียงเส้นเดียวไปยังซีพียูซึ่งกำหนดเป็นลำดับความสำคัญสูงสุดที่ซีพียูทราบได้ก่อน

การจัดการเมื่อมีหลายอินเทอร์รัพต์
1.จัดการได้โดยกำหนดลำดับความสำคัญให้แต่ละอินเทอร์รัพต์
2.จัดการกับอินเทอร์รัพต์ที่มีลำดับความสำคัญสูงสุดก่อน หลังจากนั้นจะจัดการกับอินเทอร์รัพต์
ที่มีลำดับสูงกว่าตัวอื่น เรื่อยไปจนถึงอินเทอร์รัพต์ที่มีลำดับต่ำสุด
3.ทำให้มีลำดับชั้นในการจัดการอินเทอร์รัพต์ ซึ่งอาจจะมีอินเทอร์รัพต์ซ้อนกันอยู่ในโปรแกรมที่กำลังทำงานอยู่
4.การจัดการยังใช้หลักการที่ว่าจะต้องจัดการอินเทอร์รัพต์ที่มีลำดับสูงกว่าก่อนจนเสร็จสมบูรณ์แล้ว
จึงจัดการอินเทอร์รัพต์ที่มีลำดับต่ำกว่าจนกว่าจะหมดทุกอินเทอร์รัพต์แล้ว จึงกลับมาทำงานต่อการทำงานเมื่อเกิดอินเทอร์รัพต์หลายตัว

โครงสร้างของไอโอบัส

โครงสร้างของไอโอบัส
Isolated I/O จะมีชุดของแอ็ดเดรสบัส, ดาต้าบัส และคอนโทรลบัส เป็นชุดของไอโอบัส และจะมีอีกชุดหนึ่งสำหรับเมมโมรีบัสที่แยกจากกัน

โครงสร้างของไอโอบัส
Shared I/O จะใช้แอ็ดเดรสบัสและดาต้าบัสร่วมกันเป็นไอโอบัสและ เมมโมรีบัสแต่มีสัญญาณควบคุมคนละเส้นสำหรับการอ่าน, เขียน, อินพุต และเอาต์พุต

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

โครงสร้างของไอโอบัส
พื้นที่แอ็ดเดรสทั้งหมดของระบบคอมพิวเตอร์ที่เป็นแบบ Memory-map I/O นั้นหน่วยความจำประกอบด้วยเมมโมรีโมดูล 2-3 โมดูล จะมีไอโอ รีจิสเตอร์จะกระจายไปตามการอินเทอร์เฟซของไอโอดีไวซ์ มีเพียง แอ็ดเดรสบางส่วนของไอโอรีจิสเตอร์เท่านั้นที่ใช้ในระบบ

เทคนิคการทำงานของไอโอ
1.การควบคุมอินพุต/เอาค์พุตด้วยโปรแกรม (Programmed I/O) ซึ่งเป็นเทคนิคที่มีการแลกเปลี่ยนข้อมูล ระหว่างโปรเซสเซอร์และไอโอโมดูล โปรเซสเซอร์จะเอ็กซิคิวต์โปรแกรมที่ควบคุมโอเปอเรชันของไอโอ รวมทั้งการตรวจสอบสถานะของดีไวซ์, การส่งคำสั่งเพื่ออ่านหรือเขียน และการถ่ายโอนข้อมูล
2.การเอ็กซิคิวต์คำสั่งไอโอนั้น โปรเซสเซอร์จะต้องกำหนดแอ็ดเดรส, ไอโอโมดูล, ดีไวซ์และ คำสั่งของไอโอซึ่งมี 4 ประเภทซึ่งกำหนดโดยโปรเซสเซอร์คือ ควบคุม (Control), ตรวจสอบ (Test), อ่าน (Read) และเขียน (Write)

เทคนิคการทำงานของไอโอ
การควบคุมอินพุต/เอาต์พุตผ่านกลไกการอินเทอร์รัพต์ (Interrupt-driven I/O) ซึ่งเทคนิคนี้โปรเซสเซอร์จะออกคำสั่งไปยังไอโอ แล้วกลับไปเอ็กซิคิวต์คำสั่งอื่นต่อไป จนเมื่อไอโอทำงานเสร็จเรียบร้อยแล้วจะส่งสัญญาณอินเทอร์รัพต์แจ้งให้ทราบ

1. ก่อนการอินเทอร์รัพต์ โปรแกรม A ซึ่งกำลังถูกเอ็กซิคิวต์อยู่ โปรแกรมเคาเตอร์ (PC) ชี้อยู่ที่คำสั่งปัจจุบัน
2. เมื่อสัญญาณอินเทอร์รัพต์ถูกส่งเข้ามาที่ซีพียู จะมีการเอ็กซิคิวต์คำสั่งปัจจุบันให้เสร็จเรียบร้อยก่อน หลังจากนั้น ข้อมูลทั้งหมดที่เกี่ยวข้องกับโปรแกรมที่หยุดเอ็กซิคิวต์, ตำแหน่งของคำสั่งสุดท้าย และข้อมูลในรีจิสเตอร์ทุกตัวจะถูกเก็บในพื้นที่ที่เป็นสแต็ก หรือพื้นที่พิเศษที่เรียกว่า (ProcessControlBlock)
3. เมื่อรูทีนของอินเทอร์รัพต์ถูกเอ็กซิคิวต์เรียบร้อยแล้ว ค่าในรีจิสเตอร์จะถูกคืนค่า รวมทั้งโปรแกรมเคาเตอร์ด้วย ทำให้โปรเซสเซอร์กลับมาเอ็กซิคิวต์คำสั่งต่อจากคำสั่งเดิมก่อนที่จะมีสัญญาณอินเทอร์รัพต์เข้ามา

การใช้อินเทอร์เฟซโมดูลในการเชื่อมต่อไอโอดีไวซ์โดยตรงกับซีพียู

1.รูปแบบที่ดีไวซ์ต่าง ๆ ต้องการข้อมูลที่แตกต่างกันทำให้ระบบใช้อินเทอร์เฟซทั้งด้านฮาร์ดแวร์และซอฟต์แวร์ต่างกัน
2.ความเร็วที่ต่างกันของดีไวซ์กับซีพียูทำให้การซิงโครไนซ์ยุ่งยาก โดยเฉพาะถ้ามีหลาย ๆ ดีไวซ์พยายามกระทำต่อไอโอพร้อม ๆ กัน ทำให้อาจจะต้องใช้บัฟเฟอร์
3.การเชื่อมต่อภายในที่สนับสนุนการให้บริการมัลติมีเดียจะต้องมีความสามารถในการส่งข้อมูลอย่างต่อเนื่อง รวมทั้งเครือข่ายและดีไวซ์ที่ติดต่อสื่อสารกันด้วยความเร็วสูง
4.ดีไวซ์จำพวกดิสก์ไดรฟ์มีการควบคุมด้วยกลไกทางอิเล็กทรอนิกส์ที่ต้องใช้เวลาซีพียูจำนวนมากในการควบคุม
การใช้อินเทอร์เฟซโมดูลในการเชื่อมต่อไอโอดีไวซ์โดยตรงกับซีพียู
1.ความแตกต่างสำหรับแต่ละไอโอดีไวซ์รวมกับความจำเป็นในการกำหนดแอ็ดเดรส, การซิงโครไนซ์, สถานะและความสามารถในการควบคุม ภายนอก ทำให้มีความจำเป็นที่จะต้องรองรับแต่ละดีไวซ์ด้วยอินเทอร์เฟซพิเศษโดยเฉพาะ
2.โดยปกติไอโอดีไวซ์จะเชื่อมต่อกับซีพียูผ่านทางไอโอโมดูล (I/O module)
3.ไอโอโมดูลต้องมีความสามารถในการถ่ายโอนข้อมูลเป็นบล็อกที่ใช้บัฟเฟอร์อย่างเหมาะสมและเป็นมาตรฐานในการอินเทอร์เฟซกับซีพียู และมีความสามารถในการควบคุมดีไวซ์พิเศษที่ถูกออกแบบขึ้นมาด้วย
4.ไอโอโมดูลที่ควบคุมดีไวซ์ประเภทเดียวจะเรียกว่า “ดีไวซ์คอนโทรลเลอร์”
5.ถ้ามีดีไวซ์มากขึ้น ต้องมีการกำหนดแอ็ดเดรสเพื่อแยกออกจากโมดูลอื่น

การใช้อินเทอร์เฟซโมดูลในการเชื่อมต่อไอโอดีไวซ์โดยตรงกับซีพียู การจัดเรียงไอโอโมดูลอย่างง่าย
การจัดเรียงไอโอโมดูลที่มีความสลับซับซ้อน

ปัจจัยการออกแบบไอโอ
การออกแบบระบบไอโอให้เหมาะสมจะทำให้ซีพียูทำงานได้อย่างมีประสิทธิภาพ ทั้งการซิงโครไนซ์ดีไวซ์หลายดีไวซ์ การปรับเวลาดีไวซ์ที่มีอัตราการถ่าย โอนข้อมูลต่างกัน และการปรับเวลาให้ซีพียูทำงานโดยไม่เสียเวลารอในขณะ ที่ไอโอกำลังทำงาน เหล่านี้เป็นตัววัดประสิทธิภาพของคอมพิวเตอร์ สำหรับ ปัจจัยที่ควร

พิจารณาในการออกแบบระบบไอโอมี 3 ประการคือ
1.ตำแหน่งข้อมูล : การเลือกดีไวซ์, แอ็ดเดรสของข้อมูลในดีไวซ์
2.การถ่ายโอนข้อมูล : ปริมาณ, อัตราการถ่ายโอนทั้งในขณะเข้าหรืออก จากดีไวซ์
3.การซิงโครไนซ์ : ให้เอาต์พุตเฉพาะเมื่อดีไวซ์พร้อม, รับอินพุตเมื่อมีข้อมูล

ประโยชน์ของอินพุต/เอาต์พุต

อินพุต/เอาต์พุต (Input/Output)
1.การใช้ประโยชน์ของระบบคอมพิวเตอร์ขึ้นอยู่กับสิ่งอำนวยความสะดวกทางอินพุต/เอาต์พุต หรือไอโอ (I/O : Input/Output) ซึ่งเป็นการติดต่อระหว่างผู้ใช้กับคอมพิวเตอร์
2.การเพิ่มความเร็วของพีซีโดยเพิ่มความเร็วของโปรเซสเซอร์ แต่ถ้าไม่ลดข้อจำกัดความเร็วในการทำงานกับไอโอจะทำให้ ประสิทธิภาพของคอมพิวเตอร์ไม่ดีเท่าที่ควร
อินพุต/เอาต์พุต (Input/Output)
1.กำหนดโครงสร้างอินพุตและเอาต์พุตในคอมพิวเตอร์โดยการให้มีตะกร้าอินพุต และตะกร้าเอาต์พุต
2.แต่ละคำสั่งของอินพุตจะถ่ายโอนข้อมูลตะกร้าอินพุตไปยังเครื่องคิดเลข
3.ในแต่ละคำสั่งของเอาต์พุตจะทำการถ่ายโอนข้อมูลออกจากเครื่องคิดเลขไปไว้ในตะกร้าเอาต์พุต
4.ในคอมพิวเตอร์จริง ตะกร้าอินพุตและตะกร้าเอาต์พุตจะถูกแทนด้วยบัสอินเทอร์เฟซ



อินพุต/เอาต์พุต (Input/Output)
1.ปริมาณการถ่ายโอนข้อมูลของไอโอที่ทำงานร่วมกันหลายตัวมีผลต่อการทำงาน โดยเฉพาะไอโอที่มีความเร็วในการถ่ายโอน ข้อมูลต่างกันเป็นอย่างมาก ทำให้ต้องมีการซิงโครไนซ์เพื่อป้องกันข้อมูลสูญหาย
2.การทำงานของไอโอจะใช้เวลาซีพียูมาก เนื่องจากเวลาส่วนมากเกิดจากการรอจนกว่างานจะเสร็จสมบูรณ์
3.มีวิธีการมากมายถูกนำมาใช้เพื่อแก้ปัญหาการซิงโครไนซ์และควบคุมการทำงานของไอโอใน ระหว่างที่ไอโอดีไวซ์ที่หลากหลายกำลังทำงานในปริมาณข้อมูลและความเร็วที่ต่างกัน




คุณสมบัติพื้นฐานของอินพุต/เอาต์พุต
1.คีย์บอร์ดเป็นดีไวซ์สำหรับอินพุต อินพุตพื้นฐานที่เป็นตัวอักษร ที่มีอัตราการถ่ายโอนข้อมูลเป็นไปอย่างช้ามากเพื่อเปรียบเทียบกับการโปรเซสของซีพียู เนื่องจากความเร็วในการคีย์ของผู้ใช้งาน
2.ปกติคอมพิวเตอร์ทำงานเพียงงานเดียว ซีพียูจะใช้เวลาส่วนมากในการรออินพุตจากคีย์บอร์ด ทำให้คอมพิวเตอร์ทำงานไม่เต็มประสิทธิภาพ
3.การอินพุตด้วยคีย์บอร์ดมี 2 ประเภท
1.อินพุตที่แอปพลิเคชันคาดหมายไว้ (expected input) ในการตอบสนองโปรแกรมที่ร้องขอข้อมูล
2.อินพุตที่ไม่ได้คาดหมาย (unexpected input) เช่น การกดคีย์ Control-Alt-Delete บนพีซีจะเป็นการสตาร์ตคอมพิวเตอร์ใหม่ เป็นต้น

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

คุณสมบัติพื้นฐานของอินพุต/เอาต์พุต
1.การที่ดิสก์เป็นดีไวซ์ที่ใช้ในการเก็บข้อมูลทำให้ดิสก์เป็นได้ทั้งอินพุตและเอาต์พุตแต่ในคนละเวลากัน การถ่ายโอนข้อมูลของดิสก์มีความเร็วสูง
2.ดีวีรอมพยายามที่จะแสดงวิดีโอเต็มจอภาพในอัตราของภาพยนตร์อย่างต่อเนื่อง จะต้องมีความคงที่ของข้อมูลที่มีอัตราอินพุตประมาณ 10 เมกะไบต์ต่อวินาที
3.เนื่องจากเครือข่ายมีความเร็วสูง ทำให้มีการใช้เครือข่ายแทนดิสก์ในการเก็บโปรแกรมและข้อมูลในคอมพิวเตอร์ที่อยู่ห่างไกล
4.อัตราการถ่ายโอนข้อมูลของไอโอดีไวซ์ต่าง ๆ แสดงดังตาราง

คุณสมบัติพื้นฐานของอินพุต/เอาต์พุต
ความต้องการทั่วไปสำหรับระบบคอมพิวเตอร์ที่รองรับไอโอ
1.ต้องมีการกำหนดแอ็ดเดรสเฉพาะให้แต่ละดีไวซ์ที่ต่อพ่วง
2.ต้องมีวิธีการที่ดีไวซ์ต่อพ่วงสามารถเริ่มสื่อสารกับซีพียู
3.การควบคุมไอโอด้วยโปรแกรมมีความเหมาะสมเฉพาะสำหรับ ดีไวซ์ที่มีความเร็วต่ำ และมีการถ่ายโอนข้อมูลเป็นเวิร์ด แต่สำหรับดีไวซ์ความเร็วสูงที่มีการถ่ายโอนข้อมูลเป็นบล็อกจะมีการถ่ายโอนข้อมูล ที่มีประสิทธิภาพสูงกว่าในการถ่ายโอนข้อมูลระหว่างไอโอกับหน่วยความจำ
4.ต้องสามารถดูแลดีไวซ์ที่มีการควบคุมที่ต่างกันให้สามารถทำงานได้

ข้อมูลส่วนบุคคล

ชื่อ-สกุล นาย ชาญณรงค์ ศักดา 48172792071
ระดับ ปริญญาตรี 4 ปี แขนงวิชา คอมพิวเตอร์ธุรกิจวัน/เดือน/ปี19/04/2528 อายุ 23 ปี
ชื่อ-สกุล บิดา นาย เชิดศักดิ์ ศักดา อาชีพ ธุรกิจส่วนตัว
ชื่อ-สกุล มารดา นาง สิตี ศักดา อาชีพ ธุรกิจส่วนตัว
ที่อยู่ตามทะเบียนบ้านเลขที่ 107/8 หมู่ 7 ตำบล มหาสวัสดิ์
อำเภอ บางกรวย จังหวัด นนทบุรี รหัสไปรษณีย์ 11130
อีเมลล์ u48172792071@hotmail.com
ที่อยู่ปัจจุบัน เลขที่ 107/8 หมู่ 7 ตำบล มหาสวัสดิ์
อำเภอ บางกรวย จังหวัด นนทบุรี รหัสไปรษณีย์ 11130
บุคคลที่สามารถติดต่อได้ / ผู้ปกครอง
ชื่อ – สกุล นาย สิตี ศักดาความสัมพันธ์ มารดา
เลขที่ 107/8 หมู่ 7 ตำบล มหาสวัสดิ์
อำเภอ บางกรวย จังหวัด นนทบุรี รหัสไปรษณีย์ 11130
เพื่อนสนิท
1. ชื่อ-สกุล นาย พรชัย จิรพงศ์วัฒนา
2. ชื่อ-สกุล นาย จิรพันธุ์ กูรสุรพงศ์