บทที่ 2โครงสร้างของระบบคอมพิวเตอร์และโครงสร้างของระบบปฏิบัติการระบบคอมพิวเตอร์
ในการใช้คอมพิวเตอร์ทำงานแล้วให้ได้ผลลัพธ์ออกมาตามความต้องการของผู้ใช้งานนั้น ย่อมต้องมีองค์ประกอบที่เรียกว่า ระบบคอมพิวเตอร์เข้ามาเกี่ยวข้องเสมอ ระบบคอมพิวเตอร์ประกอบด้วยอุปกรณ์อิเล็กทรอนิกส์หลายประเภททำงานร่วมกัน โดยมีคำสั่งหรือที่เรียกว่าโปรแกรมเป็นตัวสั่งการให้อุปกรณ์เหล่านั้นทำงานได้ตามที่มนุษย์ต้องการ ดังนั้นเมื่อกล่าวถึงระบบคอมพิวเตอร์สิ่งสำคัญของระบบจึงได้แก่ ฮาร์ดแวร์(hardware) ซอฟต์แวร์(software) และบุคลากร(Peopleware) นั่นคือ เครื่องคอมพิวเตอร์จะทำงานได้ต้องประกอบด้วยองค์ประกอบ 3 ประการ คือ
|
DMA (Direct Memory Access)
DMA (Direct Memory Access) หรือการส่งเข้าถึงข้อมูลในหน่วยความจำโดยตรง คือกระบวนการโอนย้ายข้อมูลระหว่างหน่วยความจำกับอุปกรณ์ภายนอก โดยไม่ผ่าน CPU
กระบวนการ DMA เริ่มต้นจาก
1. อุปกรณ์ที่ต้องการทำ DMA ส่งสัญญาณ DREQ เพื่อร้องขอทำ DMA ไปยัง DMA controller ในช่องทาง (channnel) ที่ต้องการ
2. เมื่อ DMA controller ได้รับสัญญาณ ก็จะตรวจสอบก่อนว่าสามารถอณุญาติให้ทำ DMA ได้หรือไม่แล้วจึงส่งสัญญาณ HRQ เพื่อบอก CPU ว่าต้องการเข้ามาใช้ BUS โดยส่งสัญญาณนี้ไปยังของ HOLD ของ CPU
3. เมื่อ CPU ได้รับสัญญาณ HRQ จาก DMA controller ที่ขา HOLD และพร้อมที่จะตอบสนองก็จะส่งสัญญาณ HLDA หรือ Hold Acknowledge ตอบกลับไปยัง DMA controller เพื่อแสดงว่า CPU ได้ปลดตัวเองและปล่อยการควบคุม แล้วจะส่งหน้าที่ต่างๆให้ DMA controller รับไปดำเนินการ
4. เมื่อ DMA controller ได้รับสัญญาณ HLDA แล้วก็เข้าควบคุม address bus และ controller bus และส่งสัญญาณ DACK ตอบกลับไปยังอุปกรณ์เพื่อแสดงถึงการพร้อมสำหรับเริ่มต้นส่งข้อมูล
5. การส่งข้อมูลจะเริ่มต้นโดยจะส่งสัญญาณ AEN ส่งสัญญาณ คือ address แรกของหน่วยความจำเป้าหมายออกไปที่ address bus และส่งสัญญาณไปควบคุมการเขียนและอ่านหน่วยความจำกับอุปกรณ์กับอุปกรณ์ออกไป เพื่อดำเนินการย้ายข้อมูลระหว่างอุปกรณ์กับหน่วยความจำ
6. เมื่อข้อมูลโอนย้ายจนครบสมบูรณ์แล้วก็จะเข้าสู่กระบวนการยกเลิก DMA โดย DMA จะส่งสัญญาณ EOP หรือ End Of Process ออกไป
7. ส่งผลให้สัญญาณ AEN ตกลงเป็น LOW เพื่อคืน bus ให้กับ CPU และ HRQ จาก DMA controller ที่ไปของให้ CPU HOLD ก็จะหายไป เพื่อให้ CPU กลับมาดูแล bus ต่างๆดังเดิม
8.เมื่อสัญญาณที่ร้องของ HOLD หายไป CPU ก็จะรับรู้และจะตอบสนองโดยยกเลิกสัญญาณ HLDA เพื่อแสดงว่าตอนนี้ CPU กลับมาดูแลระบบแล้ว
ลำดับชั้นของหน่วยความจำ (Memory Hierarchy)
หน่วยความจำมีอยู่หลายชนิดด้วยกัน แต่ละชนิดต่างก็มีอัตราความเร็วที่แตกต่างกันรวมทั้งขนาดความจุและราคาที่แตกต่างกัน สาเหตุที่เป็นเช่นนั้นก็เพราะว่า เพื่อให้เราเลือกหน่วยความจำใช้งานได้อย่างเหมาะสมนั้นเอง
จากรูปที่ 1 หน่วยความจำลำดับบนสุดเป็นหน่วยความจำที่มีความเร็วสูง และลดหลั่นลงมาเรื่อย ๆ ก็จะมีความเร็วทที่มีขนาดใหญ่ขึ้น ในทำนองเดียวกกัน หน่วยความจำที่มีขนาดใหญ่นั้นจะมีต้นทุนหรือราคาต่ำกว่าหน่วยความจำที่มีขนาดเล็ก
|
หน่วยความจำชั่วคราว
หน่วยความจำชั่วคราว (Volatile memory) คือหน่วยความจำของคอมพิวเตอร์ที่จำเป็นต้องมีไฟฟ้าเลี้ยงตลอดเวลาตราบเท่าที่ยังต้องการให้มันเก็บข้อมูลนั้นอยู่ หรืออีกนัยหนึ่งก็คือหากไม่ได้รับไฟฟ้าเลี้ยงแล้วข้อมูลที่เคยเก็บอยู่ในหน่วยความจำชั่วคราวก็จะหายไป ตัวอย่างของหน่วยความจำชั่วคราวก็คือ แรมชนิดต่างๆ ตรงกันข้ามกับหน่วยความจำถาวรที่ยังรักษาข้อมูลอยู่แม้ว่าจะไม่มีไฟฟ้าเลี้ยงแล้วก็ตาม
หน่วยความจำถาวร
หน่วยความจำถาวร (Non-volatile memory) คือหน่วยความจำของคอมพิวเตอร์ที่สามารถเก็บรักษาข้อมูลได้อยู่โดยไม่ต้องอาศัยไฟฟ้า ตัวอย่างหน่วยความจำถาวรเช่น รอม, แฟลช ยังรวมถึงหน่วยเก็บข้อมูลด้วยแม่เหล็ก เช่น จานบันทึกแบบแข็ง (hard disks), แผ่นบันทึก (floppy disks) และแถบแม่เหล็ก (magnetic tape), หน่วยเก็บข้อมูลด้วยแสง เช่น แผ่นซีดี และหน่วยเก็บข้อมูลยุคเก่า เช่น บัตรเจาะรู
การป้องกันหน่วยความจำ
โดยปกติจำนวนบิต (Bits) ที่เก็บอยู่ในตารางเพจ (Page Table) เราสามารถกำหนดบิตเพื่อใช้การตรวจสอบและกำหนดเพจในการ อ่าน-เขียน (Read-Write) หรืออ่านข้อมูลเท่านั้น (Read-Only) ซึ่งเรียกบิตพิเศษนี้ว่า “กลุ่มบิตป้องกัน (Associating Protection Bits)” ให้กับทุกๆ เฟรม ที่อยู่ในหน่วยความจำ (Main Memory) ซึ่งแบ่งบิตสถานะออกเป็น 2 บิต คือ
1. บิตใช้งานได้ (Valid Bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจถูกอ่านเข้าสู่หน่วยความจำทางกายภาพแล้ว และสามารถนำไปใช้งานได้ทันที
2. บิตใช้งานไม่ได้ (Invalid Bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจนั้นไม่มีอยู่ในหน่วยความจำทางกายภาพแล้ว (Physical Memory) และไม่สามารถนำไปใช้งานได้ อาจเกิดจากกรณีที่ระบบปฏิบัติการยังไม่ได้อ่านข้อมูลจากเพจเข้าสู่หน่วยความจำหลัก (Main Memory) หรือข้อมูลของเพจที่ต้องการอ่านนั้นถูกสลับ (Swapped) ออกจากหน่วยความจำแล้ว ซึ่งจะทำให้เกิดข้อผิดพลาดขึ้นที่เรียกว่า “การผิดหน้า (Page Fault)” จึงจำเป็นต้องโหลดเพจข้อมูลเข้าสู่หน่วยความจำก่อนแล้วจึงเปลี่ยนค่าของบิตใช้งานไม่ได้ (Invalid Bit) ให้เป็นบิตใช้งานได้ (Valid Bit) แล้วจึงทำการประมวลผลข้อมูลนั้นใหม่อีกครั้งหนึ่ง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น