คำถามติดแท็ก operating-systems

คำถามเกี่ยวกับหลักการของซอฟต์แวร์ที่เชื่อมต่อระหว่างฮาร์ดแวร์และแอพพลิเคชั่น

3
หน่วยประมวลผลหารหัสเคอร์เนลหลังจากถูกขัดจังหวะได้อย่างไร
เมื่อการขัดจังหวะเกิดขึ้นโปรเซสเซอร์จะดำเนินการกระบวนการปัจจุบันและเรียกใช้รหัสเคอร์เนลเพื่อจัดการการขัดจังหวะ โปรเซสเซอร์รู้ได้อย่างไรว่าจะเข้าไปยังเคอร์เนลอย่างไร ฉันเข้าใจว่ามีตัวจัดการขัดจังหวะซึ่งสามารถติดตั้งสำหรับแต่ละบรรทัดขัดจังหวะ แต่เนื่องจากโปรเซสเซอร์ประมวลผล 'hardwired logic' เท่านั้นจึงต้องมีสถานที่ที่กำหนดไว้ล่วงหน้าซึ่งชี้ไปที่ interrupt handler เองหรือบางรหัสที่ประมวลผลก่อน handler (เนื่องจากอาจมีตัวจัดการหลายตัวสำหรับ interrupt line หนึ่งผมถือว่า หลัง)

1
การโทรของระบบทั้งหมดถูกปิดกั้นหรือไม่?
ฉันอ่านบทความที่อธิบายการสลับระหว่างพื้นที่ผู้ใช้และเคอร์เนลพื้นที่ที่เกิดขึ้นเมื่อมีการเรียกระบบ บทความกล่าวว่า แอปพลิเคชันคาดว่าการเรียกระบบจะเสร็จสิ้นก่อนที่จะดำเนินการตามโหมดผู้ใช้ต่อไป ตอนนี้จนถึงตอนนี้ผมก็คิดว่าบางสายระบบอยู่ในขณะที่คนอื่นมีblocking non-blockingด้วยความคิดเห็นข้างต้นตอนนี้ฉันสับสน นี่หมายความว่าการโทรของระบบทั้งหมดกำลังบล็อกหรือฉันเข้าใจแนวคิดผิดหรือไม่?

1
วัตถุประสงค์ของการทำเกลียว M: N (Hybrid) คืออะไร?
กล่าวอีกนัยหนึ่งข้อดีของการทำเธรดไฮบริดมีมากกว่า 1: 1 (เคอร์เนลเท่านั้น) และการทำเธรด N: 1 (ผู้ใช้เท่านั้น) นี่คือการติดตามเพื่อเธรดระดับผู้ใช้และเธรดระดับเคอร์เนลแตกต่างกันอย่างไร

