วิทยาศาสตร์คอมพิวเตอร์

ถาม - ตอบสำหรับนักเรียนนักวิจัยและผู้ปฏิบัติงานด้านวิทยาการคอมพิวเตอร์

2
มีการศึกษาหรือทฤษฎีเบื้องหลังการรวมการค้นหาแบบฐานสองและการค้นหาแบบสอดแทรกหรือไม่?
ฉันเพิ่งอ่านอัลกอริทึมนี้ยังสามารถใช้เป็นอัลกอริทึมการค้นหาแบบไบนารี่ได้หรือไม่ และจำได้ว่าไม่กี่ปีหลังฉันเขียนดัชนี / ค้นหาไฟล์บันทึกเพื่อค้นหารายการบันทึกในไฟล์ข้อความธรรมดาขนาดใหญ่ตามหน้าต่างวันที่ / เวลา ในขณะที่ทำสิ่งนี้ฉันตัดสินใจลองค้นหาการแก้ไข (ฉันไม่รู้ว่ามันคือสิ่งที่เรียกว่าฉันเองก็ตกหลุมคิดด้วยตัวเอง) จากนั้นด้วยเหตุผลบางอย่างฉันยังคงความคิดของการสลับขั้นตอนการแก้ไขด้วยขั้นตอนการแยกไบนารี: ในขั้นตอนที่ 0 ฉันจะแก้ไขการตัดสินใจเลือกจุดทดสอบแล้วขั้นตอนที่ 1 ฉันจะใช้จุดกึ่งกลางที่แน่นอน ฯลฯ จากนั้นฉันเปรียบเทียบระบบโดยใช้การค้นหาแบบสอดแทรกที่บริสุทธิ์การค้นหาแบบไบนารีที่แท้จริงและความพยายามในการรวมกันของฉัน วิธีการสลับเป็นผู้ชนะที่ชัดเจนทั้งในเวลาและจำนวนการทดสอบที่จำเป็นก่อนที่จะหาชุดของเวลาที่สุ่มเลือก ได้รับแรงบันดาลใจจากคำถามที่เชื่อมโยงฉันเพิ่งทำการค้นหาอย่างรวดเร็วสำหรับ "การค้นหาการแก้ไขแบบสลับและการค้นหาแบบไบนารี" และไม่พบอะไรเลย ฉันได้ลองใช้ "การค้นหาแบบสอดแทรกการแก้ไขแบบป้องกันความเสี่ยง" ตามที่แนะนำในความคิดเห็นของฉันในคำตอบข้อใดข้อหนึ่ง ฉันเจอสิ่งที่รู้หรือไม่? มีเหตุผลทางทฤษฎีใดที่ทำให้ข้อมูลบางประเภทเร็วขึ้น? โดยทั่วไปไฟล์บันทึกจะมีขนาดใหญ่ในเวลานั้น (เช่นข้อความขนาด 1-2 GB ซึ่งอาจค้นหาได้ 10 ล้านแถว) และการแพร่กระจายของวันที่ / เวลานั้นซับซ้อนด้วยการระเบิดของกิจกรรมเวลาสูงสุดทั่วไปและช่วงเวลาที่เงียบสงบ การทดสอบเกณฑ์มาตรฐานของฉันสุ่มตัวอย่างจากการกระจายเวลาเป้าหมายเท่า ๆ กันเพื่อค้นหา

