เธรดของโปรเซสเซอร์คืออะไร ความแตกต่างกับนิวเคลียส
สารบัญ:
- แกนประมวลผลคืออะไร
- การประมวลผลเธรดคืออะไร
- โปรแกรมกระบวนการและเธรด
- กระบวนการของโปรแกรม
- เธรดของกระบวนการ
- เราสามารถดูเธรดหรือเธรดเหล่านั้นในระบบได้หรือไม่?
ในบทความนี้เราจะใช้เวลาสักครู่เพื่ออธิบาย เธรดของโปรเซสเซอร์ หรือที่ เรียกว่าเธรดในภาษาอังกฤษ หรือ เธรดการเขียนโปรแกรมเพื่อ ระบุความแตกต่างพื้นฐานระหว่างสิ่งเหล่านี้และ แกนประมวลผล ในบรรดาผู้ที่มีความเชี่ยวชาญน้อยและแม้แต่ผู้ใช้ขั้นสูงก็ยังมีความสับสนเล็กน้อยเกี่ยวกับหัวข้อนี้ นั่นคือเหตุผลที่เราได้กำหนดไว้เพื่อชี้แจงข้อกำหนดเหล่านี้เท่าที่เป็นไปได้
แนวคิดของการประมวลผลเธรดไม่จำเป็นต้องรู้เมื่อซื้อโปรเซสเซอร์สำหรับผู้ใช้ปกติ ในกรณีส่วนใหญ่ ดีกว่าน้อยกว่า ซึ่งเกือบจะเป็นจริงเสมอ เราจำเป็นต้องรู้ว่าเธรดคืออะไรอยู่ในงาน พัฒนาโปรแกรม แอปพลิเคชั่นจะถูกตั้งโปรแกรมและคอมไพล์แอพพลิเคชั่น จะมีการประมวลผลที่เหมาะสมที่สุดสำหรับโปรเซสเซอร์ที่มีเธรดมากกว่าคอร์ และนี่คือที่ที่เราจะพยายามหาคำอธิบายของเรา
ดัชนีเนื้อหา
แกนประมวลผลคืออะไร
เราจะเริ่มต้นด้วยการอธิบายว่าแกนประมวลผลของเราคืออะไรดังนั้นเราจะมีความรู้ก่อนหน้านี้เพื่อไม่ให้สับสน
เรารู้ว่าโปรเซสเซอร์มีหน้าที่รับผิดชอบในการดำเนินการและ ดำเนินการตามคำสั่งของโปรแกรมที่โหลดในหน่วยความจำ RAM ของคอมพิวเตอร์ของเรา คำแนะนำทั้งหมดที่จำเป็นสำหรับการปฏิบัติงานทั่วไปบนพีซีของเรานำทาง, เขียน, ดูภาพถ่ายและอื่น ๆ ผ่านมัน ในส่วนทางกายภาพตัวประมวลผลคือ วงจรรวมที่ประกอบด้วย ทรานซิสเตอร์นับล้านตัวที่ก่อให้เกิดลอจิคัลเกตผ่านหรือไม่ส่งบิตข้อมูลในรูปของพลังงานโดยไม่มีความกังวลใจเพิ่มเติม
ชิพเล็ก ๆ นี้มีโมดูลที่แตกต่างกันซึ่ง เราสามารถเรียกนิวเคลียสได้ นอกเหนือไปจากองค์ประกอบอื่น ๆ ที่เราไม่สนใจในตอนนี้ โปรเซสเซอร์เมื่อไม่กี่ปีที่ผ่านมามีแกนประมวลเดียวเท่านั้นและ สามารถประมวลผลคำสั่งได้หนึ่งรอบต่อหนึ่งรอบ วัฏจักรเหล่านี้วัดเป็น เมกะเฮิร์ตซ์ (MHz) ยิ่ง MHz มากขึ้นคำแนะนำเพิ่มเติมที่เราสามารถทำได้ทุกวินาที
ตอนนี้เราไม่ได้มีแกนเดียวเท่านั้น แต่มีหลายแกน แต่ละแกนแสดงถึงตัวประมวลผลย่อย นั่นคือ แต่ละตัวประมวลผลย่อยเหล่านี้จะดำเนินการตามคำแนะนำอย่างใดอย่างหนึ่งต่อไปนี้ ดังนั้นจึงสามารถประมวลผลได้หลายตัวในแต่ละรอบนาฬิกาด้วยซีพียูแบบหลายแกน หากเรามีหน่วยประมวลผล 4 คอร์เราสามารถดำเนินการคำสั่ง 4 พร้อมกัน แทนที่จะเป็นหนึ่งเดียว ดังนั้นการปรับปรุงประสิทธิภาพจึงเพิ่มเป็นสี่เท่า หากเรามี 6 คำตอบก็คือ 6 คำสั่งในเวลาเดียวกัน นี่คือวิธีที่โปรเซสเซอร์ปัจจุบันมีประสิทธิภาพมากกว่าโปรเซสเซอร์รุ่นเก่ามาก
และจำไว้ว่า แกนประมวลผลเหล่านี้มีอยู่ในโปรเซสเซอร์ของเรา ไม่ใช่สิ่งที่เสมือนจริงหรือสร้างขึ้นด้วยรหัส
การประมวลผลเธรดคืออะไร
เธรดเธรดหรือเธรด ไม่ใช่ส่วนทางกายภาพของตัวประมวลผลไม่ใช่อย่างน้อยเมื่อมาถึงคอร์เพิ่มเติมหรืออะไรทำนองนั้น
เราสามารถกำหนดเธรดการประมวลผลเป็น โฟลว์การควบคุมข้อมูลของโปรแกรม มันเป็นวิธีการที่ ช่วยให้การจัดการงานของโปรเซสเซอร์และแกนที่แตกต่างในวิธีที่มีประสิทธิภาพมากขึ้น ขอบคุณที่เธรดหน่วยการจัดสรรขั้นต่ำซึ่งเป็นงานหรือกระบวนการของโปรแกรมสามารถแบ่งออกเป็นชิ้น ๆ เพื่อเพิ่มประสิทธิภาพเวลารอของแต่ละคำสั่งในคิวกระบวนการ ชิ้นเหล่านี้เรียกว่าเธรดหรือเธรด
กล่าวอีกนัยหนึ่งโพรเซสซิง เธรดแต่ละชิ้นมีชิ้นส่วนของงานที่ต้องดำเนินการ สิ่งที่ง่ายกว่าในการดำเนินการมากกว่าถ้าเราแนะนำงานที่สมบูรณ์ในนิวเคลียสทางกายภาพ ด้วยวิธีนี้ CPU สามารถประมวลผลงานหลายอย่างในเวลาเดียวกัน และพร้อมกันในความเป็นจริงมันจะสามารถทำงานได้มากเท่าที่มันมีเธรดและมักจะมีหนึ่งหรือสองสำหรับแต่ละแกน ในโปรเซสเซอร์ที่มีตัวอย่าง 6 คอร์และ 12 เธรดพวกเขา จะสามารถแบ่งกระบวนการออกเป็น 12 งานที่แตกต่างกันแทนที่จะเป็นเพียง 6
วิธีการทำงานนี้ทำให้ทรัพยากรระบบ ได้รับการจัดการอย่างเท่าเทียมและมีประสิทธิภาพ ยิ่งขึ้น คุณรู้ว่า… เขา แบ่งและคุณจะชนะ ทุกชีวิต โปรเซสเซอร์เหล่านี้เรียกว่า มัลติเธรด สำหรับตอนนี้สิ่งที่เราต้องชัดเจนก็คือโปรเซสเซอร์ที่มี 12 เธรดจะไม่มี 12 คอร์ แต่คอร์นั้นเป็นสิ่งที่มีอยู่จริง
แน่นอนว่ามันค่อนข้างเป็นนามธรรมและเข้าใจยากดังนั้นเรามาดูกันว่ามันแปลอย่างไรถ้าเราพูดถึงสถาปัตยกรรมของโปรแกรมบนคอมพิวเตอร์ของเรา
โปรแกรมกระบวนการและเธรด
เราทุกคนรู้ว่า โปรแกรม คืออะไรมันเป็นรหัสที่เก็บไว้ในคอมพิวเตอร์ของเราและมัน ถูกกำหนดให้ทำงานเฉพาะ อย่าง แอปพลิเคชันคือโปรแกรมไดรเวอร์ยังเป็นโปรแกรมและแม้แต่ระบบปฏิบัติการก็เป็นโปรแกรมที่สามารถดำเนินการโปรแกรมอื่น ๆ ที่อยู่ภายในได้ ทั้งหมดของพวกเขาจะ ถูกเก็บไว้ในรูปแบบไบนารี เนื่องจากหน่วยประมวลผลเข้าใจเฉพาะและศูนย์ปัจจุบัน / ไม่หมุนเวียน
กระบวนการของโปรแกรม
ในการรันโปรแกรมมันจะถูกโหลดลงในหน่วยความจำ RAM โปรแกรมนี้ถูกโหลดโดย กระบวนการ ซึ่งมีรหัสไบนารี่ที่เกี่ยวข้องและทรัพยากรที่จำเป็นในการทำงานซึ่งจะถูกกำหนดโดยระบบปฏิบัติการ
ทรัพยากรพื้นฐานที่กระบวนการต้องการคือตัวนับโปรแกรมและสแต็กของเร็กคอร์ด
- โปรแกรมตัวนับ (CP): มันถูกเรียกว่าตัวชี้คำสั่งและมันจะติดตาม ลำดับของคำสั่ง ที่กำลังถูกประมวลผล ลงทะเบียน: มันเป็นคลังสินค้าที่ตั้งอยู่ในหน่วยประมวลผลที่คำสั่งที่อยู่จัดเก็บหรือข้อมูลอื่น ๆ สามารถเก็บไว้ได้ สแต็ค: เป็นโครงสร้างข้อมูลที่เก็บข้อมูลที่เกี่ยวข้องกับอินสแตนซ์ที่โปรแกรมทำงานอยู่ในคอมพิวเตอร์
จากนั้น แต่ละโปรแกรมจะถูกแบ่งออกเป็นกระบวนการต่าง ๆ และเก็บไว้ในสถานที่หนึ่งในหน่วยความจำ นอกจากนี้ แต่ละกระบวนการทำงานอย่างอิสระ และสิ่งนี้สำคัญมากที่จะเข้าใจเพราะนี่คือวิธีที่ตัวประมวลผลและระบบมีความสามารถในการดำเนินงานหลายอย่างในเวลาเดียวกันสิ่งที่เราเรียกว่าระบบ มัลติทาสก์ ระบบประมวลผลนี้เป็นตัวการที่เราสามารถทำงานบนพีซีของเราต่อไปแม้ว่าโปรแกรมนั้นจะถูกบล็อก
เธรดของกระบวนการ
นี่คือที่ซึ่ง เธรดการประมวลผลที่เรียกว่าเธรดในระบบปฏิบัติการจะปรากฏขึ้น เธรดคือหน่วยของการประมวลผลของกระบวนการ เราสามารถแบ่งกระบวนการออกเป็นเธรดและแต่ละกระบวนการจะเป็นเธรดของการดำเนินการ
หากโปรแกรมไม่ได้เป็นแบบมัลติเธรดกระบวนการภายในจะมีเพียงหนึ่งเธรดเท่านั้นดังนั้นจึงสามารถ ประมวลผลได้ในครั้งเดียว เท่านั้น ในทางตรงกันข้ามถ้าเรามีกระบวนการแบบมัลติเธรดกระบวนการ เหล่านี้สามารถแบ่งออกเป็นหลายส่วน และแต่ละเธรดเหล่านี้จะแบ่งปันทรัพยากรที่กำหนดให้กับกระบวนการ ดังนั้นเราจึงกล่าวว่ามัลติเธรดมีประสิทธิภาพมากขึ้น
นอกจากนี้ แต่ละเธรดมีสแต็กของตัวเอง เพื่อให้สามารถประมวลผลสองรายการขึ้นไปในเวลาเดียวกันไม่เหมือนกับกระบวนการเดียวซึ่งจะต้องดำเนินการทั้งหมดในครั้งเดียว เธรดเป็นงานที่ง่ายกว่าที่ อนุญาตให้ คุณ เรียกใช้กระบวนการแบบแยก และนี่คือฟังก์ชันสุดท้ายของเธรดการประมวลผล ยิ่งเธรดยิ่งมีการแบ่งกระบวนการ มากขึ้นเท่านั้นและยิ่งมีปริมาณของการคำนวณพร้อมกันมากขึ้นเท่านั้นและยิ่งมีประสิทธิภาพมากขึ้น
เรายังไม่เสร็จเรายังคงมีคำถามที่ค้างอยู่ ว่าจะเกิดอะไรขึ้นกับแกนที่มีเธรดสองครั้ง เราได้กล่าวแล้วว่าเคอร์เนลแต่ละตัวสามารถดำเนินการคำสั่งได้ทีละรายการ ซีพียูมีอัลกอริทึมที่ซับซ้อนซึ่งแบ่งเวลาการดำเนินการในวิธีที่มีประสิทธิภาพที่สุดเท่าที่จะเป็นไปได้ดังนั้นการกำหนดแต่ละช่วงเวลาในการปฏิบัติงานให้แน่นอน การเปลี่ยนแปลงระหว่างงานรวดเร็วมากมันจะให้ความรู้สึกว่านิวเคลียสดำเนินงานพร้อมกัน
เราสามารถดูเธรดหรือเธรดเหล่านั้นในระบบได้หรือไม่?
ไม่ได้มีรายละเอียดมากเกินไป แต่ใช่ เราสามารถเห็นได้ ทั้งบน Windows และ Mac
ในกรณีของ Windows เราจะต้องเปิดตัว จัดการงาน และไปที่ " ประสิทธิภาพ " เท่านั้น จากนั้นเราจะคลิกที่ลิงค์“ การ ตรวจสอบทรัพยากร ” ด้านล่าง ในหน้าต่างใหม่นี้เราจะมีแต่ละกระบวนการแบ่งออกเป็นปริมาณการใช้ CPU และเธรดเหล่านี้จะเป็นเธรด
ในการ ตรวจสอบกิจกรรม Mac เราจะมีเธรดที่ระบุไว้บนหน้าจอหลักโดยตรง
สรุปบทความของเราเกี่ยวกับ เธรดการประมวลผล CPU คือ อะไร แน่นอนว่าเป็นหัวข้อที่ค่อนข้างซับซ้อนในการอธิบายและค่อนข้างเป็นนามธรรมโดยเฉพาะอย่างยิ่งสำหรับผู้ใช้ที่ไม่เข้าใจวิธีการทำงานของโปรเซสเซอร์ แต่ในกรณีนี้เรามีข่าวดีเพราะ เรามีบทความที่ค่อนข้างดีที่พูดเกี่ยวกับวิธีการทำงานของโปรเซสเซอร์และการทำงานของวงจรการเรียนการสอนทั้งหมด
เยี่ยมชมบทความของเราเกี่ยวกับ:
เราหวังว่าทุกอย่างชัดเจนขึ้นและน้อยลงและเราขอขอบคุณที่คุณเลือกให้เรารู้เพิ่มเติมเกี่ยวกับหัวข้อนี้