คอมพิวเตอร์สามารถบันทึกสิ่งต่าง ๆ ได้ก่อนที่จะเกิดปัญหาได้อย่างไร


52

ฉันรู้สึกว่าเมื่อคอมพิวเตอร์ขัดข้องมีบางอย่างผิดปกติและไม่สามารถทำงานได้อีกต่อไป

ฉันสงสัยว่าคอมพิวเตอร์สามารถบันทึกสิ่งต่างๆก่อนที่มันจะล่มได้อย่างไร

คอมพิวเตอร์มีความสามารถในการรู้ว่าเมื่อใดจะเกิดข้อผิดพลาด (และแจ้งให้ทราบถึงกระบวนการทั้งหมด: " บันทึกโดยเร็วเพราะฉันกำลังจะพัง ")?

ถ้าไม่เป็นไปได้อย่างไรที่โปรแกรมเช่นนี้ChromeและMicrosoft Wordสามารถให้บริการ "กู้คืน" หลังจากที่คอมพิวเตอร์ล้มเหลว


13
ฉันชอบคำตอบของคำถามที่อยู่ในชื่อของคำถาม
Chris

ไฟฉุกเฉินจะสว่างขึ้นเมื่อปิดเครื่องได้อย่างไร
JoelFan

@JoelFan พวกเขาไม่ได้หากแบตเตอรี่ / เครื่องกำเนิดไฟฟ้าของคุณตาย = P
Mechaflash

คำตอบ:


6

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

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

แต่แม้ว่าระบบจะ "ยาก" แต่ระบบโดยรวมและแอพพลิเคชั่นส่วนบุคคลอาจยังคงรักษาระบบของ "วารสาร" และ / หรือ "จุดตรวจ" เพื่อให้สถานะของระบบโดยรวมและแอปพลิเคชันแต่ละรายการสามารถกู้คืนได้ ถึงจุด "อะตอม" ที่ทุกอย่าง "สอดคล้องกันภายใน" และข้อมูลสำคัญที่หายไป

ทั้งหมดนี้ไม่สามารถทำได้ด้วยกลไกเดียว แต่มีฟังก์ชั่นหลายชั้นในระดับระบบและแอพพลิเคชั่น

เกี่ยวกับความล้มเหลวของพลังงานโดยเฉพาะอาจมีหรือไม่มีการแจ้งเตือนล่วงหน้าและคำเตือน "ล่วงหน้า" อาจเป็นเสี้ยววินาทีหรือ (กับ UPS หรือแบตเตอรี่แล็ปท็อปที่ล้มเหลว) หลายนาที สิ่งที่สามารถทำได้ขึ้นอยู่กับปริมาณของการเตือน

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

[และโปรดทราบว่าในสมัยก่อนเมื่อความทรงจำถูกสร้างขึ้นด้วย "แกนกลาง" แม่เหล็กแรมได้รับการเก็บรักษาไว้โดยเนื้อแท้เมื่อพลังหายไป สิ่งนี้ทำให้ง่ายขึ้นสำหรับระบบเก่าเหล่านั้นที่จะกู้คืนจากไฟฟ้าขัดข้อง]

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

ในระบบเก่า ๆ "บิ๊กเหล็ก" มีการใช้กลยุทธ์แบบกึ่งไฮเบอร์เนตเพื่อทำการปิดระบบฉุกเฉิน: หน่วยความจำจะถูกเขียนออกมาด้านบน แต่เมื่อมีการกู้คืนพลังงานและหน่วยความจำที่อ่านเข้ามา สิ่งนี้เกิดขึ้นเนื่องจากสถานะของระบบบางบิต (โดยเฉพาะในตัวควบคุม I / O) ไม่สามารถบันทึก / กู้คืนได้อย่างน่าเชื่อถือเพื่ออนุญาตการดำเนินการต่อไป


82

