[OS] 메모리 단편화
·
CS
메모리 단편화란?시스템이 메모리를 할당하고 해제하는 과정이 반복되면서, 메모리 공간이 작은 조각으로 쪼개져 총량은 충분하지만 실제로 활용하기 어려워 지는 현상을 말한다.단편화는 내부 단편화와 외부 단편화로 나뉜다. 내부 단편화 VS 외부 단편화내부 단편화 : 고정 크기 할당 시, 내부 공간이 남아서 낭비됨.외부 단편화 : 가변 크기 할당 시, 빈 공간의 총량은 충분하나 쪼개져 있어서 할당 불가능. 1. 내부 단편화프로그램이 필요한 양보다 더 큰 메모리가 할당되어 내부에서 남는 공간이 발생하는 현상발생 이유메모리를 쪼갤 때 제각각 나누면 관리가 복잡해지기 때문에 OS는 관리 효율을 위해 메모리를 일정한 크기(ex. 4KB, 8KB)의 덩어리로 고정하여 할당하기 때문에 발생한다. 예시64KB 단위로 쪼개서..
[네트워크] IPv4와 IPv6의 헤더 구조 및 터널링 방법
·
CS
IPv4 구조 ver : IP 버전 번호 ex) IPv4, IPv6head. len : 헤더의 길이, option에 따라 가변적type of service : 패킷 간의 서비스 방법→ buffer managementex) ‘우선 순위’일 경우 : 낮은 우선순위를 쫓아내고 자신이 들어간다.length : IP datagram의 전체 길이16-bit identifier, flgs, fragment offset : IP 단편화(fragmentation)와 관련16-bit identifier : 자른 fragment들이 패킷임을 알려주기 위해 ID값 사용fragment offset : 잘린 fragment의 순서를 나타냄→ 메세지를 보내고 혼잡을 피하기 위해 자른다.time to live(TTL) : 최대 h..
[OS] 페이지 교체 정책
·
CS
페이지 교체 정책이란?운영체제에서 가상 메모리를 관리할 때, 물리 메모리(RAM)의 공간이 부족해지면 새로운 페이지를 가져오기 위해 기존에 있던 페이지를 몰아내야 합니다. 어떤 페이지를 몰아낼지 결정하는 알고리즘을 바로 페이지 교체 정책이라고 합니다.각 정책은 페이지의 참조 기록을 기반으로 미래의 페이지 참조를 예측하여 페이지 교체 횟수를 최소화하는 것을 목표로 합니다. 페이지 교체 과정페이지 폴트 발생: 프로세스가 실행 중에 참조하려는 페이지가 메모리에 없는 경우 페이지 폴트가 발생합니다.교체 대상 선정: 페이지 교체 정책에 따라 교체 대상 페이지를 선정합니다.페이지 교체: 선정된 페이지를 디스크로 내보내고(swapping out), 필요한 페이지를 디스크에서 가져와(swapping in) 메모리에 적..
[코드트리 - L15] 23년 상반기 오전 1번 포탑 부수기
·
알고리즘
코딩테스트 기출 문제 설명: 포탑 부수기 | 코드트리코딩테스트 기출 문제 포탑 부수기의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai 소요 시간 : 4시간!! 문제 풀이1. 공격자 선정2. 타겟 설정해서 레이저 공격 및 포탄 공격3-1. 레이저 공격3-2. 포탄 공격4. 포탑 부서짐 및 정비 크게 위와 같이 나눌 수 있다. 1. 공격자 선정0 이 아닌 값들 중 가장 약한 포탑을 공격자로 선정2개 이상이면, 가장 최근 공격 포탑최근 공격 포탑도 2개 이상이면, (행 + 열) 값이 가장 큰 포탑(행 + 열) 값도 같은게 2개 이상이면, 열이 가장 큰 포탑선정 후 공격력 (N + M)만큼 추가한다.가장 최근 공격 포탑은 lastAttackTim..
[코드트리 - L13] 25년 상반기 오후 1번 미생물 연구
·
알고리즘
코딩테스트 기출 문제 제출: 미생물 연구 | 코드트리코딩테스트 기출 문제 미생물 연구의 풀이를 제출하고 즉시 채점 결과를 확인하세요. 실시간 피드백으로 코딩 실력을 향상시킵니다.www.codetree.ai 문제풀이1. 미생물 투입이미 해당 위치에 다른 미생물이 있다면 새로 투입된 미생물만 남는다.기존에 있던 미생물 A가 새로 투입된 B에 먹혀, 2 이상의 그룹으로 나뉜다면 A는 모두 사라진다.2. 배양용기 이동가장 넓은 영역을 가진 미생물 선택한다. 둘 이상이면, 먼저 투입된 미생물을 선택한다.기존 형태를 유지한 채로 다른 미생물이랑 겹치지 않게 (최대한 작은 x , 최대한 작은 y)로 이동한다.어디도 둘 수 없다면 사라진다.3. 실험 결과모든 인접한 무리쌍을 확인한다. 이 때, 두 무리 A와 B가 맞..
[코드트리 - L12] 25년 상반기 오전 1번 민트초코우유
·
알고리즘
코딩테스트 기출 문제 설명: 민트 초코 우유 | 코드트리코딩테스트 기출 문제 민트 초코 우유의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai 문제 풀이조건을 잘 봐야 한다. 풀이하다가 조건을 잊어서 히든 테케에서 발견하기 ㅠ 그래도 하반기 문제들보다는 정렬만 잘하면 괜찮다고 느껴졌던 문제 빠트렸던 조건들저녁시간에서 전파할 때, 그룹 순서와 같은 그룹 내 순서를 잊지 말 것!전파 전, 같은 신봉음식일 경우를 확인하여 넘기기(강한 전파 구문 안에 넣어서 틀렸었다!)비트 마스킹을 쓰면, T, C, M 확인 방법이 더 간단할 것 같은데 우선순위를 지정해주는 방식으로 구분하였다. 전체 코드더보기import java.io.BufferedReader;..
[코드트리 - L13] 25년 하반기 오후 1번 AI 로봇청소기
·
알고리즘
코딩테스트 기출 문제 해설: AI 로봇청소기 | 코드트리코딩테스트 기출 문제 AI 로봇청소기의 상세 해설과 예시 코드를 제공합니다. 다양한 접근 방식과 최적화 전략을 학습하세요.www.codetree.ai 문제L번 동안 아래 함수들을 수행해 총 먼지양 구하는 문제1. 청소기 이동이동 거리가 가장 가까운 오염된 격자로 이동가까운 격자가 여러 개일 경우, 행 번호가 곳으로 이동하고, 행 번호도 같을 경우 열 번호가 작은 격자로 이동한다.2. 청소하기현재위치, 왼쪽, 위쪽, 오른쪽 격자를 청소할 수 있다. ( 예시: ㅓ, ㅗ, ㅏ, ㅜ 모양)위 4가지 격자의 먼지 합 중 가장 큰 방향에서 청소를 시작한다.각 칸당 청소할 수 있는 최대 먼지량은 203. 먼지 축적먼지가 있는 모든 격자에 +54. 먼지 확산깨끗..
[코드트리 - L12] 25년 하반기 오전 1번 문제 - 택배 하차
·
알고리즘
코딩테스트 기출 문제 설명: 택배 하차 | 코드트리코딩테스트 기출 문제 택배 하차의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai 테스트케이스 #3 입력더보기더보기30 20 98 2 10 12 15 6 1 1 45 9 5 2 49 3 8 8 34 8 2 21 40 7 7 23 79 8 5 16 5 7 7 7 6 4 6 25 94 4 6 19 26 5 3 2 35 5 2 29 8 14 10 5 86 11 13 16 60 4 1 1 88 7 3 2 38 1 1 1 32 1 9 16 30 2 8 18 7 1 5 10 출력더보기더보기7 6 15 30 26 32 38 35 60 40 45 34 8 79 88 86 5 94 49 98 문제 풀이 c..
[알고리즘] 시간 복잡도 & 공간 복잡도
·
알고리즘
데이터가 조금만 커져도 어떤 코드는 쏜살같이 실행되고, 어떤 코드는 한참을 버벅대죠. 그 차이를 설명해주는 개념이 바로 복잡도입니다. 복잡도는 크게 두 가지로 나뉩니다. 실행 시간과 관련된 시간 복잡도, 그리고 메모리 사용량과 관련된 공간 복잡도입니다. 1. 시간 복잡도 - 얼마나 오래 걸리는 지시간 복잡도란 입력값의 크기 n에 따라 연산이 몇 번 수행되는지를 나타내는 척도입니다. 실제 실행 시간(몇 초)은 컴퓨터 사양마다 달라지기 때문에, 우리는 "입력이 n일 때 로직이 몇 번 반복되는가"를 기준으로 삼습니다.이를 표현하는 방법이 바로 빅오(Big-O) 표기법입니다. 예를 들어 배열에서 특정 값을 하나씩 순서대로 비교한다면, 최악의 경우 n번 비교해야 하므로 O(N)이라고 씁니다. 반면 해시 테이블처럼..