1
ทำไมชุดการนับของปัญหาการตัดสินใจที่ยากจึงไม่ยากโดยอัตโนมัติ
เป็นที่ทราบกันดีว่า 2-SAT อยู่ใน P อย่างไรก็ตามดูเหมือนว่าค่อนข้างน่าสนใจที่จะนับจำนวนโซลูชันเป็นสูตร 2-SAT ที่กำหนดเช่น # 2-SAT คือ # P-hard นั่นคือเรามีตัวอย่างของปัญหาที่การตัดสินใจง่าย แต่การนับนั้นยาก แต่ให้พิจารณาปัญหา NP-complete ตามอำเภอใจ (พูด 3-COL) เราสามารถพูดบางอย่างเกี่ยวกับความแข็งของชุดนับได้หรือไม่? สิ่งที่ฉันถามคือ: ทำไมเราต้องมีหลักฐานอื่นเพื่อแสดงความแตกต่างในการนับของปัญหาการตัดสินใจที่ยาก # # P-hard? (บางครั้งคุณจะเห็นการลดลงอย่างมากที่รักษาจำนวนการแก้ปัญหาและอื่น ๆ ) ฉันหมายถึงจริงๆถ้าปัญหาการนับเป็นเรื่องง่ายคุณสามารถแก้ไขปัญหาการตัดสินใจได้โดยอัตโนมัติเช่นกัน! แล้วมันจะไม่ยากได้อย่างไร? (ตกลงอาจจะยาก แต่ฉันไม่แน่ใจว่าคำจำกัดความของ hard ใด)

2
การเชื่อมต่อระหว่างประตู NAND และทัวริงสมบูรณ์
ฉันรู้ว่าประตู NAND สามารถใช้ในการสร้างวงจรที่ใช้ความจริงทุกตารางและคอมพิวเตอร์ที่ทันสมัยสร้างขึ้นจากประตู NAND การเชื่อมโยงเชิงทฤษฎีระหว่างประตู NAND และทัวริงสมบูรณ์เป็นอย่างไร สำหรับฉันดูเหมือนว่าวงจรเกต NAND ใกล้กับออโตมาต้าที่ จำกัด กว่าเครื่องทัวริง สัญชาตญาณของฉันคือฉันสามารถสร้าง flip-flop และดังนั้นการลงทะเบียนและหน่วยความจำออกจากประตู NAND และหน่วยความจำที่ไม่ได้ จำกัด เป็นคุณสมบัติที่สำคัญของทัวริงระบบที่สมบูรณ์ ฉันกำลังมองหาคำอธิบายทางทฤษฎีหรือคณิตศาสตร์เพิ่มเติมหรือพอยน์เตอร์เกี่ยวกับสิ่งที่อ่าน

3
ความแตกต่างของความซับซ้อนระหว่างการค้นหาวิธีแก้ปริศนาซูโดกุกับการพิสูจน์ว่าโซลูชันเป็นวิธีแก้ปัญหาที่ไม่เหมือนใคร
ปกติแล้วซูโดกุจะเป็นแต่คำถามนี้ครอบคลุมถึงตัวต่อn 2 × n 2 ที่มีn > 3เช่นกัน มีกฎการลดเวลาแบบพหุนามจำนวนมากที่สามารถสร้างความคืบหน้าในการค้นหาวิธีแก้ปริศนาซูโดกุ แต่บางครั้งการคาดเดาค่าและการติดตามข้อสรุปอาจจำเป็นต้องกำจัดค่าของเซลล์หรือการรวมกันของค่าของเซลล์ อย่างไรก็ตามเมื่อพบโซลูชันที่ถูกต้องแล้วสิ่งนี้จะไม่รับประกันว่าโซลูชันนั้นจะไม่ซ้ำกัน ปริศนา Sudoku ที่ถูกต้องควรมีวิธีแก้ไขปัญหาที่ถูกต้องเพียงตัวเดียว แต่เมื่อสร้างตัวต่อแบบสุ่มนี่อาจใช้การคำนวณพิเศษเพื่อตรวจสอบ9 × 99×99 \times 9n2× n2n2×n2n^2 \times n^2n > 3n>3n > 3 ดังนั้นคำถามของฉันคือถ้าเราอนุญาตให้มีกฎการลดเวลาแบบพหุนามหนึ่งชุด (กล่าวคือชุดที่พบมากที่สุดที่อธิบายไว้ในกลยุทธ์ของ Sudoku) พร้อมกับการคาดเดาค่าและทำตามข้อสรุปจากนั้นสรุปว่า วิธีแก้ปัญหาที่ไม่ซ้ำกันสำหรับปริศนาที่กำหนดเมื่อเทียบกับการค้นหาเพียงหนึ่งโซลูชันในแง่ของจำนวนโซลูชันที่ไม่ซ้ำกันใช่ไหม มีความแตกต่างเชิงซีมโทติคสำหรับปริศนาบางประเภทหรือไม่?

