Project 썸네일형 리스트형 1. DP : 피보나치 수열 피보나치 수열을 Recursive로 구현해보면, 중복되는 계산을 너무 많이 하게된다. 하나의 함수는 두개의 함수를 호출하므로 대충 O() 정도의 시간복잡도를 지닌다. //Recursive Function int fibonacci_rcs(int n) { if (n == 0) { return 0; } if (n==1) { return 1; } return fibonacci_rcs(n - 2) + fibonacci_rcs(n - 1); } 이러한 재귀적인 중복계산으로 시간을 낭비하는 일을 줄이기 위해 DP를 사용하여 코드를 짤 수 있다. 아래는 DP를 이용한 코드다. 벡터를 이용해 각 함수의 결과값을 저장해놓고 필요할 때, 또 다시 계산하지 않고 바로 참조하여 값을 불러온다. 이것을 메모이제이션이라고 한다. .. 더보기 10. Main memory #2 : 운영체제 메모리 관리 전략 학습목표 1. 주소 바인딩 개념을 설명할 수 있다.2. 연속적인 메모리 할당의 장단점을 설명할 수 있다.3. 페이징 기법을 설명할 수 있다.4. 세그멘테이션 기법을 설명할 수 있다. Contiguous Allocation OS 메모리전략에 대해 키워드별로, 연속되게. #1에 이어서, 여러 코드가 컴파일되어 메모리에 올라갔을 때, 하나의 라이브러리에 들어있는 함수와 변수를 참조할 수 있다. 하나의 라이브러리를 test1.c와 test2.c가 참조하는 상황을 보자. test1.c가 메모리에 올라갈때 이 라이브러리를 함께 load한 후, test2.c가 메모리에 올라갈 때 또 다시 똑같은 라이브러리를 메모리에 가져갈 수 있다. 하지만 낭비다. 어차피 참조하는 라이브러리는 하나이므로 한번만 메모리에 올려놓으면 .. 더보기 10. main memory #1 : 주소바인딩에 대해서 학습목표 1. 주소 바인딩 개념을 설명할 수 있다.2. 연속적인 메모리 할당의 장단점을 설명할 수 있다.3. 페이징 기법을 설명할 수 있다.4. 세그멘테이션 기법을 설명할 수 있다. 1. Address binding ① 주소 바인딩이란? 컴파일러가 프로그램의 명령과 변수를 실제 메모리주소와 연결시키는 과정이다. 즉, 우리는 기호를 이용해 함수와 변수를 선언하고 코드를 작성하는데, 실제로 이러한 기호들이 물리적인 주소로 연결하는 과정이 필요한 것이다. ② 주소 바인딩의 종류는? Address Binding을 하는 시점에 따라 3가지로 나눠진다. - Compile time binding 다음과 같이 컴파일을 할 때의 주소가 실제 물리주소로 바인딩된다.※ Starting location가 변하면 컴파일 자체를.. 더보기 이전 1 다음