CS (138) 썸네일형 리스트형 가상 메모리와 메모리 관리 기법 가상 메모리가상 메모리는 메모리 관리 기법의 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식이다. 프로그램이 실행되면 프로그램의 모든 코드와 데이터는 가상 메모리에 할당된다. 가상 메모리는 추상화된 메모리 공간으로, 각 프로세스마다 가상 메모리를 갖는다. 그러나 가상 메모리에 할당된 코드와 데이터는 물리적 메모리에 로드될 때까지 실제 메모리에 존재하지 않는다. 가상 주소(논리 주소): 가상적으로 주어진 주소물리 주소(실주소): 실제 RAM 메모리 상에서의 주소메모리 관리자(운영체제)는 프로그램을 물리적 메모리에 적재하기도 하고, 물리적 메모리 부족 시 스왑 영역으로 스왑 아웃시키기도 한다. 즉, 프로세스 입장에서는 물리적 메모리를 신경쓰지 않고 자신이 필요한 만큼 가상 주.. [백준] 2493. 탑 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 특별한 알고리즘이 필요하지 않은 문제이다. 그런데 자료구조로 스택을 사용해야 한다! 주요 로직은 다음과 같다. 스택이 비어있으면, 답은 0이고 현재 값을 스택에 push한다. 그렇지 않으면, peek한 값과 현재 값을 비교한다. peek한 값이 더 크면, 답은 peek한 값의 인덱스이고 현재 값을 스택에 push한다. 그렇지 않으면, peek한 값을 pop하고 2번으로 돌아간다. 예제 1번의 경.. CPU 스케줄링 CPU 버스트 시간에 따른 프로세스의 종류 기계어 명령은 다음 세 가지 명령으로 구분된다. CPU 내에서 수행되는 명령: CPU 내에서만 수행되므로 명령 수행 속도가 매우 빠르다. (ex, add 명령: 레지스터에 있는 두 값을 더해 레지스터에 저장) 메모리 접근을 필요로 하는 명령: CPU 내에서 수행되는 명령에 비해 오래 소요되지만 비교적 짧은 시간에 수행할 수 있는 명령에 해당된다. (ex, load 명령: 메모리의 데이터를 CPU로 읽어 들임, store 명령: CPU에서 계산된 결과값을 메모리에 저장) 입출력을 동반하는 명령: CPU나 메모리 접근 명령에 비해 아주 오랜 시간이 소요된다. CPU 내에서 수행되는 명령과 메모리 접근을 필요로 하는 명령은 사용자 프로그램이 직접 수행할 수 있는 일반.. [Real MySQL] 5. 트랜잭션과 락 트랜잭션잠금(락)과 트랜잭션은 서로 비슷한 개념 같지만 잠금은 동시성을 제어하기 위한 기능이고, 트랜잭션은 데이터 정합성을 보장하기 위한 기능이다.락: 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주어 데이터 정합성을 지켜준다.트랜잭션 격리 수준: 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지를 결정하는 레벨을 의미한다.MySQL에서 MyISAM 스토리지 엔진과 MEMORY 스토리지 엔진은 트랜잭션을 지원하지 않지만 InnoDB 스토리지 엔진은 트랜잭션을 지원한다. 트랜잭션을 지원하지 않는 경우에는 데이터의 정합성을 맞추는 것이 중요하고 어려운 문제가 된다. 하지만 트랜잭션을 지원하는 경우에는 애플리케이션 개발에서 고민해야 할 .. [2023 KAKAO BLIND RECRUITMENT] 개인정보 수집 유효기간 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 단순 구현문제이고 레벨 1 문제인데 살짝 헤맸다.. 다른 건 다 간단하고, 주의할 점은 년, 월, 일에 n달을 더하고 비교하는 건데 이를 쉽게 하기 위해 모든 날짜를 일로 변환하면 된다(모든 달은 28일까지 있다고 가정하기 때문에 이렇게 해도 된다). 즉 2022년 1월 1일은 (2022 * 12 * 28) + (1 * 28) + (1)일인 것이다! import java.util.*; // 파기.. [Real MySQL] 4.아키텍처 - InnoDB 스토리지 엔진 아키텍처 InnoDB는 MySQL에서 사용할 수 있는 스토리지 엔진 중 유일하게 레코드 기반의 잠금을 제공하며, 그 때문에 높은 동시성 처리가 가능하고 안정적이며 성능이 뛰어나다. InnoDB의 구조는 다음과 같다. PK에 의한 클러스터링 InnoDB의 모든 테이블은 기본적으로 PK를 기준으로 클러스터링되어 저장된다. 즉, PK의 순서대로 디스크에 저장된다는 뜻이며, 모든 세컨더리 인덱스는 레코드의 주소 대신 PK를 논리적인 주소로 사용한다. PK가 클러스터링 인덱스이기 때문에 PK를 이용한 레인지 스캔은 상당히 빠르게 처리될 수 있다. 따라서 쿼리 실행 계획에서 PK는 기본적으로 다른 보조 인덱스에 비해 비중 높게 설정된다. (쿼리 실행 계획에서 다른 보조 인덱스보다 PK가 선택될 확률이 높다.) InnoDB .. [Real MySQL] 4. 아키텍처 - MySQL 엔진 아키텍처 MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 구분할 수 있다. (MySQL 서버 = MySQL 엔진 + 스토리지 엔진) MySQL 엔진은 클라이언트로부터 오는 요청 처리를 담당하고(SQL 분석, 최적화 등), 스토리지 엔진은 실제 데이터를 디스크에 저장하거나 조회하는 부분을 말한다. MySQL 엔진 커넥션 핸들러: 클라이언트와의 접속(커넥션), 그리고 쿼리 요청 처리를 담당한다. SQL 인터페이스: DML, DDL, Procedure, View 등 SQL 인터페이스 제공을 담당한다. SQL 파서: 클라이언트가 보낸 SQL에 문법 오류가 있나 확인하고, MySQL이 처리하기 좋은 토큰 단위로 나눠서 트리 형태로 파싱한다. SQL 옵티마이저: 쿼리의 최적화된 실행을 담당한다. 캐시와 버퍼: 성.. [2022 KAKAO TECH INTERNSHIP] 등산코스 정하기 https://school.programmers.co.kr/learn/courses/30/lessons/118669 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 출입구를 A, 산봉우리를 B라고 할 때, A -> ... -> B -> ... -> A의 경로로 이동한다. 그리고 가장 작은 intensity를 구하면 된다. 이때 출입구 A -> 산봉우리 B로 이동할 때의 최소 intensity만 구하면 된다. B -> A에서의 최소 intensity는 A -> B로 올라온 경로로 똑같이 내려가면 되기 때문이다. 이렇게 생각하면 별도의 중복 처리 없이 등산코스.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 18 다음