10:00 착석
밤에 기침 심해서 잠을 잘 못 잠
코로나로 타격이 너무 큼.
오늘은 권영진 교수님 운영체제 강의가 있음! 기대
피벗을 기준으로 작은 요소는 왼쪽으로, 큰 요소는 오른쪽으로 옮기는 작업은 반복
세부적인 내용은 교재에 잘 나와 있다.
이번 강의는 메타 레벨 지식을 전달하겠다.
stacked layer
애플리케이션 - 시스템콜 인터페이스 - 커널 - 하드웨어
추상화: 디테일을 숨겨서 사람들이 사용하기 쉽게 만든다.
보호/고립
자원 공유
프로세스: 하나의 컴퓨터인 것처럼 보여주는 것
CPU -> CPU 가상화
Memory -> 가상 메모리
스토리지 -> 파일
마치 여러 개의 스로세스가 각각의 머신에서 동작하는 것처럼 만들어 주는 것
가상 -> 물리 주소를 소프웨어적으로 하지 않고 물리 장치(MMU)로 하는 이유는
소프트웨어가 따라가지 못할만큼 메모리가 빨라서
앱이 처음 메모리에 접근을 시도하면 페이지 폴트가 발생하고, 그때 실제로 물리 메모리의 영역을 할당한다.
물리 메모리가 메모리를 할당할 때는 Zero the page한다.
보안 문제 때문에.
스토리지에 접근할 수 있게 File이라는 추상화를 만듦.
Level of indirection 용어 기억하기
디자인 원칙. 레이어끼리 매핑한다.
FAT, BTREE, EXTENT TREE 찾아보기
파일시스템은 MMU같은 하드웨어가 아니다.
왜냐면 하드디스크는 메모리만큼 빠르지 않아서이다.
파일의 메타데이터 -> i-node(약 128B)
write()는 dram까지만 가는 거(버퍼 캐시에 쓰는 거)
fsync()가 실제 메모리(버퍼 캐시)에 있는 걸 하드에 저장하는 시스템콜
컨트롤+s 커맨드가 fsync()를 부르는 것!!
개요: FAT는 "File Allocation Table"의 약자로, 초기 PC와 여러 가지 임베디드 시스템에서 널리 사용되는 파일 시스템입니다.
동작 방식:
파일 시스템의 각 파일은 클러스터(데이터 블록)로 나누어 저장됩니다.
FAT는 이 클러스터들이 디스크 상에서 어떻게 배치되어 있는지를 추적합니다.
FAT는 파일의 각 부분이 저장된 디스크 상의 위치를 표시하는 테이블을 유지합니다.
장점 및 단점:
장점: 단순하고, 널리 호환되며, 오버헤드가 낮습니다.
단점: 큰 디스크와 큰 파일을 효율적으로 관리하는 데 한계가 있으며, 고급 기능(보안, 압축 등)을 지원하지 않습니다.
개요: B-tree는 균형 잡힌 트리 구조로, 주로 데이터베이스와 파일 시스템에서 인덱싱을 위해 사용됩니다.
동작 방식:
각 노드는 여러 자식을 가질 수 있으며, 데이터는 정렬된 상태로 유지됩니다.
검색, 삽입, 삭제 연산을 효율적으로 수행할 수 있도록 설계되었습니다.
B-tree는 디스크 접근 횟수를 최소화하기 위해 노드의 크기를 디스크 블록 크기에 맞춥니다.
사용례:
B-tree는 대규모 데이터를 관리하는 데이터베이스 시스템에서 널리 사용됩니다.
개요: Extent Tree는 파일 시스템에서 사용되는 데이터 구조로, 파일의 연속된 블록(Extent) 정보를 효율적으로 관리합니다.
동작 방식:
Extent는 연속된 디스크 블록의 집합으로, 파일의 일부 또는 전체를 포함할 수 있습니다.
Extent Tree는 이러한 Extent의 위치와 크기 정보를 관리합니다.
이 구조는 대용량 파일을 효율적으로 관리하고 파일 단편화를 줄이는 데 도움이 됩니다.
사용례:
Extent 기반 파일 시스템은 대규모 파일과 대용량 저장 장치를 효율적으로 관리할 수 있도록 설계되었습니다. 예를 들어, Ext4, XFS 등의 파일 시스템에서 사용됩니다.