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

อ่าน 2 นาที

ชุดการทำงาน

ชุดการทำงาน เป็นแนวคิดใน วิทยาการคอมพิวเตอร์ ซึ่งกำหนดปริมาณหน่วยความจำที่ กระบวนการ ต้องการในช่วงเวลาที่กำหนด [ 1 ]

ชุดการทำงาน

ชุดการทำงานเป็นแนวคิดในวิทยาการคอมพิวเตอร์ซึ่งกำหนดปริมาณหน่วยความจำที่กระบวนการต้องการในช่วงเวลาที่กำหนด[ 1 ]

คำนิยาม

Peter Denning (1968) นิยาม "ชุดข้อมูลการทำงานของกระบวนการณ เวลาหนึ่งคือ การรวบรวมข้อมูลที่กระบวนการอ้างอิงในช่วงเวลาของกระบวนการ" [ 2 ] โดยทั่วไป หน่วยของข้อมูลดังกล่าวถือเป็นหน้าหน่วยความจำซึ่งแนะนำให้เป็นค่าประมาณของชุดหน้าที่กระบวนการจะเข้าถึงในอนาคต (เช่น ในหน่วยเวลาถัดไป) และโดยเฉพาะอย่างยิ่งแนะนำให้เป็นตัวบ่งชี้ว่าควรเก็บหน้าใดไว้ในหน่วยความจำหลักเพื่อให้สามารถดำเนินการกระบวนการนั้นได้อย่างเต็มที่

เหตุผล

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

แบบจำลองชุดการทำงาน (Working Set Model)ระบุว่า กระบวนการหนึ่งๆ จะอยู่ในหน่วยความจำหลัก (RAM ) ได้ก็ต่อเมื่อหน้าหน่วยความจำทั้งหมดที่กระบวนการนั้นกำลังใช้งานอยู่ (ซึ่งมักประมาณจากหน้าหน่วยความจำที่ใช้งานล่าสุด) สามารถอยู่ในหน่วยความจำหลักได้เท่านั้น แบบจำลองนี้เป็นแบบ "ทั้งหมดหรือไม่มีเลย" หมายความว่า หากจำนวนหน้าหน่วยความจำที่กระบวนการนั้นต้องการใช้เพิ่มขึ้น และไม่มีพื้นที่ว่างในหน่วยความจำหลัก กระบวนการนั้นจะถูกสลับออกจากหน่วยความจำหลักเพื่อปล่อยหน่วยความจำให้กระบวนการอื่นๆ สามารถใช้งานได้

โดยทั่วไปแล้ว คอมพิวเตอร์ ที่มีภาระงานหนักจะมีกระบวนการทำงานที่รอคิวอยู่เป็นจำนวนมาก หากอนุญาตให้กระบวนการทำงานทั้งหมดทำงานในช่วงเวลาการจัดตาราง เวลาเดียวกัน กระบวนการเหล่านั้นจะอ้างอิงถึงหน้าหน่วยความจำมากกว่าจำนวนหน่วยความจำ RAM ที่มีอยู่ ทำให้คอมพิวเตอร์ "ทำงานหนักจนเกินไป " (thrash )

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

กล่าวอีกนัยหนึ่ง กลยุทธ์ชุดการทำงานช่วยป้องกันปัญหาการทำงานหนักเกินไป (thrashing)ในขณะที่ยังคงรักษาความสามารถในการทำงานหลายโปรแกรมพร้อมกันให้สูงที่สุดเท่าที่จะเป็นไปได้ ดังนั้นจึงช่วยเพิ่มประสิทธิภาพการใช้งาน CPU และปริมาณงานให้สูงสุด

การดำเนินการ

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

เพื่อหลีกเลี่ยงภาระในการจัดเก็บรายการหน้าเว็บที่ถูกอ้างอิงล่าสุดkหน้า จึงมักใช้วิธีการติดตามเวลาtของการอ้างอิงครั้งล่าสุด และถือว่าชุดการทำงานคือหน้าเว็บทั้งหมดที่ถูกอ้างอิงภายในช่วงเวลาที่กำหนด

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

ตัวแปร