1
ทำไมทฤษฎีบทของ Shaefer และ Mahaney จึงไม่ได้หมายถึง P = NP
ฉันแน่ใจว่ามีบางคนคิดเกี่ยวกับเรื่องนี้มาก่อนหรือยกเลิกในทันที แต่ทำไมทฤษฎีการแบ่งขั้วของ Schaefer และทฤษฎีบทของ Mahaney ในฉากห่าง ๆ ไม่ได้แปลว่า P = NP? นี่คือเหตุผลของฉัน: สร้างภาษาซึ่งเท่ากับ SAT ตัดกันโดยชุด sparse decidable ที่ไม่มีที่สิ้นสุด จากนั้นจะต้องกระจัดกระจาย เนื่องจากไม่ใช่เรื่องเล็ก ๆ น้อย ๆ เลียนแบบ 2-sat หรือ Horn-sat ตามทฤษฎีบทของ Shaefer มันจะต้องเป็นปัญหาที่สมบูรณ์ แต่จากนั้นเรามีชุด NP-complete ที่กระจัดกระจายตามทฤษฎีบทของ Mahaney, P = NPLLLLLLLLL ฉันจะไปผิดที่นี่ที่ไหน ฉันสงสัยว่าฉันเข้าใจผิด / ใช้ทฤษฎีบทของ Shaefer ไปในทางที่ผิด แต่ฉันไม่เห็นสาเหตุ

7
โปรแกรมดำเนินการที่ระดับ CPU อย่างไร
ฉันรู้ว่านี่เป็นคำถามที่พบบ่อยมาก แต่ฉันมีมุมที่แตกต่างในใจของฉัน ฉันจะพยายามทำให้ชัดเจนที่นี่ จากสิ่งที่ฉันรู้ทุกคำสั่งที่ CPU ดำเนินการอยู่ในภาษาเครื่องและ CPU ทั้งหมดสามารถทำได้คือการดำเนินการทางคณิตศาสตร์ด้วย ALU และทรานซิสเตอร์ (ถ้าเราไปที่ระดับฮาร์ดแวร์) อย่างไรก็ตามวิธีนี้ง่ายกว่าการพิมพ์เพื่อทำความเข้าใจ ดังนั้นหาก CPU ทั้งหมดทำการบวกลบออกแล้วเป็นอย่างไรโปรแกรมพูดว่าโปรแกรม JAVA ว่าพิมพ์ Hello World ดำเนินการกับการคำนวณทางคณิตศาสตร์เหล่านี้อย่างไร ฉันหมายถึงโปรแกรมนี้ถูกแปลงเป็นสิ่งที่เป็นเพียงส่วนเสริมสำหรับซีพียูอย่างไร ป.ล. หากคำถามนี้ใช้ไม่ได้กับเว็บไซต์นี้ฉันต้องขออภัย ----- ตอนที่สอง ----- ตกลง. ขอบคุณทุกคนที่ตอบคำถามนี้อย่างรวดเร็วและด้วยความกระตือรือร้น ฉันคิดว่าการแก้ไขคำถามของฉันจะดีกว่าไปแสดงความคิดเห็นต่อคำตอบทั้งหมดแล้วถามพวกเขาอีกครั้ง ดังนั้นนี่คือ ก่อนอื่นทุกคนตอบคำถามตัวอย่างของ Hello World โดยเฉพาะ นี่คือความผิดของฉัน ฉันควรเก็บยาสามัญนี้ไว้ สวัสดีตัวอย่างโลกนำมาซึ่งคำถามเกี่ยวกับอุปกรณ์ส่งออกและวิธีการประมวลผลของมันไม่ได้ จำกัด อยู่เพียงแค่ CPU ซึ่งถูกนำขึ้นมาอย่างถูกต้องในคำตอบของคุณ ยังมีพวกคุณหลายคนที่ทราบว่า CPU ทำมากกว่าแค่เพิ่ม ฉันเห็นด้วยกับที่ ฉันไม่ได้เขียนมันและคิดไปตลอดทาง จากสิ่งที่ฉันเข้าใจนี่คือกระบวนการ: อ่านคำแนะนำจากหน่วยความจำ (โดยใช้ข้อมูลและที่อยู่รถประจำทางและสิ่งที่เคาน์เตอร์โปรแกรม) เก็บข้อมูลใน …

