กลับไปหน้าบทความ

อ่าน 5 นาที

การประมวลผลแบบกลุ่ม

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

การประมวลผลแบบกลุ่ม

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

ประวัติศาสตร์

คำว่า "การผลิตแบบเป็นชุด" (batch processing) มีที่มาจากวิธีการจำแนกประเภทการผลิต แบบดั้งเดิม ได้แก่การผลิตแบบงาน (job production ) ( การผลิตชิ้นเดียว) การผลิตแบบเป็นชุด (batch production) (การผลิตสินค้าหลายชิ้นพร้อมกันในแต่ละขั้นตอน) และการผลิตแบบต่อเนื่อง (flow production) (การผลิตจำนวนมากในทุกขั้นตอนพร้อมกัน)

ประวัติศาสตร์ยุคแรก

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

เมื่อคอมพิวเตอร์เร็วขึ้น เวลาในการตั้งค่าและปิดใช้งานก็กลายเป็นเปอร์เซ็นต์ที่มากขึ้นของเวลาใช้งานคอมพิวเตอร์ โปรแกรมที่เรียกว่ามอนิเตอร์ซึ่งเป็นต้นแบบของระบบปฏิบัติการได้รับการพัฒนาขึ้นเพื่อประมวลผลชุดโปรแกรมหรือ "ชุด" ซึ่งมักจะประมวลผลจากเทปแม่เหล็กที่เตรียมไว้แบบออฟไลน์มอนิเตอร์จะถูกโหลดเข้าไปในคอมพิวเตอร์และรันงานแรกของชุด เมื่อเสร็จสิ้นงานแล้ว มอนิเตอร์จะกลับมาควบคุมและโหลดและรันงานถัดไปจนกว่าชุดจะเสร็จสมบูรณ์ บ่อยครั้งที่ผลลัพธ์ของชุดจะถูกเขียนลงบนเทปแม่เหล็กและพิมพ์หรือเจาะรูแบบออฟไลน์ ตัวอย่างของมอนิเตอร์ ได้แก่Fortran Monitor System ของ IBM , SOS (Share Operating System) และสุดท้ายIBSYS สำหรับ ระบบ709xของ IBM ในปี 1960 [ 1 ] [ 2 ]

ระบบรุ่นที่สาม

คอมพิวเตอร์รุ่นที่สาม[ 3 ]ที่สามารถทำงานแบบมัลติโปรแกรมมิ่งเริ่มปรากฏขึ้นในช่วงทศวรรษ 1960 แทนที่จะรันงานแบตช์ทีละงาน ระบบเหล่านี้สามารถรันโปรแกรมแบตช์หลายโปรแกรมพร้อมกันได้ เพื่อให้ระบบทำงานได้มากที่สุดเท่าที่จะเป็นไปได้ อาจมีโปรแกรมหนึ่งโปรแกรมหรือมากกว่านั้นที่รอรับข้อมูลเข้า โปรแกรมหนึ่งทำงานอยู่บน CPU และโปรแกรมอื่นๆ สร้างเอาต์พุต แทนที่จะใช้การรับและส่งข้อมูลแบบออฟไลน์ โปรแกรมที่เรียกว่าสปูลเลอร์จะอ่านงานจากการ์ด ดิสก์ หรือเทอร์มินัลระยะไกล และวางไว้ในคิวงานเพื่อรอรัน เพื่อป้องกันการติดตาย ตัว กำหนด ตารางงานจำเป็นต้องทราบความต้องการทรัพยากรของแต่ละงาน เช่น หน่วยความจำ เทปแม่เหล็กดิสก์ ที่ติดตั้งได้ ฯลฯ ดังนั้นจึงมีการพัฒนาภาษาสคริปต์ต่างๆ เพื่อให้ข้อมูลนี้ในรูปแบบที่มีโครงสร้าง ภาษาที่รู้จักกันดีที่สุดน่าจะเป็นภาษาควบคุมงาน (JCL) ของ IBM ตัวกำหนดตารางงานจะเลือกงานที่จะรันตามเกณฑ์ต่างๆ รวมถึงลำดับความสำคัญ ขนาดหน่วยความจำ ฯลฯ แบตช์ระยะไกลเป็นขั้นตอนสำหรับการส่งงานแบตช์จากเทอร์มินัลระยะไกล ซึ่งมักจะติดตั้งเครื่องอ่านบัตรเจาะรูและเครื่องพิมพ์แบบบรรทัด[ 4 ]บางครั้งการประมวลผลแบบมัลติโปรเซสซิ่งแบบไม่สมมาตร จะใช้ในการจัดคิวอินพุตและเอาต์พุตแบบแบตช์สำหรับคอมพิวเตอร์ขนาดใหญ่หนึ่งเครื่องหรือมากกว่าโดยใช้ระบบขนาดเล็กกว่าและราคาถูกกว่าที่เชื่อม ต่อ อยู่ เช่นใน โปรเซสเซอร์สนับสนุนที่เชื่อมต่อของ IBM System/360 [ a ]

