OS · MEMORY PROTECTION
세그먼테이션 폴트 판정 흐름
CPU와 OS는 주소 변환 중 세그먼트 범위와 권한을 확인하고, 위반이 있으면 트랩을 통해 프로세스를 중단합니다.
실패 유형
fault
범위 초과
세그먼트 한계보다 큰 오프셋을 접근하면 유효하지 않은 주소입니다.
권한 위반
읽기 전용 코드나 실행 불가 스택에 쓰기/실행을 시도하면 차단됩니다.
검사 순서
translation
논리 주소
세그먼트 번호와 오프셋을 분리합니다.
테이블 조회
Base, Limit, R/W/X 비트를 읽습니다.
범위·권한 검사
한계와 접근 종류를 비교해 위반을 찾습니다.
물리 주소
통과하면 Base + Offset으로 실제 주소를 만듭니다.
디버깅 단서
debug
NULL 역참조
주소 0 근처는 보통 매핑하지 않아 즉시 SIGSEGV가 납니다.
Use-After-Free
이미 반환한 힙 블록을 다시 읽으면 운에 따라 늦게 터질 수 있습니다.
버퍼 오버런
배열 밖 쓰기는 인접 세그먼트나 보호 페이지에서 드러납니다.