3
ภาษาการวิจัยใดที่มีระบบการพิมพ์ที่ดีกว่า Haskell และทำไม
ที่นี่ฉันอ่านแล้ว: Haskell ไม่มีระบบการพิมพ์ขั้นสูงสุด (ไม่ปิดแม้แต่ถ้าคุณนับภาษาการวิจัย) แต่จากภาษาทั้งหมดที่ใช้ในการผลิตจริง Haskell น่าจะอยู่ด้านบน ดังนั้นฉันถามสองสิ่ง: ภาษาวิจัยใดที่มีระบบพิมพ์ที่ทรงพลังกว่า Haskell พวกเขาปรับปรุงอะไร ฉันเป็นโปรแกรมเมอร์ดังนั้นฉันไม่รู้วัตถุทางคณิตศาสตร์มากมายที่ใช้ในทฤษฎีชนิดโปรดอธิบายอย่างนุ่มนวลหากคุณสามารถ

2
ความแตกต่างระหว่างความซับซ้อนของเวลาและความซับซ้อนของการคำนวณ
สำหรับการวัดความซับซ้อนของอัลกอริธึมมันซับซ้อนกับเวลาหรือความซับซ้อนในการคำนวณหรือไม่ ความแตกต่างระหว่างพวกเขาคืออะไร? ฉันใช้ในการคำนวณจำนวนสูงสุด (แย่ที่สุด) ของการดำเนินการขั้นพื้นฐาน (คิดต้นทุนมากที่สุด) ในอัลกอริทึม

1
มีปัญหาที่สมบูรณ์สำหรับชั้นเรียนของทัวริงที่ตัดสินใจได้หรือไม่?
ภาษาเช่นนั้นเสร็จสมบูรณ์อีกครั้งภายใต้การลดจำนวนครั้งเดียว มันไม่สำคัญที่จะเห็นว่าco-REมีปัญหาที่สมบูรณ์เช่นกัน เอส Schmitz [1]พิจารณาบางชั้นเรียน inbetween ELEMและถ่ายภาพ พวกเขานำเสนอปัญหาที่สมบูรณ์สำหรับคลาสเหล่านี้ภายใต้การลดที่สร้างขึ้นโดยเฉพาะHALTTMHALTTM\text{HALT}_{TM}RE-completeRE-complete\textsf{RE-complete}co-REco-RE\text{co-RE}ELEMELEM\text{ELEM}RECREC\text{REC} มีปัญหาที่สมบูรณ์สำหรับ (aka REC ) ที่สัมพันธ์กับการลดลงที่อ่อนแอกว่าหรือไม่? การลดขนาดของทัวริงนั้นไม่เหมาะสมเพราะพวกเขาสามารถทำงานทั้งหมดได้ เราควรคาดหวังว่าการลดลงดังกล่าวจะได้รับการวางแผนหรือไม่เช่นนั้น ( เช่นการลดหลายรายการที่ จำกัด เฉพาะการเรียกซ้ำแบบดั้งเดิม)R=RE∩co-RER=RE∩co-RE\textsf{R} = \textsf{RE} \cap \textsf{co-RE}RECREC\textsf{REC} [1] ลำดับชั้นซับซ้อน Sylvain Schmitz นอกเหนือจากประถมศึกษาปี 2013 http://arxiv.org/abs/1312.5686

