거누의 개발노트

파일 시스템과 블록 & 파일을 휴지통에 넣을 때... 본문

CS

파일 시스템과 블록 & 파일을 휴지통에 넣을 때...

Gogozzi 2022. 6. 9. 02:59
반응형

파일 시스템

파일 시스템은 운영체제에서 하드디스크, USB메모리 등과 장치 같은 물리적인 저장 매체를 파일과 폴더의 계층 구조처럼 보이게 하는 부분이다.

파일 시스템은 다양한 종류의 정보를 조직화하고 저장하지만, 운영체제는 모두 동일한 인터페이스로 표시한다.

파일 시스템모든 정보를 관리하면서 애플리케이션이나 운영체제의 나머지 부분이 정보를 읽고 쓸 수 있도록 접근 가능하게 만든다.

 

보조 기억장치 파일 시스템

파일 시스템은 한 파일이 사용하는 바이트를 다른  파일이 사용하는 바이트와 같은 블록에 저장하지 않는다.

2,500바이트의 메일이 있다고 하면 1,000바이트 짜리 블록 세 개에 저장되는데 500바이트가 낭비된다.

낭비되는 부분을 관리하는 비용보다 보조기억장치의 용량을 늘리는 비용이 더 저렴하기 때문에 낭비하면서 사용한다.

 

파일의 위치 관리

윈도우 컴퓨터나 맥 컴퓨터의 기본 파일 개수가 80~90만개라고 하는데, 이 파일 위치들은 어떻게 관리될까?

관리하는 방법은 여러가지가 있는데,

폴더 엔트리가 블록 번호를 가지고 있거나, 블록 번호 목록을 담고있는 블록을 참조하기도 한다.

* 엔트리? 디렉터리 엔트리라고 하며, 디렉터리를 표현하는 데 쓰이는 자료 구조

블록 번호 목록을 담고있는 블록을 참조

SSD는 장치의 각 영역이 사용될 수 있는 횟수가 제한이 있기 때문에, SSD 내부 소프트웨어에서 각 블록이 몇 번이나 사용되었는지 파악하고, 모든 블럭이 거의 같은 횟수로 사용되도록 데이터를 옮기는데, 이 처리를 웨어 레벨링이라고 한다.

 

프로그램이 파일에 접근하는 방법

파일 시스템은 계층 구조의 최상위부터 시작해서 파일 경로명의 각 요소를 해당하는 폴더에서 찾으면서 파일을 검색해야 한다.

예) Mac PC에서 파일결로가 /User/bwk/book/book.txt 라면 파일 시스템은 파일 시스템의 최상위에서 Users를 찾고, 다음으로 그 폴더에서 bwk를 찾을 것이다.

파일시스템이 찾는 방법이나 내가 찾는 방법이나 비슷한것 같다.

파일 생성

파일 시스템이 새로운 엔트리에 넣으면서 이름, 날짜 등을 넣고 크기는 0으로 표시

나중에 데이터를 사용하면 파일 시스템이 미사용 블록을 찾아서 데이터를 복사해 넣고, 폴더의 블록 목록에 블록들을 삽입하면 정상으로 생성 완료

 

파일 제거하기

파일을 삭제하면 '휴지통'으로 간다.

휴지통이라는 폴더에 이동하는것과 같다고 보면된다.

휴지통 비우기가 원래 의도 했던 제거 작업에 가깝다.

블록 목록에서 지워버리는 것이 휴지통 비우기

휴지통 비우기를 해서 블록이 미사용 목록에 들어가지만, 새로운 파일이 할당되기 전까지는 아직 삭제되지 않은 상태이다.

그래서 제거한 파일이 복구가 가능했던 것이고, 완벽하게 지우려면 부시면 된다.

무튼 컴퓨터에 기록하는 모든 정보에는 무슨 말을 쓸지 신중해야겠다.

 

다른  파일 시스템

CD-ROM, DVD, USB, SD카드 모두 파일 계층 구조로 되어있는 파일 시스템처럼 정보에 접근 가능하다.

... 관련해서는 생략 (현재 시각 2:48)

 

비슷한 아이디어를 적용한 다른 사례를 하나만 더 살펴보고 끝내보자

네트워크 파일 시스템이 있는데, 이 시스템은 소프트웨어를 활용해서 다른 컴퓨터의 파일 시스템이 마치 자신의 컴퓨터에 있는 것처럼 파일 탐색기, 파인더, 또는 다른 프로그램을 사용하여 접근하게 해준다.

회사나 학교에서 많이 사용한다.

운영체제가 달라도 균일한 인터페이스를 제공함으로써 파일 구조가 로컬 컴퓨터에 있는 일반 파일 시스템 처럼 보이게 한다.

한번쯤 들어본 NAS랑 비슷하다고 생각하면 된다.

NAS?
컴퓨터에 직접 연결하지 않고 네트워크를 통해 데이터를 주고 받는 저장장치이다.
Network Attached Storage. 네트워크 결합 스토리지. 쉽게 말하면 LAN으로 연결하는 외장 하드디스크

 

반응형

'CS' 카테고리의 다른 글

와이파이 - 셀룰러폰 - LTE, 5G  (0) 2022.06.14
XSS, CSRF  (1) 2022.06.09
DNS(Domain Name System)?  (0) 2022.06.08
객체지향(Object Oriented Programming) 정리  (0) 2022.06.07
작문과 비슷한 프로그래밍  (0) 2022.06.02
Comments