목록etc. (4)
풀이 보관함
보호되어 있는 글입니다.
LRU 알고리즘이 어디에 쓰이는 무엇인지 그리고 어떻게 구현하는지 개괄 정리해보겠습니다. background 운영체제라는 강의나 관련 서적을 읽었으면 절대 빠지지 않고 나오는 이 알고리즘은 자주 나오는 만큼 중요한 알고리즘이다. 어떤 공간에 여러 요소들이 꽉 차있다고 생각해보자. 근데 더 이상 자리가 없는데 그 공간에 새로운 것을 넣어야 한다면? 공간을 차지하는 무엇인가를 빼서 자리를 만든 후 넣어야 되지 않겠어요? 한정된 공간에 빼야할 요소를 정하는 알고리즘을 replace algorithm이라고 하며, 컴퓨터에서는 한정된 공간이 {메모리, 캐시, 저장공간}이 되며 요소들이 {스레드, 프로세스, 자원}이 될 수 있다. 운영체제에서는 저 한정된 공간을 알뜰하게 쓰는게 바로 효율성이기 때문에 굉장히 이 r..
memset() https://en.cppreference.com/w/cpp/string/byte/memset std::memset - cppreference.com Copies the value static_cast (ch) into each of the first count characters of the object pointed to by dest. If the object is a potentially-overlapping subobject or is not TriviallyCopyable (e.g., scalar, C-compatible struct, or an array of trivially copyab en.cppreference.com - 메모리 변화가 있는건 fill() 권유 하고 있..
> 연산자 (Shift) 비트를 n 만큼 왼쪽 혹은 오른쪽으로 이동시킨다. int n1 = 9; // (2진수 배열로 나열하면) 01001 int n2 = 11; // (2진수 배열로 나열하면) 01011 int n3 = n1 2 = 00010 = 2; int n3 = 28 > 2 = 00111 = 7; + 이때, shift 연산자는 곱셈, 나눗셈과 관련이 있다. 왼쪽으로 1칸 이동할때마다 정수의 값은 2배 로 커지고 (곱셈과 관련) 오른쪽으로 1칸 이동할때마다 정수의 값은 1/2배 가 된다. (나눗셈과 관련) 예제로 4/2 = 4>>1 과 동일한데, CPU 입장에서는 곱셈,나눗셈보다 비트 연산이 부담이 적어 성능 향상에도 도움이 된다. [출처] [c++] 비트 연산|작성자 YEON