• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Ch06th
 

Ch06th

on

  • 14,729 views

Operating System ...

Operating System
ระบบปฏิบัติการคอมพิวเตอร์
by Nuttha Otanasap (ณัฏฐ์ โอธนาทรัพย์)
Computer Science Dept.,
South-east Asia University
Bangkok 10160 Thailand
email: auisuke@gmail.com
website:auisuke
auisuke.blogspot.com
Hi5:auisuke.hi5.com
Copyrights 2009 SE Asia University All Rights Reserved

Statistics

Views

Total Views
14,729
Views on SlideShare
14,678
Embed Views
51

Actions

Likes
7
Downloads
0
Comments
3

3 Embeds 51

http://learning.sau.ac.th 37
http://www.slideshare.net 10
http://static.slidesharecdn.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • บทที่ 6 การจัดลำดับงานของหน่วยประมวลผลกลาง CPU Scheduling แนวคิดพื้นฐาน Basic Concepts หลักการการจัดลำดับงาน Scheduling Criteria วิธีการจัดลำดับงาน Scheduling Algorithms การจัดลำดับงานของมัลติโปรเซสเซอร์ หรือหน่วยประมวลผลแบบหลายตัว Multiple-Processor Scheduling การจัดลำดับงานแบบเรียลไทม์ Real-Time Scheduling การจัดลำดับงานของเธรด Thread Scheduling ตัวอย่างระบบปฏิบัติการ Operating Systems Examples การจัดลำดับงานของเธรดในจาวา Java Thread Scheduling การประเมินวิธีการ Algorithm Evaluation

