본문 바로가기
반응형

분류 전체보기553

프로그래머스 - 카펫 완전탐색 분야라서 어떻게 풀지하다가 힌트를 조금 봤는데 찐 수학문제였다. 그림에서 아래와 같이 두 가지의 수식을 찾을 수 있다. (x는 가로길이, y는 세로길이) 위의 수식을 조합해서 가로 세로 길이를 구해야 한다. 01 첫번째 코드 위의 yellow = x * y 는 x = yellow / y로 바꿀 수 있다. 이를 이용해서 수식을 짜보면 아래와 같이 나온다. for(int y = 1; y 2024. 3. 5.
운영체제 - 페이지 교체와 프레임 할당(요구 페이징, 페이지 교체 알고리즘(FIFO,최적,2차 기회, LRU), 스래싱, 프레임 할당) 요구 페이징(Demand Paging) 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법이다. 이름 그대로 요구되는 페이지만 적재한다. 순수 요구 페이징(Pure Demand Paging) 아무런 페이지도 메모리에 적재하지 않은 채 무작정 실행부터 할 수도 있다. 이 경우 프로세스의 첫 명령어를 실행하는 순간부터 페이지 폴트가 계속 발생하게 되고 실행에 필요한 페이지가 어느 정도 적재된 이후부터는 페이제 폴트 발생 빈도가 떨어진다. 이를 순수 요구 페이징기법이라고 한다. 요구 페이징 시스템이 안정적으로 작동하려면 해결되어야할 2가지 문제 페이지 교체 요구 페이징 기법으로 페이지들을 적재하다보면 언젠간 메모리가 가득 차게 된다. 당장 실행에 필요한 페이지를 적재하려면 적재된 페.. 2024. 3. 4.
운영체제 - 페이징의 쓰기 시 복사(copy on write), 계층적 페이징 이론적인 fork() 프로세스는 기본적으로 자원을 공유하지 않는다. 그러므로 부모 프로세스가 적재된 별도의 공간에 자식 프로세스가 통째로 복제되어 적재된다. 때문에 프로세스 생성 시간이 지연되고 메모리가 낭비된다. 쓰기 시 복사(copy on write) 부모 프로세스와 동일한 자식 프로세스가 복제되어 생성되면 자식 프로세스는 부모 프로세스와 동일한 프레임을 가리킨다. 만약 쓰기 작업이 없다면 이 상태 유지된다. 부모 프로세스/자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시 해당 페이지는 별도의 공간으로 복제되므로 프로세스 생성 시간 절, 메모리 절약이 된다. 프로세스 테이블의 크기는 생각보다 작지 않다. 프로세스를 이루는 모든 페이지 테이블 엔트리를 메모리에 두는 것은 큰 낭비이다. 프로세스를.. 2024. 3. 4.
백준 C# - 11725 +) 풀이 문제를 읽고 일단 그려봐야겠다는 생각이 들어서 그려보았다. 7 1 6 6 3 3 5 4 1 2 4 4 7 각 노드의 부모 노드 번호 그린 후 어느 알고리즘을 사용할까 하다가 DFS를 사용하기로 했다. 01 DFS 알고리즘 선택된 노드에서는 방문했다고 표시를 하고 부모노드를 기입하도록 하였다. public static void DFS(int node) { visited[node] = true; foreach (int neighbor in graph[node]) { if (!visited[neighbor]) { parent[neighbor] = node; DFS(neighbor); } } } 02 그래프 생성 int N = int.Parse(Console.ReadLine()); graph = new List.. 2024. 3. 4.
운영체제 - 가상메모리, 페이징, 페이지 테이블, PTBR, TLB 연속 메모리 할당의 두 가지 문제점 외부 단편화와 물리 메모리보다 큰 프로세스 실행 불가 가상메모리(Virtual Memory) 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술이다. 이를 가능하게 하는 가상 메모리 관리 기법에는 크게 페이징과 세그멘테이션이 있다. 페이징이란? 외부 단편화가 생긴 근본적인 이유는 각기 다른 크기의 프로세스가 메모리에 연속적으로 할당되었기 때문이다. 프로세스를 일정 크기로 자르고 이를 메모리에 불연속적으로 할당할 수 있다면 어떨까? 외부 단편화가 발생하지 않는다. 페이징(Paging) 프로세스의 논리 주소 공간을 페이지(page)라는 일정 단위로 자르고 메모리의 물리 주소 공간을 프레임(frame)이.. 2024. 2. 26.
운영체제 - 연속 메모리 할당(스와핑, 최초 적합, 최적 접합, 최악 접합, 외부단편화) 연속 메모리 할당 프로세스에 연속적인 메모리 공간을 할당 스와핑(Swapping) 메모리에 적재된 프로세스들 중에 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고 그렇게 생긴 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식을 스와핑이라고한다. 01 스왑 영역(Swap Space) 프로세스드이 쫓겨나는 보조기억 장치의 일부 영역 02 스왑 이웃(Swap-Out) 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것 03 스왑 인(Swap-In) 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 스와핑을 이용하게 된다면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시 실행 할 수 있다. 메모리 할당 프로세스는 .. 2024. 2. 26.
반응형