งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)"— ใบสำเนางานนำเสนอ:

1 การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)
Apirada Thadadech

2 การกำหนดบล็อกของ Record
การทำงานของ CPU เร็วมากเมื่อเทียบกับการทำงานของสื่อเก็บข้อมูล การอ่าน-เขียนข้อมูล ของผู้เขียนโปรแกรม ( ผู้ใช้จะเขียน ) ครั้งละ 1 Logical Record การอ่าน-เขียนข้อมูลจากสื่อบันทึกข้อมูล ครั้งละ 1 Record แล้วประมวลผลนั้น ทำให้ประสิทธิภาพในการทำงานด้อยลง การรวบรวมข้อมูลเป็นกลุ่ม ๆ แล้วเขียน หรืออ่านครั้งละหลายๆ Record ส่งผลให้การประมวลผลมีประสิทธิภาพมากขึ้น 02/08/62 อภิรดา ธาดาเดช

3 การกำหนดบล็อกของ Record (ต่อ)
การอ่าน-เขียนข้อมูล ครั้งละหลาย ๆ Record เรียกว่า Blocking การอ่าน-เขียนข้อมูลลงบนสื่อ (Disk , Tape) จะกระทำครั้งละ 1 หน่วยของสื่อนั้นๆ เช่น Disk เขียนครั้งละ 1 Cluster (อาจจะเป็น 1 Physical Record หรือจำนวนเท่าของ Record) Block คือหน่วยที่เล็กที่สุดที่ข้อมูลถูกอ่าน หรือเขียนไปยังสื่อบันทึกข้อมูล 02/08/62 อภิรดา ธาดาเดช

4 ข้อดีของการทำ Blocking
ช่วยลดเวลาในการเข้าถึง และเรียกใช้ไฟล์ข้อมูล ลดจำนวนครั้งในการอ่าน-เขียนข้อมูลลงบนสื่อ ลดเวลาในการทำงานของโปรแกรม 02/08/62 อภิรดา ธาดาเดช

5 ตัวอย่างการทำ Blocking
ข้อมูล 10,000 Record เขียนบน Floppy Disk จะเขียน 10,000 ครั้งถ้าทำ Block แต่ถ้า จัด Block ละ 10 Record จะเขียน 1,000 ครั้ง (สมมติ เวลาที่ใช้เขียน .008 ms/ครั้ง) 02/08/62 อภิรดา ธาดาเดช

6 ตัวอย่างการทำ Blocking
จาก Ex. ถ้าจัด Block เป็น 10,000 จะดีที่สุดเพราะสั่งให้เขียนเพียง 1 ครั้งเท่านั้น 02/08/62 อภิรดา ธาดาเดช

7 ข้อจำกัดของการทำ Blocking
02/08/62 อภิรดา ธาดาเดช

8 การส่งผ่านชุด Record จากสื่อจัดเก็บสู่หน่วยความจำ
Main Memory PROGRAM Input Rec. Work Area Get Disk Read 02/08/62 อภิรดา ธาดาเดช

9 การจัดการบัฟเฟอร์ Buffer คือพื้นที่ (holding area) ที่ประสานเชื่อม ระหว่างการทำงานของสื่อจัดเก็บข้อมูลที่ทำงานได้ช้ากว่า CPU การจัดการประสานการทำงานของ Buffer เรียกว่า Buffer Interface แบ่งได้เป็น 2 ลักษณะ Deblocking Routine (Buffering Input ) เป็นกระบวนการอ่านข้อมูลจาก File Blocking Routine (Buffering Output) เป็นกระบวนการเขียนข้อมูลเก็บไว้ใน File 02/08/62 อภิรดา ธาดาเดช

10 การจัดการบัฟเฟอร์ (ต่อ)
การจัดการ Buffer มีหลายวิธี เช่น Single Buffering, Double Buffering หรืออาจมีหลายๆ Buffer ก็ได้ โดยประสิทธิภาพในการทำงานต่างกัน Logical Read , Logical Write Physical Read , Physical Write 02/08/62 อภิรดา ธาดาเดช

11 องค์ประกอบของระบบคอมพิวเตอร์ที่เกี่ยวข้องกับการประมวลผลของ I/O
I/O Channel ประสานกับ Control Unit อ่าน/เขียนไปยัง Device - Device -Device -Device -Device CPU Main Memory Channel Control Unit 02/08/62 อภิรดา ธาดาเดช