1
สลับการจัดการพื้นที่ระหว่างการสลับหน้าตามความต้องการอย่างแท้จริง
ต่อไปนี้เป็นข้อสงสัยว่าฉันเจอเมื่อทำการมอบหมาย OS ภายในบ้าน - แต่ดูเหมือนว่าจะใช้แนวคิดมากกว่าคำถามการเข้ารหัสที่ตรงไปตรงมาดังนั้น IMHO ฉันจึงไม่คิดว่าแท็กการบ้านนั้นเหมาะสมกับเรื่องนี้ ในแบบแผนความต้องการการเพจที่บริสุทธิ์สำหรับกระบวนการหลาย ๆ กระบวนการที่ทำงานในเวลาเดียวกันกำหนดจำนวนหน่วยความจำ RAM และ Swap คงที่สิ่งที่เกิดขึ้นใน 2 กรณีต่อไปนี้คือการสลับพื้นที่ swap เมื่อ กระบวนการพบข้อบกพร่องของหน้าและไม่มีเฟรมว่างใน RAM ดังนั้นจึงต้องใช้หนึ่งในหน้าของกลุ่มของ Kernel Frames ของกระบวนการที่จะถูกเขียนออกมาเพื่อสลับ (สำหรับความเรียบง่ายฉันไม่ได้พิจารณาการคัดลอก กรณีที่เขียนบน) โดยชัดแจ้งว่าเฟรมนี้จะเขียนที่ใดในพื้นที่สเปซและโครงสร้างข้อมูลใดที่จำเป็นต้องได้รับการอัพเดต เมื่อกระบวนการจำเป็นต้อง page-in หน้าใดหน้าหนึ่งมันจะดูในหน่วยความจำ Swap และจะรู้ได้อย่างไรว่าหน้านั้นมีอยู่ใน Swap เลย? อย่างที่คุณสามารถจินตนาการได้ว่าฉันมีปัญหาในการจัดการพื้นที่สว็อประหว่างวิธีการจัดการความต้องการที่บริสุทธิ์และโครงสร้างข้อมูลใดที่จำเป็น มันจะดีถ้าคุณสามารถอ้างถึงลิงก์ใด ๆ ในคำตอบของคุณ (ฉันค้นหาใน "แนวคิดระบบปฏิบัติการ - รุ่นที่ 8 โดย Silberschatz ฉันไม่พบคำตอบที่ชัดเจนสำหรับคำถามของฉัน)

5
ทำไมการออกแบบระบบปฏิบัติการถึงสามารถลดการใช้พลังงานได้?
ฉันได้อ่านแล้วว่าระบบปฏิบัติการอย่าง Android และ iOS นั้นได้รับการปรับปรุงให้ดีขึ้นเพื่อปรับปรุงอายุการใช้งานแบตเตอรี่ ความเข้าใจของฉันคือ CPU ดำเนินการจำนวนหนึ่งในเวลาที่กำหนดดังนั้นฉันคิดว่าคุณสามารถเร่งความเร็วแอปพลิเคชันโดยลดจำนวนการดำเนินการที่ต้องการ แต่เนื่องจาก CPU จะยังคงทำงานxในเวลาyซึ่งไม่ควร ส่งผลกระทบต่อพลัง? นอกจากนี้หากกระบวนการใช้ RAM มากกว่าจะใช้พลังงานมากกว่าหรือไม่

4
เหตุใดจึงต้องจัดเก็บลิงก์ตนเองและพาเรนต์ (. และ .. ) ในรายการไดเรกทอรี
พิจารณาระบบไฟล์ที่กำหนดเป้าหมายไว้ที่อุปกรณ์ฝังตัวบางตัวที่ทำมากกว่าเก็บไฟล์ในโครงสร้างไดเร็กทอรีแบบลำดับชั้น ระบบไฟล์นี้ไม่มีการดำเนินการหลายอย่างที่คุณอาจใช้ในระบบเช่น unix และ Windows (ตัวอย่างเช่นสิทธิ์การเข้าถึงของระบบนั้นแตกต่างอย่างสิ้นเชิงและไม่ผูกติดกับข้อมูลเมตาที่จัดเก็บในไดเรกทอรี) ระบบไฟล์นี้ไม่อนุญาตให้ใช้ฮาร์ดลิงก์หรือซอฟต์ลิงค์ใด ๆ ดังนั้นไฟล์ทุกไฟล์มีชื่อที่ไม่ซ้ำกันในโครงสร้างต้นไม้ที่เข้มงวด มีประโยชน์ในการจัดเก็บลิงค์ไปยังไดเรกทอรีตัวเองและผู้ปกครองในโครงสร้างข้อมูลบนดิสก์ที่แสดงถึงไดเรกทอรีหรือไม่ ระบบไฟล์ยูนิกซ์ส่วนใหญ่มี.และ..รายการในดิสก์ ฉันสงสัยว่าทำไมพวกเขาไม่จัดการสิ่งเหล่านั้นที่เลเยอร์ VFS (ไดรเวอร์ระบบไฟล์ทั่วไป) นี่เป็นสิ่งประดิษฐ์ทางประวัติศาสตร์หรือไม่? มีเหตุผลที่ดีหรือไม่และหากเป็นเช่นนั้นจะต้องแม่นยำหรือไม่ดังนั้นฉันจึงสามารถตรวจสอบว่ามีความเกี่ยวข้องกับระบบฝังตัวของฉันหรือไม่

3
"แผนที่" หมายถึงอะไร
ฉันพบคำศัพท์หลายครั้งในสื่อการเรียนรู้ CS ต่าง ๆ : L2 CS162 (UC Berkeley): I / O ที่แมปหน่วยความจำ L4 CS162 (UC Berkeley): ไฟล์ที่แม็พหน่วยความจำ L24 CS61 (UC Berkeley): “ หน่วยความจำแมป I / O”: การควบคุมอุปกรณ์ / ข้อมูลลงทะเบียนแมปกับพื้นที่ที่อยู่ของ CPU แม้หลังจาก googling "map" ฉันก็ได้รับบทความ Map_ (สูงกว่า order_function)แต่มันก็ไม่ชัดเจนสำหรับฉัน ยิ่งกว่านั้นพยายามเข้าใจความหมายในบริบทของbitmapการอ่านบทความ Wikipedia : อาเรย์บิตคือการแมปจากบางโดเมน (เกือบตลอดช่วงของจำนวนเต็ม) ไปยังค่าในชุด {0, 1} ฉันไม่แน่ใจ แต่ในบริบทข้างต้นมันฟังดูเกี่ยวกับการแปลงข้อมูล หลังจากอ่านหนังสือ CS …

5
เหตุใดสถานะที่ไม่ปลอดภัยจึงไม่ทำให้เกิดการหยุดชะงัก
ฉันอ่านระบบปฏิบัติการโดย Galvin และพบว่าบรรทัดด้านล่าง ไม่ใช่ว่ารัฐที่ไม่ปลอดภัยทั้งหมดล้วน แต่มีการหยุดชะงัก สถานะที่ไม่ปลอดภัยอาจนำไปสู่การหยุดชะงัก ใครช่วยกรุณาอธิบายว่าdeadlock! =รัฐไม่ปลอดภัยได้อย่างไร ฉันยังจับบรรทัดเดียวกันตรงนี้ด้วย หากไม่มีลำดับที่ปลอดภัยแสดงว่าระบบอยู่ในสถานะไม่ปลอดภัยซึ่งอาจนำไปสู่การหยุดชะงัก (สถานะที่ปลอดภัยทั้งหมดปราศจากการหยุดชะงัก แต่ไม่ใช่ทุกรัฐที่ไม่ปลอดภัยจะนำไปสู่การหยุดชะงัก)

1
หลักการแบบ end-to-end สามารถทำเป็นกรงเล็บได้หรือไม่?
ในช่วงปลายปี 1990 ตอนที่ฉันอยู่ในบัณฑิตวิทยาลัยกระดาษ JH Saltzer; DP Reed; DD คลาร์ก: ข้อโต้แย้ง End-to-end ในการออกแบบระบบ ACM Trans คอมพิวเต Syst 2 (4): 277-288, 1984. DOI = 10.1145 / 357401.357402 มันค่อนข้างจำเป็นต้องอ่านในทุกระบบปฏิบัติการในทุก ๆ ชั้นของมหาวิทยาลัยและมันก็ยังคงเป็นหนึ่งในหลักการที่เป็นแนวทางหลักในการออกแบบอินเทอร์เน็ต (ดูตัวอย่าง: J Kempf, R Austein (eds) และ IAB " การเพิ่มขึ้นของกลางและอนาคตของ End-to-End: ภาพสะท้อนของวิวัฒนาการของสถาปัตยกรรมอินเทอร์เน็ต " RFC 3724, มีนาคม 2004 ) สถานะของหลักการแบบครบวงจร (Saltzer et al., …

1
ตัวกำหนดเวลาสองระดับมีประโยชน์ในการจัดการการแลกเปลี่ยนหรือไม่
การกำหนดเวลาสองระดับมีประโยชน์เมื่อระบบกำลังทำงานกระบวนการมากกว่าที่เหมาะสมใน RAM: ตัวกำหนดตารางเวลาระดับล่างสลับระหว่างกระบวนการที่อยู่อาศัยและตัวจัดกำหนดการระดับสูงกว่าจะสลับกลุ่มของกระบวนการเข้าและออก ฉันพบว่าไม่มีการเอ่ยถึงการตั้งเวลาสองระดับในระบบปฏิบัติการของ Andrew Tanenbaum : การออกแบบและการนำไปใช้งานครั้งที่ 1 แบบฝึกหัด 2.22 ถามว่าเหตุใดการจัดตารางสองระดับจึงอาจใช้ ฉันไม่รู้ว่ามันเป็นการตรวจสอบความเข้าใจในการอ่านหรือมีเหตุผลอื่นที่ไม่ได้กล่าวถึงอย่างชัดเจนในข้อความ การกำหนดเวลาสองระดับมีประโยชน์ในการจัดการความขัดแย้งของทรัพยากรอื่นนอกเหนือจากหน่วยความจำหรือไม่

2
มีใครสามารถอธิบายแผนภาพนี้เกี่ยวกับการจัดสรร Slab ได้หรือไม่?
ฉันพยายามเข้าใจว่า Slab Allocation ทำงานอย่างไรและเหตุใดจึงแตกต่างหรือดีกว่าการจัดเพจทั่วไป ฉันพบแผนภาพนี้ซึ่งฉันเชื่อว่าจะมีประโยชน์หากมีคำอธิบายเพิ่มเติม บางคำถาม: รายการ 3KB และ 7KB หมายถึงอะไร พวกเขาจะต้องเกี่ยวข้องอย่างใด? ทำไมพวกเขาถึงทำแบบนั้น? ในคอลัมน์แคชกล่องสีเทาหรือกล่องสีขาว / สีน้ำเงินภายในกล่องสีเทาหรือไม่ กล่องสีเทาเป็นแพ็คเกจของแคชหรือไม่ แผ่นพื้นเป็นเพียงกล่องสีน้ำเงินหรือเป็น "แผ่นที่อยู่ติดกันทางกายภาพ" ทั้งหมดหรือไม่ ฉันขอขอบคุณความช่วยเหลือ ขอบคุณ!

2
ไฟล์คืออะไร?
ฉันกำลังมองหาความหมายอย่างเป็นทางการของไฟล์ที่ไม่เพียงรวมที่เก็บข้อมูล แต่ยังรวมถึง abstractions เช่น procfs หรือ / dev / null (หรือไฟล์อิงฟิวส์) ที่ไม่เกี่ยวข้องกับการจัดเก็บ จนถึงตอนนี้ฉันรู้ว่าไฟล์ทั้งหมดเป็นนามธรรมที่ สามารถระบุได้ สามารถมีชื่อ (มักจัดระเบียบในโครงสร้างแบบลำดับชั้น) สามารถเข้าถึงได้เป็นสตรีมไบต์ มักจะให้สิทธิ์และข้อมูลเมตาอื่น ๆ (เฉพาะระบบ) แต่ฉันไม่สามารถหาคำจำกัดความที่เป็นทางการที่มีประโยชน์ในหนังสือ OS ที่ฉันอ่านมา

3
ทำไมซีพียูถึงเกี่ยวข้องระหว่าง Keyboard Echo
ขณะนี้ฉันกำลังเรียนเพื่อสอบวิทยาศาสตร์คอมพิวเตอร์และฉันเจอแนวคิดที่ทำให้ฉันค่อนข้างนิ่งงัน เมื่อพิมพ์คีย์บนแป้นพิมพ์อักขระ ASCII จะถูกส่งไปยัง CPU เมื่อรับตัวอักษรนี้ CPU จะแสดงอักขระตัวเดียวกันบนหน้าจอ กระบวนการนี้เรียกว่าการสะท้อน แทนที่จะให้ซีพียูมีส่วนเกี่ยวข้องทำไมเราไม่เพียงทำกระบวนการสะท้อนนี้ภายในหน่วยแป้นพิมพ์ / หน้าจอเพื่อให้ CPU มีอิสระในการทำงานที่มีประโยชน์อื่น ๆ ตอนนี้อย่างสังหรณ์ใจฉันรู้สึกแบบนี้เพราะไม่มีหน่วยแป้นพิมพ์ / หน้าจอที่กำหนดและ CPU เป็นอุปกรณ์ที่รับผิดชอบในการสื่อสารระหว่างหน้าจอและแป้นพิมพ์ผ่านเครือข่ายเชื่อมต่อโครงข่าย อย่างไรก็ตามฉันรู้สึกเหมือนความจริงที่ว่าหน่วยแป้นพิมพ์ / หน้าจอกล่าวถึงอาจหมายความว่าฉันขาดแนวคิดที่สำคัญ เป็นกรณีนี้หรือไม่? ทำไมเราถึงเกี่ยวข้องกับ CPU ในกระบวนการ echo

1
การเขียนระบบปฏิบัติการมัลติทาสก์สำหรับโปรเซสเซอร์ที่ไม่มี MMU
ฉันคิดถึงการเขียนระบบปฏิบัติการอดิเรกสำหรับโปรเซสเซอร์ ARM บางตัว มีคอมพิวเตอร์บอร์ดเดี่ยวยอดนิยมหลายตัวที่มี ARM MPU ดังนั้นฉันแค่อยากจะซื้อหนึ่งในนั้น (เลือกหนึ่งที่มีเอกสารเปิดมากกว่า) ฉันรู้สึกประหลาดใจเมื่อพบว่าแม้บอร์ดที่มีหน่วยความจำเพียงพอจริง ๆ ก็ไม่มี MPUs ที่มีหน่วยความจำจัดการ เนื่องจากฉันทำงานกับโปรเซสเซอร์ i386 + มาตลอดและไม่เคยทำสิ่งอื่นใด (ยกเว้น Microchip PIC บางตัว) ตอนนี้ฉันสับสนและไม่แน่ใจว่าใครสามารถเขียนระบบปฏิบัติการที่ใช้งานได้ซึ่งฟังก์ชั่นจะไม่ถูก จำกัด เมื่อเปรียบเทียบกับระบบปฏิบัติการที่เขียน สำหรับ MPU กับ MMU ฉันสามารถคิดถึงวิธีแก้ปัญหาเล็กน้อยสำหรับ "การแทนที่" หรือ "การจำลอง" MMU และฉันมีคำถามสองสามข้อ: บนโปรเซสเซอร์ Intel ในโหมด 16 และ 32 บิตมีวิธีการใช้เซกเมนต์และตัวเลือกเซกเมนต์เพื่อใช้บล็อกหน่วยความจำที่แตกต่างกันตามงานที่แตกต่างกัน นั่นหมายความว่าฉันสามารถเปลี่ยนพื้นที่หน่วยความจำได้โดยการเปลี่ยนเนื้อหาของเซกเมนต์รีจิสเตอร์เมื่อทำการสลับงานเมื่อใช้ x86 มีแนวคิดทั่วไปสำหรับการแบ่งส่วนหน่วยความจำที่สามารถใช้กับสถาปัตยกรรม ARM ได้หรือไม่? โดยการโหลดไฟล์ออบเจกต์ที่เชื่อมโยงแทนการปฏิบัติการฉันสามารถใช้การเปลี่ยนตำแหน่ง (การแก้ไข) หรือวางโค้ดอิสระเพื่อชี้ตำแหน่งงานบนชิ้นส่วนของหน่วยความจำในลักษณะเดียวกับที่ฉันทำแผนที่หน่วยความจำโดยใช้โครงสร้างเพจจิ้ง สิ่งนี้จะมีประสิทธิภาพเพียงพอหรือไม่ …

4
การขัดจังหวะในบริบทของระบบปฏิบัติการหมายถึงอะไร
ฉันตัดสินใจที่จะอ่านแนวคิดระบบปฏิบัติการโดย Silberschatz, Galvin Gagne (รุ่นที่ 8) ในช่วงฤดูร้อน ฉันได้รับหัวข้อที่ทำให้ฉันสับสน - ขัดจังหวะและบทบาทของพวกเขาเนื่องจากเกี่ยวข้องกับระบบปฏิบัติการ ข้อความบอกว่าระบบปฏิบัติการจะเริ่มกระบวนการแรกเช่น "init" จากนั้นรอให้เกิดเหตุการณ์ "" และเหตุการณ์นี้มักจะมีสัญญาณจากการขัดจังหวะ ข้อความยังบอกด้วยว่าการขัดจังหวะอาจมาจากฮาร์ดแวร์หรือซอฟต์แวร์ มันทำงานอย่างไรในรายละเอียดเพิ่มเติมเล็กน้อย? ระบบปฏิบัติการขับเคลื่อนด้วยอินเตอร์รัปต์หรือไม่ ฉันแค่มองหาความเข้าใจภาพรวมขนาดใหญ่

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