Chrome และ Microsoft Word บันทึกสถานะปัจจุบันของคุณเป็นระยะในขณะที่ทำงาน หากแอปพลิเคชันหรือคอมพิวเตอร์ล่มเมื่อแอปพลิเคชันเปิดใช้งานอีกครั้งพวกเขาจะค้นหาสถานะที่บันทึกไว้ในดิสก์และเรียกคืนให้คุณ พวกเขาไม่จำเป็นต้องทำนายการชน พวกเขากำลังบันทึกสถานะของคุณอย่างต่อเนื่องในกรณีที่มีบางอย่างผิดปกติ


10
นี่เป็นเพียงบางส่วนเท่านั้น ตอนนี้ระบบปฏิบัติการได้จัดเตรียมเฟรมเวิร์กเพื่อช่วยให้แอปพลิเคชันกู้คืนจากข้อยกเว้น
surfasb

3
@surfasb: คุณจะเฉพาะเจาะจงมากขึ้น? เราสามารถรับสัญญาณได้ตลอดเวลาในระบบที่คล้าย Unix แต่ขึ้นอยู่กับโปรแกรมเมอร์ของแอพพลิเคชั่นที่จะทำอะไรเกี่ยวกับมัน
Dietrich Epp

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

1
@surfasb คำถามที่ถามเกี่ยวกับคอมพิวเตอร์ (เคอร์เนลสันนิษฐาน) ล้มเหลวไม่ใช่แอปพลิเคชันที่ได้รับการยกเว้นซึ่งโดยทั่วไปจะได้รับการจัดการและทุกอย่างเรียบร้อยหรือที่ดีที่สุดคือการทิ้งกระบวนการหลักไม่บันทึกเอกสารของคุณ
psusi

62

แก้ไข: ใช้งานได้เฉพาะเมื่อแอปพลิเคชันขัดข้องไม่ใช่ Windows

เนื่องจาก Windows Vista มี API ใหม่ที่อนุญาตให้ Windows เรียกใช้ฟังก์ชันพิเศษในแอปพลิเคชันเมื่อเกิดปัญหาเพื่อให้สามารถลองกู้คืนข้อมูลใด ๆ ก่อนที่จะปิดตัวลง มันได้ผลเช่นนี้:

  • แอพเริ่มต้นขึ้น
  • แอปเรียกใช้ฟังก์ชัน Windows: เมื่อฉันเกิดข้อผิดพลาดโปรดดำเนินการ RecoverData()
  • ...
  • แอปขัดข้อง
  • Windows ดำเนินการRecoverData()ในแอพ
  • RecoverData() พยายามที่จะดึงข้อมูลเกี่ยวกับเอกสารที่เปิดอยู่ในขณะที่มันยังคงส่ง Ping ไปยัง Windows เพื่อบอกว่ามันยังคงกำลังทำการกู้คืนอยู่
  • เมื่อRecoverData()เสร็จสิ้น / หมดเวลา / หยุดกระตุกแล้ว Windows จะยุติแอพและทำการรีสตาร์ท

ข้อมูลเพิ่มเติม: http://msdn.microsoft.com/en-us/library/windows/desktop/aa373351(v=VS.85).aspx


8
+1: นี่เป็นหนึ่งในเครื่องมือที่มีการใช้งานมากที่สุด และก็น่าเศร้านี่ไม่ใช่คำตอบที่ถูกโหวตมากที่สุด ??
surfasb

2
@ZippyV แต่มันไม่ได้เป็นความจริงที่ว่าหากยังไม่ได้ HTE app ที่ผิดพลาด แต่หน้าต่างตัวเองที่เกิดปัญหาคอมพิวเตอร์ไม่ได้มีความสามารถในการเรียก RecoverData()?
Pacerier

12
OP กำลังถามเกี่ยวกับความผิดพลาดของคอมพิวเตอร์ (OS) ไม่ใช่ความผิดพลาดของแอปพลิเคชันดังนั้นคำตอบนี้ไม่เกี่ยวข้อง
vitaut

จริงในกรณีของ BSOD สิ่งนี้จะไม่ทำงาน
ZippyV

API อะไรที่โง่สำหรับ MS ที่จะเพิ่ม เมื่อถึงจุดนั้นคุณไม่สามารถเชื่อถือแอปพลิเคชันเพื่อบันทึกข้อมูลใด ๆ ซึ่งเป็นสาเหตุที่แอปพลิเคชันได้รับการออกแบบมานานหลายทศวรรษเพื่อบันทึกข้อมูลก่อนที่จะมีอะไรผิดพลาด
psusi

