운영체제 정리
1. CPU의 메모리 접근과 동작
- CPU의 역할:
- 명령어 해독
- 메모리에서 피연산자 가져오기
- 연산 수행
필요한 요소들은 반드시 메모리에 적재되어야 함.
2. 메모리 접근 과정
- CPU 동작:
- 메인 메모리에서 데이터 가져오기
- 레지스터에 데이터 올리기
- 레지스터의 데이터 사용
레지스터와 메모리 간 속도 차이가 큼.
- 캐시: 중간 저장장치로 빠른 메모리 접근 지원 (하드웨어 레벨).
3. 메모리 보호
- 목적:
- 프로세스별 보호된 주소 영역 사용 보장
- 커널 모드의 중요 영역 보호
- 구현:
- CPU: 프로세스별 논리주소 영역 마련
- 메모리 보호 영역 지정
- 유저 모드의 커널 메모리 침범 시 트랩 발생
메모리 보호를 위한 상한 레지스터: 문맥 교환 시 전환.
4. 프로세스 주소 할당
- 주요 개념:
- 논리주소: CPU가 사용하는 프로세스 주소 영역
- 물리주소: 실제 데이터가 위치한 메모리 주소
핵심: 논리주소와 물리주소의 매핑 방법.
5. 메모리 관리 장치 (MMU)
- 역할: 가상 주소와 실제 주소 연결.
- 기능: 주소 매핑 지원 및 전체 메모리 관리 과정 담당.
- 장점: 논리 주소와 물리 주소의 동적 연결로 유연한 메모리 관리 가능.
6. 메모리 할당
- 연속 할당 방식:
- 장점: 간단하고 직관적
- 단점: 외부 단편화 발생
- 해결 방법:
- 최초 적합
- 최적 적합
- 최악 적합
내부 단편화: 성능을 위해 메모리를 일정 크기 배수로 할당할 때 발생.
7. 페이징 기법
- 목적: 외부 단편화 문제 해결.
- 특징:
- 논리주소와 물리주소를 페이지/프레임 단위로 분할
- 일반적인 페이지 크기: 4KB
- 비연속적 메모리 공간에 적재 가능
- 장점:
- 외부 단편화 해결
- 큰 논리 주소 범위 지원 (예: x64 아키텍처에서 $2^{64}$)
주의: 내부 단편화는 여전히 발생 가능.
8. 페이지 구조와 주소 변환
- 구성 요소:
- 페이지 번호
- 오프셋 (상대적 위치)
페이지 테이블: 페이지-프레임 매핑 정보 관리.
- 주소 변환 과정:
- MMU가 페이지 번호로 프레임 위치 확인
- 실제 주소 = 프레임 주소 + 오프셋
9. 페이지 테이블 관리
- 저장 위치: PCB에 포인터로 저장.
- 사용 시점: 문맥 교환 시 레지스터에 로드.
TLB (Translation Lookaside Buffer): 성능 향상을 위한 캐시.
- TLB 특징:
- 프레임 번호-페이지 번호 매핑 정보 저장
- 프로세스별 독립적 정보
- 문맥 교환 시 일반적으로 무효화 (ASID 사용 시 예외).
10. 스와핑
- 정의: 페이지를 메모리와 백업 장치 사이에서 이동하는 과정.
- 관련 용어:
- 페이징 파일: 백업 장치에 저장된 페이지들
- 페이징-인: 백업 장치에서 메모리로 페이지 로드
- 페이징-아웃: 메모리에서 백업 장치로 페이지 이동
- 페이징 파일 불러오기
- 페이지가 메모리에 없는 경우:
- 페이지 미생성
- 페이징 아웃으로 페이징 파일에 저장
- 구분 방법: 페이지의 invalid 속성 사용
- 페이지 정보 없음: OS에서 트랩 발생
- 페이지 존재: 페이징 파일에서 로드, 적재, 갱신
- CPU는 예외만 발생, OS가 처리 담당.
- 페이지가 메모리에 없는 경우:
'운영체제' 카테고리의 다른 글
캐시 - 캐시의 구조의 분석 (0) | 2025.01.15 |
---|
댓글