일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 인프런
- 비동기
- 데드락
- @state
- COLOR
- struct
- 상호배제
- deadlock
- 동시성
- 가상 메모리
- 프로세스 스케줄링
- Apple Developer Academy
- decode
- 100 days of SwiftUI
- IOS
- 앨런
- SwiftUI
- 운영체제
- 알고리즘
- async
- core data
- 동기화
- UserDefaults
- 파일 시스템
- Linked List
- Swift
- 오브젝트
- Algorithm
- Codable
Archives
- Today
- Total
기어가더라도 제대로
[운영체제-김덕수 교수님] 메모리 관리(1/3) - 용어 정리 본문
- 속도와 용량은 반비례
- I/O Bottlenect 을 방지하기 위해 계층을 나눔
- HW 가 관리
- 레지스터
- 캐시
- SW가 관리
- 메인 메모리
- 보조 기억장치
- "Cpu 가 64bit에요, 32bit에요" 할 때 숫자는 사실상 "word"의 크기랑 같다.
- 보조기억 장치 -> 주기억장치로 데이터를 불러오는 단위
- Block
- 보통 1~4kb
- 주기억 장치 -> 레지스터
- word
- 보통 16 ~ 64bits
- Int a (논리주소)
- 100번 부터 4bite만큼 저장(물리주소)
- 이 둘을 엮는다.
- 이것이 Address Binding이다.
언제 바인딩 하는지에 따라 다음과 같이 나눈다.
- Compile time
- source 코드가 object module로 묶일 때 메모리 주소를 할당하는 것을 컴파일 타임 바인딩이라 한다.
- 프로세스가 메모리에 적재될 위치를 컴파일러가 알 수 있는 경우
- 위치가 변하지 않음
- 프로그램 전체가 메모리에 올라가야 함(20gb 짜리 게임은 어쩌지.....?)
- load time
- 오브젝트 모듈과 다른 외부 모듈(라이브러리) 을 연결해주는 링커가 load module 을 만든다.
- 이 모듈을 exe 파일이라고 보면 된다.
- 메모리 적재 위치를 컴파일 시점에서 모르면, 대체 가능한 상대 주소를 생성
- 적재 시점(load time)에 시작 주소를 반영하여 사용자 코드 상의 주소를 재설정
- 프로그램 전체가 메모리에 올라가야함.
- run time
- 이 때 loader 가 in-memory 에 프로그램을 올릴 때 메모리를 바인딩
- 쉽게 생각해서 exe 파일을 더블클릭할 때 메모리에 바인딩한다는 것이다.
- Address binding 을 수행시간까지 연기
- 프로세스가 수행 도중 다른 메모리 위치로 이동할 수 있음
- HW의 도움이 필요
- MMU: Memory Management Unit
- 대부분의 OS가 사용
Dynamic Loading
- 모든 루틴을 교체 가능한 형태로 디스크에 저장
- 실제 호출 전까지는 루틴을 적재하지 않음
- 메인 프로그램만 메모리에 적재하여 수행
- 루틴의 호출 시점에 address binding 수행
- 장점
- 메모리 공간의 효율적 사용
Swapping
- Swap-out
- 프로세서 할당이 끝나고 수횅 완료된 프로세스는 swap-device로 보냄
- Swap-in
- 새롭게 시작하는 프로세스는 메모리에 적재
메모리 할당의 연속성 측면
- 연속할당
- Uni-programming
- Multi-programming
- Fixed Partition(FPM)
- Variable partition(VPM)
- 비연속 할당
- 주된 할당방법
'CS > 운영체제' 카테고리의 다른 글
[운영체제-김덕수 교수님]메모리 관리(3/3) - 가변 파티션 할당 (0) | 2022.08.10 |
---|---|
[운영체제-김덕수 교수님] 메모리 관리(2/3) - 할당 (0) | 2022.08.10 |
[운영체제-김덕수교수님] 교착상태(5/5) - Detection & Recovery (0) | 2022.08.08 |
[운영체제-김덕수교수님] 교착상태(4/5) - Deadlock avoidance (0) | 2022.08.08 |
[운영체제-김덕수 교수님] 교착상태(3/5)- Deadlock Prevention (0) | 2022.08.08 |
Comments