728x90

파일 3

운영체제 30. 파일 시스템 구현

30. 파일 시스템 구현 30.1 생각하는 방법 파일 시스템에 대해 학습할 때, 두 가지 측면에서 접근할 것을 권장한다. 첫 번째는 파일 시스템의 자료구조이다. 즉 파일 시스템이 자신의 데이터와 메타 데이터를 관리하기 위해 어떤 자료구조가 있어야 하는지 여러 파일 시스템은 배열과 같은 간단한 자료구조로 표현하지만 SGI의 XFS와 같은 파일 시스템은 좀 더 복잡한 트리 기반 자료 구조를 사용한다. 두 번째 측면은 접근 방법(access method)이다. 프로세스 호출하는 명령들은 자료구조와 어떤 관리이 있는가? 특정 시스템 콜을 실행할 때 어떤 자료구조들이 읽히는가 파일 시스템의 자료구조와 접근방법을 이해하였다면, 실제 동작 방식에 대한 개념 모델을 제대로 정립하는 것이다. 30.2 전체 구성 vsfs..

책/운영체제 2024.03.29

파일 식별자File Descriptor(FD)

File Descriptor(FD) 정의 운영체제가 파일, 소켓, 파이프등의 입출력 리소스를 관리하기 위해 생성해내는 비음수의 값이다. 프로세스가 각 리소스에 접근하려고 할 때 리소스에 대한 인덱스로 사용된다. 덕분에 프로세스는 리소스의 실제 물리적 위치를 몰라도, 인덱스를 통해 접근이 가능하다. 프로세스의 FD 활용 리소스 열기 프로세스가 open, socket 등의 system call을 사용해 리소스를 열면 운영체제는 해당 리소스에 대한 핸들을 생성하고, 이를 가리키는 파일 디스크립터를 프로세스에 반환한다. 리소스 조작 프로세스가 read, write, send, recv 등의 system call로 리소스를 조작할 때, fd값을 인자로 운영체제에 제공해야 한다. 운영체제는 이 fd를 통해서 해당 ..

CSAPP 10

CSAPP 10. 시스템 수준 입출력(System - Level I/O) 입출력은 메인메모리와 네트워크, 디스크 같은 외부장치들 간에 데이터를 복사하는 작업이다. 입력연산은 입출력 장치에서 메인메모리로 복사하고, 출력연산은 데이터를 메모리에서 디바이스로 복사한다. 왜 UNIX I/O를 배워야 하는가? UNIX I/O를 이해하면 다른 시스템 개념을 이해하는데 도움이 된다. 때로는 UNIX I/O 이외의 다른 방법이 없을 수도 있다. 10.1 Unix I/O 리눅스에서 파일은 연속된 m개의 바이트다. 네트워크, 디스크, 터미널 같은 모든 I/O 디바이스들은 파일로 모델링되며, 모든 입력과 출력은 해당 파일을 읽거나 쓰는 형식으로 수행된다. Unix I/O를 통해 모든 입력과 출력이 일정하고 통일된 방식으로 ..

책/CSAPP 2024.02.24
728x90