อ่าน 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
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ไลบรารีเธรด POSIX ดั้งเดิม
ไลบรารี Native POSIX Thread ( NPTL ) เป็นการนำ ข้อกำหนด POSIX Threads มาใช้งาน ในระบบปฏิบัติการ Linux
ประวัติศาสตร์
ก่อนเวอร์ชัน 2.6 ของ เคอร์เนลลินุกซ์ กระบวนการต่างๆ เป็นเอนทิตีที่สามารถกำหนด ตารางเวลาได้ และไม่มีสิ่งอำนวยความสะดวกพิเศษสำหรับ เธรด [ 1 ] อย่างไรก็ตาม มี การเรียกใช้ระบบ — clone — ซึ่งสร้างสำเนาของกระบวนการที่เรียก โดยสำเนาจะใช้พื้นที่แอดเดรสร่วมกับผู้เรียก...
ออกแบบ
เช่นเดียวกับ LinuxThreads, NPTL เป็นไลบรารีเธรดแบบ 1:1 เธรดที่สร้างโดยไลบรารี (ผ่าน pthread_create ) จะสอดคล้องแบบหนึ่งต่อหนึ่งกับเอนทิตีที่สามารถกำหนดตารางเวลาได้ในเคอร์เนล ( กระบวนการ ในกรณีของ Linux) [ 4 ] : 226 นี่เป็น โมเดลเธรด ที่ง่ายที่สุดในสาม โมเดล...
ดูเพิ่มเติม
ลินุกซ์เธรด ห้องสมุด (วิทยาการคอมพิวเตอร์) เส้นด้ายสีเขียว