일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- forEach
- Swift
- SwiftUI
- 앨런
- 동시성
- COLOR
- 파일 시스템
- Codable
- 동기화
- Algorithm
- @state
- 데드락
- 오브젝트
- struct
- Apple Developer Academy
- 100 days of SwiftUI
- 인프런
- UserDefaults
- deadlock
- IOS
- 비동기
- 알고리즘
- 가상 메모리
- core data
- decode
- 상호배제
- Linked List
- 프로세스 스케줄링
- 운영체제
- async
Archives
- Today
- Total
기어가더라도 제대로
[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 본문
이번 장에서는 가상 메모리의 각종 전략(할당, 교체, 퇴거)들을 사용함에 있어서
성능상의 이점을 살펴보기에 앞서 간단한 용어정리를 하려 한다.
또한 성능이라는 모호한 말 대신 비용 모델이라는 용어를 도입한다.
목차.
1. 가상 메모리 시스템에서 비용 모델
2. 하드웨어 요소
3. vector bit
3-1. Reference bit
3-2. Update bit
- 가상 메모리(기억장치)
- Non-continuous allocation
- 사용자 프로그램을 블록으로 분할하여 적재/ 실행
- paging / segment system
- Non-continuous allocation
- 가상 메모리 관리의 목적
- 가상 메모리 시스템 성능 최적화
- 성능은 모호한 말
- Cost model
- 성능을 비용 모델로 측정
- 다양한 최적화 기법
- 가상 메모리 시스템 성능 최적화
Cost Model for Virtual Mem. Sys.
- Page fault frequency (발생빈도)
- Page fault rate(발생률)
- Page fault rate 를 최소화 할 수 있도록 전략들을 설계해야 함
- Context switch 및 kernel 개입을 최소화
- 시스템 성능 향상
- Page reference string(d)
- 프로세스의 수행 중 참조한 페이지 번호 순서
- ω, 요 w 같이 생긴건 오메가라고 읽는다.
- ω는 왜 만들었는가하면, 메모리를 참조한 주소를 나열한 것이다.
- r1, r2 , rk, rT 까지 메모리 주소를 참조하였다.
- Page Fault rate = F(ω)
- 어려워 보이지만 별거 없다.
- 분모
- 방문한 스트링의 길이를 뜻한다.
- 즉 몇번 메모리로부터 읽어들였느냐를 뜻한다.
- 분자
- ω 동안 page fault 가 일어난 숫자를 뜻한다.
- "page fault 숫자 / 전체 메모리 읽는 횟수" 다.
- 분모
Hardware Components
- Address translation device (주소 사상(변환) 장치)
- 주소 사상을 효율적으로 수행하기 위해 사용
- E.g., TLB(associated memories), Dedicated page-table register, Cache memories
- 주소 사상을 효율적으로 수행하기 위해 사용
- Bit Vectors
- Page 사용 상황에 대한 정보를 기록하는 비트들
- Reference bits(used bit)
- 참조 비트
- 해당 프레임이 참조됬니 안됐니를 물어보는 비트
- Update bits(modified bits, write bits, dirty bits)
- 갱신 비트
- dirty bits
- page frame 의 데이터가 손상되었다는 것을 알려주는 비트
Page Map Table 에 레퍼런스 비트와 업데이트 비트가 추가된 모습
Reference bit vector
메모리에 적재된 각각의 page 가 최근에 참조 되었는지를 표시
- 운영
- 1. 프로세스에 의해 참조되면 해당 page 의 Ref. bit 를 1로 설정
- 2. 주기적으로 모든 reference bit를 0으로 초기화
- Reference bit 를 확인함으로서 최근데 참조된 page 들을 확인 가능
- 시간적 지역성을 확인할 수 있다.
- 이게 무슨 말이냐면, 일정 시간(리셋에서 다음 리셋까지의 시간) 이 지나면 참조 비트를 0으로 바꾸는데
- 참조비트가 1이라면, 참조 되고 나서 일정 시간도 지나지 않은 따끈따끈한 데이터라는 것을 알리는 비트다.
Update bit vector
- Page 가 메모리에 적재된 후, 프로세스에 의해 수정되었는지를 표시
- 주기적 초기화 없음
- 메모리에서 블록이 반환될 때 초기화
- 메인 메모리에서 스왑 디바이스로 스왑 아웃 될 때 초기화
- Update bit = 1
- 해당 page 의 (Main memory 상 내용) != (Swap device 의 내용)
- 해당 page 에 대한 Write-back (to swap device) 이 필요
- 1번 과정에서 Swap Device 가 메인 메모리에 적재한 블록과
- 3번 과정을 거쳐 연산 결과가 저장된 블록의 경우에 같은 메모리 공간을 나타내는 것이지만, 각자 지니는 값이 다르다.
- 그렇다면, 4번의 과정을 거치기 위해서 해당 메모리의 값이 변경되었다는 것을 알리기 위한 비트가 필요한데 이것이 Update Bit이다.
- Update bit = 1 일 경우,
- 메모리에서 해당 블록이 Swap device로 다시 내려갈 때,
- 메모리에 있는 값을 Swap device 의 블록으로 덮어 써줘야한다.
- 이 덮어 쓰기 의 과정을 Write-back 이라고 한다.
- Write-back 은 메모리에서 블럭이 해제될 때 실행되는데, write-back 을 할지 말지 를 Update bit 를 보고 결정하는 것이다.
- Update bit = 0 인 경우,
- 별도의 쓰기 작업 없이 바로 스왑 아웃 한다.
- 모든 데이터에 대해서 변경이 되었나 안되었나를 비교하지 않아서 경제적이다.
- Update bit = 1 일 경우,
'CS > 운영체제' 카테고리의 다른 글
[운영체제-김덕수 교수님] 가상 메모리 관리(4/6) - 고정할당 시 교체 전략 (0) | 2022.08.15 |
---|---|
[운영체제-김덕수 교수님] 가상 메모리 관리(2/6) - 소프트웨어 컴포넌트 (0) | 2022.08.15 |
[운영체제-김덕수 교수님] 가상메모리(5/5) - 하이브리드 시스템 (0) | 2022.08.12 |
[운영체제-김덕수 교수님] 가상 메모리(4/5) - 세그멘테이션 시스템 (0) | 2022.08.12 |
[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 (0) | 2022.08.12 |
Comments