YS's develop story

컴퓨터가 하드디스크의 한 섹터를 읽는 방법, 하드디스크 읽는 방법,HDD 읽는 방법, 하드디스크의 구조 (시스템 소프트웨어 - 2 ) 본문

Linux/시스템소프트웨어

컴퓨터가 하드디스크의 한 섹터를 읽는 방법, 하드디스크 읽는 방법,HDD 읽는 방법, 하드디스크의 구조 (시스템 소프트웨어 - 2 )

Yusang 2020. 11. 11. 07:36

안녕하세요 ~

 

오늘은 간단하게 컴퓨터가 하드디스크를 어떻게 읽는지 내용을 정리해 봤습니다!

 

 

 

하드디스크의 내부 구조는 아래와 같이 생겼습니다.

 

디스크에서 데이터를 읽을 때, 액츄에이터 암이 움직이면서 데이터를 읽게 됩니다.

 

하드 디스크에 데이터를 저장할 수 있는 기본단위는 512바이트이며,

아래의 그림에 sector s부분과 같은 곳에 512바이트를 저장할 수 있습니다.

하드디스크에는 1바이트의 단위를 저장할 수 없고 무조건 512바이트 단위로만 데이터를 저장해야 합니다.

컴퓨터가 하드디스크의 내용을 어떻게 읽는지 알아볼까요?

 

처음에는 CPU가 disk controller에게 하드 디스크의 몇 번째 sector을 읽고 싶은지

'sector number read command' 명령을 아래의 사진처럼 보냅니다.

 

사진에서 component를 연결해 주는 길을 bus라고 합니다.

CPU, 그래픽 카드, d-ram 등은 전부 component입니다.

 

 

 

하드디스크에서는 해당 sector을 찾은 다음, 해당 sector의 내용을 읽어서 메인 메모리(d-ram)에 

해당 sector의 데이터를 저장합니다.

 

 

 

 

disk controller는 내가 메모리상으로 데이터를 읽어서 보내 놨으니, CPU에게 메모리상에 있는 데이터를 

읽어서 사용하라는 알림을 CPU에게 보냅니다. 

 

이를 notification event라고 하고 이는 interrupt라고 불립니다.

 

이렇게 disk controller의 interrupt를 받은 CPU는 메모리상에 있는 데이터를 읽게 됩니다.

 

그런데 여기서 궁금한 점이 생겼습니다....

 

CPU가 디스크의 특정 sector에 있는 데이터를 읽으라고 명령을 보냈을 때 , disk controller는 왜 데이터를 CPU에게 바로 전달하지 않고 메모리에 보낼까요??

 

그 이유는 CPU 내부에는 512바이트라는 데이터를 저장할 수 있는 공간이 없기 때문입니다.

 

그렇기 때문에 메모리로 데이터를 보냅니다!!

 

 

 

오늘은 이렇게 컴퓨터가 하드디스크에 있는 데이터를 어떻게 읽는지 정리해 보았습니다.

그럼 다음 글에서 봬요 ~~ 

 

 

Comments