락 사용 이유 : 실시간 응용 프로그램은 외부적인 요소로 방해 받거나, 지연 된다면 치명적.
#inclde <sys/mman.h>
int mlock( const void *addr, size_t len );
- 지정된 메모리 addr(주소)로 부터 len(길이) 만큼 페이징 금지
int munlock( const void *addr, size_t len );
- 락 페이지 addr(주소)로 부터 len(길이) 만큼 락 해제
※ 페이지 락 호출은 스택되지 않기 때문에 같은 메모리 주소에 여러 번 잠금 호출되었다고 해도 해제는 1번만 해주면 된다.
int mlockall( int flags );
- 해당 프로세스의 모든 메모리의 페이징을 금지
flags : MCL_CURRENT 현재 상태에서의 프로세스에 대응된 모든 페이지 락
MCL_FUTURE 앞으로 발생하는 모든 대응된 페이지 락 ( 새로운 메모리맵, 공유 메모리, 힙, 스택 모두 적용 )
int mlockall();
- 현재 프로세스에서 잠금 되어 있는 페이지 모두 해제
출저 : Advanced 리눅스 시스템 네트워크 프로그래밍 ( 가메출판사 ) 내용 중
int mlock( const void *addr, size_t len );
- 지정된 메모리 addr(주소)로 부터 len(길이) 만큼 페이징 금지
int munlock( const void *addr, size_t len );
- 락 페이지 addr(주소)로 부터 len(길이) 만큼 락 해제
※ 페이지 락 호출은 스택되지 않기 때문에 같은 메모리 주소에 여러 번 잠금 호출되었다고 해도 해제는 1번만 해주면 된다.
int mlockall( int flags );
- 해당 프로세스의 모든 메모리의 페이징을 금지
flags : MCL_CURRENT 현재 상태에서의 프로세스에 대응된 모든 페이지 락
MCL_FUTURE 앞으로 발생하는 모든 대응된 페이지 락 ( 새로운 메모리맵, 공유 메모리, 힙, 스택 모두 적용 )
int mlockall();
- 현재 프로세스에서 잠금 되어 있는 페이지 모두 해제
출저 : Advanced 리눅스 시스템 네트워크 프로그래밍 ( 가메출판사 ) 내용 중
'[ Programing ] > Server' 카테고리의 다른 글
이벤트 객체 CreateEvent, SetEvent, ResetEvent, PulseEvent (0) | 2012.12.04 |
---|---|
Shared memory (0) | 2010.07.23 |
POSIX 정규 표현식 (0) | 2010.06.29 |
Mutex 설정 (0) | 2010.06.16 |
Deadlock (0) | 2010.06.16 |