본문 바로가기

C.E/OS

Memory Management - Overlay Overlay란 프로세스가 필요한 메모리의 크기가 할당된 메모리의 크기보다 클때 필요하다. 프로세스의 작업을 여러단개로 나누어 일정 메모리를 같이 사용하는 방법이다. 예를 들어 프로세스 P1이 필요한 메모리가 150K라고 하자. 하지만 P1에게 할당 된 메모리는 80일 경우 P1은 실행 될 수가 없다. 그래서 P1을 70K Pass1과 80K의 Pass2로 나누어 처음에 허용된 메모리 공간에 Pass1을 적재하여 실행하고 그 다음에 Pass2를 적재하여 실행함으로써 메모리 공간의 문제를 해결한다. 언듯보면 Dynamic Loading과 비슷해 보이는데 가장 큰 차이점은 Dynamic Loading은 운영체제에서 관리를 해주고 Overlay의 경우에는 프로그램 개발자가 직접 만들어야 한다는 점이다. RSS.. 더보기
Memory Management - Dynamic Loading, Dynamic Linking 실제로 프로세스의 기계어 데이터가 메모리상의 적재될 때 모든 데이터가 적재되는 것은 아니다. 아주 기본적인 데이터만이 적재 되고 나머지 루틴들은 호출되기 전까지 적재되지 않는데 이런한 방식을 Dynamic Loading이라고 한다. 또 여러 라이브러리 중에서 자주 사용되는 라이브러리가 있는데 이러한 라이브러리를 Shared Library로 만들어 올리고 이러한 라이브러리를 컴파일 시가 아니라 실행시에 Linking하는 것을 Dynamic Linking이라고 한다.(이 반대를 Static Liking이라고 한다.) Dynamic Linking의 가장 대표적인 예가 윈도우의 DLL파일이다. 이러한 Dynamic Linking방식의 장점은 Memory의 효율성이 증가하고 어떤 라이브러리가 업데이트되었을 때 그.. 더보기
Memory Management - MMU Memory-Management Unit(MMU) MMU는 물리적 주소를 논리적 주소로 mapping시켜주는 하드웨어 장치이다. 사용자 프로그램은 물리적 주소가 아닌 논리적 주소를 다룬다. RSS : http://darknata.blog.me/ 더보기
Memory Management - bind란? 메모리의 주소는 크게 물리적 주소(Physical Memory)와 논리적 주소(Logical Memory)로 나눈다. 물리적 주소는 실제 메모리의 유닛(Unit)의 순서대로 지정된 절대 주소를 말하고 논리적 주소는 CPU에 의해 연산된 가장 주소를 얘기한다. Bind란 프로세스 상의 변수와 물리적 주소를 합쳐 고정시키는 것을 말한다. bind를 하는 시간은 크게 3가지로 나눌 수 있는데 Compile Time, Load Time, Execution Time 이렇게 3가지 이다. 시간 순서도는 아래 그림을 보면 된다. Compile Time은 지정된 변수의 주소값과 물리적 주소를 일치시킨다. 즉, 컴파일시 지정된 주소값으로 Base와 Limit를 잡아서 그래도 메모리의 적제한다. 이 경우에 만일 시작 위치.. 더보기
Win 8 정품인증하기 (링크스크랩) http://sarangmarket.tistory.com/trackback/974 더보기