운영체제

[운영체제] Log-structured File System (LFS) | 디스크의 물리적 한계를 극복하는 순차 쓰기 전략

디스크의 물리적 한계를 극복하는 순차 쓰기 전략 지난번에 FFS(Fast File System) 를 통해 디스크의 물리적 구조(Cylinder Group)를 고려한 배치가 성능을 어떻게 개선하는지 확인했다. 하지만 여전히 해결되지 않은 문제가 있다. "데이터를 덮어쓴다(Update-in-place)"는 기존의 방식은 필연적으로 탐색 시간(Seek Time) 과 회전 지연(Rotational Latency) 을 유발한다. …

hyeon_B

[운영체제] 파일 시스템의 영속성(Persistence) | Crash Consistency, FSCK, Journaling

파일 시스템의 Persistence 우리가 프로그램을 사용할 때 가장 아찔한 순간은 저장하지 않았는데 갑자기 프로세스가 죽어버리는 상황일 것이다. 마찬가지로 OS에서 데이터를 저장하는 도중에 전원 플러그를 뽑으면 어떻게 될까? 메모리(RAM)에 있는 데이터가 날아가는 건 당연하지만, 하드 디스크에 쓰고 있던 데이터마저 깨져버린다면? 파일 시스템은 그 거대한 모순을 어떻게 견뎌내는 걸까. 오늘은 파일 시스템의 영속성(Persistence)을 …

hyeon_B

[운영체제] Fast File System (FFS) | 디스크의 물리적 구조를 고려한 성능 최적화

파일 시스템의 성능을 높이자 지난번 VSFS(Very Simple File System)를 공부하며 파일 시스템의 논리적인 뼈대를 세웠다. 하지만 '구현 가능하다'는 것과 '잘 동작한다'는 것은 완전히 다른 문제다. 초기 유닉스 파일 시스템은 단순했지만, 성능은 처참했다. 디스크를 마치 RAM처럼 임의 접근(Random Access) 가능한 장치로 취급했기 때문이다. (Random Access가 안되는 건 지난번…

hyeon_B

[운영체제] 파일 시스템 구현(VSFS) | Index Node(Inode) in deep

파일 시스템, 디스크에 데이터를 구조화하는 방법 매일 코드를 짜면서 수없이 많은 파일을 생성하고 저장한다. open() , write() 시스템 콜을 호출할 때마다 하드웨어 레벨에서 어떤 일이 벌어지는지 깊게 고민해 본 적이 드물다는 생각이 들었다. 이번 계기에 파일 시스템의 구현(File System Implementation)을 파고들면서, 우리가 당연하게 여기는 '파일 저장'이라는 행위가 실제 디스크 상에서 어떻게 구조화…

hyeon_B

[운영체제] 파일 시스템과 디렉토리 | Unix File System, Inode, Storage Virtualization

Storage Virtualization 지난 시간까지 우리는 HDD와 SSD라는 하드웨어 자체에 대해 알아보았다. 회전하는 플래터, 전자를 가두는 셀, 그리고 이들을 제어하기 위한 하드웨어적인 컨트롤러들의 이야기였다. 하지만 우리가 실제로 컴퓨터를 사용할 때 "3번 트랙 5번 섹터에 데이터를 써줘"라고 명령하지 않는다. 대신 "보고서.docx를 저장해 줘"라고 말한다. 여기서 나오는 개념이 바로 운영체제…

hyeon_B

[운영체제] SSD와 FTL | NAND Flash, Garbage Collection, Wear Leveling

SSD, 빠르지만 존재하는 의외의 단점 SSD(Solid State Drive)와 관련한 이번 글에서, SSD가 우리가 평소에 자주 사용하는 전자기기들(스마트폰, 태블릿, 노트북, ...)에 들어가는 저장장치이지만 모르고 있던 진실에 대해 파헤쳐보고자 한다. "SSD는 하드디스크보다 빠르지만, '덮어쓰기(Overwrite)'가 안 된다는 치명적인 단점이 있다." 덮어쓰기가 안 되는데 어떻게 우리가 매일 파일을 …

hyeon_B

[운영체제] I/O 시스템, HDD, Disk Scheduling, RAID | CPU와 디스크의 물리적 속도 차이를 극복하는 설계

컴퓨터 주변 장치들 컴퓨터 구조를 공부하다 보면, CPU나 메모리처럼 눈에 보이지 않는 전자적 신호의 흐름보다, 실제로 소리를 내며 돌아가는 하드디스크(HDD)나 키보드 같은 입출력(I/O) 장치들이 더 흥미롭게 다가올 때가 있다. 특히, "빛의 속도로 연산하는 CPU가 왜 거북이 같은 하드디스크를 기다려줘야 할까?"라는 질문은 시스템 설계자들에게 오랫동안 골치 아픈 문제였을 것이다. 오늘은 운영체제 수업에서 다룬 I/O 시…

hyeon_B

[운영체제] 스와핑(Swapping) | 물리 메모리의 한계를 넘어서는 기술

가상 메모리의 백스테이지 지금까지 우리는 페이징과 TLB 를 통해 '메모리 가상화' 개념에 대해 알아왔다. 하지만 여기엔 치명적인 물리적 제약이 있다. 바로 RAM 용량의 한계 다. 내가 실행하려는 프로그램들의 합이 32GB인데, 내 컴퓨터의 물리 메모리가 16GB뿐이라면? OS는 이 불가능한 상황을 해결하기 위해 메모리 계층 구조의 더 아래쪽, 즉 디스크(Disk) 를 빌려오기로 했다. 당장 쓰지 않는 페이지를 디스크의 창고(…

hyeon_B
게시물 더보기
검색결과 없음