16

พวกเขาเพียงแค่บันทึกสถานะปัจจุบันก่อนที่พวกเขาจะผิดพลาด เหมือนอัตโนมัติบันทึกทุก ๆ สิบวินาที

ฉันคิดว่าต้องแยกแยะ:

  • ฮาร์ดแวร์พัง: สามารถกู้คืนได้ด้วยจุดตรวจก่อนหน้าเท่านั้น
  • OS Crash: ไม่มีวิธีสำหรับแอปในการบันทึกข้อมูลระบบปฏิบัติการสามารถปล่อยบางอย่างเช่นดัมพ์หลัก
  • แอปพลิเคชันหยุดทำงาน: คุณลักษณะระบบปฏิบัติการสำหรับแอปพลิเคชันหยุดทำงานสามารถบันทึกข้อมูลได้

ใช่ฉันกำลังพูดถึงปัญหาที่ร้ายแรงยิ่งขึ้นเช่นระบบปฏิบัติการล้มเหลว / ฮาร์ดแวร์
Pacerier

10

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

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


1
ฉันไม่คิดว่าส่วนหลังเป็นไปได้จริง Windows จะให้ BSoD แก่คุณเท่านั้นหากตรวจพบข้อยกเว้นในโหมดเคอร์เนลหรือข้อผิดพลาดร้ายแรงอื่น ๆ ซึ่งหมายความว่าข้อมูลบางอย่างในพื้นที่ที่อยู่เคอร์เนลเสียหาย เนื่องจากโปรแกรมโหมดเคอร์เนล (ไดรเวอร์ ฯลฯ ) มีการเข้าถึงหน่วยความจำไม่ จำกัด จึงไม่สามารถแยกข้อผิดพลาดได้อย่างง่ายดายไปยังส่วนประกอบดังนั้นระบบทั้งหมดจะต้องปิดระบบในโหมดเคอร์เนล การส่งสัญญาณโปรแกรมพื้นที่ผู้ใช้เพื่อบันทึกข้อมูลเป็นหลักหมายถึงการกลับมาทำงานของเคอร์เนลซึ่งอันตรายมาก
billc.cn

2
ส่วนหลังดูเหมือนจะอ้างถึงล่มของ userspace ไม่ใช่ BSoDs
3

8

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


การเพจเสร็จสิ้นด้วยไดรเวอร์ดิสก์ - หากไม่มีเคอร์เนลก็จะไม่รู้วิธีเขียนลงดิสก์
psusi

@psusi เมื่อระบบล่ม pagefile เป็นเคอร์เนลเดียวที่รู้ว่าสามารถเขียนได้อย่างปลอดภัย
kinokijuf

ใช่และจริง ๆ แล้วมันเขียนผ่านไดรเวอร์ดิสก์
psusi

1
ไม่มันทำผ่านไดร์เวอร์พิเศษ "dump_atapi.sys" (แทนที่ atapi สำหรับคอนโทรลเลอร์ SCSI ของคุณ) ไม่ใช่ไดรเวอร์ดิสก์มาตรฐาน ฉันคิดว่ามันใช้ Int 13h ด้วย
kinokijuf

6

ฉันรู้สึกว่าเมื่อคอมพิวเตอร์ขัดข้องมีบางอย่างผิดปกติและไม่สามารถทำงานได้อีกต่อไป

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

ฉันสงสัยว่าคอมพิวเตอร์สามารถบันทึกสิ่งต่างๆก่อนที่มันจะล่มได้อย่างไร คอมพิวเตอร์มีความสามารถในการรู้ว่าเมื่อใดจะเกิดข้อผิดพลาด (และแจ้งให้ทราบถึงกระบวนการทั้งหมด: "บันทึกโดยเร็วเพราะฉันกำลังจะพัง")?

