دیسک سخت یا هارد دیسک چیست وچه وظیفهای دارد؟
میتوان گفت دیسک سخت یا (Hard Disk Drive) بزرگترین حافظه جانبی موجود در کامپیوتر است. تقریبا همه دادهها از جمله سیستم عامل (Operating System)، فایلها، برنامهها و ... روی حافظه جانبیِ دیسک سخت قرار میگیرند. هارد دیسکها معمولا به اندازه یک کتابچه با اندازهای بین ۳.۵ تا ۶ اینچ هستند.
دیسک سخت وظیفه حفظ دائمی دادهها را بر عهده دارد. هر داده دیجیتالی و اطلاعاتی که برای ذخیره سازی به هارد دیسک ارسال میشود، تا زمانی که حذف نشود بر روی سکتورها، در مکان خود باقی خواهد ماند. البته ممکن است شرایط محیطی نیز در از بین درفتن این دادهها اثر بگذارد.
هارد دیسک چگونه کار میکند؟
دستورها همراه با دادههای ارسالی یا دریافتی از هارد دیسک، توسط Disk Controller تفسیر میشوند. تفسیر کردن به این معناست که هارد دیسک میفهمد که طبق دستور داده شده، مکان داده مورد نظر در کجا قرار داشته و طبق آن عمل خواندن یا نوشتن شروع میشود. زمانی که سیستم عامل یا یکی از قطعات سخت افزاری نیاز به ذخیره کردن داده یا دریافت آن دادهها را دارند، دیسک کنترلر وارد عمل میشود و دستور مورد نظر را برای Actuator ارسال میکند.
حال قسمت Actuator وظیفه دارد تا Head Arm (بازوی مکانیکی Head) را به قسمتهای مختلف Platter هدایت کند. چون امکان دارد دادههای یک فایل در مکانهای مختلفی بر روی Platter ها ذخیره شود، بنابراین Head Arm ممکن است بین قسمتهای مختلف پلاتر جابجا شود. حال قسمت Head وظیفه دارد تا با توجه به دستور داده شده (خواندن یا نوشتن داده) کار خود را بر روی سکتور فیزیکی مورد نظر انجام دهد.
درصورتی که دیسک کنترلر دستور خواندن نوشته را داده باشد، در این صورت Head وظیفه دارد تا دادههای مغناطیسی صفر و یک را بر روی قسمتهای مختلف Platter بخواند و آن را به Actuator بفرستد. خواندن به این صورت است که قطبهای مغناطیسی (N یا S) هر یک از مکانهای داده را حس کرده سپس معادل صفر یا یک آن را برمیگرداند. سپس Actuator دادههای خوانده شده را به دیسک کنترلر باز میگرداند تا مورد پردازش قرار گیرد.
اما اگر دیسک کنترلر دادهای را برای ذخیره کردن به هارد دیسک بفرستد، در این صورت Actuator وظیفه دارد دادهها را تک به تک به Head ارسال کند تا قسمت Head این دادهها را به صورت صفر و یک در فضا های ذخیره سازی Platter ذخیره کند. ذخیره به این صورت است که هد نوشتن، مکانهای داده موجود روی پلاتر را طبق دستور صفر یا یک بودن، تغییر قطب میدهد. مثلاً قطب N را به بالا یا برعکس نشانه گذاری میکند.