address Binding :
- int a = 10; 컴파일러가 알아서 변수a의 메모리 주소를
할당해준다
-> 이것들은 내가 부르기전에는 binary executable file로
저장된 정보일뿐이다.
-> 실행 시킬려고 메모리로 가져왔을때 그것은 비로소
프로세스가 된다
-> 프로세스의 주소는 000에서 시작되는 것은 아니다
그것은 os커널이 정해준다
-> 소스에서 주소는 일반 적으로 symbolic한데
컴파일러가 symbolic한 주소를
relocatable한 주소로 바꾼다.
relocatable한 주소를 절대적 주소..
단계별로 바인딩이 다르다 ..
logical vs physical address space:
logical주소는 cpu에 의해서 발생한 주소 , user가 접근할려는 주소
physical : 메모리에 들어가 있는 주소,
mmu (memory mapped unit)
logical address -> physical address
- relocation register : a base register in mmu
*dynamic loading :
파일을 메모리에 올릴때 .exe 파일들을 다 메모리에 올리냐?
그렇지 않ㄷ다 그렇게 되면 뻗는다.
그래서 다이나믹 로딩이필요하다 :
better memory-space utilization을 위해서
필요한 루틴을 호출할때만 불러서 쓰면된다
====================
*dynamic linking
dlls : 다이나믹 linked librarieese
시스템 라이브러리가 프로그램 실행중에
사용자 프로그램에 연결되는 것이다.static linking : 정적인 린킹은 말 그래도
다ㅏ른 object moudle처럼 프로그램 코드에 로더가
combined하는 것이다dynamic linking: 다이나믹 로딩과 비슷하다.
실행시까지 린킹을 지연시키는 것이다 .
==================================
contiguous memory allocation
연속적인 메모리 할당
이 방법은 a.out 파일자체를 메모리엥 할당해서
os나 유저가 프로세스가 사용하는것이다.
어떤 section에 통째로 올리기에 연속적이다
- memory protection
여기서 limit register과 relocation register을 주었을ㄸㅐ
쉽다
relocation + limit해서 이 공간이 내영역이다..
여기서 메모리할당할때
*variable - partition이있다
프로세스마다 크기가 다 다르다
메모리에 p5 p8 p2할당하다가 p8,이 끝나고 p9,가 들어
오고 p5가 나가게된다면
빈 hole이 생기게된다.
이러한 빈 구멍이 생겼을때 요청되는 n사이즈를 어떻게
할당할 것인가에 전략이 있따 ..
first - fit 위의 빈홀들이 연결리스트로 이루어 졌을때
들어 갈 수 있는 제일 첫부분에 넣는 것이다.
best - fit 이것은 우큐를 사용해서 가장 작은 곳부터
할당하는 것이다 .
worst - fit 이것은 사이즈가 가장 큰 곳부터 할당 하는
것이다
- fragmentation
- 외부단편화
- 내부 단편화
vs
외부 단편화는 p1, p2가 있을때 사이에
남는 공간이 있다 그것이 외부단편화
내부단편화는 같은 크기로 쪼개져있을때
마지막에 프레임안에 남아있는 공간이있는데 그것이
내부단편화 ..
세그멘테이션 -> 페이징처럼 크기를 나누기는 하는데
동일하게 나누지말고 variable하게 나누는 것이다.
paging 은 똑같은 큭기로 쪼개자
=========================
페이징과 스와핑
*pagging
'운영체제' 카테고리의 다른 글
컴퓨터 시스템 구조 (0) | 2021.10.19 |
---|---|
os란 (0) | 2021.10.18 |
동시성 vs 병렬성 (0) | 2021.10.02 |
데드락 (0) | 2021.10.02 |
운영체제 . 개념, 용어, 프로세스 (0) | 2021.07.30 |