12 การอ่านข้อมูล 1 Record จาก File (Single Buffer)
Data storage Block #1 Block #2 Block #n - 1 Block #n Rec.1 Rec.2 Rec.3 Rec.4 Rec.5 Record i Get#1 File Blocked Records การทำงานส่วนที่เป็น Buffering Input 02/08/62 อภิรดา ธาดาเดช

13 การเขียน Record เพื่อเก็บใน File (Single Buffer)
Data storage Buffer Block #1 Rec.1 Rec.2 Rec.3 Rec.4 Rec.5 Record i Put #1 Put #5 eof การทำงานส่วนที่เป็น Buffering Output 02/08/62 อภิรดา ธาดาเดช

14 การคำนวณเวลาการเก็บแบบ Buffer และไม่เป็น Buffer
สมมติมีข้อมูล 2,000 Record แต่ละ Record มีขนาด 100 Byte เก็บใน File A แบบไม่กำหนดขนาด Block เก็บใน File B แบบ กำหนดขนาด 25 Record ต่อ 1 Block การส่งผ่านข้อมูล 100 Byte เวลา .008 ms การอ่าน-เขียน Physical Record ใช้ Overhead Time = 50 ms อยากทราบว่าเก็บแบบ File A ,File B ใช้ เวลาเท่าไร 02/08/62 อภิรดา ธาดาเดช

15 วิธีทำ File A = 2000 x (50 + .008) ms = 100016 = 1.667 นาที = 4016
File B = (2000/25) x (50 + (.008 x 25)) = 4016 = นาที 02/08/62 อภิรดา ธาดาเดช

16 การอ่านข้อมูล 1 Record จาก File (Double Buffer)
File Blocked Records Data storage Block #1 Block #2 Block #n - 1 Block #n Rec.1 Rec.2 Rec.3 Rec.4 Rec.5 Record i Get#2 Rec.6 Rec.7 Rec.8 Rec.9 Rec.10 Get#5 Buffer 2 02/08/62 อภิรดา ธาดาเดช

17 การเขียน Record เพื่อเก็บใน File (Double Buffer)
Data storage Block #1 Rec.1 Rec.2 Rec.3 Rec.4 Rec.5 Record i Put #1 Put #5 eof Rec.6 Rec.7 Rec.8 Rec.9 Rec.10 Put #6 02/08/62 อภิรดา ธาดาเดช

18 องค์ประกอบในการประมวลผลแฟ้มข้อมูล
Rec.1 Rec.2 BOF Programmer buffer Buffer fp1 fp2 file Read/write EOF EOF 02/08/62 อภิรดา ธาดาเดช

19 การใช้ block ในภาษา COBOL
DATA DIVISION. FILE SECTION. FD filename LABEL RECORD RECORDS IS ARE STANDARD OMITTED [ BLOCK CONTAINS integer1 TO integer2 RECORDS ] CHARACTERS ] [ RECORD CONTAIN integer3 TO integer4 CHARACTERS ] [ DATA RECORD IS dataname1 ] RECORDS ARE 02/08/62 อภิรดา ธาดาเดช

20 ตัวอย่างการนำไปใช้งาน
DATA DIVISION. FILE SECTION. FD MATER LABLE RECORD ARE STANDARD BLOCK CONTAINS 20 RECORDS DATA RECORD IS MASTER-REC. 02/08/62 อภิรดา ธาดาเดช

21 การใช้ block ในภาษา C คำสั่งที่เกี่ยวข้อง setbuf(*fp,buf)
setvbuf(*fp,buf,mode,size) mode มี 3 แบบ _IONBF, _IOFBF, _IOLBF fflush(*fp) fflushshall() นำข้อมูลจากทุก buffer เขียนลง file บนสื่อ 02/08/62 อภิรดา ธาดาเดช

22 ตัวอย่างการนำไปใช้งาน
#include <stdio.h> char mybuf[8192]; void main() { FILE *f, *g, *h; f = fopen(“f1.dat”,”r+”); g = fopen(“f2.dat:,”r+”); h = fopen(“f3.dat:,”r+”); setvbuf(f,NULL,_IONBF,0); setvbuf(g,mybuf,_IOFBF,sizeof(mybuf)); setvbuf(h,NULL,_IOFBF,1024); } 02/08/62 อภิรดา ธาดาเดช


ดาวน์โหลด ppt การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)

งานนำเสนอที่คล้ายกัน


Ads by Google