ประวัติศาสตร์ในภายหลัง

ไฟล์แบตช์ CDC NOSเพื่อรับไฟล์ STARTRK และส่งออกไปยังเครื่องเจาะบัตร

ระบบแบ่งเวลาใช้งานทั่วไประบบแรกคือCompatible Time-Sharing System (CTSS) ซึ่งเข้ากันได้กับการประมวลผลแบบแบตช์ ทำให้การเปลี่ยนจากการประมวลผลแบบแบตช์ไปสู่ การประมวลผลแบบโต้ตอบเป็นไปได้ง่ายขึ้น[ 5 ]

ตั้งแต่ช่วงปลายทศวรรษ 1960 เป็นต้นมา การประมวลผลแบบโต้ตอบ เช่น ผ่าน อินเทอร์เฟซเทอร์ มินัลคอมพิวเตอร์ แบบข้อความ (เช่น ในเชลล์ Unixหรือลูปอ่าน-ประเมิน-พิมพ์ ) และต่อมา อินเท อร์เฟซผู้ใช้แบบกราฟิกก็กลายเป็นเรื่องปกติ การประมวลผลแบบไม่โต้ตอบ ทั้งงานแบบครั้งเดียว เช่น การคอมไพล์ และการประมวลผลหลายรายการเป็นชุด ได้รับการเรียกในภายหลังว่าการประมวลผลแบบแบตช์และคำว่างานแบตช์ (ในการใช้งานช่วงแรก มักใช้คำว่า "ชุดของงาน") ก็กลายเป็นเรื่องปกติ การใช้งานในช่วงแรกพบได้โดยเฉพาะที่มหาวิทยาลัยมิชิแกนรอบๆระบบเทอร์มินัลมิชิแกน (MTS) [ 6 ]

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

กำลังดำเนินการ

การคำนวณแบบไม่โต้ตอบยังคงแพร่หลายในวงการคอมพิวเตอร์ ทั้งสำหรับการประมวลผลข้อมูลทั่วไปและสำหรับงาน "บำรุงรักษา" ระบบ (โดยใช้ซอฟต์แวร์ระบบ ) โปรแกรมระดับสูง (ที่เรียกใช้โปรแกรมหลายโปรแกรม โดยมีตรรกะ "เชื่อมต่อ" เพิ่มเติมบางส่วน) ในปัจจุบันมักเรียกว่าสคริปต์และเขียนด้วยภาษาสคริปต์โดยเฉพาะอย่างยิ่งสคริปต์เชลล์สำหรับงานระบบ ในIBM PC DOSและMS-DOSจะเรียกว่าไฟล์แบตช์แทนซึ่งรวมถึงคอมพิวเตอร์ที่ใช้UNIX , Microsoft Windows , macOS (ซึ่งมีพื้นฐานมาจาก เคอร์เนล BSD Unix) และแม้แต่สมาร์ทโฟนสคริปต์ที่กำลังทำงาน โดยเฉพาะอย่างยิ่งสคริปต์ที่เรียกใช้จากเซสชันการเข้าสู่ระบบ แบบโต้ตอบ มักเรียกว่างานแต่คำนี้ถูกใช้ในความหมายที่คลุมเครือมาก

"ไม่มีสิ่งที่เทียบเคียงได้โดยตรงกับการประมวลผลแบบแบตช์ของ z/OS ในระบบพีซีหรือยูนิกซ์ งานแบตช์มักจะดำเนินการตามเวลาที่กำหนดหรือตามความจำเป็น บางทีการเปรียบเทียบที่ใกล้เคียงที่สุดคือกระบวนการที่ดำเนินการโดย คำสั่ง atหรือcronในยูนิกซ์ แม้ว่าความแตกต่างจะมีนัยสำคัญก็ตาม" [ 7 ]

ระบบสมัยใหม่

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

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