ในกรณีของBSODหรือเคอร์เนลความตื่นตระหนกระบบปฏิบัติการระบุว่าสิ่งที่ไม่ปลอดภัยจริง ๆ จะเกิดขึ้น (ตัวชี้หน่วยความจำไม่ถูกต้องเขียนทับหน่วยความจำบางส่วนที่จัดสรรให้กับเคอร์เนลระบบปฏิบัติการเข้าถึงฮาร์ดแวร์ที่ไม่มีอยู่จริง ฯลฯ .) ในกรณีดังกล่าวระบบปฏิบัติการจะเรียกใช้กระบวนการทั้งหมดเพื่อหยุดการประมวลผลบันทึกเนื้อหาของ RAM ไปยังดิสก์ (เนื่องจากระบบปฏิบัติการมีหน้าที่ในการจัดการการจัดสรรหน่วยความจำ) และปิดหรือรีสตาร์ทคอมพิวเตอร์อย่างปลอดภัย

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

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

ถ้าไม่เป็นไปได้อย่างไรที่โปรแกรมเช่น Chrome และ Microsoft Word สามารถให้บริการ "กู้คืน" หลังจากที่คอมพิวเตอร์ล้มเหลว

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

ในฐานะนักพัฒนาคุณมีหน้าที่รับผิดชอบเองในการรับรองว่าแอปพลิเคชันของคุณสามารถรับมือกับสถานการณ์เหล่านี้ได้


"ในกรณีนี้ระบบปฏิบัติการเรียกให้กระบวนการทั้งหมดหยุดการประมวลผลบันทึกเนื้อหาของ RAM ลงในดิสก์และปิดหรือรีสตาร์ทคอมพิวเตอร์อย่างปลอดภัย" - เนื้อหา RAM ที่บันทึกไว้ในดิสก์จะได้รับ "กู้คืน" เมื่อใด
Pacerier

1
พวกเขาไม่ได้อยู่ในเหตุการณ์ปกติ อย่างไรก็ตามหากคอมพิวเตอร์ของคุณหยุดทำงานเป็นประจำโปรแกรมเมอร์ที่มีทักษะอาจสามารถใช้ไฟล์นี้เพื่อหาสาเหตุ
kindall

@Pacerier เป็นkindallกล่าวว่าพวกเขาไม่ได้รับการบูรณะ (เพราะถ้าคุณไม่เรียกคืนแรมคุณจะอยู่ในสถานะเดียวกันการดำเนินการที่ก่อให้เกิดคอมพิวเตอร์ที่ผิดพลาดในสถานที่แรก!) คุณสามารถเปลี่ยนสิ่งที่เขียนไปยังดิสก์ใน Windows ภายใต้ System Properties -> Advanced -> Startup & Recovery และอีกครั้งตามที่kindallระบุไว้ข้อมูลนี้ส่วนใหญ่มีประโยชน์สำหรับนักพัฒนาที่พยายามระบุสาเหตุที่ทำให้เกิดข้อผิดพลาด
ฝ่าฝืน

3

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

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

ฉัน (ชัด) ไม่ทำงานให้กับ Microsoft หรือ Google แต่อาจเป็นไปได้ (หรือใกล้กับ) วิธีการทำงาน


2

โปรแกรมสามารถเขียนการตั้งค่าสถานะไปยังดิสก์ที่เพิ่งพูดบางอย่างเช่น "ในการเริ่มระบบถ้ามีการตั้งค่าสถานะนี้ ในการบูทเครื่องจะทำการตรวจสอบสถานะว่ามีการตั้งค่าไว้หรือไม่ ถ้าใช่โปรแกรมรู้ว่ามีบางอย่างผิดปกติ

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


2

Like @bamboomพูดว่ามีคอมพิวเตอร์หลายประเภท "ล่ม" ที่ต้องจัดการแตกต่างกัน การเกิดไฟฟ้าดับอย่างมีประสิทธิภาพแตกต่างจากการพูดว่าการหารจำนวนเต็มโดยไม่มีข้อผิดพลาด

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


2

ฉันต้องการจุดต่ำที่นี่เนื่องจากมีแท็กของระบบไฟล์

