File
"A named collection of related information"
일반적으로 비휘발성의 보조기억장치에 저장.
운영체제는 다양한 저장 장치를 file 이라는 동일한 노리적 단위로 볼수 있게 해줌.
디스크에 저장되는 파일은 이름을 통해 접근하는 단위.
파일은 데이터를 저장하는 목적 외에도, 리눅스같은 시스템에서는 여러가지 장치들도 관리하기 위해 파일이라는 이름을 사용하여 관리함. 다양한 저장장치들이 있다면 운영체제는 그러한 장치들을 서로 다른 파일로 관리를 하게된다. 이런 장치는 device special file 이라고 함.
파일에 대해 정의되는 연산은 "Create, read, write, reposition (lseek), delete, open, close 등"
파일의 reposition은 파일을 읽거나 쓰면 파일이 여러개의 바이트로 구성되는데, 어느 위치를 읽고 쓰는지에 대한 포인터가 있음. 파일의 접근하고 있는 위치를 연산해주는 것이 reposition.
오픈과 클로즈는 왜하는거냐.
-> 오픈의 역할은 그 파일의 메타데이터를 메모리로 올리기 위함.
또한 파일에는 그 파일을 관리하기 위한 정보가 있음. 예를 들어 음악파일이라면 그 파일의 이름이나 유형 저장된 위치, 사이즈 등은 그 파일 자체를 관리하기 위해 필요한 정보임.
파일시스템이라는 것은 운영체제에서 파일을 관리하는 부분. 파일 자체의 내용도 관리하지만 파일의 메타데이터도 같이 저장을 하고있음. 파일시스템에 저장할 때 1차원적으로 저장하는 것이 아니라, 디렉토리를 통해 관리.
Directory
파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일
그 디렉토리에 속한 파일 이름 및 메타데이터.
operation: search for a file, create a file, delete a file, list a directory, rename a file, traverse the file system.
Partition (=Logical Disk)
하나의 물리적 디스크 안에 여러 파티션을 두는게 일반적
여러 개의 물리적인 디스크를 하나의 파티션으로 구성하기도 함
물리적 디스크를 파티션으로 구성한 뒤 각각의 파티션에 file system을 깔거나 swapping 등 다른 용도로 사용할 수 있음
논리 디스크 안에 파일시스템이 있다면, 특정 파일의 메타데이터, 파일내용 등이 담겨있을 것.
이 파일을 오픈하게 되면, 이 파일의 메타데이터가 메모리로 올라오게 된다.
메타데이터에는 파일의 위치정보가 담기고, 그 위치정보를 참조하여 파일 데이터를 가져올 수 있게 된다![[Pasted image 20240730133133.png]]
open file table 에 저장메모리에 대한 보호는 페이지에 대한 읽기쓰기 접근 권한 유무를 구분하여 진행하였음.
파일에 대한 보호는 여러 사용자, 여러 프로그램이 같이 사용할 수 있어서, 파일에 대한 권한은
파일에 대한 접근 권한이 누구에게 있는지, 접근 연산이 어떠한 것이 가능 한지를 다루어야함.
접근 권한을 제어하는 방법은 크게 3가지.
하지만 행렬로 했을 시, 공간 낭비가 너무 심함. -> 연결리스트로 활용
Access control list: 파일 별로 누구에게 어떤 접근 권한이 있는지 연결리스트를 통해 표시.
Capability list : 사용자 별로 자신이 접근 권한을 가진 파일 및 해당 권한 표시.
단 9개의 비트로 파일을 관리할 수 있게 됨.
하나의 디스크를 파티셔닝을 통해 여러개로 나눌 수 있고, 각 디스크에 파일시스템을 설치하여 관리.
마운팅이라는 연산을 통해 또 다른 파일시스템에 접근하도록 함.
서로 다른 파일 시스템을 A 파일 시스템의 디렉토리에 B 파일 시스템을 마운트하여 A의 하위 디렉토리에 B 파일 시스템을 두게 해서 접근할 수 있도록 함.
파일 접근 방법.
재밌는 내용이네요!! 저도 얼른 배우고 싶습니다!😄