ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영체제 3편
    카테고리 없음 2025. 12. 3. 14:37

    📀 운영체제는 디스크를 어떻게 관리할까? 

    우리는 매일 파일을 저장하고, 삭제하고, 복사한다.
    하지만 그 순간 운영체제 내부에서 어떤 일이 벌어지는지는 대부분 알지 못한다.
    이번 글에서는 운영체제의 저장장치 관리(Storage Management) 가 실제로 어떤 역할을 하고,
    왜 개발자와 서버 엔지니어에게 중요한 개념인지 정리해 보고자 한다.


    1. 저장장치 관리란 무엇인가?

    저장장치 관리는 운영체제가 디스크(HDD, SSD)를 효율적이고 안전하게 관리하는 기능 전체를 말한다.
    단순히 “파일을 저장하는 기능”이 아니라 다음을 모두 포함한다.

    • 디스크 공간 할당 및 해제
    • 파일 시스템 관리
    • 입출력(I/O) 처리
    • 캐시와 버퍼를 통한 성능 최적화
    • 데이터 무결성과 복구
    • 접근 권한과 보안

    우리가 파일을 하나 저장할 때도,
    운영체제는 디스크 블록 탐색 → 파일 시스템 갱신 → 권한 설정 → 캐시 반영이라는 복잡한 절차를 자동으로 수행한다.


     2. 디스크 → 파티션 → 파일 시스템 구조

    운영체제는 디스크를 그대로 사용하지 않는다.
    항상 다음과 같은 계층 구조로 관리한다.

     
    물리 디스크 → 파티션 → 파일 시스템 → 파일/디렉터리

    예를 들어 Windows 환경에서는 흔히 다음과 같이 나뉜다.

     
    SSD 1 C: (운영체제) D: (데이터)
    • 파티션(Partition): 물리 디스크를 나눈 논리적 공간
    • 파일 시스템(File System): 파일을 저장하고 찾는 규칙

    운영체제는 파티션마다 서로 다른 파일 시스템을 올려서 관리한다.


     3. 파일 시스템이 하는 일

    파일 시스템은 단순한 “목록 정리 규칙”이 아니다.
    다음과 같은 중요한 역할을 수행한다.

    • 파일의 실제 디스크 위치 추적
    • 파일 크기, 생성일, 수정일 같은 메타데이터 관리
    • 빈 공간(Free Space) 관리
    • 삭제된 공간 재활용
    • 접근 권한 관리

    대표적인 파일 시스템은 다음과 같다.

    • NTFS
    • FAT32
    • EXT4

    리눅스 서버 대부분은 EXT4를 사용하며, 저널링 기능을 통해 전원 장애에도 비교적 안전하게 복구할 수 있다.


     4. 디스크는 느리다 – 그래서 캐시와 버퍼가 필요하다

    디스크는 CPU나 메모리에 비해 압도적으로 느린 장치다.
    그래서 운영체제는 그대로 디스크에 쓰지 않고, 중간 단계를 둔다.

     버퍼(Buffer)

    • 디스크에 바로 쓰지 않고 잠시 메모리에 모아두었다가 한 번에 처리
    • 작은 쓰기 작업을 묶어서 성능 향상

     캐시(Cache)

    • 자주 쓰는 데이터를 메모리에 복사해 두고 빠르게 재사용
    • 파일을 다시 열 때 디스크를 안 읽고 메모리에서 바로 가져옴

    이 구조 덕분에 우리는 수천 개의 파일을 다뤄도 시스템이 멈추지 않는다.


     5. 데이터 무결성과 저널링

    운영체제는 갑작스러운 전원 차단, 시스템 오류 상황에서도 데이터를 보호해야 한다.
    이를 위해 사용되는 핵심 기술이 저널링(Journaling) 이다.

    저널링 파일 시스템은 다음 순서로 동작한다.

    1. 디스크에 쓰기 전에 변경 내용을 로그에 먼저 기록
    2. 실제 데이터 영역에 기록
    3. 정상 완료 시 로그 제거

    이 구조 덕분에 시스템이 중간에 꺼지더라도,
    로그를 기반으로 정상 상태로 복구할 수 있다.

Designed by Tistory.