Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่ 4
การจัดการเธรด, 6221654696 โชติชญานนท์เร้ารุ่งอรุณ - Coggle Diagram
บทที่ 4
การจัดการเธรด
เธรด
คือ หน่วยการทำงานย่อยที่อยู่ในโพรเซสที่มีการแบ่งปันทรัพยากรต่าง ๆ ในโพรเซสนั้น ๆ โดยปกติโพรเซสที่มีเพียง 1 เธรด จ ะถูกเรีย กว่า Single thread หรือเรียกอีกชื่อว่า Heavy Weight Process ซึ่งมักพบในระบบปฏิบัติการรุ่นเก่า แต่ถ้า 1 โพรเซสมีเธรดหลายเธรดจะเรียกว่า Light Weight Process (LWP) หรือ Multithread ซึ่งพบได้ในระบบปฏิบัติการรุ่นใหม่ที่ใช้กันในปัจจุบันทั่วไป และ Multithread ก็เป็นที่นิยมมากกว่า Single thread
-
ตัวอย่างการใช้เธรด
ซอฟต์แวร์ปัจจุบันที่รันกับเครื่องพีซีสมัยใหม่มีการออกแบบให้เป็น Multithread โดยแยกออกเป็นโพรเซสที่ควบคุมหลาย ๆ เธรด เช่น โปรแกรมเว็บบราวเซอร์ที่มีเธรดหนึ่งในการแสดงรูปภาพหรือเขียนข้อความในขณะที่อีกเธรดหนึ่งกำลังดึงข้อมูลจากเน็ตเวิร์ค หรือในโปรแกรมเวิร์โพรเซสเซอร์ที่มีหลายเธรด โดยที่เธรดหนึ่งกำลังแสดงภาพกราฟฟิก เธรดที่สองกำลังรอรับคำสั่งจากคีย์บอร์ดจากผู้ใช้ ในขณะที่เธรดที่สามกำลังตรวจสอบคำสะกดและไวยากรณ์ในลักษณะทำงานอยู่เบื้องหลัง
-
สถานะของเธรด
- Spawn หมายถึงการที่โพรเซสตัวหนึ่งสร้างโพรเซสอีกตัวหนึ่งขึ้นมา (ซึ่งทำใหเกิดนิยาม Parent process และ Child process) และเมื่อโพรเซสทำการ Spawn เธรดที่อยูในโพรเซสก็ทำการ Spawn ด้วย และเธรดที่อยูในโพรเซสก็สามารถที่จะ Spawn เธรดใหม่ได้ด้วย
- Block เมื่อใดก็ตามที่เธรดตองรอใหเหตุการณใด ๆ เกิดขึ้นมันก็จะทำการบล็อกซึ่งก็จะทำให้มี
การเก็บขอมูลที่เกี่ยวของ เช่น User register, Program counter และ Stack pointer ไว้และซีพียูจะไปใหบริการแกเธรดตัวอื่นที่พรอมสำหรับการบริการต่อไป
- Unblock เมื่อมีเหตุการณที่เธรดถูกบล็อก เธรดก็จะถูกนำไปเก็บไวใน Ready queue
- Finish เมื่อเธรดสิ้นสุดการทำงานค่าต่าง ๆ ก็จะถูกส่งคืนให้กับระบบภาพแสดงตัวอย่างของ
เธรดในระบบ Multithreading
-
-
-
-
-
คลังข้อมูลการจัดการเธรด
Pthreads
เป็นตัวพื้นฐานของ POSIX ( IEEE 103.1C ) เรียกได้ว่าเป็น API สำหรับการสร้างเธรดและสิ่งที่เกิดขึ้นในเวลาเดียวกัน เป็นตัวบ่งบอกถึงพฤติกรรมของเธรดโดยไม่ใช้เครื่องมือ
-
-
การยกเลิกเธรด
การยกเลิกเธรดเป็นการทำให้เธรดจบการทำงานก่อนที่จะเสร็จสมบูรณ์เช่น ถ้ามีหลายเธรดค้นหาข้อมูลในฐานข้อมูลพร้อมกันแล้วมีเธรดหนึ่งให้ผลลัพธ์ออกมาแล้วเธรดที่เหลือจะถูกยกเลิกในสภาวะอื่นอาจจะเกิดเมื่อผู้ใช้กดปุ่มบนโปรแกรมเว็บบราวเซอร์เพื่อหยุดการโหลดข้อมูล เนื่องจากการโหลดข้อมูลจะใช้เธรดแยกกับการกดปุ่มบนคีย์บอร์ด
-