방법이있지
로그인
방법이있지
로그인
[운체] 오늘의 삽질 - 0813
방법이있지
·
2025년 8월 13일
팔로우
1
운영체제
크래프톤 정글
[정글 9-13주차] 운영체제
목록 보기
31/32
사용자 모드 vs 커널 모드
사용자 모드에서는 커널 영역의 코드 및 데이터에 접근할 수 없다. 반면 커널 모드에서는 사용자 및 커널 영역의 코드 및 데이터 모두에 접근할 수 있다.
CPU, 메모리, 입출력 장치 등 하드웨어 자원을 직접 다루는 코드는 커널 영역에 위치한다. 사용자 프로그램은 시스템 콜을 통해 커널 모드로 전환하여 하드웨어 자원에 간접적으로 접근할 수 있다.
사용자 프로그램이 커널 영역에 직접 접근하려고 하는 경우, 운영체제는 유효하지 않은 접근으로 판단해 프로세스를 종료시키는 방식으로 커널 영역을 보호한다. 사용자 스택이 위에서 아래 방향으로 성장하는 것 역시 커널 영역으로의 침범을 방지하기 위한 조치이다.
Lazy Loading
Lazy Loading은 메모리 할당 요청 시 즉시 데이터를 물리 메모리에 적재하지 않고, 이후 실제로 해당 데이터에 접근할 때 뒤늦게 메모리에 적재하는 방식이다.
실제로 접근해야 하는 데이터만 물리 메모리에 적재하는 방식이므로, 메모리를 효율적으로 사용할 수 있다. 실제 물리 메모리 용량을 초과하는 가상 메모리를 효율적으로 사용하는 데 필수적인 기술이다.
단 물리 메모리가 가득 찬 경우, 적재 시 기존의 물리 프레임을 대체해야 한다. 이때 대체할 프레임을 결정하는 교체 알고리즘이 효율적이지 않은 경우, 시스템 성능의 저하로 이어질 수 있다.
Supplemental Page Table
가상 메모리 환경에서 lazy loading 및 paging이 원활하게 도작하려면, supplemental page table을 사용해야 한다.
supplemental page table에는 각 가상 주소에 대응되는 데이터의 저장 위치( 파일 주소, 스왑 슬롯)가 기록되어 있다.
페이지에 처음으로 접근하거나 swap out된 페이지를 다시 메모리에 적재하려면, SPT를 통해 해당 데이터의 저장 위치를 확인하여 해당 위치를 확인해야 한다.
방법이있지
뭔가 만드는 걸 좋아하는 개발자 지망생입니다. 프로야구단 LG 트윈스를 응원하고 있습니다.
팔로우
이전 포스트
[운체] 오늘의 삽질 - 0811
다음 포스트
[0814 발표] 스택에 값을 푸시하는 방법
0개의 댓글
댓글 작성