เธรดผู้ใช้และเคอร์เนลเธรดคืออะไร


13

ฉันรู้ว่าเธรดคืออะไรและฉันรู้ว่ามันทำงานอย่างไร แต่ฉันค่อนข้างสับสนกับสิ่งที่เธรดผู้ใช้และเคอร์เนลเธรดอยู่ในแง่ของสิ่งที่พวกเขาได้รับอนุญาตให้ทำ

คุณช่วยอธิบายให้ชัดเจนว่าเธรดผู้ใช้สามารถทำอะไรและเคอร์เนลเธรดทำอะไรได้บ้าง


1
คำถามนี้ได้รับการตอบแล้วใน SO: stackoverflow.com/questions/5957570/kernel-space-vs-user-space
Shadok

มีการถามคำถาม แต่ไม่ตอบถูก ทั้งหมดที่ได้รับคำตอบจาก 5 หรือ 6 สิ่งที่คนถามคือเกี่ยวกับพื้นที่ผู้ใช้และพื้นที่เคอร์เนล
Fasih Khatib

1
ฉันคิดว่าคำนิยามจาก Dave Rager มีความกระชับและแม่นยำ: "พื้นที่เคอร์เนลและพื้นที่ผู้ใช้คือการแยกฟังก์ชั่นระบบปฏิบัติการที่มีสิทธิพิเศษและแอปพลิเคชันผู้ใช้ที่ จำกัด "
Shadok

คำตอบ:


13

เคอร์เนลเธรดบางครั้งเรียกว่า LWP (กระบวนการที่มีน้ำหนักเบา) ถูกสร้างและกำหนดเวลาโดยเคอร์เนล เธรดเคอร์เนลมักจะมีราคาแพงกว่าการสร้างมากกว่าเธรดผู้ใช้และการเรียกระบบเพื่อสร้างเธรดเคอร์เนลโดยตรงเป็นแพลตฟอร์มที่เฉพาะเจาะจงมาก

โดยปกติเธรดผู้ใช้จะถูกสร้างขึ้นโดยเธรดไลบรารีและการกำหนดเวลาได้รับการจัดการโดยเธรดไลบรารีเอง (ซึ่งทำงานในโหมดผู้ใช้) เธรดผู้ใช้ทั้งหมดเป็นของกระบวนการที่สร้างขึ้น ข้อดีของเธรดผู้ใช้คือสามารถพกพาได้ ความแตกต่างที่สำคัญสามารถเห็นได้เมื่อใช้ระบบมัลติโพรเซสเซอร์ผู้ใช้เธรดที่จัดการอย่างสมบูรณ์โดยเธรดไลบรารีไม่สามารถรันคู่ขนานบน CPU ที่แตกต่างกันได้แม้ว่านี่หมายความว่าพวกเขาจะทำงานได้ดีบนระบบยูนิโพรเซสเซอร์ เนื่องจากเคอร์เนลเธรดใช้ตัวกำหนดตารางเวลาเคอร์เนลเธรดเคอร์เนลที่แตกต่างกันสามารถทำงานบน CPU ที่แตกต่างกัน ระบบจำนวนมากใช้เธรดที่แตกต่างกัน

แบบจำลองเธรดแบบหนึ่งต่อหนึ่งแมปกระบวนการผู้ใช้จำนวนมากโดยตรงกับเคอร์เนลเธรดหนึ่งเธรดเคอร์เนลสามารถถือเป็นกระบวนการหลัก แบบจำลองเธรดแบบหนึ่งต่อหนึ่งแมปเธรดผู้ใช้แต่ละเธรดโดยตรงกับเคอร์เนลเธรดหนึ่งเธรดรุ่นนี้ช่วยให้การประมวลผลแบบขนานบนระบบมัลติโปรเซสเซอร์ แต่ละเคอร์เนลเธรดสามารถถูกพิจารณาว่าเป็น VP (กระบวนการเสมือนจริง) ซึ่งจัดการโดยตัวกำหนดตารางเวลา

ที่มา: คำตอบ

นอกจากนี้คุณยังสามารถพบข้อมูลในวิกิพีเดียบทที่ 3 - 3 กระบวนการ, เคอร์เนลเธรด, เธรดผู้ใช้และเส้นใย:

เกลียว


ฉันไม่คิดว่ามันเป็นความคิดที่ดีที่จะคัดลอกโดยไม่รู้ว่าการโต้แย้งนั้นเกี่ยวกับอะไรและไม่ทราบคำตอบทั้งหมด LWP มักจะไม่สร้างที่ด้านบนของเคอร์เนลเธรดเป็นบริดจ์ระหว่างอันสุดท้ายกับเธรดผู้ใช้หรือไม่ นอกจากนี้คำตอบนี้ทำให้เกิดความสับสนเป็นอย่างมากเพราะมันทำให้เปลี่ยนคำศัพท์และในตอนท้ายที่คุณไม่เข้าใจถ้าเช่นด้ายเคอร์เนลเป็นกระบวนการ ฯลฯ
nbro
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.