ชุดการทำงาน (Working set) สามารถแบ่งออกเป็น ชุดการทำงานของ โค้ด (code working set) และชุดการทำงาน ของ ข้อมูล (data working set) การแบ่งแยกนี้มีความสำคัญเมื่อโค้ดและข้อมูลแยกจากกันในระดับที่เกี่ยวข้องของลำดับชั้นหน่วยความจำ เพราะหากชุดการทำงาน ใด ชุดหนึ่งไม่พอดีกับระดับนั้นของลำดับชั้น จะเกิดปัญหา การ ทำงาน หนักเกินไป (thrashing) นอกจากโค้ดและข้อมูลเองแล้ว ในระบบที่มีหน่วยความจำเสมือน (virtual memory) รายการ แผนที่หน่วยความจำ (จากหน่วยความจำเสมือนไปยังหน่วยความจำจริง) ของหน้าต่างๆ ในชุดการทำงานจะต้องถูกแคชไว้ใน บัฟเฟอร์ การค้นหาการแปล (Translation Lookaside Bufferหรือ TLB) เพื่อให้กระบวนการดำเนินไปได้อย่างมีประสิทธิภาพ การแบ่งแยกนี้มีอยู่เนื่องจากโค้ดและข้อมูลถูกแคชไว้ในบล็อกขนาดเล็ก ( แคชไลน์ ) ไม่ใช่ทั้งหน้า แต่การค้นหาที่อยู่จะทำในระดับหน้า ดังนั้นแม้ว่าชุดการทำงานของโค้ดและข้อมูลจะพอดีกับแคช แต่ถ้าชุดการทำงานถูกแบ่งออกเป็นหลายหน้า ชุดการทำงานของที่อยู่เสมือนอาจไม่พอดีกับ TLB ทำให้เกิดการทำงานหนักเกินไปของ TLB (TLB thrashing)

มีแนวคิดที่คล้ายคลึงกับชุดการทำงานสำหรับทรัพยากรที่มีจำกัดอื่นๆ โดยเฉพาะอย่างยิ่งกระบวนการหากชุดกระบวนการต้องการการโต้ตอบบ่อยครั้งระหว่างหลายกระบวนการ ก็แสดงว่าชุดนั้นมีชุดการทำงานของกระบวนการที่ต้องจัดตารางเวลาร่วมกันเพื่อความก้าวหน้า: [ 3 ]

โปรแกรมแบบขนานมีชุดการทำงานของกระบวนการที่ต้องได้รับการจัดตารางเวลา ร่วมกัน (กำหนดให้ดำเนินการพร้อมกัน) เพื่อให้โปรแกรมแบบขนานสามารถดำเนินการต่อไปได้

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

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

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Working_set&oldid=1292451058 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ชุดการทำงาน

ชุดการทำงาน เป็นแนวคิดใน วิทยาการคอมพิวเตอร์ ซึ่งกำหนดปริมาณหน่วยความจำที่ กระบวนการ ต้องการในช่วงเวลาที่กำหนด [ 1 ]

คำนิยาม

Peter Denning (1968) นิยาม "ชุดข้อมูลการทำงานของ กระบวนการ ณ เวลาหนึ่งคือ การรวบรวมข้อมูลที่กระบวนการอ้างอิงในช่วงเวลาของกระบวนการ" [ 2 ] โดยทั่วไป หน่วยของข้อมูลดังกล่าวถือเป็น หน้าหน่วยความจำ ซึ่งแนะนำให้เป็นค่าประมาณของชุดหน้าที่กระบวนการจะเข้าถึงในอนาคต...

เหตุผล

ผลกระทบของการเลือกจำนวนหน้าหน่วยความจำที่จะเก็บไว้ในหน่วยความจำหลัก (ซึ่งแตกต่างจากการ ส่งไป ยังหน่วยความจำเสริม) นั้นสำคัญมาก: หากเก็บหน้าหน่วยความจำของกระบวนการหนึ่งไว้ในหน่วยความจำหลักมากเกินไป กระบวนการอื่นๆ ก็จะพร้อมใช้งานได้น้อยลงในเวลาเดียวกัน...

การดำเนินการ

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