Introduction
복잡한 작업의 주체는 OS
- 파일 시스템의 **복잡한 작업(디스크 접근, 메모리 관리, 캐시 조율 등)**은 대부분 **운영체제(OS)**가 처리
- 사용자는 세부 구현을 몰라도 됨
OS가 파일 정보를 관리
- OS는 파일의 **메타데이터(위치, 크기, 권한 등)**를 디스크의 디렉토리 구조를 통해 관리
- *파일 디스크립터(file descriptor)*나 파일 포인터(FILE)를 통해 파일 접근을 추상화함
사용자-OS 간 인터페이스: 시스템 호출 (System Calls)
- 사용자는 OS가 제공하는 call-level 인터페이스를 통해 파일 작업 요청
- 대표 시스템 호출:
open(), read(), write(), close() 등
C 라이브러리 함수의 역할
- C 표준 라이브러리(
stdio.h)는 시스템 호출 위에서 작동하는 고수준 함수 집합
- 내부적으로 시스템 호출을 감싸고 버퍼링 등 추가 기능 제공
- 예:
fopen()은 내부적으로 open()을 호출
Physical Files and Logical Files
1. Physical File (물리적 파일)
- 실제 디스크에 존재하는 파일 → 복잡 & 개발자가 알 필요 없음
- 운영체제가 파일 디렉토리를 통해 관리