파일시스템(2)
-
stackless coroutine 스택리스 코루틴
일반적인 코루틴과 달리 실행 중인 함수 또는 프로세스의 상태를 스택(메모리)를 사용하지 않고 저장하고 관리하는 방식이다. 코루틴은 일반적으로 실행 중인 함수의 상태를 스택에 저장하여 나중에 이어서 실행할 수 있게 한다. 스택리스 코루틴은 스택을 사용하지 않고 상태를 저장해 일반적인 코루틴과 비교해 더 가벼우며 메모리 사용량을 줄일 수 있다. 다른 데이터 구조 (객체 또는 클로저)에 저장한다. 스택리스 코루틴이 스택을 사용하지 않고 상태 정보를 저장해 효율적인 멀티 태스킹을 구현하는데 도움이 되는데, 더 효율적인 이용이 가능한 이유는 다음과 같다. 1. 스택의 경우 각 함수 호출에 대한 스택 프레임을 생성하고 제거해야해서 메모리 소모가 더 크다. 2. 많은 스레드를 사용하지 않고도 동시성을 달성할 수 있따..
2023.10.15 -
f2fs 파일시스템 fsync mode : posix, strict, nobarrier
fsync 연산은 데이터와 데이터를 가리키는 direct node만을 쓴다. 따라서 fsync만으로는 데이터의 consistency를 보장할 수 없다. NAND 상에서 node write가 먼저 일어나고 data write이 일어나는 도중에 crash가 일어나는 상황을 가정해보자. 이 때 데이터의 consistency는 무너지게 된다. 이를 해결하기 위한 방법은 두가지가 있다. 1. roll forward recovery 2. fsync with strict mode 먼저 roll forward recovery를 보자. f2fs 파일 시스템은 시스템 크래쉬가 일어났을 때 roll-back recovery를 진행한 후에 roll-forward recovery를 진행한다. 롤백 리커버리는 체크포인트 팩을 보..
2023.08.21