1
บทพิสูจน์ทฤษฎีบท Karp-Lipton
ฉันกำลังพยายามที่จะเข้าใจหลักฐานของทฤษฎีบท Karp-Lipton ตามที่ระบุไว้ในหนังสือ "Computational Complexity: A modern approach" (2009) โดยเฉพาะอย่างยิ่งหนังสือเล่มนี้ระบุต่อไปนี้: ทฤษฎีบท Karp-Lipton หากNP P ∖ P o L Yแล้วPH = Σ พี 2⊆⊆\subseteq P∖ p o l yP∖พีโอล.YP_{\backslash poly} = Σพี2=Σ2พี= \Sigma^p_2 พิสูจน์: โดยทฤษฎีบท 5.4 เพื่อแสดงPH ก็พอเพียงที่จะแสดงให้เห็นว่าΠ พี2 ⊆ Σ พี2และโดยเฉพาะอย่างยิ่งในนั้นพอเพียงที่จะแสดงให้เห็นว่าΣ พี2มีΠ พี2ภาษาที่สมบูรณ์Π 2 SAT= Σพี2=Σ2พี= \Sigma^p_2Πพี2⊆ Σพี2Π2พี⊆Σ2พี\Pi^p_2\subseteq \Sigma^p_2Σพี2Σ2พี\Sigma^p_2Πพี2Π2พี\Pi^p_2Π2Π2\Pi_2 ทฤษฎีบท …

1
ความซับซ้อนที่รู้จักกันเร็วที่สุดสำหรับอัลกอริทึม ILP combinatorial?
ฉันสงสัยว่าอัลกอริทึมที่รู้จักกันดีที่สุดในแง่ของ Big- สัญกรณ์คือการแก้ปัญหาการเขียนโปรแกรมเชิงเส้นจำนวนเต็ม?OOO ฉันรู้ว่าปัญหาคือสมบูรณ์ดังนั้นฉันไม่คาดหวังว่าจะมีพหุนามใด ๆ และฉันรู้ว่ามีฮิวริสติกจำนวนมากและใช้ในการใช้งานจริงเช่น CPLEX แต่ฉันสนใจในความซับซ้อนที่เป็นทางการและเลวร้ายที่สุดของอัลกอริทึมที่แน่นอนNPNPNP ปัญหาที่ไม่สมบูรณ์ของบางตัวมีอัลกอริทึมในเวลาO ( b n p ( n ) )โดยที่1 &lt; b &lt; 2และpเป็นพหุนาม จุดสุดยอดปกชุดอิสระและ 3SAT ตกอยู่ในหมวดหมู่นี้ แต่ทั่วไป SAT และ TSP ไม่ (เท่าที่เรารู้)NPNPNPO(bnp(n))O(bnp(n))O(b^n p(n))1&lt;b&lt;21&lt;b&lt;21 < b < 2ppp สามารถมีคำสั่งใด ๆ เกี่ยวกับการเขียนโปรแกรมจำนวนเต็มหรืออินสแตนซ์ย่อยเฉพาะได้หรือไม่ หากใครมีข้อมูลอ้างอิงสำหรับปัญหาที่เกี่ยวข้องของ Quantifier Free Presburger Arithmetic ฉันก็สนใจเช่นกัน

