일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 가상 메모리
- 알고리즘
- 프로세스 스케줄링
- Swift
- Apple Developer Academy
- 100 days of SwiftUI
- core data
- 운영체제
- 데드락
- Codable
- 동시성
- async
- 인프런
- struct
- SwiftUI
- COLOR
- 상호배제
- scrollview
- 동기화
- Linked List
- @state
- forEach
- decode
- IOS
- Algorithm
- 오브젝트
- deadlock
- UserDefaults
- 비동기
- 앨런
Archives
- Today
- Total
기어가더라도 제대로
[운영체제-김덕수 교수님] 가상 메모리(3/5) - 페이징 시스템의 메모리 관리 본문
- Page와 같은 크기로 미리 분할 하려 관리/ 사용
- Page frame
- FPM 기법과 유사
- Frame table
- Page frame 당 하나의 entry
- 구성
- Allocated / available field
- PID field
- Link field : For free list(사용 가능한 fp들을 연결)
- 링크드 리스트 처럼 열결되어 있음
- Header 가 AV임
- AV: Free list header(free list의 시작점)
Page Sharing
- 여러 프로세스가 특정 page를 공유 가능
- Non-continuous allocation
- 공유 가능 page 의 종류
- Procedure pages(function)
- pure code(reenter code)
- Data page(value)
- read-only data
- read-write data
- 병행성(concurrency) 제어 기법 관리하에서만 가능
- Procedure pages(function)
Data Sharing
- 데이터를 공유한다면, PMT에서 Page Frame 을 같은 것을 접근하게 설정하면 됨
Procedure Page Sharing(Problem)
- Procedure Page Sharing(문제)
- P1 의 PMT 에서 K1 이 있는데, 이 K1 이 가르키는 위치는 K1, d 이다
- P2 의 PMT 에서 K2가 있는데, 이 K2 가 가르키는 위치는 K2, d 이다.
- 문제는 PMT 에서 각각 K1, K2 가 있을 수 있다는 말이다.
- 메인 메모리안에 특정 브랜치에서는 같은 메모리 공간에 대해서 프로세스마다 서로 다른 Page Number 로 요청을 하고 있다.
- Procedure Page Sharing(해결책)
- 프로세스들이 shared page 에 대한 정보를 PMT 의 같은 entry에 저장하도록 함
- 공유되는 Page frame 에 대해서는 K1 에서도 K 라고 저장하고, K2 에서도 K라고 저장하면 문제가 일어날 여지가 없다.
- 프로세스들이 shared page 에 대한 정보를 PMT 의 같은 entry에 저장하도록 함
Page 를 공유한다는 것, 보안문제가 발생한다는 것
- Protection bit 사용
요약
- 프로그램을 고정된 크기의 block 으로 분할(page) / 메모리를 block size 로 미리 분할(page frame)
- 외부 단편화 문제 없음
- 메모리 통합 / 압축 불필요
- 프로그램의 논리적 구조 고려하지 않음
- Page sharing / protection 이 복잡
- 필요한 Page 만 page frame 에 적재하여 사용
- 메모리의 효율적 활용
- Page mapping overhead
- 메모리 공간 및 추가적인 메모리 접근이 필요
- 전용 HW 활용으로 해결 가능
- 하드웨어 비용 증가(TLB, Hybrid 방식으로 극복 가능)
'CS > 운영체제' 카테고리의 다른 글
[운영체제-김덕수 교수님] 가상메모리(5/5) - 하이브리드 시스템 (0) | 2022.08.12 |
---|---|
[운영체제-김덕수 교수님] 가상 메모리(4/5) - 세그멘테이션 시스템 (0) | 2022.08.12 |
[운영체제-김덕수 교수님] 가상 메모리(2/5) - 페이징 시스템 (0) | 2022.08.10 |
[운영체제-김덕수 교수님] 가상 메모리(1/5) - 비연속 메모리 할당 (0) | 2022.08.10 |
[운영체제-김덕수 교수님]메모리 관리(3/3) - 가변 파티션 할당 (0) | 2022.08.10 |
Comments