해당 게시글 블로그 : https://tjddn8195.tistory.com/117
https://book.naver.com/bookdb/book_detail.nhn?bid=21380986
1일 1로그 100일 완성 IT 지식
복잡한 IT 세상을 선명하게 읽는 디지털 문해력 기르기 챌린지IT 지식은 분명 복잡하지만 인생처럼 혼잡하지는 않다. 필요한 지식을 습득하면 막연한 불안감에서 벗어나 디지털 지구가 제시하는
book.naver.com
36강 파일 시스템과 블록
파일시스템
운영체제에서 하드 디스크, CD, 다른 이동식 메모리 장치와 같은 물리적 저장매체를 파일과 폴더(*디렉터리)의 계층 구조처럼 보이게 하는 부분입니다.
*유닉스 계열 운영체제에서는 전통적으로 폴더 대신 디렉터리라는 용어를 사용하였습니다.
논리적 구성과 물리적 구현간의 분리를 보여주는 좋은 사례이며, 다양한 종류의 장치에 정보를 조직화하고 저장합니다.
폴더는 조직화된 구조를 제공하는 반면, 파일은 문서, 사진과 같은 실질적인 내용을 담고 있습니다.
컴퓨터가 보유하는 모든 정보는 파일 시스템에 저장되고, 사용자는 파일 시스템을 통해 정보에 접근합니다. 여기에는 애플리케이션이나 운영체제의 나머지 부분의 정보도 포함됩니다.
파일에 대한 접근이 효율적으로 수행되고 서로 간섭하지 않도록 조정하는 역할을 하며, 데이터의 물리적인 위치를 계속 파악합니다.
보조 기억 장치 파일 시스템
500GB드라이브는 5천억 바이트를 담을 수 있고, 5억개의 블록으로 표시됩니다. 2500바이트 크기의 파일은 1000바이트짜리 블록 세개에 저장되고, 500바이트는 사용되지 않습니다.
파일 시스템은 한 파일이 사용하는 바이트를 다른 파일이 사용하는 바이트와 같은 블록에 저장하지 않습니다.
이 파일에 대한 폴더 엔트리(디렉터리 엔트리)는 파일 이름, 2500바이트라는 크기, 생성 및 변경 날짜와 시간 외 다른 정보를 담고 있습니다. 드라이브 어디에 저장되어 있는지, 즉 5억 개의 블록 중 어느 것이 파일의 바이트를 담고 있는지 정보를 넣어주고 있습니다.
파일의 위치를 관리하는 방법
- 폴더 엔트리가 블록 번호 목록을 가지고 있다
- 블록번호목록을 담고있는 블록을 참조한다
- 첫번째 블록 번호를 담고 있어서 차례로 두번째, 세번째 ... 번호를 구할 수도 있다.
그림과 같이 1MB파일이라면 1000개의 블록을 차지하고, 그 블록들은 어느정도 흩어져 있습니다.
참고 : 포인터에 관해서
포인터 (프로그래밍) - 위키백과, 우리 모두의 백과사전
포인터(pointer)는 프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 말한다. 포인터가 가리키는 값을 가져오는 것을 역참조라고 한다. 포인터는 어셈블리어, C,
ko.wikipedia.org
SSD에서의 데이터 저장
SSD는 장치 자체에 정보가 어느 위치에 있는지 기억하기 위한 정교한 코드가 들어가 있습니다. 이는 영역이 사용될 수 있는 횟수에 제한이 있기 때문인데, 내부 소프트웨어는 각 물리적 블록이 몇번 사용되었는지 파악하고, 블록이 거의 같은 회수로 사용되도록 데이터를 옮기는 웨어레벨링 처리를 합니다.
웨어 레벨링(Wear Leveling)은 플래시 장치의 모든 블록에 데이터를 균등하게 기록함으로써 특정 블록의 과도한 사용을 방지하여 플래시 제품에서 일어날 수 있는 장치 오류 및 데이터 손실을 사전에 예방하며 제품의 내구성과 안정성을 향상시킵니다.
https://kr.transcend-info.com/embedded/Essay-22
웨어 레벨링 - 트랜센드 코리아 공식 홈페이지
웨어 레벨링(Wear Leveling)은 플래시 장치의 모든 블록에 데이터를 균등하게 기록함으로써 특정 블록의 과도한 사용을 방지하여 플래시 제품에서 일어날 수 있는 장치 오류 및 데이터 손실을 사전
kr.transcend-info.com
파일 시스템 검색 방식
프로그램이 기존 파일에 접근하려 할 때, 계층 구조의 최상위부터 시작해서 파일 경로명의 각 요소를 해당하는 폴더를 찾으면서 파일을 검색해야 합니다. 이 방식은 효율적인 전략인데, 수행이 될 수록, 검색 범위가 좁아지고, 해당되지 않는 파일은 검색 대상에서 제외되기 때문입니다.
새파일 생성 시
프로그램이 새 파일을 생성하려고 하면, 파일 시스템에 요청을 합니다. 적절한 폴더에 새 엔트리를 넣고, 크기를 0으로 표시합니다. 요청된 정보를 담기에 충분한 수의 미사용 블록을 찾아서 데이터를 복사하고, 블록 목록에 그 블록들을 삽입하고 애플리케이션으로 되돌아갑니다. 이 뜻은 파일 시스템은 모든 블록으 목록을 유지하고 있다는 것을 암시합니다.
37강 파일을 휴지통에 넣을 때 일어나는 일
파일 제거하기
파일의 블록이 미사용 목록으로 돌아가고, 파일의 폴더 엔트리는 삭제돼서 파일이 사라진 것처럼 보이지만, 실제로는 아닙니다.
휴지통에 넣는다는 것은 파일이 제거되기로 하면, 그 파일의 폴더 엔트리와 전체 이름이 현재 폴더에서 휴지통이라는 폴더로 복사되고 원래 폴더 엔트리는 지워지는 방식입니다.
휴지통 비우기, Empty Recycle Bin 가 원래 의도했던 제거 작업이고, 폴더 엔트리가 지워지고, 블록은 미사용 목록에 진짜로 추가되게 됩니다.
하지만 그 내용은 아직 삭제되지 않은 상태 그대로 남아있고, 파일에 할당된 각 블록의 모든 바이트는 그대로 있습니다. 새로운 파일이 할당되기 전까지는 내용이 덮어 쓰이지 않습니다.
이러한 성질을 살려서 파일 복구가 진행되는데, 파일 시스템 계층 구조를 통하지 않고, 디스크를 읽는 프로그램을 사용하면 예전 내용을 확인 할 수 있습니다.
폴더엔트리에서도, 파일을 제거 할 대 파일 시스템은 폴더 엔트리가 더 이상 유효한 파일을 가리키지 않고, 파일 시스템이 폴더에 '이 엔트리는 사용 중이지 않습니다'를 뜻하는 비트를 설정해서 재사용 전까지는 재할당되지 않는 모든 블록의 내용을 포함해 파일에 대한 원래 정보를 복원하는 것이 가능합니다.
만약 정보를 없애고 싶으시다면, 정보 지우는 프로그램을 사용하건, 하드디스크를 강한 자석 옆에 놓고 자성을 없애거나, 물리적으로 파괴하면 됩니다. ^^
다른 파일 시스템
CD-Rom과 DVD - 폴더와 파일 계층 구조로 되어 있는 파일 시스템처럼 정보에 접근합니다.
네트워크 파일 시스템( NFS) : 클라이언트 컴퓨터의 사용자가 네트워크 상의 파일을 직접 연결된 스토리지에 접근하는 방식과 비슷한 방식으로 접근하도록 도와 줍니다.
FAT(File Allocation Table)
https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%ED%95%A0%EB%8B%B9_%ED%85%8C%EC%9D%B4%EB%B8%94
'CS 스터디' 카테고리의 다른 글
와이파이, 셀룰러폰, 3G/LTE/4G/5G (0) | 2022.06.16 |
---|---|
브라우저의 수행 기능 & 소프트웨어의 계층 구조 (0) | 2022.06.09 |
컴퓨터를 작동하게 만드는 운영체제 (0) | 2022.06.07 |
프로세서와 계산기의 다른 점 & 모형 컴퓨터로 더하기 프로그램 만들기 (0) | 2022.06.07 |
자유로운 소프트웨어, 오픈소스 (0) | 2022.06.07 |