디스크 - 섹터
디스크는 섹터 접근 요청 시 read / write 가능
파일시스템은 블록 단위로 디스크에 요청
block = 2^n * sector
보통 1block = 4096byte( 8sector) or 16k(32sector)
파일 시스템이 있기 떄문에 읽고자 하는 파일의 이름만 알면 알아서 해당 파일의 디스크 섹터를 읽어 올 수 있는 것
file id : 커널에서 디스크의 저장된 파일을 구분하기 위해 file id 사용
file descriptor : 디스크는 파일데이터, 파일 인포(파일 타입, 사이즈,섹터 정보)를 저장함
open(a.txt)등으로 실행하면 disk의 이름에 해당하는 파일을 memory에 올림 이 때 메모리에 올린 파일 인포의 address 를 fd
file info in file-system structure
= file control block (fcb=inode)
프로세스 당 하나의 fd table 존재
커널 내에는 file table이 존재, 안에는 fd 와
fd table ( per process) || oepn file table (shared by all ps) || v-node table(shard by all ps)
1.open(file)하면 disk에서 메모리에 inode를 올림 => v-node(in memory inode)가 됨
2. open file table에서 빈 entry를 하나 찾아서 v-node를 포인트하게 함
3. fd 테이블에서도 빈 entry를 찾아서 open file table의 entry를 포인트하게함
프로세스 생성 시 fd table 자동 생성, 0,1,2 stdin stdout stderr에 해당함
= file data에 대한 데이터 = file metadata
vitural file system -> file sytem -> buffer cache 배움