캐시매핑
·
Computer Science/Operating System
캐시의 크기는 메모리보다 작기 때문에 효율적으로 매핑하는 것이 중요하다적절한 매핑 기법을 사용하면 캐시 적중률을 높일 수 있어 전체 시스템의 성능이 향상된다운영체제의 메모리 관리운영체제는 메모리를 똑같은 크기의 페이지(4kb)로 나눠 관리를 한다 주소 구조가상 주소는 로 구성P(Page Number): 페이지 번호 (20bits로 관리)D(Page Offset): 페이지번호로부터 해당 주소까지의 거리 (12bits로 관리) 가상 주소와 물리 주소가상 주소: 프로그램이 사용하는 주소(20bits)물리 주소: 실제 메모리의 주소(16bits) 주소 변환가상 주소를 물리 주소로 변환할 때 페이지 테이블을 사용Page Number만 변환되고 Page Offset은 그대로 유지 매핑의 종류1. 직접매핑메모리의 특..
캐시히트와 캐시미스
·
Computer Science/Operating System
캐시속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 캐시는 반응 속도가 빠른 SRAM(Static Random Access Memory)으로 주소가 키(Key)로 주어지면 해당 공간에 즉시 접근할 수 있음이러한 특성은 DRAM(Dynamic Random Access Memory)도 동일하지만 하드웨어 설계상 DRAM은 SRAM보다 느림DRAM은 행과 열을 순차적으로 활성화하여 데이터에 접근하며 이 과정에서 추가적인 지연이 발생하기 때문 캐시를 설정할 때는 자주 사용하는 데이터를 기반으로 설정함이 때 지역성을 기반으로 설정되는데, 시간 지역성과 공간 지역성으로 나뉨 int[] arr = new int[10];for(int i=0; i시간 지역성(temporal local..
RestControllerAdvice를 통한 예외 관리
·
Spring
전역적인 예외 처리를 위해 기존 프로젝트에 Controller Advice를 도입하였다. 기존의 Controller 코드@GetMapping("/list")public ResponseEntity> list(@AuthenticationPrincipal MemberDetailsImpl memberDetails) { // 사용자카드 리스트 가져오기 try{ return new ResponseEntity(userCardService.getUserCardByUserId(memberDetails.getMember().getId()), HttpStatus.OK); } catch (RuntimeException e){ return new ResponseEntity(HttpStatus..
PCB와 Context Switching
·
Computer Science/Operating System
컴퓨터에서 일어나는 다중 작업은 동시에 처리하는 것이 아닌각 프로그램을 일정시간 동안 번갈아가면서 실행하는 것이다.다만 그 속도가 매우 빠르기에 동시에 처리한다고 느끼는 것이다. 프로세스들이 교체되어 수행되고 나면 원래 수행하던 프로세스의 정보를 저장하고다른 프로세스를 처리해야 하는데, 이를 저장하는 공간을 PCB(Process Control Block) 라고 한다.PCBPCB : 운영체제에서 관리하는 프로세스에 대한 메타데이터를 저장한 데이터블록프로세스가 생성될 때 고유의 PCB가 생성되며 종료되면 PCB가 제거됨커널의 데이터 영역에 저장됨실행 상태일 때는 프로그램 카운터 레지스터 값 등이 CPU 레지스터에 로드됨 Pointer: 프로세스 전환 시 위치 정보를 유지하는 스택 포인터Process Stat..
[Gold V] 뱀과 사다리 게임 - 16928
·
코딩테스트/백준
[Gold V] 뱀과 사다리 게임 - 16928문제 링크성능 요약메모리: 14260 KB, 시간: 108 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 23일 14:15:39문제 설명뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다.주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까?게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다.플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸..
[Silver I] 쉬운 최단거리 - 14940
·
코딩테스트/백준
[Silver I] 쉬운 최단거리 - 14940문제 링크성능 요약메모리: 59064 KB, 시간: 748 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 23일 15:50:47문제 설명지도가 주어지면 모든 지점에 대해서 목표지점까지의 거리를 구하여라.문제를 쉽게 만들기 위해 오직 가로와 세로로만 움직일 수 있다고 하자.입력지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000)다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이다. 입력에서 2는 단 한개이다.출력각 지점에서 목표지점까지의 거리를 출력한다. 원래 갈 수 없는 땅인 위치는 0을 출력하고, 원래..
[Silver I] 절댓값 힙 - 11286
·
코딩테스트/백준
[Silver I] 절댓값 힙 - 11286문제 링크성능 요약메모리: 25744 KB, 시간: 280 ms분류자료 구조, 우선순위 큐제출 일자2024년 10월 23일 15:33:53문제 설명절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.배열에 정수 x (x ≠ 0)를 넣는다.배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다.프로그램은 처음에 비어있는 배열에서 시작하게 된다.입력첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가..
[Silver II] 좌표 압축 - 18870
·
코딩테스트/백준
[Silver II] 좌표 압축 - 18870문제 링크성능 요약메모리: 366240 KB, 시간: 2024 ms분류값 / 좌표 압축, 정렬제출 일자2024년 10월 23일 15:24:55문제 설명수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.입력첫째 줄에 N이 주어진다.둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.출력첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 예제 입력52 4..
[level 3] 정수 삼각형 - 43105
·
코딩테스트/프로그래머스
[level 3] 정수 삼각형 - 43105문제 링크성능 요약메모리: 61.5 MB, 시간: 12.50 ms구분코딩테스트 연습 > 동적계획법(Dynamic Programming)채점결과정확성: 64.3효율성: 35.7합계: 100.0 / 100.0제출 일자2024년 10월 22일 10:31:46문제 설명위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다.삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성..
[Gold V] AC - 5430
·
코딩테스트/백준
[Gold V] AC - 5430문제 링크성능 요약메모리: 100472 KB, 시간: 720 ms분류덱, 파싱, 구현, 문자열, 자료 구조제출 일자2024년 10월 19일 22:03:25문제 설명선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다.함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수..