[운영체제] 파일
파일
지워지지 않는 정보의 저장 단위, 이름이 주어짐..
파일에 대해 할 수 있는 연산은 Create, Delete, Open, Close, Read, Write 등..
입/출력으로 파일을 많이 사용함.
파일로 저장하고, 오픈….
안전한 장치에 저장하면, 나중에 다시 보기 편해진다.
파일 관리의 대상은 파일과 파일 시스템(파일을 체계적으로 관리하는 시스템)으로 나뉜다.
File Control Block
별도의 DS를 운영체제에 만든다, File Attribute가 들어감.
File Control Block은 PCB와 유사하다.
저장위치..? File은 보통 보조기억장치에 저장된다. 따라서 FCB도 결국 보조기억장치에 저장이 되야한다.
File Management Functions
순서도는 다음과 같다.
그 파일이 먼저 존재하는지 확인해야한다.
디스크에 주소를 매겨야하는데 블록 단위로 매긴다. (나중에 자세히 볼 예정, 입출력 장치를 하며)
이 파일이 어디 블록에 있음 ??
이 파일에 엑세스 할 수 있음 ? 액세스 불가하면, 접근 금지함.
동시 접근 제어(충돌 등 통제)
free block이 디스크 어디에 있는가와, 빈 블록 관리
파일의 종류들..
Regular file, directory, device file, link, socket, pipe
File Operations
파일을 액세스 하는 건 결국 OS에게 요청하는 것이다. 결국 접근하는건, OS가 접근한다.
따라서 이에 대한 File Operations 으로써 System Call이 이미 정의되어있다.
open, close, read, write, …
경로를 따라가며 파일이 존재하는지 파악하는게 우선이다.. open()
파일이 바뀔 때마다, disk에 가서 task를 수행하는건 매우 오래 걸리기 때문에
일단 메인 메모리로 파일 불러서(복사) 이후 task 이행 이후 디스크로 넣는 방식으로 작동한다. close()
Device File
특수 File이라는게 존재함.
입/출력을 위한 파일임..
1
ls -l /dev
장치 파일들 나열 명령어
그룹 식별 넘버,, major number와 minor number
디스크는 major number 3, tty(키보드.. 등)는 major number 4..
입출력 정보 단위.. ? b or c
block 4kib 4096 byte로 단위로 읽고 씀
뒤에 있는 글자는 접근 권한. chmod 777
링크 카운트.. 이 파일의 링크 개수.. 따라서 하나는, 링크가 이 파일에서만 존재한다는 것
파일에서 읽고 쓰는 것처럼 입/출력을 구현..
장치의 타입이 너무 많고 특성도 달라서 대표하는 파일을 만들고 그거로 입출력하는게 간단해서
아 그래서 데이터통신 송수신이 빡센 이유가 이래서구나
특수 파일도 FCB가 만들어짐 !!! 대신 일반 파일에 비해 조금 다름..
ex) 파일 정보가 불필요하다, 장치 식별 major, miner number 필드가 대신 만들어짐..
장치 파일이 만들어지는건
mknod로 만들어야됨. (수동인가..? 자동인가..?)
$ mknod /dev/file_name [b|c] major_number miner_number
block -> 하드 디스크
문자형 장치 -> 입출력장치
하드디스크 0~255 linux’s major number할당되있으니.. 이 넘버를 피해서 해주면 됨.. 다시 조사할것