คุณสามารถจำ Windows OS ที่ใช้ระบบไฟล์ FAT / FAT16 / FAT32 บางครั้งมีปัญหาเมื่อผู้ใช้ประสบปัญหาไฟฟ้าดับและทั้งระบบดับลง หลังจากพยายามรีบูตเครื่องจะบอกว่าไฟล์หายไปและไม่สามารถบู๊ตได้ สิ่งนี้เกิดขึ้นเพราะ FAT32 ไม่ได้ติดตามการดำเนินการที่กำลังทำอยู่ในลักษณะของการทำธุรกรรม

ในทางตรงกันข้ามระบบไฟล์ NTFS ที่ใหม่กว่าได้รับการสนับสนุนบันทึกประจำวันของโครงสร้างพื้นฐานซึ่งหมายความว่าในระดับต่ำของระบบปฏิบัติการและข้อมูลเลเยอร์การเข้าถึงฮาร์ดแวร์จะถูกเก็บไว้ในสภาพที่ปลอดภัยโดยการบันทึกการกระทำใด ๆ


1

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

แอปพลิเคชั่นอื่น ๆ ใช้การบันทึกอัตโนมัติหรือทั้งสองอย่างรวมกัน - มันขึ้นอยู่กับความต้องการของโปรแกรมและการรองรับแพลตฟอร์มสำหรับจับสัญญาณเหล่านี้


คำแนะนำ: Windows ไม่มีพวกเขา
kinokijuf

1

ความผิดพลาดของระบบเป็นเพียงชุดคำสั่งอื่นที่เรียกใช้โดยระบบปฏิบัติการ เหตุผลที่ "Crash" เกิดขึ้นเนื่องจากโปรแกรมหรือไลบรารีไม่สามารถโหลดหรือโหลดไม่ถูกต้องและมีความสามารถในการทำให้เกิดความเสียหายถาวรต่อไฟล์ระบบ ดังนั้นเพื่อความปลอดภัยข้อควรระวัง windows บังคับให้ปิด / รีสตาร์ทและหยุดการเขียนทั้งหมดไปยังไฟล์ระบบก่อนที่ไฟล์เหล่านี้จะได้รับอนุญาตให้แก้ไขโดยโปรแกรม / ไลบรารีที่ค้างชำระ

ก่อนปิด / รีสตาร์ทระบบจะทำหน้าที่เหมือนกับการปิด / รีสตาร์ทตามปกติ: เช่นการบันทึกไฟล์ระบบเป็นต้น

เท่าที่แอปพลิเคชั่นเดียว (Word / Chrome) บันทึก "ความคืบหน้า" ของคุณนั่นคือฟังก์ชั่นภายในของแอปพลิเคชันบันทึกความคืบหน้าของคุณตามช่วงเวลาที่กำหนด (ซึ่งโดยปกติคุณสามารถเปลี่ยนแปลงการตั้งค่าโปรแกรม หากคุณมีแอปพลิเคชัน / ระบบขัดข้องหลังจากรีบูทมันสามารถดูไฟล์นั้นและถามคุณว่าคุณต้องการกู้คืนเซสชันหรือไม่


1

คุณอาจกำลังพูดถึงระบบปฏิบัติการที่ปิดตัวลงเนื่องจากการสูญเสียพลังงาน เนื้อหานี้เป็นความผิดพลาดชนิดหนึ่ง

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

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

ข้อได้เปรียบที่สำคัญอย่างหนึ่งของระบบไฟล์การเขียนบัฟเฟอร์คือการเรียงลำดับการเขียนสามารถลดการเคลื่อนไหวของแขนบนฮาร์ดดิสก์ไดรฟ์ทำให้มีระยะห่างน้อยลง

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


0

แอปสามารถรับสัญญาณใน Cและบันทึกข้อมูลบางอย่าง สัญญาณหนึ่งที่คุณอาจได้รับโดยบังเอิญคือ SIGFPE Floating-Point Exception (ANSI) ข้อผิดพลาดรวมถึงการหารด้วยศูนย์และล้น สิ่งที่แปลกประหลาดอีกอย่างคือ SIGINT ที่เลี้ยงด้วยการกด ctrl + C บนคอนโซลหรือเทอร์มินัลซึ่งฆ่าแอป

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