Ch06th Ch06th Presentation Transcript

  • บทที่ 6 การจัดลำดับงานของหน่วยประมวลผลกลาง CPU Scheduling
    • แนวคิดพื้นฐาน Basic Concepts
    • หลักการการจัดลำดับงาน Scheduling Criteria
    • วิธีการจัดลำดับงาน Scheduling Algorithms
    • การจัดลำดับงานของมัลติโปรเซสเซอร์ หรือหน่วยประมวลผลแบบหลายตัว Multiple-Processor Scheduling
    • การจัดลำดับงานแบบเรียลไทม์ Real-Time Scheduling
    • การจัดลำดับงานของเธรด Thread Scheduling
    • ตัวอย่างระบบปฏิบัติการ Operating Systems Examples
    • การจัดลำดับงานของเธรดในจาวา Java Thread Scheduling
    • การประเมินวิธีการ Algorithm Evaluation
  • แนวคิดพื้นฐาน Basic Concepts
    • การใช้งานหน่วยประมวลผลที่มีประสิทธิภาพสูงสุดคือการทำงานแบบมัลติโปรแกรม หรือหลายโปรแกรมพร้อมกัน
    • รอบการจัดการ หน่วยประมวลผล อินพุทเอ้าท์พุท หมายถึงการเอ็กซ์ซีคิวท์โปรเซสประกอบด้วยวงรอบของ การเอ็กซ์ซีคิวท์ของหน่วยประมวลผลและการรอคอยของอินพุทเอ้าท์พุท
    • การกระจายการดำเนินการหน่วยประมวลผล
  • Alternating Sequence of CPU And I/O Bursts
  • Histogram of CPU-burst Times
  • ตัวจัดลำดับการทำงานของหน่วยประมวลผลกลาง CPU Scheduler
    • เป็นผู้เลือกว่าโปรเซสใดในหน่วยความจำที่พร้อมจะเข้าทำการเอ็กซ์ซีคิวท์ และเข้าใช้งานหน่วยประมวลผลกลาง
    • การตัดสินใจในการจัดลำดับการทำงานหน่วยประมวลผลกลางก่อนหลัง เกิดขึ้นเมื่อโปรเซสมีเหตุการณ์ต่างๆ เกิดขึ้นดังต่อไปนี้
    • เกิดเมื่อเกิดการเปลี่ยนแปลงสถานะจากกำลังทำงานไปสู่สถานะการรอคอย
    • เกิดเมื่อเกิดการเปลี่ยนแปลงสถานะจากกำลังทำงานไปสู่สถานะพร้อมที่จะเข้าทำงาน
    • เกิดเมื่อเกิดการเปลี่ยนแปลงสถานะจากรอคอยไปสู่สถานะพร้อม
    • เกิดเมื่อโปรเซสสิ้นสุดการทำงาน
      • ทั้งนี้การจัดลำดับการทำงานดังกล่าวตั้งแต่ 1 ถึง 4 เป็นแบบ nonpreemptive หรือไม่คำนึงถึงลำดับความสำคัญของโปรเซส
      • ในขระที่การจัดลำดับการทำงานในรูปแบบอื่นๆ เป็นไปแบบ preemptive หรือคำนึงถึงความสำคัญของโปรเซส
  • ตัวควบคุมการทำงานของระบบ ( ดีสแพทเชอร์ ) Dispatcher
    • โมดูลของดีสแพทเชอร์มีหน้าที่ในการควบคุมการทำงานของหน่วยประมวลผลกลาง เพื่อเลือกโปรเซส ในการทำงานจากตัวจัดลำดับการทำงานระยะสั้น โดยการทำสิ่งต่อไปนี้
      • สลับสภาพแวดล้อมในการทำงาน
      • สลับการทำงานไปสู่โหมดผู้ใช้งาน
      • กระโดดไปสู่พื้นที่ที่ถูกต้องในการทำงานของโปรแกรมที่ผู้ใช้งานนั้นๆ เพื่อการเรียกโปรแกรมนั้นกลับมาทำงานอีกครั้ง
    • Dispatch latency หมายถึง ช่วงเวลาที่ถูกใช้ไปเพื่อการทำงานของดีสแพทเชอร์ ในการหยุดการทำงานของโปรเซสและทำให้อีกโปรเซสหนึ่งเริ่มทำงาน
  • หลักการในการจัดลำดับการทำงาน Scheduling Criteria
    • การใช้งานหน่วยประมวลผลกลางให้เกิดประโยชน์สูงสุด CPU utilization หมายถึงการทำให้หน่วยประผลกลางถูกทำงาน หรือใช้งานให้มากที่สุด
    • ผลสัมฤทธิ์ Throughput หมายถึง จำนวนโปรเซสที่สามารถทำงานเสร็จสิ้นหรือทำการเอ็กซ์ซีคิวท์ได้เสร็จสิ้น ต่อหนึ่งหน่วยเวลา
    • เวลาวนรอบ Turnaround time หมายถึงจำนวนเวาทั้งสิ้นที่แต่ละโปรเซสใช้ในการประมวลผล
    • เวลารอคอย Waiting time หมายถึงจำนวนเวลาทั้งสิ้นที่โปรเซสต้องรอคอยอยู่ในคิวที่พร้อมจะเข้าทำงาน
    • เวลาในการตอบสนอง Response time หมายถึงเวลาทั้งสิ้นที่ใช้ไปนับตั้งแต่คำสั่งร้องขอเกิดขึ้นจนกระทั่งเกิดการตอบสนองต่อคำสั่งร้องขอนั้น ทั้งนี้ไม่ใช้หมายถึงเอ้าพุทหรือผลลัพท์ที่ได้จากการประมวลผล ( ในสภาพแวดล้อมการทำงานแบบแบ่งสรรเวลา )
  • หลักการในการทำให้เกิดประสิทธิภาพสูงสุด Optimization Criteria
    • ใช้งานหน่วยประมวลผลให้เต็มประสิทธิภาพมากที่สุด Max CPU utilization
    • ทำให้เกิดผลสัมฤทธิ์ในการทำงานสูงสุด Max throughput
    • ลดระยะเวลาการวนรอบให้น้อยที่สุด Min turnaround time
    • ลดระยะเวลาการรอคอยให้น้อยที่สุด Min waiting time
    • ลดระยะเวลาในการตอบสนองให้น้อยที่สุด Min response time
  • การจัดลำดับการทำงานแบบมาก่อนให้บริการก่อน First-Come, First-Served (FCFS) Scheduling
    • Process Burst Time
    • P 1 24
    • P 2 3
    • P 3 3
    • Suppose that the processes arrive in the order: P 1 , P 2 , P 3 The Gantt Chart for the schedule is:
    • Waiting time for P 1 = 0; P 2 = 24; P 3 = 27
    • Average waiting time: (0 + 24 + 27)/3 = 17
    P 1 P 2 P 3 24 27 30 0
  • FCFS Scheduling (Cont.)
    • กำหนดให้ลำดับการทำงานของแต่ละโปรเซสเกิดขึ้นดังต่อไปนี้
    • Suppose that the processes arrive in the order
    • P 2 , P 3 , P 1
    • The Gantt chart for the schedule is:
    • Waiting time for P 1 = 6 ; P 2 = 0 ; P 3 = 3
    • Average waiting time: (6 + 0 + 3)/3 = 3
    • Much better than previous case
    • Convoy effect short process behind long process
    P 1 P 3 P 2 6 3 30 0
  • การจัดลำดับการทำงานแบบงานใดใช้เวลาในการทำงานสั้นที่สุดให้งานนั้นทำก่อน Shortest-Job-First (SJR) Scheduling
    • ด้วยแต่ละโปรเซสใช้เวลาในการทำงานแตกต่างกัน การจัดลำดับโปรเซสโดยพิจารณาจากระยะเวลาที่สั้นที่สุด ในการจัดลำดับการทำงาน
    • แบ่งออกเป็นสองแบบคือ
      • Nonpreemptive คือการทำงานที่หน่วยประมวลผลจะให้โปรเซสทำงานจนเสร็จสิ้นโดยไม่คำนึงถึงระดับความสำคัญ
      • Preemptive คือการทำงานที่พิจรณาถึงระดับความสำคัญ เมื่อเกิดโปรเซสขึ้นใหม่ที่ใช้ระยะเวลาในการทำงานสั้นกว่าโปรเซสเดิมที่กำลังทำงานอยู่ หน่วยประมวลผลจะให้โปรเซสใหม่ที่เกิดขึ้นแม้ว่าจะเกิดขึ้นภายหลังเข้าทำงานก่อน และให้โปรเซสเดิมที่ต้องใช้เวลาในการทำงานนานกว่าหยุดการทำงานโดยชั่วคราว
    • การทำงานด้วยวิธีนี้ SJF จึงสามารถช่วยลดระยะเวลาในการรอคอยของแต่ละโปรเซสโดยรวมเฉลี่ยลดลง
    • Process Arrival Time Burst Time
    • P 1 0.0 7
    • P 2 2.0 4
    • P 3 4.0 1
    • P 4 5.0 4
    • SJF (non-preemptive)
    • Average waiting time = (0 + 6 + 3 + 7)/4 - 4
    Example of Non-Preemptive SJF P 1 P 3 P 2 7 3 16 0 P 4 8 12
  • Example of Preemptive SJF
    • Process Arrival Time Burst Time
    • P 1 0.0 7
    • P 2 2.0 4
    • P 3 4.0 1
    • P 4 5.0 4
    • SJF (preemptive)
    • Average waiting time = (9 + 1 + 0 +2)/4 - 3
    P 1 P 3 P 2 4 2 11 0 P 4 5 7 P 2 P 1 16
  • การกำหนดขนาดของการทำงานโปรเซสถัดไป Determining Length of Next CPU Burst
    • สามารถประมาณการได้เฉพาะขนาด
    • สามารถดำเนินการให้ลุล่วงด้วยขนาดของระยะเวลาการทำงานของโปรเซสก่อนหน้า โดยการใช้ค่าเฉลี่ยเอ็กซ์โปแนนเชียล
  • Prediction of the Length of the Next CPU Burst
  • Examples of Exponential Averaging
    •  =0
      •  n+1 =  n
      • Recent history does not count
    •  =1
      •  n+1 = t n
      • Only the actual last CPU burst counts
    • If we expand the formula, we get:
        •  n+1 =  t n +( 1 -  )  t n - 1 + …
        • +(1 -  ) j  t n - 1 + …
        • +(1 -  ) n=1 t n  0
    • Since both  and (1 -  ) are less than or equal to 1, each successive term has less weight than its predecessor
  • การจัดลำดับการทำงานแบบคำนึงถึงระดับความสำคัญ Priority Scheduling
    • จำนวนของระดับความสำคัญ ( จำนวนเต็ม integer ) จะสัมพันธ์กับแต่ละโปรเซส
    • โปรเซสที่เข้าใช้งานหน่วยประมวลผลจะต้องมีระดับความสำคัญสูงสุด ( ค่าน้อยสุด มีระดับความสำคัญสูงสุด )
      • แบบพรีเอ็มทีฟ Preemptive
      • แบบนอนพรีเอ็มทีฟ nonpreemptive
    • SJF หมายถึง การจัดลำดับการทำงานแบบคำนึงถึงระดับความสำคัญ เมื่อระดับความสำคัญเกิดจากการคาดการณ์ ระยะเวลาที่ใช้ในการประมวลผลของโปรเซสถัดไป
    • ปัญหาคือ โปรเซสที่ระดับความสำคัญต่ำสุดอาจไม่ได้รับการประมวลผลหรือไม่ถูกเอ็กซ์ซีคิวท์เลย ( สตาร์เวชั่น Starvation )
    • การแก้ไข โดยกำหนดให้เวลาที่สูญเสียในการรอคอยจะไปเพิ่มระดับความสำคัญของโปรเซสนั้นให้เพิ่มมากขึ้น ( เอจจิ้ง Aging )
  • ราวโรบิน ( Round Robin RR)
    • กำหนดให้แต่ละโปรเซสได้รับเวลาในการประมวลผลหรือเวลาที่สามารถเข้าใช้หน่วยประมวลผล ระยะสั้นๆ เท่าๆ กัน เรียกว่าเวลาควอนตัม โดยทั่วไปประมาณ 10 – 100 มิลลิวินาที เมื่อแต่ละโปรเซสใช้เวลาที่ตนเองได้รับหมดไป โปรเซสนั้นก็จะต้องหยุดทำงานและถูกย้ายกลับเข้าไปอยู่ยังลำดับสุดท้ายของคิวเพื่อการรอคอยเข้าทำงานอีกครั้ง เพื่อให้โปรเซสในลำดับแรกสุดของคิวเข้าใช้งานหน่วยประมวลผลหรือเข้าทำงานตามเวลาที่โปรเซสนั้นได้รับวนเป็นรอบเช่นนี้
    • โดยที่จำนวนโปรเซส n จำนวนในคิวพร้อม และเวลาควอนตัมเท่ากับ q แต่ละโปรเซสจะได้เวลาเพื่อการเข้าใช้งานหน่วยประมวลผลเป็น 1/n ของเวลาที่หน่วยประมวลผลสามารถประมวลผลในหนึ่งช่วงเวลา ดังนั้นจึงไม่มีโปรเซสใดที่จะต้องรอนานเกินกว่า ( n-1)q หน่วยเวลา
    • ประสิทธิภาพ
      • Q มีขนาดใหญ่ ใช้ FIFO
      • Q มีขนาดเล็ก q จะต้องมีขนาดใหญ่เพียงพอที่จะสามารถรองรับการสลับสภาพแวดล้อม ทั้งนี้ย่อมเสียเวลาเพิ่มมากขึ้นด้วยในการทำการสลับการทำงาน
  • Example of RR with Time Quantum = 20
    • Process Burst Time
    • P 1 53
    • P 2 17
    • P 3 68
    • P 4 24
    • The Gantt chart is:
    • โดยปกติ ค่าเฉลี่ยระยะเวลาในการวนรอบจะสูงกว่า SJF แต่ดีกว่า การตอบสนอง
    • Typically, higher average turnaround than SJF, but better response
    P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162
  • เวลาควอนตัม กับเวลาในการสลับสภาพแวดล้อม Time Quantum and Context Switch Time
  • เวลาในการวนรอบแปรผันตามเวลาควอนตัม Turnaround Time Varies With The Time Quantum
  • คิวแบบหลายระดับ Multilevel Queue
    • คิวพร้อมจะถูกแบ่งออกเป็นคิวย่อยๆ หลายคิว โดยที่
      • ฟอร์กราวด์ ( อินเตอร์แอ็กทีฟ ) foreground (interactive)
      • แบคก์กราวด์ ( แบทช์ ) background (batch)
    • แต่ละคิวมีอัลกอริธึมในการจัดลำดับการทำงานเป็นของตนเอง
    • ฟอร์กราวด์ RR foreground – RR
    • แบคก์กราวด์ FCFS background – FCFS
    • การจัดลำดับการทำงานจะต้องดำเนินการระหว่างคิว
      • การกำหนดระดับความสำคัญของการจัดลำดับการทำงานแบบคงที่ อาจเกิด สตาร์เวชั่น
      • การแบ่งย่อยเวลา Time slice แต่ละคิวจะทราบถึงเวลารวมของการประมวลผลของหน่วยประมวลผลด้วยการจัดลำดับการทำงานระหว่างโปรเซส อาทิเช่น 80% ใช้กับโฟร์กราวด์ใน RR
    • 20% ใช้กับแบคกราวด์ ใน FCFS
  • การจัดลำดับการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling
  • คิวของผลตอบกลับแบบหลายระดับ Multilevel Feedback Queue
    • โปรเซสสามาถเคลื่อนย้ายระหว่างคิวต่างๆ กัน ( สามารถใช้วิธีนี้ได้ในวิธีเอจจิ้ง )
    • ตัวจัดลำดับการทำงานของคิวของผลตอบกลับแบบหลายระดับถูกกำหนดโดยพารามิเตอร์ต่างๆ ดังต่อไปนี้
      • จำนวนของคิว
      • อัลกอริธึมในการจัดลำดับการทำงานของแต่ละคิว
      • ระเบียบวิธีที่ใช้ในการดำเนินการเมื่อทำการเพิ่มระดับโปรเซส
      • ระเบียบวิธีที่ใช้ในการดำเนินการเมื่อทำการลดระดับโปรเซส
      • ระเบียบวิธีที่ใช้ในการดำเนินการเพื่อทำการจัดคิวของโปรเซสเมื่อโปรเซสนั้นต้องการงานบริการ
  • ตัวอย่างของคิวของผลตอบกลับแบบหลายระดับ Example of Multilevel Feedback Queue
    • Three queues:
      • Q 0 – time quantum 8 milliseconds
      • Q 1 – time quantum 16 milliseconds
      • Q 2 – FCFS
    • การจัดลำดับการทำงาน Scheduling
    • เมื่อเกิดงานใหม่ขึ้นเข้าไปอยู่ในคิว q0 ด้วยการทำงานแบบ FCFS เมื่อโปรเซสนั้นถึงลำดับที่สามารถเข้าใช้งานหน่วยประมวลผล งานนั้นจะได้รับเวลาในการทำงาน 8 มิลลิวินาที หากงานั้นไม่สามารถดำเนินการให้เสร็จสิ้นภายในระยะเวลา 8 มิลลิวินาที งานนั้นจะถูกเคลื่อนย้ายไปยัง q1
    • ใน q1 งานั้นจะถูกจัดการด้วย FCFS อีกครั้งและได้รับเวลาในการทำงานเพิ่มขึ้นอีก 16 มิลลิวินาที และหากยังคงไม่สามารถดำเนินการให้เสร็จสิ้นอีก ก็จะถูกทำการเพิ่มระดับความสำคัญและเคลื่อนย้ายเข้าสู่ คิว q2 ต่อไป
  • Multilevel Feedback Queues
  • การจัดลำดับการทำงานแบบหน่วยประมวลผลหลายหน่วย Multiple-Processor Scheduling
    • การจัดลำดับการทำงานให้แก่หน่วยประมวลแบบหลายหน่วยจะมีความสลับซับซ้อนเมื่อหน่วยประมวลผลหลายตัวพร้อมที่จะทำงานพร้อมๆ กัน
    • หน่วยประมวลผลที่มีคุณสมบัติเหมือนกัน Homogeneous processors ในระบบหน่วยประมวลผลหลายหน่วย
    • การจัดสรรภาระให้เท่าเทียมกัน Load sharing
    • หน่วยประมวลผลหลายหน่วยแบบคุณสมบัติต่างกัน Asymmetric multiprocessing จะมีเพียงหน่วยประมวลผลเพียงหน่วยเดียวเท่านั้นที่สามารถเข้าถึงโครงสร้างข้อมูลของระบบ เพื่อบรรเทาความต้องการการใช้ข้อมูลร่วมพร้อมๆ กัน
  • การจัดลำดับการทำงานแบบเรียลไทม์ Real-Time Scheduling
    • ระบบเรียลไทม์แบบเข้มงวด Hard real-time systems จำเป็นจะต้องให้งานที่จำเป็นสามารถทำงานให้เสร็จสิ้นภายในเวลาที่กำหนดแน่นอน
    • ระบบเรียลไทม์แบบไม่เข้มงวด Soft real-time computing จำเป็นต้องให้โปรเซสที่จำเป็นได้รับการจัดระดับความสำคัญสูงกว่าโปรเซสอื่นที่จำเป็นน้อยกว่า
  • Dispatch Latency
  • การประเมินอัลกอริธึม Algorithm Evaluation
    • Deterministic modeling – takes a particular predetermined workload and defines the performance of each algorithm for that workload
    • Queueing models
    • Implementation
  • แบบจำลองการประเมินตัวจัดลำดับการทำงานของหน่วยประมวลผล Evaluation of CPU Schedulers by Simulation
  • การจัดลำดับการทำงานของโซลาริส 2 Solaris 2 Scheduling
  • ค่าระดับความสำคัญของวินโดวส์เอ็กซ์พี Windows XP Priorities
  • การจัดลำดับการทำงานของ ลีนุกซ์ Linux Scheduling
    • อัลกอริธึมสองแบบ : การแบ่งสรรเวลา และเรียลไทม์
    • การแบ่งสรรเวลา Time-sharing
      • การพิจารณาระดับความสำคัญจากความน่าเชื่อถือ โดยโปรเซสที่มีความน่าเชื่อถือมากที่สุดจะได้รับการจัดลำดับให้เข้าทำงานเป็นโปรเซสถัดมา
        • - ความน่าเชื่อถือจะถูกหักออกเมื่อเกิดการขัดจังหวะของตัวจับเวลา
        • - เมื่อความน่าเชื่อถือมีค่าเป็นศูนย์ โปรเซสอื่นๆ ก็จะเป็นผู้ถูกเลือก
        • - เมื่อทุกๆ โปรเซสมีความน่าเชื่อถือเป็นศูนย์ จะเกิดการปรับความน่าเชื่อถือให้กลับมีค่าดังเดิม
        • - โดยพิจารณาจากปัจจัยต่างๆ คือ ระดับความสำคัญและประวัติในการประมวลผล
  • การจัดลำดับการทำงานของ ลีนุกซ์ Linux Scheduling
    • อัลกอริธึมสองแบบ : การแบ่งสรรเวลา และเรียลไทม์
    • เรียลไทม์ Real-time
      • เรียลไทม์แบบไม่เข้มงวด Soft real-time
      • พิจารณาตาม Posix.1b แบ่งเป็น สองคลาส
        • FCFS และ RR
        • โปรเซสที่มีระดับความสำคัญสูงสุดย่อมได้รับสิทธิในการทำงานก่อน
  • การจัดลำดับการทำงานของเธรด Thread Scheduling
    • การจัดลำดับการทำงานแบบโลคอล Local Scheduling การที่เธรดไลบรารีตัดสินได้อย่างไรว่าเธรดใดควรนำไปไว้ยัง LWP ที่พร้อมทำงาน
    • การจัดลำดับการทำงานแบบโกลบอล Global Scheduling การที่เคอร์แนลตัดสินได้อย่างไรว่าเธรดของเคอร์แนลใดจะต้องเป็นเธรดที่ต้องทำงานในลำดับถัดไป
  • การจัดลำดับการทำงานของเธรดในภาษาจาวา Java Thread Scheduling
    • JVM ใช้การจัดการแบบอัลกอริธึมที่คำนึงถึงระดับความสำคัญหรือ Preemptive
    • คิวแบบ FIFO ถูกใช้เมื่อเกิดเธรดหลายเธรดที่มีระดับความสำคัญเท่ากัน
  • Java Thread Scheduling (cont)
    • JVM จะจัดลำดับการทำงานของเธรดเมื่อ
    • 1 เมื่อเธรดที่ทำงานอยู่ในขณะนั้นออกจากสถานะที่สามารถทำงาน
    • 2 เธรดที่มีระดับความสำคัญสูงสุด เปลี่ยนแปลงเข้าสู่สถานะที่สามารถทำงาน
    • หมายเหตุ JVM ไม่สามารถทราบได้ว่าเธรดนั้นเป็นเธรดแบบถูกแบ่งย่อยเวลาหรือไม่
  • การแบ่งย่อยเวลา Time-Slicing
    • เมื่อ JVM ไม่สามารถแน่ใจได้ว่า เป็นแบบแบ่งย่อยเวลาหรือไม่ เมทธอด yield() จึงอาจถูกเรียกใช้งาน
    • while (true) {
    • // perform CPU-intensive task
    • . . .
    • Thread.yield();
    • }
    • Yield จะทำการควบคุมเธรดอื่นๆ ที่มีระดับความสำคัญเท่ากัน
  • ระดับความสัคญของเธรด Thread Priorities
    • Priority Comment
    • Thread.MIN_PRIORITY Minimum Thread Priority
    • Thread.MAX_PRIORITY Maximum Thread Priority
    • Thread.NORM_PRIORITY Default Thread Priority
    • การกำหนดระดับความสำคัญอาจใช้ เมทธอด setPriority()
    • setPriority(Thread.NORM_PRIORITY + 2);