select를 이용한 입출력 다중화

select를 이용한 입출력 다중화입출력과 관련된 함수들은 기본적으로 봉쇄/동기적 으로 작동한다. 봉쇄형은 데이터를 처리하는 직관적인 방식이긴 하지만, 두 개 이상의 파일을 처리할 때 문제가 된다. 하나의 파일에서 봉쇄가 되어 버리면 다른 파일의 데이터는 영원히 읽지 못할 수도 있기 때문이다. 비 봉쇄 방식으로 처리하는 방법도 있으나 일반적으로 비봉쇄 방...

seek를 이용한 파일 위치변경

seek를 이용한 파일 위치변경...

fcntl을 이용한 파일 및 레코드잠금

fcntl을 이용한 파일 및 레코드잠금fcntl을 이용한 파일잠금, 레코드 잠금의 방법과 그 응용에 대해서 알아본다. 파일잠금과 레코드 잠금은 여러 응용에서 필요로 한다. 멀티 쓰레드(DB와 같은경우에는 단지 파일잠금을 넘어서, 파일의 일정부분을 잠그는 레코드 잠금 기능을 필요로 할 것이다. 특정 레코드영역에 한번에 하나의 쓰레드만 접근하도록 제어해야 하...

dup를 이용한 파일지정번호 복사

dup를 이용한 파일지정번호 복사dup 함수가 하는일은 실제로 간단하다. 단순히 파일지정번호를 복사하는 일이다. 그런데 솔직히 말해서 "dup는 파일지정번호를 복사하기 위해서 사용한다" 라고 해보았자.. 도대체 이걸 어디에 사용할수 있을지, 절대 감이 오질 않는다.이래서야 쓰고 싶어도 써먹을수가 없으니 보통 슬픈일이 아니다. 그래서 이번문서에서는, 몇가지...

버퍼사이즈가 읽기/쓰기 성능에 미치는 영향

버퍼사이즈가 읽기/쓰기 성능에 미치는 영향파일을 읽고 쓸때, 한번에 읽어들이는 데이터의 크기에 따라 읽기/쓰기 성능이 달라진다는 것은 상식선에서 알고 있을 것이다. 대략 알고 있는 바로는 1024 바이트 단위로 읽어올 때 가장 효과적인 것으로 알고 있다. 실제, 이러한 우리의 상식이 올바른지를 확인하기 위해서 버퍼 크기에 따른 읽기/쓰기 성능에 대한 자료...

유닉스 파일 다루기

유닉스 파일 다루기 워낙 오래전 문서다. 업데이트가 필요 할 듯. 2009-12-9Unix 는 모든것이 파일로 이루어진다. 일반적인 텍스트 정보, 바이너리 정보 뿐만 아니라, 소켓, 파이프(FIFO), 장치(device), 디렉토리까지 파일로 관리를 한게 된다. 이러한 개념은 Window 사용자에게는 생소한 개념이 될수가 있다.윈도 있어서 c== 파일 열...

Unix 파일 다루기 2

파일을 연결(link)에는 "심볼릭 링크" 와 "하드 링크" 의 2가지가 존재한다. 하드링크는 연결을 원하는 원본파일의 inode 를 가지고 파일을 직접 만들지만 (파일복사), linke 는 inode 를 가지고 파일을 만들지 않고, 단지 파일만을 참조한다. 심볼링 링크의 경우 서로 다른 파일시스템 사이를 연결할수 있지만(파일을 단지 참조하는 것이므로), ...

LVM - Logical Volume Manager

LVM - Logical Volume ManagerLVM은 별 관심이 없는 기술이었다. 시스템관리자에게나 필요한 기술이지, 나 같은 소프트웨어 개발자에게 필요한 기술은 아니기 때문이다. 알고 있으면 도움이 되겠으나, 몰라도 크게 상관 없는 그런 기술이었다.요즘(2012년) 클라우드 관련일을 하면서 LVM에 관심을 가지게 됐다. 클라우드의 장점은 자원의 탄...

AUFS와 도커 파일 시스템

aufs(advanced multi layered unification filesystem)은 리눅스 파일 시스템의 union mount를 구현하기 위해서 시작한 프로젝트다. 2006년 junjiro Okajima가 개발을 시작했으며, UnionFS를 완전히 새로 만들었다. 안정성과 성능을 향상시키는 이외에도 writable branch balancing와...