ความแตกต่างระหว่างกระบวนการและเธรด

ผู้เขียน: Laura McKinney
วันที่สร้าง: 1 เมษายน 2021
วันที่อัปเดต: 5 พฤษภาคม 2024
Anonim
Difference Between Process and Thread - Georgia Tech - Advanced Operating Systems
วิดีโอ: Difference Between Process and Thread - Georgia Tech - Advanced Operating Systems

เนื้อหา


กระบวนการและเธรดมีความเกี่ยวข้องเป็นหลัก กระบวนการคือการประมวลผลของโปรแกรมในขณะที่เธรดเป็นการดำเนินการของโปรแกรมที่ขับเคลื่อนโดยสภาพแวดล้อมของกระบวนการ

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

  1. แผนภูมิเปรียบเทียบ
  2. คำนิยาม
  3. ความแตกต่างที่สำคัญ
  4. ข้อสรุป

แผนภูมิเปรียบเทียบ

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


ความหมายของกระบวนการ

กระบวนการคือการดำเนินการของโปรแกรมและดำเนินการการกระทำที่เกี่ยวข้องที่ระบุไว้ในโปรแกรมหรือเป็นหน่วยดำเนินการที่โปรแกรมทำงาน ระบบปฏิบัติการสร้างกำหนดเวลาและยุติกระบวนการสำหรับการใช้งาน CPU กระบวนการอื่น ๆ ที่สร้างขึ้นโดยกระบวนการหลักเรียกว่ากระบวนการลูก

การดำเนินการกระบวนการจะถูกควบคุมด้วยความช่วยเหลือของ PCB (การควบคุมกระบวนการบล็อก) ถือได้ว่าเป็นสมองของกระบวนการซึ่งมีข้อมูลที่สำคัญทั้งหมดที่เกี่ยวข้องกับกระบวนการเช่นกระบวนการ id, ลำดับความสำคัญ, รัฐ, PWS และการลงทะเบียน CPU เนื้อหา .

PCB ยังเป็นโครงสร้างข้อมูลที่ใช้เคอร์เนลซึ่งใช้ฟังก์ชั่นสามชนิดคือการกำหนดตารางเวลาการส่งและการบันทึก

  • การกำหนด - มันเป็นวิธีการเลือกลำดับของกระบวนการในคำง่าย ๆ เลือกกระบวนการที่จะต้องดำเนินการครั้งแรกในซีพียู
  • เยี่ยงอย่าง - มันตั้งค่าสภาพแวดล้อมสำหรับกระบวนการที่จะดำเนินการ
  • ข้อเสีย - ฟังก์ชั่นนี้บันทึกข้อมูลเกี่ยวกับกระบวนการเมื่อถูกเรียกคืนหรือถูกบล็อก

มีบางสถานะที่รวมอยู่ในวงจรชีวิตของกระบวนการเช่นพร้อมทำงานบล็อกและยกเลิก สถานะกระบวนการใช้สำหรับติดตามกิจกรรมกระบวนการในทันที


จากมุมมองของโปรแกรมเมอร์กระบวนการเป็นสื่อกลางในการดำเนินการโปรแกรมพร้อมกัน กระบวนการหลักของโปรแกรมที่เกิดขึ้นพร้อมกันจะสร้างกระบวนการลูก กระบวนการหลักและกระบวนการเด็กจำเป็นต้องมีปฏิสัมพันธ์กับแต่ละคนเพื่อให้บรรลุเป้าหมายร่วมกัน

การดำเนินการแบบสอดแทรกของกระบวนการช่วยเพิ่มความเร็วในการคำนวณเมื่อการดำเนินการ i / o ในกระบวนการหนึ่งทับซ้อนกับกิจกรรมการคำนวณในกระบวนการอื่น

คุณสมบัติของกระบวนการ:

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

ความหมายของเธรด

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

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

การมัลติเธรดก็มาพร้อมกับ demerits หลายเธรดไม่ได้สร้างความซับซ้อน แต่การโต้ตอบระหว่างกัน

เธรดต้องมีคุณสมบัติลำดับความสำคัญเมื่อมีหลายเธรดที่แอ็คทีฟ เวลาที่ได้รับสำหรับการดำเนินการที่เกี่ยวข้องกับเธรดที่ใช้งานอื่น ๆ ในกระบวนการเดียวกันถูกระบุโดยลำดับความสำคัญของเธรด

คุณสมบัติของเธรด:

  • การเรียกใช้ระบบเดียวเท่านั้นสามารถสร้างเธรดได้มากกว่าหนึ่งเธรด (กระบวนการแบบ Lightweight)
  • หัวข้อแบ่งปันข้อมูลและข้อมูล
  • เธรดใช้คำสั่งแบ่งปันพื้นที่โกลบอลและฮีป แต่มีสแต็กและรีจิสเตอร์ของตนเอง
  • การจัดการเธรดใช้การเรียกใช้ระบบน้อยหรือน้อยลงเนื่องจากการสื่อสารระหว่างเธรดสามารถทำได้โดยใช้หน่วยความจำแบบแบ่งใช้
  • คุณสมบัติการแยกของกระบวนการเพิ่มค่าใช้จ่ายในแง่ของการใช้ทรัพยากร
  1. เธรดทั้งหมดของโปรแกรมนั้นมีอยู่อย่างมีเหตุผลภายในกระบวนการ
  2. กระบวนการมีน้ำหนักมาก แต่เธรดนั้นมีน้ำหนักเบา
  3. โปรแกรมเป็นหน่วยการดำเนินการแบบแยกส่วนในขณะที่เธรดไม่ได้ถูกแยกและแชร์หน่วยความจำ
  4. เธรดไม่สามารถมีอยู่จริง; มันถูกแนบมากับกระบวนการ ในทางตรงกันข้ามกระบวนการสามารถมีอยู่เป็นรายบุคคล
  5. ในเวลาที่หมดอายุของเธรดสแต็กที่เชื่อมโยงสามารถถูกกู้คืนได้เนื่องจากทุกเธรดมีสแต็กของตัวเอง ในทางตรงกันข้ามถ้ากระบวนการตายไปเธรดทั้งหมดจะตายรวมถึงกระบวนการด้วย

ข้อสรุป

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