본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다.
개요 - 논리주소와 물리주소, 주소 결속
- 논리주소 : CPU에 의해서 생성되는 주소 체계
- 물리주소 : RAM에 실질적으로 로드되는 물리적주소
- 주소결속 : 논리주소 → 물리주소
- 명령어 하나가 실행될 때마다 주소변환이 이루어짐
- 주소결속은 한번에 이루어지지 않고 하드웨어의 지원을 받아 실행시간에 이루어짐
# 주소결속 시점
- 컴파일시점 결속
- 컴파일러가 물리주소를 생성 - 적재시점 결속
- 적재 시점에 물리적 시작주소가 확정되면 코드 내 논리주소들을 물리적 주소로 변환하여 적재 - 실행시점 결속
- 먼저 논리주소로 적재된 후 실행 중에 물리주소 확정 - 적재시점 주소결속 시에는 적재 후 재배치가 불가
- 실행시점 주소결속 시에는 재배치 및 부분적재 가능
경영 기법의 분류 - 분할, 페이징, 세그먼테이션, 가상 메모리
# 분할 방법
- 여러 개의 프로그램을 적재하기 위해서 메모리 공간을 여러개로 분할
- 분할의 수는 다중 프로그래밍의 정도가 됨
- 고정분할과 가변분할이 있음
분할방법 - 고정분할, 가변분할, 단편화와 압축
- 고정 분할
: 분할의 수와 각각의 크기가 고정
- 현재는 거의 사용 x
- 분할마다 남는 공간 발생 - 가변 분할
: 메모리 전체를 하나의 연속된 공간으로보고 적절한 빈 장소에 프로그램을 적재
- 최초적합
- 최적적합
- 최악적합
- 효율성 : 최초=최적 > 최악
- 속도 : 최초 > 최적 > 최악 - 단편화
- 외부단편화
- 내부단편화 - 압축
- 단편을 합해 하나의 큰 공간을 만듦
- 50% 규칙
- 압축의 비용 : 압축을 위해 움직여야 하는 프로그램 크기의 합
페이징 - 페이지 테이블, 페이지의 공유와 보호, 채널 맵
# 페이징
- 연속된 물리공간이 필요하지 않으면서도, 실행시간 및 주소결속이 가능한 방식의하나
- 물리적 공간은 프레임, 논리적 공간은 같은 크기의 페이지로 나누고, 페이지 테이블을 사용하여 페이지를 프레임에 대응시킴
- 페이지 테이블 : 메인메모리 상에 존재, 시작주소는 PTBR에 기록
- 외부단편화는 x, 약간의 내부 단편화
- 단점 : 분할 방식에 비하여 주소결속에 따른 오버헤드 발생 , 속도저하 및 페이지 테이블 용량 문제 해결 필요
- 장점
- 단편화 문제 해결
- 페이지 공유 가능
- 페이지 보로 가능
# 주소표현
- 논리적 주소 : ( p , d )
- p : 페이지 번호
- d : 페이지 내의 상대 주소 - 물리적 주소 : ( f,d ) = f * s + d
- f : 페이지 p에 해당하는 프레임의 번호
- s : 페이지 크기 - free frame 리스트 : 새로운 프레임 할당을 위해 가용 프레임을 free frame 리스트로 운용
- 페이지 공유
: 만약 한 프로세스에 의해 먼저 메인메모리에 탑재되어 있다면 다른 여러 프로세스가 공유 가능 - 메모리 보호
: 보호비트 마련함으로써 구현
# 페이지 테이블
- 페이지 테이블은 주로 메인메모리에 저장하고 시작 주소를 PTBR에 저장
- 2번의 메모리 접근 -> 페이지 테이블, 물리주소
- PTBR : 페이지 테이블 주소 간직
- PRLR : 페이지 테이블 길이 간직 - TLB 이용
- TLB에 논리주소의 p와 프레임 번호 f의 쌍 (맵핑정보) 를 기록
- 메모리 접근이 필요하면 먼저 TLB에서 맵핑 정보를 찾고 없으면 메모리 상의 페이지 테이블에서 찾음
- 지역성 : 최근 사용한 것은 다시 사용할 확률 매우 높음 - 계층적 페이징
- 논리 주소 상의 페이지 번호를 2단계로 분할 - 해시 페이지 테이블
- 해시값을 가상페이지 번호로 활용하고, 해시 테이블의 각 항목에 해쉬충돌해결을 위한 연결리스트 구비
- 클러스터 페이지 테이블 - 역 페이지 테이블
- 메인메모리 각 프레임마다 페이지 테이블의 한 항목 씩 할당
- 결과적으로 시스템 내에는 하나의 페이지 테이블만 존재하게 되어 적은 용량을 필요로 함
- 주소변환 위해 페이지 테이블을 탐색해야하므로 시간 소모
세그멘테이션
# 세그먼테이션
- 사용자의 메모리에 대한 관점을 지원해 주는 메모리 경영 방식
- 세그먼트 : 사용자에게 메모리는 가변 크기를 가진 스트럭쳐, 어레이, 행렬, 테이블, 함수등의 집합으로 인식됨
- 세그먼트 테이블을 활용해 해당 테이블에 각 세그먼트의 시작주소와 크기정보를 수록
- 외부단편화 문제 다시 발생 -> paged segmentation
'LECTURE > [2021-1] 운영체제' 카테고리의 다른 글
[운영체제] 9. 파일 시스템 (File Systems) (0) | 2021.06.17 |
---|---|
[운영체제] 8. 가상메모리 (Virtual Memory) (0) | 2021.06.17 |
[운영체제] 6. 교착 상태 (Deadlock) (0) | 2021.06.17 |
[운영체제] 6. 상호작용 프로세스와 동기화 (0) | 2021.06.17 |
[운영체제] 5. 실시간 스케쥴링 (0) | 2021.06.17 |