2
มีคลาสความซับซ้อนที่สร้างขึ้นพร้อมตัวเลขจริงหรือไม่?
เมื่อเร็ว ๆ นี้นักเรียนคนหนึ่งขอให้ฉันตรวจสอบหลักฐานความแข็ง NP สำหรับพวกเขา พวกเขาทำการลดตามแนวของ: ฉันลดปัญหานี้ที่เป็นที่รู้จักกันว่า NP-complete กับปัญหาPของฉัน(ด้วยการลดโพลีเวลาหลายโพลี) ดังนั้นPคือ NP-hardP′P′P'PPPPPP คำตอบของฉันเป็นพื้น: เนื่องจากมีอินสแตนซ์ที่มีค่าจากRจึงไม่มีการคำนวณทัวริงเล็กน้อยดังนั้นคุณสามารถข้ามการลดลงได้PPPRR\mathbb{R} ในขณะที่เป็นจริงอย่างเป็นทางการฉันไม่คิดว่าวิธีการนี้มีความชาญฉลาด: เราต้องการที่จะได้รับ "ความซับซ้อนโดยธรรมชาติ" ของการตัดสินใจที่มีคุณค่าจริง ๆ (หรือการเพิ่มประสิทธิภาพ) ปัญหาโดยไม่คำนึงถึงข้อ จำกัด ที่เราเผชิญ หมายเลข; การตรวจสอบปัญหาเหล่านี้เป็นอีกวัน แน่นอนว่ามันไม่ง่ายเหมือนการพูดเสมอว่า "ผลรวมย่อยของเซ็ตย่อยไม่สมบูรณ์ดังนั้นรุ่นต่อเนื่องคือ 'NP-hard' เช่นกัน" ในกรณีนี้การลดลงทำได้ง่าย แต่มีกรณีที่โด่งดังของรุ่นต่อเนื่องที่ง่ายขึ้นเช่นการเขียนโปรแกรมเชิงเส้นและจำนวนเต็ม มันเกิดขึ้นกับฉันว่ารุ่น RAM นั้นขยายไปถึงจำนวนจริง อนุญาตให้ทุก register เก็บหมายเลขจริงและขยายการดำเนินงานขั้นพื้นฐานตามลำดับ รูปแบบค่าใช้จ่ายสม่ำเสมอยังคงสมเหตุสมผล - ในกรณีที่ไม่ต่อเนื่องในขณะที่แบบลอการิทึมไม่มี ดังนั้นคำถามของฉันถึง: มีการกำหนดความซับซ้อนของปัญหาที่มีคุณค่าจริงหรือไม่? พวกเขาเกี่ยวข้องกับคลาสที่ไม่ต่อเนื่อง "มาตรฐาน" อย่างไร การค้นหาของ Google ให้ผลลัพธ์บางอย่างเช่นนี้แต่ฉันไม่มีวิธีบอกสิ่งที่สร้างขึ้นและ / หรือมีประโยชน์และสิ่งที่ไม่

2
มีอัลกอริธึมที่มีประสิทธิภาพสำหรับการเทียบเคียงนิพจน์หรือไม่?
เช่น ?xy+x+y=x+y(x+1)xy+x+y=x+y(x+1)xy+x+y=x+y(x+1) นิพจน์นั้นมาจากพีชคณิตระดับมัธยมธรรมดา แต่ จำกัด เฉพาะการเพิ่มและการคำนวณทางคณิตศาสตร์ (เช่น ) โดยไม่มีการลบการลบหรือการหาร ตัวอักษรเป็นตัวแปร2+2=4;2.3=62+2=4;2.3=62+2=4; 2.3=6 หากเป็นไปได้เราสามารถห้ามการแสดงออกใด ๆ ที่แสดงด้วยค่าตัวเลขอื่นที่ไม่ใช่ ; เช่นไม่ใช่หรือหรือ :111x2x2x^23x3x3x444 หลายเส้นไม่มีพลังอื่นใดนอกจาก :ก็โอเค แต่ไม่ใช่และไม่ใช่ทุกอย่างที่สามารถแทนได้เช่นเดียวกับใน การขยายเต็มไปสู่ผลรวมของผลิตภัณฑ์เช่นไม่ใช่ ; 111x+xy≡x1+x1y1x+xy≡x1+x1y1x+xy \equiv x^1+x^1y^1x2+x3y4x2+x3y4x^2+x^3y^4x(x+y)≡x2+yx(x+y)≡x2+yx(x+y) \equiv x^2+y ทั้งหมดไม่มีสัมประสิทธิ์นอกเหนือจาก :ก็โอเค แต่ไม่ใช่และไม่ใช่ทุกอย่างที่สามารถแทนได้เช่นเดียวกับที่ขยายเต็มไปจนถึงผลรวมของ - ผลิตภัณฑ์เช่นไม่ใช่ ; และ 111x+xy≡1.x+1.xyx+xy≡1.x+1.xyx+xy \equiv 1.x+1.xy2x+3xy2x+3xy2x+3xya(x+y)+x(a+b)≡2ax+ay+bxa(x+y)+x(a+b)≡2ax+ay+bxa(x+y)+x(a+b) \equiv 2ax+ay+bx ไม่มีค่าคงที่อื่นที่ไม่ใช่ : อีกครั้งในผลรวมของผลิตภัณฑ์ที่ขยายตัวอย่างเต็มที่ไม่ใช่111(a+1)+(b+1)≡a+b+2(a+1)+(b+1)≡a+b+2(a+1)+(b+1) \equiv a+b+2 Q.Q.Q.มีอัลกอริธึมที่มีประสิทธิภาพในการพิจารณาว่าสองนิพจน์นั้นเทียบเท่ากันหรือไม่? เพื่อแสดงให้เห็นต่อไปนี้เป็นอัลกอริทึมแรงเดรัจฉานที่ไม่มีประสิทธิภาพพร้อมเวลาอธิบาย: ขยายทั้งสองนิพจน์ให้เป็นผลรวมของผลิตภัณฑ์ซึ่งสามารถตรวจสอบได้อย่างง่ายดายสำหรับการเทียบเท่า (เพียงแค่ไม่สนใจคำสั่งซื้อเนื่องจากการเดินทาง / เชื่อมโยงสามารถเรียงลำดับใหม่) …

