[운영체제]파일시스템1

이유정·2023년 8월 25일
0

운영체제

목록 보기
27/49

목표

파일 시스템의 기초, 디렉토리 구조, 파일의 접근권한 보호에 대해 알아본다.

fd라는 결과값을 리턴하게 되는데
각 프로세스마다 그 프로세스가 오픈한 파일에 대한 메타데이터 포인터를 가지고 있는 일종의 배열 같은게 정의되어 있다. 만약에 오픈한 b라는 파일의 메타데이터가 여기죠. 그걸 가리키는 포인터가 배열 어딘가에 만들어지고 이 배열에서 몇 번째 인덱스냐. 그 인덱스가 b라는 파일의 파일 디스크립트가 돼서 그 값을 사용자한테 리턴하는 것.

만약에 이 프로그램 혹은 다른 프로그램이 동일한 파일의 동일한 위치를 요청하면 read system call 하면 디스크 까지 가는게 아니라 운영체제가 읽어놓은게 있기 때문에 바로 전달 => buffer 캐싱

파일에 대한 read write을 하는 이런 시스템에서는 운영체제가 버퍼 캐시라는 것을 가지고 있는데, 파일 시스템에 대한 버퍼 캐시는, 요청한 내용이 있든 없든 간데 운영체제한테 cpu 권한이 돌아간다.
따라서, 버퍼 캐시 환경에서는 LRU 알고리즘이나 LFU 알고리즘을 자연스럽게 사용이 가능하다. (모든 정보를 운영체제가 다 알기 때문에!)

그래서 요러한 커널이 유지하는 테이블에 대해서 여러가지 이름이 주어진다.
1) FD, 파일 디스크립터 테이블은 프로세스마다 가지고 있다해서 *
2) 오픈 파일 테이블은 파일을 오픈했으면 오픈된 파일 목록들을 한꺼번에 관리하기 때문에 하나 존재해서 **

추가내용)
메타데이터가 디스크에서 운영체제로 올라가게 되면
여기에 추가적으로 메타데이터가 필요하다. 현재 이 프로세스가 이 파일의 어느 위치를 접근하고 있다는 OFFSET을 같이 가지고 있어야 한다. 근데 그건 프로그램마다 별도다. OFFSET은 서로 다를 것. 파일 내에서 어디를 접근하는지는 프로세스마다 별도로 가지고 있음.

A 프로그램은 이 파일을 오픈 해꼬, B 프로그램도 오픈 가능, B 파일의 메타데이터는 한 까피만 올라가 있겠죠(A 프로그램이 열었으니, B 프로그램은 그냥 가져오기만 하면됨)

File protection

메모리의 protection은 read / write 권한이 있느냐 없느냐
=> 메모리라는 건 프로세스마다 별도로가지고 있기 때문에 자기 혼자만 볼 수 있음 메모리 protection은 접근 권한이 연산이 무엇이냐, write할 수 있냐 read만 가능하냐 ~

filte system의 mounting


root 파일 시스템에 대해서 만약에 다른 파티션에 설치되어 있는 파일 시스템에 접근하기 위해서는 어떻게 해야할까? => mounting이라는 연산을 통해 해결 !

access methods

파일에 접근하는 방법 2가지

profile
강의 기록 블로그

0개의 댓글