공부 학습

시스템프로그래밍 2주차

Multitab 2021. 3. 15. 21:09

File System Call

  • File concept은 다양한 종류가 있다: Numeric, Character, binary
  • 그리고 Program File도 하나의 파일이라고 할 수 있다.

File Structure

  • 일반 파일 : 문자열, binary file
  • 단순 기록 구조(Simple record structure)
    • 줄글
    • 고정값
    • 변수값
  • 복잡한 구조(Complex Structure)
    • 형식이 있는 문서
    • 재 할당 파일
  • 이 모든 파일이 OS와 프로그램이 결정지어줌

File Attribute

파일의 속성에는 다음과 같은 속성들이 있다.

  • Name
  • Type
  • Location
  • Size
  • Protection
  • Time, date, User ID

File Operate

File을 다루는 함수에는 다음과 같은 함수가 있다.

  • Create: 파일 열람 / 생성
  • Write: 파일 수정
  • Read: 파일 열람
  • Fileseek: 파일 수정점 설정
  • Delete: 파일 삭제
  • truncate: 파일을 새로운 용량만큼 덮어쓰기
  • Open(Fi): 파일을 열람을 하기위해 파일소스를 메모리로 가져오는 함수
  • close(Fi): 파일을 다시 메모리에거 Flush하는 함수

File Type

파일의 종류에는 다음이 있다.

  • Regular: Text, binary 파일
  • Directory: File info, meta Data
  • Block device file: IO File, Printer File (/Dev)
  • Character device file: Character device, block device
  • Domain socket
  • Pipe: Inter-process File
  • Symbolic link: hyper link File

File Access Permission

  • 파일의 접근권한 형식
    • 유저 : User / 그룹 : Group / 일반사용자: Other
    • r : 읽기 권한 / w : 쓰기 권한 / x : 실행권한
  • 디렉토리 접근 권한 형식
    • Read Permission : 디렉토리 내 파일 리스트 열람 권한
    • Write Permission : 디렉토리 내 파일 생성이나 파일 삭제 권한
    • Execution Permission: 디렉토리 열람/접근 권한
  • 이외 실행파일(Excutable File)의 권한
    • User ID: 유저가 사용중인 프로세스를 책임지는 ID로 구별
    • 이러한 User ID를 가진 유저가 파일생성하고 접근권한을 처크하기 위해서는 Process에 Signal을 송신해주어야한다. 이때 시스템은 setuid(uid) System call을 이용해 수정하는 잠시 동안 root권한을 가져와서 파일을 가져옴
  • 특수 파일권한
    • Set-user-id bit(04000) : 파일이 시작해 프로세스를 시작하면 UID(파일 소유자 권한)으로 실행
    • Set-Group-id bit(02000) : 파일이 시작해 프로세스를 시작하면 GID(파일 그룹 권한)으로 실행
    • Sticky bit(01000) : 사용후 흔적이 남아있어서 이후 호출에 쉽게 파일을 불어와줄수 있음. 누구든 파일을 쓰고 실행할수있지만 파일 소유자 만이 파일을 삭제 할수 있음
  • Inode
    • 파일의 관리 정보를 가지고 있어서 이를 효율적으로 관리할 수 있는 자료구조임
    • 각 Inode 10칸 마다 4K의 블록을 가지며 4K블록이 1024^3제곱으로 총 inode 10칸에 4TB의 용량을 저장 할 수 있다.
  • UNIX 커널에서 파일 시스템의 지원
    • File discriptor table
    • File table
    • Inode table
  • 그래서 파일을 open하게 되면
    1. File Discripter를 받는다.
    2. File Discripter Table에 저장된 주소로 File Table을 읽어 파일 정보를 읽어 오고 해당 정보중 Inode를 읽어옮으로서
    3. 해당 실질 데이터가 Disk에 담긴 부분을 읽어 메모리에 올림
  • File Discriptor: 시스템으로 부터 할당 받은 파일의 대표 정숫값, 프로세스에 열린 파일 목록을 관리하는 파일 인덱스
  • Hard link는 기존의 것에 직접연결 , Symbolic link는 새로운 Inode를 만들고 거기에 경로를 저장하는 파일을 연결

'공부 학습' 카테고리의 다른 글

운영체제 4주차 -1  (0) 2021.03.22
운영체제 3주차 - 2  (1) 2021.03.16
운영체제 3주차 - 1  (0) 2021.03.15
시스템 논문 리뷰 1  (0) 2021.03.15
운영체제 2주차 - 3  (0) 2021.03.09