แอปพลิเคชันแบบแบตช์สมัยใหม่ใช้เฟรมเวิร์กแบตช์สมัยใหม่ เช่น Jem The Bee, Spring Batch [ 8 ]หรือการใช้งานJSR 352 [ 9 ]ที่เขียนขึ้นสำหรับJavaและเฟรมเวิร์กอื่นๆ สำหรับภาษาโปรแกรมอื่นๆ เพื่อให้มีความทนทานต่อข้อผิดพลาดและความสามารถในการปรับขนาดที่จำเป็นสำหรับการประมวลผลปริมาณมาก เพื่อให้มั่นใจถึงการประมวลผลความเร็วสูง แอปพลิเคชันแบบแบตช์มักจะถูกรวมเข้ากับ โซลูชัน การประมวลผลแบบกริดเพื่อแบ่งงานแบตช์ออกเป็นหลายส่วนให้กับโปรเซสเซอร์จำนวนมาก แม้ว่าจะมีปัญหาในการเขียนโปรแกรมที่สำคัญในการทำเช่นนั้นก็ตาม การประมวลผลแบบแบตช์ปริมาณมากทำให้เกิดความต้องการอย่างมากต่อสถาปัตยกรรมของระบบและแอปพลิเคชันเช่นกัน สถาปัตยกรรมที่มี ประสิทธิภาพ ในการรับ/ส่งข้อมูล ที่แข็งแกร่ง และความสามารถในการปรับขนาด ในแนวดิ่ง รวมถึง คอมพิวเตอร์เมนเฟรมสมัยใหม่มักจะให้ประสิทธิภาพแบบแบตช์ที่ดีกว่าทางเลือกอื่นๆ

ภาษาสคริปต์ได้รับความนิยมมากขึ้นเมื่อพัฒนาควบคู่ไปกับการประมวลผลแบบกลุ่ม[ 10 ]

หน้าต่างแบทช์

หน้าต่างแบตช์คือ "ช่วงเวลาของกิจกรรมออนไลน์ที่มีความเข้มข้นน้อยลง" [ 11 ]เมื่อระบบคอมพิวเตอร์สามารถรันงานแบตช์ได้โดยไม่มีการรบกวนจากหรือร่วมกับระบบออนไลน์แบบโต้ตอบ

กระบวนการ ปิดบัญชีประจำวัน (EOD)ของธนาคารจำเป็นต้องใช้แนวคิดเรื่อง " การเปลี่ยนระบบ " (cutover ) ซึ่งเป็นการตัดการเชื่อมต่อธุรกรรมและข้อมูลสำหรับกิจกรรมกลุ่มในแต่ละวัน ("เงินฝากหลัง 3 โมงเย็นจะถูกประมวลผลในวันถัดไป")

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

ขนาดชุด

ขนาดของ ชุดงาน หมายถึงจำนวนหน่วยงานที่จะต้องดำเนินการภายในรอบการผลิตหนึ่งชุด ตัวอย่างเช่น:

  • จำนวนบรรทัดจากไฟล์ที่จะโหลดลงในฐานข้อมูลก่อนที่จะยืนยันธุรกรรม
  • จำนวนข้อความที่จะดึงออกจากคิว
  • จำนวนคำขอที่จะส่งภายในเพย์โหลดเดียว

การใช้งานการประมวลผลแบบกลุ่มทั่วไป

Notable batch scheduling and execution environments

The IBM mainframez/OSoperating system or platform has arguably the most highly refined and evolved set of batch processing facilities owing to its origins, long history, and continuing evolution. Today such systems commonly support hundreds or even thousands of concurrent online and batch tasks within a single operating system image. Technologies that aid concurrent batch and online processing include Job Control Language (JCL), scripting languages such as REXX, Job Entry Subsystem (JES2 and JES3), Workload Manager (WLM), Automatic Restart Manager (ARM), Resource Recovery Services (RRS), IBM Db2 data sharing, Parallel Sysplex, unique performance optimizations such as HiperDispatch, I/O channel architecture, and several others.

The Unix programs cron, at, and batch (today batch is a variant of at) allow for complex scheduling of jobs. Windows has a job scheduler. Most high-performance computingclusters use batch processing to maximize cluster usage.[15]

See also

Notes

  1. การใช้คอมพิวเตอร์ดาวเทียมเพื่อวัตถุประสงค์นี้เริ่มขึ้นก่อนหน้านี้แล้ว เช่น ในระบบเชื่อมต่อโดยตรง ของ IBM รุ่น 7094/7044

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การประมวลผลแบบกลุ่ม

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

ประวัติศาสตร์

คำว่า "การผลิตแบบเป็นชุด" (batch processing) มีที่มาจาก วิธีการจำแนกประเภทการผลิต แบบดั้งเดิม ได้แก่ การผลิตแบบงาน (job production ) ( การผลิตชิ้น เดียว) การผลิตแบบเป็นชุด (batch production) (การผลิตสินค้าหลายชิ้นพร้อมกันในแต่ละขั้นตอน) และ...

ประวัติศาสตร์ยุคแรก

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

ระบบรุ่นที่สาม

คอมพิวเตอร์รุ่นที่สาม [ 3 ] ที่สามารถทำงาน แบบมัลติโปรแกรมมิ่ง เริ่มปรากฏขึ้นในช่วงทศวรรษ 1960 แทนที่จะรันงานแบตช์ทีละงาน ระบบเหล่านี้สามารถรันโปรแกรมแบตช์หลายโปรแกรมพร้อมกันได้ เพื่อให้ระบบทำงานได้มากที่สุดเท่าที่จะเป็นไปได้...