2
ข้อผิดพลาดที่อาจเกิดขึ้นกับการมีเคอร์เนลน้อยที่สุดที่เรียกใช้รหัสที่ได้รับการจัดการคืออะไร?
สมมติว่าฉันต้องการสร้างระบบปฏิบัติการโดยใช้เคอร์เนลตัวล่างที่เล็กมากซึ่งทำหน้าที่เป็นตัวแปลรหัสที่ได้รับการจัดการ / รันไทม์และเคอร์เนลส่วนบนขนาดใหญ่ที่คอมไพล์กับภาษาเครื่องที่ไม่ใช่เจ้าของภาษา (Java bytecode, CIL เป็นต้น) ตัวอย่างของระบบปฏิบัติการที่คล้ายกันจะเป็นเอกเทศและคอสมอส ข้อผิดพลาดและความท้าทายในการพัฒนาที่มีอยู่คือการเขียนระบบปฏิบัติการด้วยโครงสร้างพื้นฐานแบบนี้ซึ่งแตกต่างจากโซลูชั่นดั้งเดิม

2
ประสิทธิภาพของ microkernel เทียบกับ kernel แบบ monolithic
microkernel ใช้ไดรเวอร์ทั้งหมดเป็นโปรแกรมพื้นที่ผู้ใช้และใช้คุณสมบัติหลักเช่น IPC ในเคอร์เนลเอง เคอร์เนลเสาหินอย่างไรก็ตามใช้ไดรเวอร์เป็นส่วนหนึ่งของเคอร์เนล (เช่นทำงานในโหมดเคอร์เนล) ฉันได้อ่านการอ้างสิทธิ์บางอย่างว่า microkernels นั้นช้ากว่า monolithic kernels เนื่องจากพวกเขาจำเป็นต้องจัดการกับข้อความที่ส่งระหว่างไดรเวอร์ในพื้นที่ของผู้ใช้ มันเป็นเรื่องจริงเหรอ? เป็นเวลานานเมล็ดส่วนใหญ่เป็นเสาหินเนื่องจากฮาร์ดแวร์ช้าเกินกว่าที่จะเรียกใช้ไมโครเคอร์เนลได้อย่างรวดเร็ว อย่างไรก็ตามขณะนี้มีไมโครเคิลและไฮบริดหลายเมล็ดเช่น GNU / Hurd, Mac OS X, สาย Windows NT เป็นต้น แล้วมีอะไรเปลี่ยนแปลงเกี่ยวกับประสิทธิภาพของ microkernels บ้าง? คำติชมของ microkernels นี้ยังใช้ได้ในปัจจุบันหรือไม่?

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