เวลาดำเนินการที่เหลือน้อยที่สุด วิธีเรียนรู้วิธีกำหนดเวลาของงานอย่างถูกต้อง - ผู้เชี่ยวชาญตอบขั้นตอนการคำนวณเวลาที่เหลือ
ทุกสิ่งที่ได้อธิบายไว้ในหลายส่วนก่อนหน้านี้มุ่งเน้นไปที่การทำวิจัยเพิ่มเติมเกี่ยวกับปัญหาของเวลาในกระบวนการที่แท้จริงและในระดับที่น้อยกว่ามากในการใช้งานจริง เพื่อเติมเต็มช่องว่างนี้ให้เราร่างวิธีหนึ่งในการคำนวณเวลาที่เหมาะสมของกระบวนการโดยอาศัยข้อมูลทางสถิติเกี่ยวกับวิวัฒนาการของมัน
พิจารณากระบวนการมิติเดียวซึ่งมีลักษณะเป็นตัวแปรจริง x สมมติว่าการสังเกตพลวัตของกระบวนการดำเนินการในเวลาทางดาราศาสตร์ t ดังนั้น t \u003d t k และ x \u003d x k, k \u003d 1, ... , n เป็นช่วงเวลาการสังเกตคงที่และค่าที่สอดคล้องกันของสถานะของกระบวนการ มีวิธีการทางคณิตศาสตร์หลายวิธีที่ทำให้สามารถสร้างเส้นโค้งที่ผ่านจุด (t k, Xk) หรือเข้าใกล้ด้วยวิธีที่ดีที่สุด ฟังก์ชันที่เป็นผลลัพธ์ x \u003d x (t) ทำให้ในใจเรารู้สึกว่ากระบวนการที่พิจารณาขึ้นอยู่กับการเคลื่อนที่เชิงกลของวัตถุท้องฟ้าดังนั้นสถานะของมันจึงแสดงผ่านเวลาทางดาราศาสตร์ t ข้อสรุปดังกล่าวสามารถนำมาพิจารณาด้วย; หากไม่มีปัญหาใด ๆ เกิดขึ้นอย่างต่อเนื่องเมื่อพยายามคาดเดาแนวทางต่อไปของกระบวนการ สำหรับกระบวนการต่างๆจำนวนมากที่ไม่เกี่ยวข้องโดยตรงกับการเคลื่อนที่เชิงกลของวัตถุท้องฟ้าการคาดการณ์ทางทฤษฎีที่ได้รับโดยใช้ฟังก์ชัน x \u003d x (t) นอกช่วงการสังเกตจะเริ่มเบี่ยงเบนอย่างมีนัยสำคัญจากข้อมูลการทดลองที่ตามมา พวกเขามักจะพยายามอธิบายเหตุผลของความแตกต่างระหว่างทฤษฎีและการทดลองโดยวิธีการประมวลผลที่เลือกไม่สำเร็จ แต่สาระสำคัญของเรื่องอาจไม่อยู่ในนี้
กระบวนการที่น่าสนใจสำหรับเราเกิดขึ้นในจักรวาล แน่นอนเขา "รู้สึก" ถึงผลกระทบของการเคลื่อนไหวของร่างกายสวรรค์ อย่างไรก็ตามผลกระทบนี้อาจกลายเป็น "ไม่เข้มงวด" ไม่ใช่ปัจจัยกำหนด โดยเฉพาะอย่างยิ่งสิ่งนี้สามารถแสดงให้เห็นได้ในความจริงที่ว่าในบางช่วงของการไหลของเวลาทางดาราศาสตร์สถานะของกระบวนการจะไม่เปลี่ยนแปลง ขอให้เราระลึกถึงตัวอย่างที่ให้ไว้ก่อนหน้านี้ด้วยห้องว่างที่ปิดสนิทซึ่งแยกออกจากโลกภายนอก ให้เราปล่อยให้ไลฟ์บินเข้าไปในห้องเพียงคนเดียว ภายในสองสามวันการเปลี่ยนแปลงสถานะของระบบบินในห้องจะขึ้นอยู่กับการเคลื่อนที่ของแมลงวันเนื่องจากไม่สามารถคาดหวังการเปลี่ยนแปลงในสถานะของห้องได้ ในขณะเดียวกันก็ยากที่จะจินตนาการได้ว่าพฤติกรรมของแมลงวันนั้นเชื่อมโยงกับเวลาทางดาราศาสตร์อย่างแน่นหนา
เมื่อพูดนอกเรื่องไปนานแล้วเรามาดูคำอธิบายของอัลกอริทึมเพื่อคำนวณเวลาที่เหมาะสมของกระบวนการ
ในอัลกอริทึมนี้หน่วยของการคำนวณค่าสูงสุดในท้องถิ่นจะถูกเลือกเป็นหน่วยวัดเวลาตามธรรมชาติ นอกจากนี้ยังมีการพิจารณาส่วนที่เป็นไปได้ของสถานะนิ่งของกระบวนการซึ่งตามที่ระบุไว้ก่อนหน้านี้เวลาที่เหมาะสมจะหยุดลง เนื่องจากตัวตนของทั้งสองสถานะสามารถพูดได้เฉพาะภายในขีด จำกัด ของความแม่นยำในการวัดดังนั้นจึงมีการใช้จำนวนบวก e ในอนาคตซึ่งเป็นข้อผิดพลาดในการวัดที่อนุญาต
ดังนั้นข้อมูลอินพุตสำหรับอัลกอริทึมจึงเป็นจำนวนธรรมชาติ n, จำนวนบวก 8, อาร์เรย์ (tk) และ (x k), k \u003d 1, ... , n เพื่อความสะดวกในการเขียนโปรแกรมอัลกอริทึมจะแสดงในรูปแบบของโมดูลที่ดำเนินการตามลำดับสี่โมดูล
โมดูล 1โดยใช้ข้อมูล n, e, tk), (xk) ในกรณีทั่วไปจะสร้างอาร์เรย์ใหม่ 7 \u003d (7+ X \u003d (X t) และอาร์เรย์ประกอบที่เฉพาะเจาะจงมาก P \u003d (?) โดยที่ 1 \u003d 1, ... , t และ t<Сп. Основное назначение этого модуля -- выявление в массиве x k) последовательностей идентичных состояний процесса, сохранение первых элементов в таких последовательностях и удаление всех остальных и, наконец, уменьшение по определенному, правилу исходного интервала наблюдения от t до на сумму тех промежутков времени, в которых процесс протекает стационарно.
โมดูล 1 ประกอบด้วยขั้นตอนต่อไปนี้:
p: \u003d 1, m: \u003d 0, k: \u003d 1
ใน p.p. 1, 2, ตัวนับที่มีค่าเริ่มต้นเฉพาะถูกนำมาใช้:
ใน p.p. 3, 4 ค่าตัวนับเพิ่มขึ้น 1
ตรวจสอบเงื่อนไข k ^ n ถ้าพอใจก็ไปข้อ 6 หรือไปข้อ 11
ตรวจสอบอสมการ x k --x k \u003d e หากมีอยู่ให้ไปที่ข้อ 7 มิฉะนั้นไปที่ข้อ 9
7. tii \u003d ti - (tkl - tk), i \u003d k1, ... , p.
ขั้นตอนนี้หมายความว่าหากค่าของ Xk และ Xk 1 ไม่สามารถแยกออกได้ภายในข้อผิดพลาดเวลาทั้งหมดเริ่มจาก tk ลดลงตามจำนวน tki-tk
p \u003d พี กลับไปที่ข้อ 4
ทีวี \u003d t k; X v: \u003d x k; p \u003d p v \u003d v + l. เช่น องค์ประกอบของอาร์เรย์ T, X, P ถูกสร้างขึ้นและมีการกำหนดค่าถัดไป v
- 10. ใช้ (t k, ... , t n AND (Xk, - X n) เป็นอาร์เรย์เริ่มต้นของมิติ n - k 1 + 1 แล้วกลับไปที่ข้อ 2
- 11. พิมพ์ m, (T), (X,) และ (P,) โดยที่ i \u003d l, ... , m. End.
ให้เราอธิบายความหมายขององค์ประกอบของอาร์เรย์ที่ประกอบ P จากข้อความก่อนหน้านี้ค่าของ pk จะเท่ากับจำนวนขององค์ประกอบเหล่านั้นของอาร์เรย์ (xk) ที่ตามมาทันทีและแตกต่างจาก x pi + ... +, + โดยน้อยกว่า e โปรดทราบด้วยว่า นั่น pi + ... + pm \u003d n
ตัวอย่าง 1. ให้: n \u003d 20, (/ *) \u003d (2, 4, 7, 10, 12, 13, 15, 17, 20, 22, 24, 25,
- 27, 30, 32, 33, 34, 35, 36) และ (x,) \u003d (4, 4, 6, 6, 6, 3, 2, 4, 3, 3, 3, 2, 2, 4, 5 , 5,
- 5, 4, 3) ดูรูปที่ 9, ก.
จากโมดูล 1 เราได้ m \u003d 11
(G) \u003d (2, 3, 4, 6, 8, 11, 1-2, 15, 17, 18, 19); (X,) \u003d (4, 6, 3, 2, 4, 3, 2, 4,5,4,3)
และ (d.) \u003d (2, 4, 1, 1, 1.3, 2, 1.3, 1, 1) ดูรูปที่ 9, ข.
หน่วยที่ 2.ข้อมูลอินพุตเป็นจำนวนธรรมชาติ m เช่นเดียวกับอาร์เรย์ (7+ (X L) \u003d 1, ... , t โมดูลนี้ในอาร์เรย์ (TJ แสดงช่วงเวลา [TM a], 1 \u003d 1 ม. (มล. ตัวอย่างที่ 2 ค่า m, (T b) และ (X,] ถูกยืมมาจากตัวอย่างก่อนหน้านี้หลังจากเรียกใช้โมดูล 2 เราจะได้ ml \u003d 3, m2 \u003d 8, (U,) \u003d (3, 8, 17), (T *) \u003d (3, 4, 6, 8, 11, 12, 15, 17) ดูรูปที่ 9 ข. โมดูล 3.ป้อนข้อมูล ml, m2, (TM n), 1 \u003d 1, ... , ml, (T *), / 2 \u003d 1, ... , rn2 โมดูลนี้ออกแบบมาเพื่อสร้างอาร์เรย์ (m (-g) ตามสูตร โดยที่ TV 6 [TMp, TMn + i] ตัวแปร m คือเวลาของตัวเองที่สร้างขึ้นโดยการเปลี่ยนแปลงในตัวแปร x การวัดตามธรรมชาติคือหน่วยสูงสุดในท้องถิ่น ตัวอย่างที่ 3. ข้อมูลเริ่มต้นสำหรับ T 2) เหมือนกับค่า ml, m2 ITM และในตัวอย่าง 2 .. หลังจากการคำนวณที่เหมาะสมเราจะได้ N \u003d (0; 0.2; 0.6; 1;
1,33; 1,78; 2). โมดูล 4.สร้างผลลัพธ์ของผลลัพธ์โดยสร้างความสอดคล้องระหว่างค่าของ m และองค์ประกอบ x จากอาร์เรย์ (xk) ตัวอย่างที่ 4. จากข้อมูลของตัวอย่างที่ 2 และ 3 ผลลัพธ์ต่อไปนี้ถูกสร้างขึ้นดูรูปที่ 9 ใน: เสื้อ: 0; 0.2; 0.6; หนึ่ง; 1.33; 1.44; x: 6; 3; 2; 4; 3 ท 0 2; ดังนั้นอัลกอริทึมที่ได้รับการพิจารณาทำให้สามารถพัฒนาแนวคิดของเวลาที่เหมาะสมของกระบวนการโดยอาศัยข้อมูลเกี่ยวกับการเปลี่ยนแปลงสถานะของกระบวนการที่บันทึกไว้ในมาตราส่วนเวลาทางดาราศาสตร์ ค่อนข้างชัดเจนว่าคุณสามารถใช้อัลกอริทึมอื่น ๆ ตามตัวอย่างเช่นในการคำนวณลำดับของ minima ในเครื่องหรือลำดับผสมที่ประกอบด้วย maxima และ minima ในเครื่อง เมื่อประมวลผลข้อมูลการทดลองคุณควรลองใช้ตัวเลือกต่างๆ หากด้วยเหตุผลบางประการผู้ทดลองเลือกใช้เวลาที่เหมาะสมอย่างใดอย่างหนึ่งและได้รับอาร์เรย์ (m4 และ (xk) ในเวลาเดียวกันในขั้นต่อไปเขาควรใช้วิธีการทางคณิตศาสตร์เพื่อประมาณคะแนนการทดลอง (m *, x) เส้นโลกโดยประมาณของกระบวนการ x \u003d x (t) การคาดการณ์เส้นนี้เกินช่วงสังเกตเบื้องต้นเขาสามารถคาดการณ์เกี่ยวกับขั้นตอนต่อไปของกระบวนการได้ เป็นเรื่องที่น่าสนใจที่จะกล่าวถึงการทดลองเชิงคำนวณที่มีวัตถุประสงค์เพื่อประเมินโอกาสในการใช้อัลกอริทึมที่เสนอ ข้อมูลเกี่ยวกับการไหลของแม่น้ำในแต่ละปีได้รับการคัดเลือกเป็นวัสดุทดลอง Vakhsh (ทาจิกิสถาน) เมื่อ 40 ปีก่อน ในช่วงเวลาเดียวกันข้อมูลถูกนำมาใช้เกี่ยวกับพลวัตของ Wolf number ซึ่งเป็นดัชนีอินทิกรัลที่ใช้บ่อยที่สุดของกิจกรรมแสงอาทิตย์ หลังเป็นพื้นฐานสำหรับการพัฒนาเวลาที่เหมาะสมของกระบวนการกิจกรรมแสงอาทิตย์ เมื่อถึงเวลาใหม่ข้อมูลเกี่ยวกับต้นทุนของแม่น้ำถูกเปลี่ยน Vakhsh จากนั้นในช่วงการสังเกตการณ์จะมีการให้การพึ่งพาทางทฤษฎีของอัตราการไหลของน้ำตามฟังก์ชันของเวลาที่เหมาะสมของกิจกรรมแสงอาทิตย์ คุณลักษณะเฉพาะของกำหนดการที่เกิดขึ้นคือพฤติกรรมเกือบเป็นระยะของต้นทุนสูงสุดและต่ำสุด อย่างไรก็ตามต้นทุนไม่คงที่ อัลกอริทึมรุ่นก่อนของสวิตช์เป็นอัลกอริทึมที่เหลือเวลาน้อยที่สุด ตามอัลกอริทึมนี้ตัวกำหนดตารางเวลาจะเลือกกระบวนการที่มีเวลาดำเนินการเหลือน้อยที่สุดในแต่ละครั้ง ในกรณีนี้จำเป็นต้องทราบเวลาดำเนินงานล่วงหน้าด้วย เมื่องานใหม่มาถึงเวลาดำเนินการทั้งหมดจะถูกเปรียบเทียบกับเวลาดำเนินการที่เหลืออยู่ของงานปัจจุบัน ถ้าเวลาดำเนินการของงานใหม่สั้นลงกระบวนการปัจจุบันจะถูกระงับและการควบคุมจะถูกโอนไปยังงานใหม่ โครงร่างนี้ช่วยให้คุณตอบสนองคำขอสั้น ๆ ได้อย่างรวดเร็ว การวางแผนสามชั้น ระบบแบทช์ช่วยให้คุณสามารถใช้การวางแผนสามชั้นได้ดังแสดงในรูป เมื่องานใหม่เข้าสู่ระบบงานเหล่านั้นจะถูกวางไว้ในคิวที่จัดเก็บไว้ในดิสก์ก่อน ทางเข้า ผู้วางแผนการเข้าถึง
เลือกงานและโอนไปยังระบบ งานที่เหลือยังคงอยู่ในคิว ทันทีที่งานเข้าสู่ระบบกระบวนการที่เกี่ยวข้องจะถูกสร้างขึ้นและสามารถเข้าสู่การต่อสู้เพื่อเข้าถึงโปรเซสเซอร์ได้ทันที อย่างไรก็ตามสถานการณ์เป็นไปได้เมื่อมีกระบวนการมากเกินไปและทั้งหมดไม่พอดีกับหน่วยความจำดังนั้นบางส่วนจะถูกเพจออกไปยังดิสก์ ระดับที่สองของการจัดกำหนดการเป็นตัวกำหนดว่ากระบวนการใดที่สามารถเก็บไว้ในหน่วยความจำและสามารถจัดเก็บไว้ในดิสก์ เท่านี้ก็เสร็จแล้ว ตัวกำหนดตารางเวลาหน่วยความจำ
. ตัวกำหนดตารางเวลาหน่วยความจำจะดูกระบวนการบนดิสก์เป็นระยะเพื่อตัดสินใจว่าจะย้ายไปยังหน่วยความจำใด เกณฑ์ที่ตัวกำหนดตารางเวลาใช้มีดังต่อไปนี้: 1. นานแค่ไหนแล้วที่กระบวนการล้างลงดิสก์หรือโหลดจากดิสก์? 2. กระบวนการนี้ใช้โปรเซสเซอร์นานแค่ไหน? 3. ขนาดของกระบวนการคืออะไร (กระบวนการขนาดเล็กไม่รบกวน)? 4. กระบวนการมีความสำคัญอย่างไร? ระดับที่สามของการจัดกำหนดการมีหน้าที่ในการเข้าถึงกระบวนการที่พร้อมใช้งานไปยังโปรเซสเซอร์ เมื่อมีการพูดถึง "นักวางแผน" ก็มักจะ ตัวกำหนดตารางเวลาโปรเซสเซอร์
... ตัวกำหนดตารางเวลานี้ใช้อัลกอริทึมใด ๆ ที่เหมาะสมกับสถานการณ์โดยมีหรือไม่มีการหยุดชะงัก เราได้พิจารณาอัลกอริทึมเหล่านี้บางส่วนแล้วและเราจะทำความคุ้นเคยกับคนอื่น ๆ การวางแผนในระบบโต้ตอบ การวางแผนวงจร หนึ่งในอัลกอริทึมที่เก่าแก่ที่สุดง่ายที่สุดยุติธรรมที่สุดและใช้บ่อยที่สุดคืออัลกอริทึมการตั้งเวลาแบบวนรอบ แต่ละกระบวนการจะกำหนดช่วงเวลาของโปรเซสเซอร์ที่กำหนดซึ่งเรียกว่าไทม์สไลซ์ หากกระบวนการยังคงทำงานอยู่เมื่อสิ้นสุดส่วนเวลากระบวนการจะถูกขัดจังหวะและการควบคุมจะถูกโอนไปยังกระบวนการอื่น แน่นอนว่าหากกระบวนการปิดกั้นหรือออกก่อนเวลาการเปลี่ยนการควบคุมจะเกิดขึ้นในขณะนั้น การใช้การจัดตารางเวลาแบบ Round-Robin นั้นตรงไปตรงมา ตัวกำหนดตารางเวลาต้องการเพียงเพื่อให้รายการของกระบวนการพร้อมใช้งาน เมื่อกระบวนการหมดเวลาที่ จำกัด กระบวนการจะถูกส่งไปยังจุดสิ้นสุดของรายการ จุดเดียวที่น่าสนใจของอัลกอริทึมนี้คือความยาวควอนตัม การเปลี่ยนจากกระบวนการหนึ่งไปสู่อีกกระบวนการหนึ่งต้องใช้เวลาพอสมควร - คุณต้องบันทึกและโหลดรีจิสเตอร์และการ์ดหน่วยความจำอัปเดตตารางและรายการบันทึกและโหลดแคชหน่วยความจำใหม่เป็นต้นสรุปได้ดังนี้ควอนตัมที่เล็กเกินไปจะนำไปสู่การสลับกระบวนการบ่อยครั้ง ประสิทธิภาพ แต่ควอนตัมที่มีขนาดใหญ่เกินไปอาจส่งผลให้ตอบสนองต่อข้อความโต้ตอบสั้น ๆ ได้ช้า ค่าควอนตัมประมาณ 2 0-5 0 มิลลิวินาทีมักเป็นการประนีประนอมที่สมเหตุสมผล การวางแผนลำดับความสำคัญ อัลกอริธึมการจัดตารางเวลาแบบวัฏจักรมีสมมติฐานที่สำคัญว่ากระบวนการทั้งหมดมีค่าเท่ากัน ในสถานการณ์คอมพิวเตอร์ที่มีผู้ใช้จำนวนมากอาจไม่เป็นเช่นนั้น ตัวอย่างเช่นที่มหาวิทยาลัยอันดับแรกควรรับใช้คณบดีจากนั้นเป็นศาสตราจารย์เลขานุการพนักงานทำความสะอาดและเฉพาะนักศึกษาเท่านั้น ความจำเป็นในการคำนึงถึงปัจจัยภายนอกดังกล่าวนำไปสู่การวางแผนลำดับความสำคัญ แนวคิดพื้นฐานนั้นง่ายมาก: แต่ละกระบวนการจะถูกกำหนดลำดับความสำคัญและการควบคุมจะถูกโอนไปยังกระบวนการพร้อมรันที่มีลำดับความสำคัญสูงสุด หลายคิว ตัวกำหนดตารางเวลาลำดับความสำคัญลำดับแรกถูกนำไปใช้ในระบบแบ่งเวลาที่เข้ากันได้ (CTSS) ปัญหาหลักของระบบ CTSS คือการสลับกระบวนการช้าเกินไปเนื่องจากมีเพียงกระบวนการเดียวในหน่วยความจำของ IBM 7094 สวิตช์แต่ละตัวหมายถึงการทิ้งกระบวนการปัจจุบันไปยังดิสก์ และอ่านกระบวนการใหม่จากดิสก์ นักพัฒนา CTSS ตระหนักได้อย่างรวดเร็วว่าประสิทธิภาพจะสูงขึ้นหากกระบวนการที่ถูก จำกัด โดยโปรเซสเซอร์ได้รับการจัดสรรเวลาที่มากขึ้นกว่าการให้ชิ้นเล็ก ๆ แต่บ่อยครั้ง ในแง่หนึ่งสิ่งนี้จะลดจำนวนการแลกเปลี่ยนจากหน่วยความจำไปยังดิสก์และในอีกด้านหนึ่งจะทำให้เวลาตอบสนองลดลงอย่างที่เราได้เห็นไปแล้ว ด้วยเหตุนี้จึงมีการพัฒนาโซลูชันที่มีคลาสลำดับความสำคัญ กระบวนการของคลาสที่มีลำดับความสำคัญสูงสุดได้รับการจัดสรรหนึ่งควอนตัมกระบวนการของคลาสถัดไป - ควอนต้าสองควอนตาถัดไป - ควอนต้าสี่ตัวและอื่น ๆ เมื่อกระบวนการใช้เวลาทั้งหมดที่กำหนดไว้มันจะย้ายไปที่คลาสล่าง ตัวอย่างเช่นพิจารณากระบวนการที่ต้องทำการคำนวณสำหรับ 100 ควอนต้า ขั้นแรกมันจะได้รับหนึ่งควอนตัมจากนั้นจะถูกสูบไปที่ดิสก์ ครั้งต่อไปเขาจะได้รับ 2 ควอนต้าจากนั้นเป็น 4, 8,16, 32, 64 แม้ว่าเขาจะใช้เพียง 37 จาก 64 ในกรณีนี้เขาจะต้องการการถ่ายโอนเพียง 7 ครั้ง (รวมถึงการโหลดครั้งแรก) แทนที่จะเป็น 100 ซึ่งจำเป็นหากใช้อัลกอริทึมแบบวนรอบ นอกจากนี้เมื่อคุณดำดิ่งลงในคิวลำดับความสำคัญกระบวนการจะเริ่มน้อยลงและบ่อยครั้งน้อยลงทำให้โปรเซสเซอร์เหลือกระบวนการที่สั้นลง "กระบวนการที่สั้นที่สุดคือขั้นตอนต่อไป" เนื่องจากอัลกอริทึมงานแรกที่สั้นที่สุดช่วยลดเวลาตอบสนองโดยเฉลี่ยในระบบประมวลผลแบบแบตช์เราจึงต้องการใช้ในระบบโต้ตอบเช่นกัน ในระดับหนึ่งสิ่งนี้เป็นไปได้ กระบวนการโต้ตอบส่วนใหญ่มักเป็นไปตามรูปแบบ "กำลังรอคำสั่งเรียกใช้คำสั่งรอคำสั่งเรียกใช้คำสั่ง ... " เมื่อพิจารณาการดำเนินการของแต่ละคำสั่งเป็นงานแยกกันคุณสามารถลดเวลาตอบสนองโดยรวมโดยเฉลี่ยให้เหลือน้อยที่สุดโดยเริ่มงานที่สั้นที่สุดก่อน ปัญหาเดียวคือ ในการหาว่ากระบวนการใดที่รอดำเนินการสั้นที่สุด วิธีการหนึ่งขึ้นอยู่กับการประมาณความยาวของกระบวนการตามพฤติกรรมก่อนหน้าของกระบวนการ ขั้นตอนนี้เริ่มต้นด้วยเวลาโดยประมาณที่สั้นที่สุด สมมติว่าเวลาโดยประมาณของการดำเนินการคำสั่งคือ T 0 และเวลาโดยประมาณของการเรียกใช้งานครั้งต่อไปคือ T 1 คุณสามารถปรับปรุงเวลาโดยประมาณได้โดยการหาผลรวมถ่วงน้ำหนักของคูณเหล่านี้ aT 0 + (1 - a) T 1 ด้วยการเลือกค่าที่เหมาะสมสำหรับ a เราสามารถทำให้อัลกอริทึมการประมาณค่าลืมไปได้อย่างรวดเร็วเกี่ยวกับการเปิดตัวก่อนหน้านี้หรือในทางกลับกันจำได้เป็นเวลานาน รับ a \u003d 1/2 เราจะได้ชุดค่าประมาณ: ท 0, ท 0/2 + ท 1/2, ท 0/4 + ท 1/4 + ท 2/2, ท 0/8 + ท 1/8 + ท 2/4 + ท 3/2 หลังจากเปิดตัวสามครั้งน้ำหนัก T 0 ในค่าประมาณจะลดลงเหลือ 1/8 วิธีการประมาณค่าถัดไปในอนุกรมโดยใช้ค่าเฉลี่ยถ่วงน้ำหนักของค่าก่อนหน้าและการประมาณก่อนหน้ามักเรียกว่าอายุ วิธีนี้ใช้ได้ในหลาย ๆ สถานการณ์ที่จำเป็นต้องมีการประเมินจากค่าก่อนหน้า วิธีที่ง่ายที่สุดในการตระหนักถึงความชราคือ a \u003d 1/2 ในทุกขั้นตอนที่คุณต้องการ เพิ่มค่าใหม่ให้กับค่าประมาณปัจจุบันและลดผลรวมลงครึ่งหนึ่ง (โดยเลื่อนไปทางขวา 1 บิต) รับประกันการวางแผน วิธีการที่แตกต่างกันโดยพื้นฐานในการวางแผนคือการให้คำมั่นสัญญาที่แท้จริงกับผู้ใช้แล้วทำให้บรรลุผล นี่คือคำสัญญาหนึ่งที่ทำง่ายและง่ายต่อการปฏิบัติ: หากผู้ใช้ n ใช้โปรเซสเซอร์ร่วมกับคุณคุณจะได้รับพลังโปรเซสเซอร์ 1 / n และบนระบบที่มีผู้ใช้หนึ่งคนและโปรเซสเซอร์ที่รัน n แต่ละตัวจะได้รับ 1 / n รอบตัวประมวลผล ในการส่งมอบตามสัญญานี้ระบบจะต้องติดตามการจัดสรร CPU ระหว่างกระบวนการนับจากเวลาที่แต่ละกระบวนการถูกสร้างขึ้น จากนั้นระบบจะคำนวณจำนวนทรัพยากรตัวประมวลผลที่กระบวนการมีสิทธิ์เช่นเวลานับตั้งแต่สร้างหารด้วย n ตอนนี้คุณสามารถคำนวณอัตราส่วนของเวลาที่กำหนดให้กับกระบวนการกับเวลาที่ได้รับสิทธิ์ ค่าผลลัพธ์ 0.5 หมายความว่ามีเพียงครึ่งหนึ่งของสิ่งที่ควรได้รับการจัดสรรให้กับกระบวนการและ 2.0 หมายความว่ากระบวนการได้รับสองเท่าเท่าที่ควร จากนั้นกระบวนการจะเริ่มต้นด้วยอัตราส่วนที่น้อยที่สุดจนถึง มันจะไม่ใหญ่ไปกว่าเพื่อนบ้านที่ใกล้ที่สุด การวางแผนลอตเตอรี่ อัลกอริทึมจะขึ้นอยู่กับการแจกจ่ายตั๋วลอตเตอรีไปยังกระบวนการเข้าถึงทรัพยากรต่างๆรวมถึงโปรเซสเซอร์ เมื่อผู้วางแผนจำเป็นต้องตัดสินใจตั๋วลอตเตอรีจะถูกเลือกแบบสุ่มและผู้ถือบัตรจะสามารถเข้าถึงทรัพยากรได้ ในแง่ของการเข้าถึง CPU "ลอตเตอรี" สามารถเกิดขึ้นได้ 50 ครั้งต่อวินาทีและผู้ชนะจะได้รับเวลา CPU 20ms กระบวนการที่สำคัญกว่าสามารถได้รับตั๋วเพิ่มเติมเพื่อเพิ่มโอกาสในการชนะ หากมีเพียง 100 ใบและ 20 ใบในกระบวนการเดียวจะได้รับ 20% ของเวลาประมวลผล ซึ่งแตกต่างจากผู้วางแผนลำดับความสำคัญซึ่งเป็นเรื่องยากมากที่จะประมาณว่าอะไรคือลำดับความสำคัญ 40 หมายถึงในการวางแผนลอตเตอรีทุกอย่างชัดเจน แต่ละกระบวนการจะได้รับเปอร์เซ็นต์ของทรัพยากรโดยประมาณเท่ากับเปอร์เซ็นต์ของตั๋วที่มี การตั้งเวลาลอตเตอรี่มีคุณสมบัติที่น่าสนใจหลายประการ ตัวอย่างเช่นหากกระบวนการได้รับตั๋วหลายใบระหว่างการสร้างดังนั้นในการจับสลากครั้งต่อไปโอกาสในการชนะจะแปรผันตามจำนวนตั๋ว กระบวนการโต้ตอบสามารถแลกเปลี่ยนตั๋วได้ตามต้องการ ตัวอย่างเช่นหากกระบวนการไคลเอ็นต์ส่งข้อความไปยังกระบวนการเซิร์ฟเวอร์แล้วบล็อกก็สามารถส่งตั๋วทั้งหมดไปยังกระบวนการเซิร์ฟเวอร์เพื่อเพิ่มโอกาสในการเริ่มต้นเซิร์ฟเวอร์ เมื่อออกจากกระบวนการเซิร์ฟเวอร์ก็สามารถคืนตั๋วทั้งหมดกลับได้ การวางแผนอย่างยุติธรรม จนถึงตอนนี้เราได้สันนิษฐานว่าแต่ละกระบวนการถูกควบคุมโดยไม่คำนึงว่าใครจะเป็นหัวหน้า ดังนั้นหากผู้ใช้ 1 สร้าง 9 โปรเซสและผู้ใช้ 2 สร้าง 1 โปรเซสจากนั้นใช้การตั้งเวลาแบบวนรอบหรือในกรณีที่มีลำดับความสำคัญเท่ากันผู้ใช้ 1 จะได้รับ 90% ของโปรเซสเซอร์และผู้ใช้ 2 เท่านั้น 10 เพื่อหลีกเลี่ยงสถานการณ์ดังกล่าวระบบบางระบบให้ความสนใจกับเจ้าของกระบวนการก่อนกำหนดเวลา ในรูปแบบดังกล่าวผู้ใช้แต่ละคนจะได้รับส่วนแบ่งของโปรเซสเซอร์และตัวกำหนดตารางเวลาจะเลือกกระบวนการตามข้อเท็จจริงนี้ หากในตัวอย่างของเราผู้ใช้แต่ละคนมี สัญญา 50% ของโปรเซสเซอร์จะได้รับ 50% ของโปรเซสเซอร์โดยไม่คำนึงถึงจำนวนกระบวนการ การตั้งเวลาในระบบเรียลไทม์ เวลามีบทบาทสำคัญในระบบเรียลไทม์ บ่อยครั้งที่อุปกรณ์ทางกายภาพภายนอกหนึ่งตัวหรือมากกว่านั้นสร้างสัญญาณอินพุตและคอมพิวเตอร์จะต้องตอบสนองต่ออุปกรณ์เหล่านั้นอย่างเพียงพอภายในระยะเวลาที่กำหนด ระบบเรียลไทม์แบ่งออกเป็น ระบบเรียลไทม์อย่างหนัก
ซึ่งหมายความว่ามีกำหนดเวลาที่แน่นอนสำหรับแต่ละงาน (ต้องปฏิบัติตาม) และ ระบบเรียลไทม์ที่ยืดหยุ่น
ซึ่งการละเมิดตารางเวลาเป็นสิ่งที่ไม่พึงปรารถนา แต่ยอมรับได้ ในทั้งสองกรณีโปรแกรมจะแบ่งออกเป็นหลายกระบวนการซึ่งแต่ละกระบวนการสามารถคาดเดาได้ กระบวนการเหล่านี้ส่วนใหญ่มักสั้นและเสร็จสิ้นภายในหนึ่งวินาที เมื่อสัญญาณภายนอกปรากฏขึ้นผู้วางแผนจะต้องแน่ใจว่าเป็นไปตามกำหนดเวลา เหตุการณ์ภายนอกที่ระบบต้องตอบสนองสามารถแบ่งออกเป็น เป็นระยะ(เกิดขึ้นในช่วงเวลาปกติ) และ ไม่เป็นระยะ(เกิดขึ้นอย่างคาดเดาไม่ได้) อาจมีเหตุการณ์หลายช่วงเวลาที่ระบบต้องดำเนินการ ขึ้นอยู่กับเวลาที่ใช้ในการประมวลผลแต่ละเหตุการณ์ระบบอาจไม่สามารถประมวลผลเหตุการณ์ทั้งหมดได้อย่างทันท่วงที ข้อมูลที่คล้ายกัน บทนำ วัตถุประสงค์ของการประชุมเชิงปฏิบัติการเกี่ยวกับองค์กรการผลิตคือการขยายและเพิ่มพูนความรู้เชิงทฤษฎีเพื่อปลูกฝังทักษะที่จำเป็นในการแก้ปัญหาที่พบบ่อยที่สุดในทางปฏิบัติเกี่ยวกับองค์กรและการวางแผนการผลิต การประชุมเชิงปฏิบัติการประกอบด้วยงานสำหรับส่วนหลักของหลักสูตร ในตอนต้นของแต่ละหัวข้อจะมีการนำเสนอคำแนะนำเกี่ยวกับระเบียบวิธีและข้อมูลเชิงทฤษฎีโดยย่องานทั่วไปพร้อมโซลูชันและงานสำหรับโซลูชันอิสระจะถูกนำเสนอ การมีอยู่ในแต่ละหัวข้อของแนวทางและข้อมูลเชิงทฤษฎีโดยย่อช่วยให้คุณสามารถใช้เวิร์กชอปนี้ในหลักสูตรการติดต่อได้ การคำนวณระยะเวลาของรอบการผลิต ระยะเวลาของวงจรการผลิตทำหน้าที่เป็นตัวบ่งชี้ประสิทธิภาพของกระบวนการผลิต วงจรการผลิต - ระยะเวลาการอยู่ของวัตถุที่ใช้แรงงานในกระบวนการผลิตตั้งแต่ช่วงเปิดตัววัตถุดิบจนถึงการเปิดตัวผลิตภัณฑ์สำเร็จรูป วงจรการผลิตประกอบด้วย เวลาทำงาน, ในระหว่างที่ใช้แรงงานและ เวลาพัก... การแบ่งขึ้นอยู่กับสาเหตุที่ทำให้เกิดสามารถแบ่งได้: 1) บน ธรรมชาติ หรือเทคโนโลยี - เนื่องจากลักษณะของผลิตภัณฑ์ 2) องค์กร (แบ่งระหว่างกะ) ระยะเวลาของวงจรการผลิตประกอบด้วยส่วนประกอบต่อไปนี้: วงจร T \u003d t เหล่านั้น + t การกิน + t tr + t k.k. + t ม. + t m.ts. ที่ไหน t เหล่านั้น - เวลาของการดำเนินการทางเทคโนโลยี t กิน -เวลาของกระบวนการทางธรรมชาติ (การทำให้แห้งการทำให้เย็น ฯลฯ ); เสื้อ tr -เวลาขนส่งสิ่งของแรงงาน t c.c. -เวลาควบคุมคุณภาพ เสื้อ m.o -เวลานอนระหว่างผ่าตัด เสื้อ m.ts. -เวลาที่ใช้ในคลังสินค้าระหว่างแผนก (t สาม t k.k. สามารถใช้ร่วมกับ t ม. โอ). การคำนวณระยะเวลาของรอบการผลิตขึ้นอยู่กับประเภทของการผลิต ในการผลิตจำนวนมากระยะเวลาของรอบการผลิตจะพิจารณาจากเวลาที่ผลิตภัณฑ์อยู่ในสตรีมเช่น วงจร T \u003d t ใน M, ที่ไหน t ใน - รอบการเปิดตัว; ม - จำนวนสถานที่ทำงาน ภายใต้ ชั้นเชิงในการปลดปล่อย ควรเข้าใจช่วงเวลาระหว่างการเปิดตัวผลิตภัณฑ์ที่ผลิตหนึ่งและผลิตภัณฑ์ถัดไป รอบการปลดปล่อยถูกกำหนดโดยสูตร เสื้อใน \u003d Teff / V, ที่ไหน Teff- เงินที่มีผลบังคับใช้ของเวลาของคนงานสำหรับช่วงเวลาการเรียกเก็บเงิน (กะวันปี) ใน - ปริมาณการผลิตในช่วงเวลาเดียวกัน (ในหน่วยธรรมชาติ) ตัวอย่าง: T cm \u003d 8 ชั่วโมง \u003d 480 นาที; T เลน \u003d 30 นาที → Teff \u003d 480 - - 30 \u003d 450 นาที B \u003d 225 ชิ้น; → t h \u003d 450/225 \u003d 2 นาที ในการผลิตแบบเป็นกลุ่มซึ่งมีการประมวลผลเป็นแบตช์ระยะเวลาของวงจรเทคโนโลยีจะไม่ได้กำหนดตามหน่วยการผลิต แต่สำหรับทั้งชุด ยิ่งไปกว่านั้นขึ้นอยู่กับวิธีการเปิดตัวชุดงานในการผลิตเราจะได้รับรอบเวลาที่แตกต่างกัน มีสามวิธีในการเคลื่อนย้ายผลิตภัณฑ์ในการผลิต: ลำดับขนานและผสม (อนุกรมขนาน) ผม... เมื่อไหร่ สม่ำเสมอ ชิ้นส่วนที่เคลื่อนไหวแต่ละการดำเนินการที่ตามมาจะเริ่มขึ้นหลังจากส่วนก่อนหน้านี้สิ้นสุดลงเท่านั้น รอบเวลาสำหรับการเคลื่อนที่ตามลำดับของชิ้นส่วนจะเท่ากับ ที่ไหน n
- จำนวนชิ้นส่วนของชุดงานที่กำลังดำเนินการ ทีชิ้น ผม - อัตราชิ้นเวลาสำหรับการดำเนินการ ค - จำนวนงานต่อ ผมการดำเนินการ; ม - จำนวนการดำเนินการของกระบวนการทางเทคโนโลยี ชุดผลิตภัณฑ์ประกอบด้วย 5 ชิ้น แบตช์จะถูกส่งต่อตามลำดับผ่าน 4 การดำเนินการ ระยะเวลาของการดำเนินการครั้งแรก - 10 นาทีครั้งที่สอง - 20 นาทีครั้งที่สาม - 10 นาทีที่สี่ - 30 นาที (รูปที่ 1) ภาพที่ 1 ที รอบ \u003d ที สุดท้าย \u003d 5 (10 + 20 + 10 + 30) \u003d 350 นาที การเคลื่อนที่ตามลำดับของชิ้นส่วนมีข้อดีคือช่วยให้อุปกรณ์ทำงานได้โดยไม่ต้องหยุดทำงาน แต่ข้อเสียคือระยะเวลาของวงจรการผลิตในกรณีนี้จะยิ่งใหญ่ที่สุด นอกจากนี้ยังมีการสร้างสต็อกชิ้นส่วนจำนวนมากในสถานที่ทำงานซึ่งต้องใช้พื้นที่การผลิตเพิ่มเติม II... เมื่อไหร่ ขนาน การเคลื่อนย้ายชุดงานแต่ละชิ้นส่วนจะไม่เกิดความล่าช้าในสถานที่ทำงาน แต่จะโอนทีละชิ้นไปยังการดำเนินการถัดไปทันทีโดยไม่ต้องรอให้การประมวลผลชุดงานทั้งหมดเสร็จ ดังนั้นด้วยการเคลื่อนที่แบบขนานของชุดชิ้นส่วนในแต่ละสถานที่ทำงานการดำเนินการต่างๆจะดำเนินการพร้อมกันในส่วนต่างๆของชุดงานเดียวกัน ระยะเวลาของการประมวลผลชุดงานที่มีการเคลื่อนไหวแบบขนานของผลิตภัณฑ์ลดลงอย่างมาก: ที่ไหน n - จำนวนชิ้นส่วนใน ชุดโอน (ชุดการขนส่ง) เช่น จำนวนผลิตภัณฑ์พร้อมกันที่ถ่ายโอนจากการดำเนินการหนึ่งไปยังอีก Dl - วงจรการทำงานที่ยาวที่สุด ด้วยการเปิดตัวชุดผลิตภัณฑ์แบบคู่ขนานการประมวลผลชิ้นส่วนของชุดงานทั้งหมดจะดำเนินการอย่างต่อเนื่องเฉพาะในสถานที่ทำงานเหล่านั้นที่มีการดำเนินงานที่ยาวนานตามด้วยชิ้นส่วนสั้น ๆ ในกรณีที่การดำเนินการสั้น ๆ ตามยาวเช่น อีกต่อไป (ในตัวอย่างของเราการดำเนินการที่สาม) การดำเนินการเหล่านี้จะดำเนินการเป็นระยะ ๆ เช่น อุปกรณ์ที่ไม่ได้ใช้งาน ในที่นี้ไม่สามารถประมวลผลชุดชิ้นส่วนได้ทันทีโดยไม่มีความล่าช้าเนื่องจากการดำเนินการก่อนหน้านี้ (ยาว) ไม่อนุญาตให้ทำเช่นนี้ ในตัวอย่างของเรา: n= 5, t 1 = 10; t 2 = 20; t 3 = 10; t 4 = 30; จาก= 1. ที ไอน้ำ \u003d 1 (10 + 20 + 10 + 30) + (5-1) 30 \u003d 70 + 120 \u003d 190 นาที พิจารณาโครงร่างของการเคลื่อนที่แบบขนานของชิ้นส่วน (รูปที่ 2): รูปที่ 2 สาม... หากต้องการกำจัดการหยุดชะงักในการประมวลผลของแต่ละส่วนของชุดงานในการดำเนินการทั้งหมดให้ใช้ ขนานอนุกรมหรือ ผสมวิธีการเริ่มต้นซึ่งชิ้นส่วน (หลังการประมวลผล) จะถูกโอนไปยังการดำเนินการถัดไปทีละชิ้นหรือในรูปแบบของงานค้าง "การขนส่ง" (ชิ้นละหลายชิ้น) เพื่อให้การดำเนินการดำเนินการไม่ถูกขัดจังหวะในที่ทำงานใด ๆ ในวิธีผสมความต่อเนื่องของการประมวลผลจะถูกนำมาจากวิธีการตามลำดับและจากวิธีการแบบขนานการเปลี่ยนชิ้นส่วนจากการดำเนินการไปเป็นการดำเนินการทันทีหลังจากการประมวลผล ด้วยวิธีผสมในการเปิดตัวสู่การผลิตรอบเวลาจะถูกกำหนดโดยสูตร ที่ไหนคร. - รอบการทำงานที่สั้นที่สุด (จากการดำเนินการที่อยู่ติดกันแต่ละคู่) ม-1 –
จำนวนการจัดตำแหน่ง หากการดำเนินการที่ตามมายาวกว่าการดำเนินการก่อนหน้านี้หรือเท่ากับการดำเนินการตามเวลาการดำเนินการนี้จะเริ่มต้นทีละรายการทันทีหลังจากประมวลผลส่วนแรกในการดำเนินการก่อนหน้านี้ หากในทางตรงกันข้ามการดำเนินการที่ตามมาสั้นกว่าการทำงานก่อนหน้านี้แสดงว่ามีช่องว่างในการส่งชิ้นส่วน เพื่อป้องกันไม่ให้มีความจำเป็นต้องสะสมปริมาณสำรองในการขนส่งซึ่งเพียงพอที่จะมั่นใจได้ว่าจะมีการทำงานในการดำเนินการในภายหลัง ในการหาจุดนี้บนกราฟในทางปฏิบัติจำเป็นต้องถ่ายโอนรายละเอียดสุดท้ายของแบทช์และเลื่อนระยะเวลาของการดำเนินการไปทางขวา เวลาในการประมวลผลสำหรับส่วนอื่น ๆ ทั้งหมดของชุดงานจะแสดงไว้ทางด้านซ้าย จุดเริ่มต้นของการประมวลผลส่วนแรกจะแสดงช่วงเวลาที่ควรโอนย้ายการสำรองจากการดำเนินการก่อนหน้านี้ หากการดำเนินการที่อยู่ติดกันมีระยะเวลาเท่ากันจะมีเพียงหนึ่งการดำเนินการที่สั้นหรือยาว (รูปที่ 3) รูปที่ 3 ที คู่สุดท้าย \u003d 5 (10 + 20 + 10 + 30) - (5-1) (10 + 10 + 10) \u003d 350-120 \u003d 230 นาที วิธีหลักในการลดระยะเวลาของวงจรการผลิตคือ: 1) การลดความเข้มของแรงงานในการผลิตผลิตภัณฑ์โดยการปรับปรุงความสามารถในการผลิตของโครงสร้างที่ผลิตโดยใช้คอมพิวเตอร์แนะนำกระบวนการทางเทคโนโลยีขั้นสูง 2) การจัดระเบียบกระบวนการแรงงานอย่างมีเหตุผลการจัดเตรียมและการบำรุงรักษาสถานที่ทำงานบนพื้นฐานของความเชี่ยวชาญและความร่วมมือการใช้เครื่องจักรกลและระบบอัตโนมัติในการผลิต 3) การลดการหยุดพักตามแผนและไม่ได้วางแผนต่างๆในการทำงานโดยอาศัยการใช้หลักการขององค์กรทางวิทยาศาสตร์ของกระบวนการผลิตอย่างมีเหตุผล 4) การเร่งความเร็วของปฏิกิริยาอันเป็นผลมาจากการเพิ่มความดันอุณหภูมิการเปลี่ยนไปใช้กระบวนการต่อเนื่อง ฯลฯ 5) การปรับปรุงกระบวนการขนส่งคลังสินค้าและการควบคุมและการจัดเวลาให้สอดคล้องกับกระบวนการแปรรูปและการประกอบ การลดระยะเวลาของวงจรการผลิตเป็นหนึ่งในงานที่จริงจังในการจัดระเบียบการผลิตเนื่องจาก ส่งผลต่อการหมุนเวียนของสินทรัพย์หมุนเวียนลดต้นทุนแรงงานลดพื้นที่จัดเก็บความจำเป็นในการขนส่ง ฯลฯ งาน 1 กำหนดระยะเวลาของรอบการประมวลผลของ 50 ส่วนในประเภทการเคลื่อนที่ตามลำดับขนานและขนานตามลำดับในกระบวนการผลิต การประมวลผลชิ้นส่วนประกอบด้วยการดำเนินการห้าครั้งซึ่งระยะเวลาคือขั้นต่ำตามลำดับ: t 1 =2; t 2 =3; t 3 =4; t 4 =1; t 5 \u003d 3. การดำเนินการที่สองดำเนินการกับเครื่องสองเครื่องและเครื่องอื่น ๆ ในเครื่องเดียว ขนาดของชุดโอนคือ 4 ชิ้น 2 กำหนดระยะเวลาของวงจรการประมวลผลของ 50 ส่วนด้วยประเภทการเคลื่อนที่แบบลำดับขนานและแบบขนานในกระบวนการผลิต การประมวลผลชิ้นส่วนประกอบด้วยการดำเนินการสี่อย่างซึ่งระยะเวลาคือขั้นต่ำตามลำดับ: t 1 =1; t 2 =4; t 3 =2; t 4 \u003d 6. การดำเนินการที่สี่ดำเนินการกับเครื่องสองเครื่องและเครื่องอื่น ๆ ในเครื่องเดียว ขนาดของชุดโอนคือ 5 ชิ้น 3 ชุดชิ้นส่วนจำนวน 200 ชิ้นได้รับการประมวลผลด้วยการเคลื่อนที่ตามลำดับแบบขนานในกระบวนการผลิต การประมวลผลชิ้นส่วนประกอบด้วยการดำเนินการหกครั้งซึ่งระยะเวลาคือขั้นต่ำตามลำดับ: t 1 =8; t 2 =3; t 3 =27; t 4 =6; t 5 =4; t 6 \u003d 20. การดำเนินการที่สามจะดำเนินการในเครื่องสามเครื่องเครื่องที่หกในเครื่องสองเครื่องและการดำเนินการอื่น ๆ ในเครื่องเดียว กำหนดว่ารอบการประมวลผลสำหรับชุดชิ้นส่วนจะเปลี่ยนไปอย่างไรหากตัวแปรการเคลื่อนที่ตามลำดับขนานในการผลิตถูกแทนที่ด้วยแบบขนาน ขนาดของชุดโอนคือ 20 ชิ้น 4 ชุดของ 300 ชิ้นได้รับการประมวลผลในการเคลื่อนที่ตามลำดับแบบขนานในระหว่างกระบวนการผลิต การประมวลผลชิ้นส่วนประกอบด้วยการดำเนินการเจ็ดครั้งซึ่งระยะเวลาคือขั้นต่ำตามลำดับ: t 1 =4; t 2 =5; t 3 =7; t 4 =3; t 5 =4; t 6 =5; t 7 \u003d 6. แต่ละการดำเนินการจะดำเนินการในเครื่องเดียว ชุดโอน - 30 ชิ้น อันเป็นผลมาจากเทคโนโลยีการผลิตที่ดีขึ้นระยะเวลาของการดำเนินการที่สามลดลง 3 นาทีครั้งที่เจ็ด - 2 นาที พิจารณาว่ารอบแบตช์เปลี่ยนแปลงอย่างไร 5 ชุดของช่องว่างจะได้รับประกอบด้วย 5 ชิ้น แบทช์จะถูกส่งผ่าน 4 การดำเนินการ: ระยะเวลาของครั้งแรกคือ 10 นาทีครั้งที่สองคือ 20 นาทีครั้งที่สามคือ 10 นาทีและครั้งที่สี่คือ 30 นาที กำหนดรอบเวลาในเชิงวิเคราะห์และกราฟิกด้วยการเคลื่อนที่ตามลำดับ 6 ชุดของช่องว่างจะได้รับประกอบด้วยสี่ชิ้น แบทช์จะถูกส่งผ่าน 4 การดำเนินการ: ระยะเวลาของครั้งแรกคือ 5 นาทีครั้งที่สองคือ 10 นาทีครั้งที่สามคือ 5 นาทีและครั้งที่สี่คือ 15 นาที กำหนดรอบเวลาในเชิงวิเคราะห์และกราฟิกด้วยการเคลื่อนที่แบบขนาน 7 ชุดของช่องว่างจะได้รับประกอบด้วย 5 ชิ้น แบทช์จะถูกส่งผ่าน 4 การดำเนินการ: ระยะเวลาของครั้งแรกคือ 10 นาทีครั้งที่สองคือ 20 นาทีครั้งที่สามคือ 10 นาทีและครั้งที่สี่คือ 30 นาที กำหนดระยะเวลาของวัฏจักรโดยใช้วิธีการวิเคราะห์และกราฟิกสำหรับการเคลื่อนที่แบบขนานตามลำดับ 8 กำหนดระยะเวลาของวงจรเทคโนโลยีในการประมวลผลชุดละ 180 ชิ้น ด้วยการเคลื่อนที่แบบขนานและตามลำดับ สร้างกราฟการประมวลผล ขนาดของชุดโอน - 30 ชิ้น เวลาและจำนวนงานในการดำเนินงานมีดังนี้ บ่อยครั้งนักพัฒนาโดยเฉพาะผู้ที่ไม่มีประสบการณ์มักจะหลงทางเมื่อถูกขอให้กำหนดเส้นตายสำหรับงาน อย่างไรก็ตามความสามารถในการวางแผนเป็นทักษะที่มีประโยชน์และจำเป็นอย่างยิ่งที่ไม่เพียง แต่ช่วยในการทำงาน แต่ยังช่วยในชีวิตด้วย เราตัดสินใจถามผู้เชี่ยวชาญว่าจะเรียนรู้วิธีการวางแผนและส่งมอบโครงการให้ตรงเวลาได้อย่างไร สามารถดูข้อสรุปสั้น ๆ ได้ในตอนท้ายของบทความ ผู้พัฒนามักจะต้องคำนึงถึงพารามิเตอร์หลายตัวพร้อมกันเพื่อประมาณเวลาดำเนินการงาน: หากต้องการเรียนรู้วิธีประเมินเวลาในการทำงานอย่างเพียงพอคุณต้องฝึกฝนอย่างต่อเนื่อง ในช่วงเริ่มต้นของงานของฉันฉันได้ทำสิ่งนี้: ฉันประมาณเวลาในการทำงานที่เข้ามาแม้ว่าจะไม่มีใครต้องการก็ตามจากนั้นฉันก็ดูว่าฉันจัดการได้ถูกต้องเพียงใดเพื่อให้ได้ค่าประมาณของฉัน ในกระบวนการทำงานให้เสร็จฉันสังเกตว่าการดำเนินการใดใช้เวลามากกว่า หากมีสิ่งใดเพิ่มขึ้นอย่างมากในระยะนี้ฉันจำช่วงเวลานี้ได้และนำมาพิจารณาในการประเมินครั้งต่อไป ในการประเมินวัตถุประสงค์ของเวลาที่จำเป็นสำหรับการทำงานอย่างแท้จริงควรเพิ่มระยะขอบเล็กน้อยเพื่อให้ครอบคลุมสถานการณ์ที่เป็นเหตุสุดวิสัย มักจะประมาณเป็นเปอร์เซ็นต์ของความสำเร็จของงานหลัก แต่จะแตกต่างกันสำหรับทุกคน: มีคนเพิ่ม 20% ของเวลาบางคน - 10% และบางคน - 50% นอกจากนี้ยังมีประโยชน์ในการวิเคราะห์สาเหตุของการพลาดกำหนดเวลาหลังจากการละเมิดกำหนดเวลาที่สำคัญแต่ละครั้ง หากคุณมีคุณสมบัติไม่เพียงพอคุณจำเป็นต้องแก้ไขจุดอ่อนของคุณ หากปัญหาเกิดจากองค์กร - เพื่อทำความเข้าใจว่าอะไรที่ขัดขวางการทำงานปกติ เลื่อนระดับล่าง บทความจำนวนมากอุทิศให้กับวิธีการประเมินความซับซ้อนของโครงการรวมถึงระยะเวลาของงานและงานแต่ละงาน อย่างไรก็ตามนี่ยังคงเป็นสาเหตุของความขัดแย้งทั้งภายในทีมโครงการและเมื่อสื่อสารกับลูกค้า ผู้ช่วยหลักในการประเมินคือประสบการณ์ พยายามเชื่อมโยงงานใหม่กับงานที่เสร็จสมบูรณ์แล้ว หากคุณกำลังทำรายงานโปรดดูว่ารายงานที่คล้ายกันในอดีตใช้เวลานานเพียงใด หากคุณกำลังทำสิ่งใหม่ ๆ ให้ลองแบ่งออกเป็นชิ้นส่วนที่รู้จักและชื่นชมสิ่งเหล่านั้น หากงานใหม่ทั้งหมดให้ใช้เวลาศึกษาสักระยะ (ดีกว่า - ประสานงานเวลานี้กับผู้กำหนดงาน) ให้ความสนใจกับขั้นตอนต่อไปนี้ - หากคุณต้องการพัฒนาบริการการทดสอบหน่วย (และอาจไม่ใช่แค่หน่วย) ต้องรวมอยู่ในการประเมินด้วยการเตรียมข้อมูลการทดสอบจะใช้เวลาพอสมควร พิจารณาการผสานรวมกับบริการอื่น ๆ และอื่น ๆ ใช้เวลาในการแก้ไขจุดบกพร่องที่คุณพบเองหรือด้วยความช่วยเหลือของผู้ทดสอบ อาจเสียเวลาไปกับงานที่ "มองไม่เห็น" เป็นจำนวนมาก ตัวอย่างเช่นมีการประเมินเพื่อการพัฒนาและมีการประเมินสำหรับการทดสอบ แต่การถ่ายโอนสิ่งประดิษฐ์สำหรับการทดสอบสามารถเชื่อมโยงกับการปรับใช้พื้นที่ยืน ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องจินตนาการถึงกระบวนการทั้งหมดในจิตใจเพื่อไม่ให้พลาดอะไรไป หลังจากพิจารณาความเข้มของแรงงานแล้วจำเป็นต้องรวมงานใหม่ในปฏิทินโดยไม่ลืมเกี่ยวกับงานและกิจกรรมอื่น ๆ ที่เกิดขึ้นควบคู่กันไป และอย่าลืมว่าแผนการไม่มีประโยชน์ แต่การวางแผนไม่มีค่า เรียนรู้ที่จะปรับแผนให้ทันเวลาทำให้ทุกคนสนใจและส่งต่ออย่างทันท่วงทีเพื่อไม่ให้ใครเลยกำหนดเวลาที่พลาดไป เลื่อนระดับล่าง คำถามที่ไม่สามารถตอบได้ในรูปแบบสั้น ๆ ถ้ามันง่ายก็จะไม่มีปัญหาเรื่องกำหนดเวลาที่ขาดหายไป เพื่อให้กำหนดเวลาการพัฒนาสามารถคาดเดาได้มากขึ้นก่อนอื่นคุณต้องเข้าใจสาเหตุที่โปรแกรมเมอร์ทำผิดพลาดอยู่ตลอดเวลา เหตุผลประการแรกคืองานส่วนใหญ่ที่โปรแกรมเมอร์ทำนั้นไม่ซ้ำกันในระดับใดระดับหนึ่ง เป็นไปได้มากว่าโปรแกรมเมอร์จะทำงานดังกล่าวเป็นครั้งแรก เขาไม่รู้ดีพอว่างานนี้จะใช้เวลานานแค่ไหน หากเป็นโปรแกรมเมอร์ที่มีประสบการณ์มั่นคงและต้องทำงานคล้าย ๆ กันการประเมินของเขาจะใกล้เคียงกับความเป็นจริงมากขึ้น หากต้องการใช้การเปรียบเทียบแบบง่าย ๆ หากคุณไม่เคยขุดคูน้ำมาก่อนคุณจะไม่สามารถบอกได้ว่าจะใช้เวลานานเท่าใดในการขุดคูน้ำกว้าง 30 ซม. ลึก 60 ซม. และยาว 20 เมตร หากคุณเคยขุดมาก่อนเวลาทำงานโดยประมาณของคุณจะใกล้เคียงกับระยะเวลาทำงานจริงมากขึ้น เหตุผลประการที่สองคือโปรแกรมเมอร์มองโลกในแง่ดีโดยเนื้อแท้ นั่นคือการพิจารณางานการเลือกตัวเลือกการใช้งานการประเมินการปรับปรุงนักพัฒนาคาดว่าทุกอย่างจะทำงานได้ตามที่เขาคาดหวัง และเขาไม่คิดถึงปัญหาที่จะต้องเจอระหว่างทาง บ่อยครั้งที่เขาไม่สามารถมองเห็นได้ ตัวอย่างเช่นมีงานที่โปรแกรมเมอร์สามารถทำได้โดยใช้ไลบรารีซอฟต์แวร์โอเพนซอร์สของ บริษัท อื่น ในขั้นตอนการประเมินผลเขาพบมันบนอินเทอร์เน็ตอ่านคำอธิบายมันเหมาะกับเขา และเขายังประเมินขอบเขตงานของเขาอย่างถูกต้องเพื่อสร้างในการใช้ห้องสมุดนี้ แต่เขาไม่ได้คาดการณ์เลยว่าจะมีข้อผิดพลาดเกิดขึ้นในสภาพแวดล้อมของผลิตภัณฑ์ซอฟต์แวร์ของเขาในไลบรารีนี้ นักพัฒนาจะต้องไม่เพียงสร้างการใช้ไลบรารีลงในโค้ดของพวกเขาเท่านั้น แต่ยังต้องแก้ไขข้อผิดพลาดในไลบรารีด้วย และบ่อยครั้งที่นักพัฒนาไม่ได้ให้เวลาในการแก้ไขข้อผิดพลาดของเขา ตามสถิติแสดงให้เห็นว่าการทดสอบและแก้ไขข้อผิดพลาดอาจใช้เวลาประมาณ 50% ของเวลาที่ใช้ในการเขียนโค้ด ตัวเลขขึ้นอยู่กับคุณสมบัติของผู้พัฒนาสภาพแวดล้อมแนวทางปฏิบัติในการพัฒนาที่ใช้ (ตัวอย่างเช่นการทดสอบหน่วยลดเวลานี้ลงอย่างมากและระยะเวลา / ความเข้มแรงงานทั้งหมดของงานพัฒนาน้อยกว่า) ถ้าเรากลับไปเปรียบเทียบกับรถขุดผู้ขุดไม่ได้คาดหวังว่าพลั่วของเขาจะพังและเขาจะต้องใช้เวลาสองชั่วโมงในการตัดใหม่ เหตุผลประการที่สามคือความต้องการที่คาดไม่ถึง ไม่มีสาขาการผลิตวัสดุใดที่ลูกค้าชอบเปรียบเทียบการพัฒนาซอฟต์แวร์ด้วยข้อกำหนดใหม่ ๆ เช่นนี้ ลองนึกภาพทางเดินของรถขุดที่ขุดได้ 19 เมตรจาก 20 และได้ยินจากลูกค้าว่าคูน้ำไม่ควรเป็นเส้นตรง แต่เหมือนงูที่มีความยาวไหล่ 97 เซนติเมตร จะจัดการกับเรื่องทั้งหมดนี้อย่างไรและจะอยู่ในสภาพที่ไม่แน่นอนเช่นนี้ได้อย่างไร? ลดความไม่แน่นอนและสร้างเวลาสำรอง วิธีที่ง่ายที่สุดในการทำให้ความคาดหวังของคุณเข้าใกล้ความเป็นจริงมากขึ้นคือการใช้หลักการง่ายๆ "Pi" หลังจากได้รับการประมาณการจากผู้พัฒนา (ในแง่ของเวลาหรือความเข้มข้นของแรงงาน) คุณต้องคูณด้วยจำนวน Pi (\u003d 3.14159) ยิ่งผู้พัฒนามีประสบการณ์มากขึ้นในการประมาณการค่าสัมประสิทธิ์นี้ก็จะยิ่งต่ำลงเท่านั้น จำเป็นต้องฝึกการสลายปัญหาดั้งเดิมให้เป็นปัญหาเล็ก ๆ ที่มีขนาดไม่เกิน 4 ชั่วโมง ยิ่งการย่อยสลายมีรายละเอียดมากเท่าใดโอกาสที่ค่าประมาณจะใกล้เคียงกับข้อมูล / ระยะเวลาในการผลิตจริง หากคุณสรุปสั้น ๆ ว่า "ผลรวม" ดังนั้นเพื่อกำหนดเวลาของงานได้อย่างถูกต้องการดำเนินการต่อไปนี้จะเป็นประโยชน์: ดีและจำไว้ว่าหากข้อเท็จจริงเกินกว่าที่คุณคาดไว้ 30% นี่เป็นผลลัพธ์ที่ดีมาก เลื่อนระดับล่าง เพื่อการประเมินที่ถูกต้องที่สุดคุณต้องมีประสบการณ์ในการพัฒนาจริงและเฉพาะด้าน แต่มีกฎทั่วไปที่จะช่วยหลีกเลี่ยงความผิดพลาดในการวางแผนและปัญหาเมื่อส่งมอบงานให้กับลูกค้า ฉันจะอธิบายกฎเหล่านี้ดังนี้ ขั้นแรกคุณต้องเข้าใจงาน สิ่งนี้ดูเหมือนจะชัดเจนและไม่เกี่ยวข้องโดยตรงกับเวลา แต่จริงๆแล้วมันเป็นประเด็นสำคัญ แม้ในโครงการขนาดใหญ่ที่ร้ายแรงปัจจัยหลักประการหนึ่งสำหรับความล้มเหลวและความล่าช้าคือปัญหาในการกำหนดข้อกำหนด สำหรับนักพัฒนามือใหม่น่าเสียดายที่ปัญหานี้เป็นปัญหาร้ายแรง - พวกเขาไม่ได้อ่านงานที่มอบหมายทางเทคนิคหรืออ่านและทำความเข้าใจกับมันมากนัก (พวกเขาจดจำและทำคะแนนห้าจากสิบคะแนนให้เสร็จสิ้นและพวกเขาจำส่วนที่เหลือได้เมื่อส่งผลลัพธ์) เป็นที่ชัดเจนว่างานที่เข้าใจผิดไม่สามารถดำเนินการได้อย่างถูกต้องตรงเวลา ถัดไป - ประมาณเวลาในการพัฒนา ความไม่ชอบมาพากลของการเขียนโปรแกรมคือไม่มีงานที่เหมือนกันอย่างแน่นอน สิ่งนี้ทำให้งานของเราน่าสนใจมากขึ้น แต่ระยะเวลานั้นยากกว่า การสลายตัวทำงานได้ดีที่นี่เช่น แบ่งงานเฉพาะที่ซับซ้อนออกเป็นลำดับของงานย่อยเล็ก ๆ ที่คุ้นเคย และแต่ละรายการสามารถประมาณได้อย่างเพียงพอเป็นชั่วโมง เรารวมค่าประมาณของปัญหาย่อย - และเราได้ค่าประมาณของปัญหาทั้งหมด โดยปกติค่าประมาณนี้จะรวมเฉพาะค่าใช้จ่ายในการเข้ารหัสจริงเท่านั้น นี่เป็นส่วนสำคัญที่สุดของการพัฒนาอย่างไม่ต้องสงสัย แต่ยังห่างไกลจากสิ่งเดียว (และบ่อยครั้ง - ไม่ใช่ส่วนใหญ่) การดำเนินงานอย่างสมบูรณ์ยังรวมถึงการอ่านและชี้แจง TOR การประชุมกับเพื่อนร่วมงานหรือลูกค้าการดีบักและการทดสอบการจัดทำเอกสารการส่งมอบผลลัพธ์ (การสาธิตให้กับลูกค้าและการแก้ไขที่เป็นไปได้ตามความคิดเห็นของเขา) คุณจะใช้เวลานานแค่ไหนในการกระทำเหล่านี้ประสบการณ์เท่านั้นที่จะบอกได้ ในตอนแรกสิ่งสำคัญอย่างน้อยก็คืออย่าลืมคำนึงถึงเรื่องนี้ในการคำนวณและคุณสามารถสอบถามเวลาโดยประมาณโดยประมาณจากเพื่อนร่วมงานที่มีประสบการณ์มากกว่า ดังนั้นเราจึงใช้เวลาโดยประมาณในการเขียนโค้ดค่าแรงบวกค่าประมาณของค่าใช้จ่ายของงานเพิ่มเติม - และเราจะได้เวลาโดยประมาณที่ต้องการในการทำงานให้เสร็จ แต่นั่นไม่ใช่ทั้งหมด! จำเป็นต้องระบุวันที่เสร็จสิ้นตามแผนของงาน มันจะเป็นความผิดพลาดที่จะใช้เวลาและหารต้นทุนแรงงาน (เป็นชั่วโมง) เป็นเวลา 8 ชั่วโมงแล้วบวกลงในวันที่ปัจจุบัน ในชีวิตจริงนักพัฒนาไม่เคย (ดีแทบไม่เคย) ทำงาน 100% ของเวลาในงานหนึ่ง ๆ คุณจะใช้เวลากับงานอื่นอย่างแน่นอน - สำคัญ แต่ไม่เกี่ยวข้องโดยตรงกับงานหลัก ตัวอย่างเช่นการช่วยเหลือเพื่อนร่วมงานการฝึกอบรมการเขียนรายงานเป็นต้น โดยปกติแล้วเมื่อวางแผนเชื่อว่า 60-70% ของเวลาทำงานจะใช้ไปกับการทำงานในโครงการปัจจุบันโดยตรง นอกจากนี้คุณต้องคำนึงถึงความล่าช้าที่อาจเกิดขึ้นซึ่งจะทำให้คุณไม่สามารถทำงานได้อย่างต่อเนื่อง ตัวอย่างเช่นหากคุณต้องการมีปฏิสัมพันธ์กับผู้อื่น (เพื่อนร่วมงานลูกค้า) ให้พิจารณาการจ้างงานตารางการทำงาน ฯลฯ นี่คือกฎพื้นฐานที่ในความคิดของฉันจะช่วยให้นักพัฒนาซอฟต์แวร์หลีกเลี่ยงปัญหาในการประมาณและกำหนดเส้นตาย นอกจากนี้กุญแจสำคัญคือการได้รับประสบการณ์ส่วนตัวทั้งในการปฏิบัติงานและในการประเมิน ตัวอย่างเช่นหลังจากเสร็จสิ้นภารกิจการเปรียบเทียบค่าประมาณเริ่มต้นของคุณกับไทม์ไลน์จริงและสรุปผลในอนาคตจะเป็นประโยชน์มาก และแน่นอนว่าควรค่าแก่การศึกษาประสบการณ์ของคนอื่น ฉันอยากจะแนะนำในหัวข้อของหนังสือโดย S. McConnell "โครงการซอฟต์แวร์ราคาเท่าไหร่" และ S. Arkhipenkov "การบรรยายเกี่ยวกับการจัดการโครงการซอฟต์แวร์" เลื่อนระดับล่าง ในการประเมินและวางแผนกำหนดเวลาจำเป็น: เลื่อนระดับล่าง ใน บริษัท ของเราการวางแผนงานต้องผ่านหลายขั้นตอนเสมอ ในด้านธุรกิจเรากำหนดเป้าหมายเชิงกลยุทธ์ 5-6 เป้าหมายสำหรับปีพ. นี่คืองานระดับสูงตัวอย่างเช่นเพื่อเพิ่มพารามิเตอร์เป็นเปอร์เซ็นต์ที่แน่นอน นอกจากนี้แผนกต่างๆของ บริษัท ยังรวมถึงงานทางธุรกิจสำหรับทีมไอทีทั้งหมด กำหนดเวลาสำหรับงานเหล่านี้จะได้รับการประมาณคร่าวๆเบื้องต้นซึ่งสมาชิกในทีมทุกคนมักเกิดขึ้นไม่ว่าจะเป็นผู้จัดการนักวิเคราะห์นักพัฒนาและผู้ทดสอบ หลังจากได้รับการประเมินแล้วธุรกิจจะจัดลำดับความสำคัญของงานโดยคำนึงถึงเป้าหมายเชิงกลยุทธ์ของ บริษัท เป้าหมายเชิงกลยุทธ์แบบไขว้กันช่วยในเรื่องนี้โดยจะเห็นได้ชัดว่าเราทุกคนทำงานเพื่อสาเหตุทั่วไปไม่มีสถานการณ์เช่นนี้เมื่อมีคนดึงเฉพาะทิศทางของพวกเขา เรารวบรวม sprint จากงานที่ประมาณไว้อย่างแม่นยำ บางทีมมีรายไตรมาสบางทีมมีรายเดือน งานหลายอย่างที่ได้รับการจัดอันดับอย่างไม่แน่นอนในการวิ่งครั้งต่อไปจะได้รับการประเมินอย่างแม่นยำโดยทีม งานขนาดใหญ่แบ่งออกเป็นงานระดับล่างซึ่งแต่ละงานมีหน้าที่รับผิดชอบเฉพาะผู้ทำหน้าที่ให้การประเมินที่ถูกต้อง ในขั้นตอนนี้สิ่งสำคัญคืออย่าลืมเพิ่มเวลาพิเศษในการแก้ไขข้อบกพร่องเพราะมีเพียงผู้ที่ไม่ทำอะไรเลยเท่านั้นที่ไม่ผิดพลาด ทั้งเจ้าของผลิตภัณฑ์และลูกค้าธุรกิจเข้าใจกันดี ในขณะเดียวกันระยะเวลาที่กำหนดต้องเพียงพอ: ไม่มีใครเข้าใจนักพัฒนาที่กำหนดงานง่ายๆนานเกินไปเขาจะถูกขอให้แสดงเหตุผลในการตัดสินใจ ส่วนที่ยากที่สุดคือการอธิบายให้ธุรกิจเข้าใจว่าเหตุใดจึงต้องใช้เวลาในการ refactor เรารู้สึกขอบคุณ บริษัท ของเราสำหรับความจริงที่ว่าเราประสบความสำเร็จเป็นครั้งคราวเนื่องจากในที่สุดการปรับโครงสร้างใหม่จะนำไปสู่โครงสร้างพื้นฐานที่เบาลงและวางสิ่งต่างๆตามลำดับในโค้ดซึ่งจะเพิ่มความเสถียรของระบบและสามารถเร่งการพัฒนาฟังก์ชันใหม่ ๆ ได้อย่างมาก บางครั้งเกิดข้อผิดพลาดในการประเมิน ในความคิดของฉันเป็นไปไม่ได้ที่ฝ่ายพัฒนาใน บริษัท ขนาดใหญ่ที่มีโครงสร้างพื้นฐานที่พัฒนาแล้วจะหลีกเลี่ยงสิ่งนี้โดยสิ้นเชิง ในกรณีนี้เป็นสิ่งสำคัญที่นักพัฒนาจะต้องแจ้งผู้จัดการของเขาเกี่ยวกับสิ่งที่เกิดขึ้นในเวลาและในทางกลับกันเขาก็มีเวลาที่จะเตือนธุรกิจและ "เล่นซ้ำ" บางอย่างในแผนทั่วไปของ บริษัท ในโหมดนี้การทำงานจะถูกต้องมากกว่าการพยายามทำอย่างเมามันโดยใช้เวลา 5 วันใน 3 วันจากนั้นก็จมอยู่กับความผิดพลาดจำนวนมากที่เกิดขึ้นเนื่องจากความเร่งรีบ เลื่อนระดับล่าง คำตอบที่ถูกต้องสำหรับทั้งสองส่วนของคำถาม [วิธีเรียนรู้วิธีการวางแผนและส่งมอบโครงการให้ตรงเวลา - เอ็ด.] - ประสบการณ์. ไม่มีวิธีอื่นในการ "รู้เซน" ตามทฤษฎีการตัดสินใจการอนุมานที่ถูกต้องสามารถสร้างขึ้นจากการวิเคราะห์ข้อมูลที่มีอยู่แล้วจำนวนหนึ่งเท่านั้น และยิ่งข้อมูลนี้มากเท่าไหร่การคาดการณ์และการประเมินขั้นสุดท้ายก็จะแม่นยำมากขึ้น ในคำพูดของเฮอร์เบิร์ตชอว์: "ประสบการณ์คือโรงเรียนที่คน ๆ หนึ่งเรียนรู้ว่าเขาเป็นคนโง่มาก่อน" ด้วยเหตุนี้ข้อสรุปที่ค่อนข้างง่าย: หากโปรแกรมเมอร์มีประสบการณ์ที่สัมพันธ์กับงานในมืออยู่แล้วเขาสามารถพึ่งพาประสบการณ์ของ“ เพื่อนร่วมงานในร้าน” ได้หากไม่เป็นเช่นนั้น นอกจากนี้คุณต้องเข้าใจว่าการจัดกำหนดการโดยตรงเป็นงานที่ผู้คนทำได้ไม่ดีนักโดยเฉพาะอย่างยิ่งในการพัฒนา เป็นแนวทางปฏิบัติที่ดีในการประมาณวันครบกำหนดเพื่อแนะนำ "ปัจจัยแก้ไข" ในประมาณการเดิม เมตริกนี้สามารถเปลี่ยนแปลงได้ในช่วง 1.5 ถึง 3 ขึ้นอยู่กับประสบการณ์ของผู้พัฒนาและจำนวนรวมของระดับความไม่แน่นอนของปัญหาที่แก้ไขภายในโครงการ เลื่อนระดับล่าง สิ่งสำคัญคือต้องพิจารณาหลายปัจจัยในการกำหนดระยะเวลา ตัวอย่างเช่นประสบการณ์การทำงาน คุณจินตนาการถึงขอบเขตของงานที่กำลังจะมาถึงได้ชัดเจนแค่ไหน? คุณเคยทำอะไรแบบนี้มาก่อนหรือไม่? เป็นที่ชัดเจนว่ายิ่งมีประสบการณ์มากขึ้นก็จะทำงานได้เร็วขึ้น การมอบหมายด้านเทคนิคที่เป็นลายลักษณ์อักษรมีบทบาทสำคัญในการกำหนดกำหนดเวลา ด้วยสิ่งนี้ในพื้นที่ของเราสิ่งต่างๆจึงยากมาก บ่อยครั้งที่ลูกค้าไม่รู้ว่าตัวเองต้องการอะไรดังนั้นฉันแนะนำให้คุณใช้เวลาเพิ่มอีกหนึ่งหรือสองวัน แต่ขอให้ลูกค้าทราบถึงผลลัพธ์ที่ต้องการอย่างชัดเจน สิ่งสำคัญคือมุมมองนี้ต่างตอบแทน และหลังจากนั้นคุณสามารถเริ่มเจรจาจำนวนเงินและเงื่อนไขได้ รวมถึงความเสี่ยงด้วยเสมอ สำหรับผู้เริ่มต้นฉันขอแนะนำให้คูณเวลาดำเนินการโดยประมาณด้วยสอง ท้ายที่สุดควรส่งมอบโครงการก่อนกำหนดและเติบโตในฐานะผู้เชี่ยวชาญในสายตาของลูกค้าแทนที่จะยื่นเรื่องต่อและทำลายชื่อเสียงของคุณ เลื่อนระดับล่าง คำแนะนำทั่วไปคือผู้พัฒนาจำเป็นต้องเรียนรู้วิธีการย่อยสลายงานอย่างถูกต้องมองหาข้อผิดพลาดที่อาจเกิดขึ้นอยู่เสมออาศัยประสบการณ์ของตนเองและอย่าลืมเตือนลูกค้าและเพื่อนร่วมงานให้ทันเวลาหากไม่สามารถแก้ไขงานได้ภายในกรอบเวลาที่กำหนด การสร้างแผนงานที่ชัดเจนนั้นยากกว่าการกำหนดเส้นตายสำหรับงานใดงานหนึ่ง ในขณะเดียวกันสิ่งสำคัญไม่เพียง แต่จะต้องส่งมอบโครงการให้ตรงเวลาเท่านั้น แต่ยังต้องตรวจสอบให้แน่ใจว่าระบบที่คุณพัฒนาขึ้นอย่างถูกต้องสามารถแก้ปัญหาทางธุรกิจ ที่นี่ทีมไอทีได้รับความช่วยเหลือจากวิธีการพัฒนาซอฟต์แวร์ต่างๆ: ตั้งแต่ RUP และ MSF ไปจนถึง SCRUM และรูปแบบ Agile อื่น ๆ ทางเลือกของเครื่องมือมีมากมายและลูกค้าของเราหลายคนต้องการที่จะเข้าใจล่วงหน้าว่าเราจะทำงานร่วมกับพวกเขาอย่างไรในโครงการหลักการใดที่เรายึดมั่น อย่างไรก็ตามตอนนี้หัวข้อ Agile กำลังใกล้ชิดกับธุรกิจและแม้แต่ในแต่ละโครงการไปจนถึงภาครัฐเนื่องจากหลักการของวิธีการนี้ทำให้สามารถดำเนินโครงการได้อย่างรวดเร็วโดยจัดการความคาดหวังของลูกค้าในการทำซ้ำแต่ละครั้ง ตัวอย่างเช่นในทีม Agile แทบไม่มีการพูดคุยกับลูกค้าเป็นเวลานาน ลืมหลายสิบหน้าที่อธิบายรายละเอียดทางเทคนิคที่ไม่จำเป็นเช่นความเร็วในการแสดงรายการแบบเลื่อนลง เปิดโอกาสให้ลูกค้าได้ทดลองใช้ระบบเวอร์ชันกลางจากนั้นคุณจะทำความเข้าใจกันได้ง่ายขึ้นมาก ทีม Agile วางแผนทุกอย่างร่วมกันและกำหนดระดับต้นทุนแรงงานที่เหมาะสมที่สุดที่จะต้องใช้ในการแก้ปัญหาเฉพาะ ตัวอย่างเช่นหนึ่งในเทคนิคที่เรียกว่า "Poker Planning" ซึ่งผู้เข้าร่วมแต่ละคนจะประเมินปริมาณงานที่ต้องการสำหรับงานเฉพาะโดยไม่เปิดเผยตัวตน หลังจากนั้นทีมงานจะกำหนดน้ำหนักเฉลี่ยของงานใน Story Point หรือ Man-Hours และกระจายงานตามหลักการ "ใครชอบอะไร" ในขณะเดียวกันทีมจะรวบรวมทุกวันสำหรับการประชุม 15 นาทีเมื่อทุกคนพูดคุยเกี่ยวกับสถานะของงานปัจจุบันของพวกเขาในสองสามนาทีรวมถึงการรายงานปัญหาที่เกิดขึ้น ทีมงานกำจัดปัญหาที่ตรวจพบได้อย่างรวดเร็วดังนั้นลูกค้าจึงมองไปที่ขั้นตอนต่อไปของการทำงานของโปรแกรมเมอร์โดยเร็วที่สุด นักพัฒนาไม่ได้ชะลอกำหนดเวลาในการทำงานให้เสร็จสิ้นเนื่องจากความไม่เต็มใจที่จะดึงทีมอีกครั้งหรือพยายามที่จะคิดออกด้วยตัวเองโดยเปล่าประโยชน์เป็นการฆ่าเวลาอันมีค่า อย่างไรก็ตามด้วยสถานะย่อส่วนดังกล่าวนักพัฒนาจึงมีความปรารถนาที่จะแสดงด้านที่ดีที่สุดเพื่อแสดงให้เห็นว่าคุณมีความรับผิดชอบต่องานของคุณ เป็นแรงจูงใจและวินัยในตนเองจริงๆ (เวลาจากการทำงานจะไม่ได้รับการสนับสนุนจนกว่าจะถึงวินาทีแรกที่เริ่มดำเนินการกับทรัพยากร) การย่อขนาด ความล่าช้า หรือ เวลาตอบสนอง (เวลาจากการทำงานจะเปิดใช้งานจนกว่าจะเสร็จสิ้นในกรณีของกิจกรรมเป็นระยะหรือจนกว่าระบบจะตอบสนองด้วยมือของผู้ใช้ทางออกแรกในกรณีของกิจกรรมแบบโต้ตอบ) หรือการขยายใหญ่สุด ความยุติธรรม (ระยะเวลาของตัวประมวลผลที่เท่ากันสำหรับแต่ละกระบวนการหรือมากกว่าโดยทั่วไปจุดเวลาที่สอดคล้องกันตามลำดับความสำคัญและปริมาณงานของแต่ละกระบวนการ) ในทางปฏิบัติเป้าหมายเหล่านี้มักจะขัดแย้งกัน (เช่นปริมาณงานเทียบกับเวลาในการตอบสนอง) ดังนั้นตัวกำหนดตารางเวลาจะทำการแลกเปลี่ยนที่เหมาะสม ความพึงพอใจวัดได้จากปัญหาใดปัญหาหนึ่งดังกล่าวข้างต้นขึ้นอยู่กับความต้องการและงานของผู้ใช้ ใน AIX เวอร์ชัน 4 มีสามความหมายที่เป็นไปได้สำหรับนโยบายการจัดกำหนดการเธรด: เธรดเป็นที่สนใจเป็นหลักสำหรับแอปพลิเคชันที่ปัจจุบันประกอบด้วยกระบวนการแบบอะซิงโครนัสหลายกระบวนการ แอพพลิเคชั่นเหล่านี้สามารถกำหนดภาระไฟในระบบได้หากถูกแปลงเป็นโครงสร้างแบบมัลติเธรด
ดล .
คร .
, ผู้อำนวยการด้านเทคนิคของศูนย์นวัตกรรมเทคโนโลยีและโซลูชั่น "Jet Infosystems"
หากเรากลับไปที่การจัดสรรเงินสำรอง - เวลานี้ควรได้รับการจัดสรรเมื่อสิ้นสุดโครงการ การสำรองและรวมไว้สำหรับแต่ละงานเป็นการปฏิบัติที่ไม่ดี กฎของพาร์กินสัน "งานเติมเต็มตลอดเวลาที่กำหนดให้" ดำเนินการอย่างเคร่งครัดOS / 360 และตัวต่อ
Aix