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

อ่าน 2 นาที

ไลบรารีเธรด POSIX ดั้งเดิม

ไลบรารี Native POSIX Thread ( NPTL ) เป็นการนำ ข้อกำหนด POSIX Threads มาใช้งาน ในระบบปฏิบัติการ Linux

ไลบรารีเธรด POSIX ดั้งเดิม

ไลบรารีNative POSIX Thread ( NPTL ) เป็นการนำ ข้อกำหนด POSIX Threads มาใช้งาน ในระบบปฏิบัติการ Linux

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

ก่อนเวอร์ชัน 2.6 ของเคอร์เนลลินุกซ์ กระบวนการต่างๆ เป็นเอนทิตีที่สามารถกำหนด ตารางเวลาได้ และไม่มีสิ่งอำนวยความสะดวกพิเศษสำหรับเธรด[ 1 ] อย่างไรก็ตาม มีการเรียกใช้ระบบclone — ซึ่งสร้างสำเนาของกระบวนการที่เรียก โดยสำเนาจะใช้พื้นที่แอดเดรสร่วมกับผู้เรียก โครงการ LinuxThreadsใช้การเรียกใช้ระบบนี้เพื่อจัดหาเธรดระดับเคอร์เนล (การใช้งานเธรดก่อนหน้านี้ส่วนใหญ่ในลินุกซ์ทำงานในพื้นที่ผู้ใช้ ทั้งหมด ) น่าเสียดายที่มันสอดคล้องกับ POSIX เพียงบางส่วนเท่านั้น โดยเฉพาะอย่างยิ่งในด้านการจัดการสัญญาณ การกำหนดตารางเวลา และพรีมิทีฟการซิงโครไนซ์ระหว่างกระบวนการ

เพื่อปรับปรุง LinuxThreads ให้ดียิ่งขึ้น เห็นได้ชัดว่าจำเป็นต้องมีการสนับสนุนจากเคอร์เนลและไลบรารีการทำงานแบบมัลติเธรดใหม่ จึงมีการเริ่มต้นโครงการแข่งขันสองโครงการเพื่อตอบสนองความต้องการนี้ ได้แก่NGPT (Next Generation POSIX Threads) ซึ่งพัฒนาโดยทีมงานที่รวมถึงนักพัฒนาจากIBMและ NPTL โดยนักพัฒนาจากRed Hatทีมงาน NGPT ได้ทำงานร่วมกับทีม NPTL อย่างใกล้ชิดและรวมคุณสมบัติที่ดีที่สุดของทั้งสองระบบเข้าด้วยกันเป็น NPTL ต่อมาโครงการ NGPT ถูกยกเลิกในช่วงกลางปี ​​2003 หลังจากที่ได้รวมคุณสมบัติที่ดีที่สุดเข้ากับ NPTL แล้ว

NPTL เปิดตัวครั้งแรกใน Red Hat Linux 9 การทำงานแบบมัลติเธรด POSIX ของ Linux รุ่นเก่ามีปัญหาเกี่ยวกับเธรดที่ปฏิเสธที่จะยอมให้ระบบทำงานเป็นครั้งคราว เนื่องจากไม่ได้ใช้โอกาสในการแย่งชิงการทำงานเมื่อเกิดขึ้น ซึ่งเป็นสิ่งที่ Windows ทำได้ดีกว่าในขณะนั้น Red Hat อ้างว่า NPTL แก้ไขปัญหานี้ได้ในบทความบน เว็บไซต์ Javaเกี่ยวกับ Java บน Red Hat Linux 9 [ 2 ]

NPTL เป็นส่วนหนึ่งของRed Hat Enterprise Linuxมาตั้งแต่เวอร์ชัน 3 และอยู่ในเคอร์เนล Linux ตั้งแต่เวอร์ชัน 2.6 ปัจจุบันเป็นส่วนหนึ่งของไลบรารี GNU Cที่ บูรณาการอย่างสมบูรณ์ [ 3 ]

มีเครื่องมือติดตามการทำงานของ NPTL ที่เรียกว่าPOSIX Thread Trace Tool ( PTT ) และ มีการเขียน Open POSIX Test Suite ( OPTS ) ขึ้นมาเพื่อทดสอบไลบรารี NPTL กับมาตรฐาน POSIX

ออกแบบ

เช่นเดียวกับ LinuxThreads, NPTL เป็นไลบรารีเธรดแบบ 1:1 เธรดที่สร้างโดยไลบรารี (ผ่านpthread_create ) จะสอดคล้องแบบหนึ่งต่อหนึ่งกับเอนทิตีที่สามารถกำหนดตารางเวลาได้ในเคอร์เนล ( กระบวนการในกรณีของ Linux) [ 4 ] : 226 นี่เป็น โมเดลเธรดที่ง่ายที่สุดในสาม โมเดล (1:1, N:1 และ M:N) [ 4 ] : 215–216 เธรดใหม่ถูกสร้างขึ้นด้วย การเรียกใช้ระบบ clone() ผ่านไลบรารี NPTL NPTL อาศัยการสนับสนุนของเคอร์เนลสำหรับfutexesเพื่อใช้งานการล็อกในพื้นที่ผู้ใช้ได้อย่างมีประสิทธิภาพมากขึ้น[ 4 ] : 182

ดูเพิ่มเติม

  • NPTL Trace Toolเป็นเครื่องมือโอเพนซอร์สสำหรับติดตามและดีบักแอปพลิเคชันแบบมัลติเธรดโดยใช้ NPTL
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Native_POSIX_Thread_Library&oldid=1310405611 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ไลบรารีเธรด POSIX ดั้งเดิม

ไลบรารี Native POSIX Thread ( NPTL ) เป็นการนำ ข้อกำหนด POSIX Threads มาใช้งาน ในระบบปฏิบัติการ Linux

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

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

ออกแบบ

เช่นเดียวกับ LinuxThreads, NPTL เป็นไลบรารีเธรดแบบ 1:1 เธรดที่สร้างโดยไลบรารี (ผ่าน pthread_create ) จะสอดคล้องแบบหนึ่งต่อหนึ่งกับเอนทิตีที่สามารถกำหนดตารางเวลาได้ในเคอร์เนล ( กระบวนการ ในกรณีของ Linux) [ 4 ] : 226 นี่เป็น โมเดลเธรด ที่ง่ายที่สุดในสาม โมเดล...

ดูเพิ่มเติม

ลินุกซ์เธรด ห้องสมุด (วิทยาการคอมพิวเตอร์) เส้นด้ายสีเขียว