Bagaimana komputer tahu bahwa PC tidak dimatikan dengan benar?

92

Sebenarnya, pertanyaan ini mengejutkan saya karena pemadaman listrik di rumah saya. Ketika ada pemadaman listrik, tiba-tiba terjadi kehilangan daya dari komputer.

Bagaimana komputer tahu bahwa shutdown tidak dilakukan dengan benar?

Beku
sumber

Jawaban:

104

Windows juga menggunakan metode Dirty Bit untuk mendeteksi apakah PC dimatikan dengan benar:

Ketika dimatikan seperti biasa, bit dimatikan. Namun, dalam hal pemadaman listrik atau shutdown (paksa) yang tidak benar, bit akan tetap pada saat PC dimulai.

Ini berarti bahwa Windows dapat menyarankan tindakan perbaikan - seperti boot ke Safe Mode.

Selain itu PC berbasis Windows akan menulis entri ke dalam log peristiwa yang merinci kapan dan mengapa (jika diketahui) itu dimatikan. Itu juga menulis suatu peristiwa ketika PC dinyalakan.

Sistem dimatikan

Sistem dinyalakan

Ketika PC restart, ia dapat memeriksa log peristiwa dan jika tidak menemukan "acara mematikan" setelah acara "start up" terakhir, ia tahu bahwa PC tidak dimatikan dengan benar dan mungkin ada masalah karena belum disimpan. data dll.

ChrisF
sumber
2
Bukankah jawaban David di bawah ini lebih akurat? Saya pikir NTFS memiliki 'bit kotor' yang terdeteksi FS ketika dipasang. Saya selalu berasumsi bahwa log peristiwa hanya log dari apa yang ditemukan daripada deteksi dan alasan yang sebenarnya di baliknya?
HaydnWVN
3
Tetapi dalam situasi matikan yang tidak direncanakan (tanpa UPS jelas) shutdown akan 'tak terduga' (disebutkan oleh log Kejadian). Info hebat di siniIf a program initiates an I/O operation that alters the structure of an NTFS volume - that is, changes the directory structure, extends a file, allocates space for a new file, and so on - NTFS treats that operation as an atomic transaction. It guarantees that the transaction is either completed or, if the system fails while executing the transaction, rolled back.
HaydnWVN
3
@HaydnWVN Bit sistem file kotor digunakan untuk mengidentifikasi turun secara abnormal, sehingga OS mengetahui bahwa sistem file mungkin dalam keadaan tak tentu, dan dapat menjalankan diagnostik (misalnya chkdsk) untuk mengidentifikasi kemungkinan masalah sistem file. Inilah sebabnya Anda kadang-kadang mendapatkan dialog perbaikan saat mencolokkan drive USB yang tidak dilepaskan dengan benar. Sebaliknya, istilah "bit kotor" berarti bidang yang disetel, dan tidak disetel nanti saat terminasi sistem atau runtime perangkat terjadi. Pengakhiran yang tidak tepat meninggalkan set field, sehingga diakui pada inisialisasi perangkat berikutnya.
Polinomial
1
@ChrisF Persyaratan itu dapat dimatikan dalam kebijakan grup / lokal. Dan akan dilewati jika dimatikan melalui sesuatu seperti panel kontrol host VM. Lebih baik mengandalkan acara Kernel-General # 12 (shutdown normal) dan EventLog # 6002 (shutdown terakhir tidak terduga). Jika itu adalah BSOD, harus ada BugCheck # 1001 juga. (Semua peristiwa: sumber #id.)
Richard
1
Pertama, bagaimana keadaan bit itu dipertahankan dalam memori yang mudah menguap setelah siklus daya? Bagaimana dengan dual-boot? Kutipan wikipedia berbunyi seperti dugaan - meskipun saya belum membaca Buku Panduan Sistem Operasi. Kedua, gagasan bahwa Windows membaca log peristiwa untuk menentukan apakah shutdown bersih terjadi jelas salah. Jawaban yang menunjuk ke bootstat.dat untuk Windows jauh lebih mungkin benar daripada salah satu dari dugaan ini, sebagian karena lebih masuk akal, tetapi sebagian besar karena sumber yang dikutip.
rami
121

Untuk PC berbasis non-Windows, deteksi biasanya dilakukan berdasarkan sistem file per. Ketika sebuah sistem file di-mount dalam mode baca / tulis, sebuah entri ditulis ke sistem file yang menandainya kotor. Ketika filesystem dilepas, sebuah entri ditulis menandainya bersih. Saat startup, sistem operasi memeriksa apakah filesystem inti-nya ditandai kotor, dan jika demikian ia tahu tidak ada shutdown yang bersih - setidaknya dari filesystem tersebut.

David Schwartz
sumber
29
+1 karena pertanyaannya bukan tentang OS tertentu.
Trevor Boyd Smith
42

Di Windows, menurut penulis Windows Internals, edisi ke-5, itu adalah file bootstat.dat (terletak secara default di direktori \ boot partisi sistem):

Windows menggunakan file status boot ... untuk merekam fakta bahwa ia telah berkembang melalui berbagai tahap siklus hidup sistem, termasuk boot dan shutdown. Ini memungkinkan Boot Manager, Windows loader, dan alat Startup Repair untuk mendeteksi shutdown yang tidak normal atau kegagalan untuk mematikan dengan bersih dan menawarkan opsi boot pemulihan dan diagnostik kepada pengguna ...

 

kreemoweet
sumber
3
Sumber kutipan?
Paul DelRe
23
"Windows Internals" oleh Mark Russinovich dan David Solomon dengan Alex Ionescu, halaman 1010.
artm
Untuk membandingkan ini dengan jawaban ChrisF - "bit kotor" yang dikelola oleh masing-masing sistem file adalah untuk keadaan sistem file itu saja; ini bukan sistem. Perhatikan bahwa Anda dapat "melepaskan dengan aman" hard drive yang dapat dilepas - ini membersihkan bit kotor untuk sistem file itu - dan kemudian shutdown yang tidak terduga dapat terjadi setelah itu.
Jamie Hanrahan
0

Pada beberapa komputer, metode independen OS dapat diatur dalam BIOS perangkat keras. Itu tergantung pada vendor komputer dan pemasok BIOS.

Para mojors termasuk American Megatrends Inc. (AMI), Award dan Phoenix Technologies. Lihatlah produsen ini untuk spesifik.

Sushi
sumber
2
Daripada hanya melambaikan tangan dan mengatakan "informasi di luar sana", bagaimana kalau sebenarnya menghubungkan ke beberapa referensi yang relevan?
G-Man