All'alba vincerò

At dawn, I will win!

전체보기 407

페이징(Paging): 메모리를 같은 크기로 나눠 사용하는 메모리 관리 기법

페이징(Paging): 큰 가상 메모리를 같은 크기의 작은 블록(페이지)으로 나눠, 필요한 블록만 물리 메모리에 올려 사용하는 메모리 관리 기법 페이징은 고정 분할 방식을 이용한 메모리 관리 기법세그멘테이션(segmentation) 기법에서 발생하는 외부 단편화 문제를 해결하기 위해 고안된 방식 페이징의 특징페이징은 메모리를 할당할 때 메모리를 일정한 크기의 페이지(Page) 단위로 나누어 할당함모든 페이지는 동일한 크기를 갖기 때문에 관리가 용이함일정한 크기로 나눴기 때문에 외부 단편화는 발생하지 않음❌내부 단편화는 발생할 수 있음⭕세그멘테이션과 마찬가지로 컨텍스트 스위칭 시, 운영체제는 페이지 테이블을 바꾸기 위해 메모리 관리자 내의 페이지 테이블 베이스 레지스터(Page Table Base Re..

CS/운영체제 2025.06.04

세그멘테이션(Segmentation): 프로세스를 기능 별로 나눠서 각각 메모리에 넣는 메모리 관리 기법

세그멘테이션(Segmentation): 프로세스를 의미 있는 단위(코드, 데이터, 스택 등)로 나눠서 각각 메모리에 따로 배치하는 메모리 관리 방식게임을 만드는 상황에서 아래처럼 잘게 나눈 덩어리들을 각각 필요한 만큼만 메모리에 따로따로 배치하는 방식 ⇒ 세그멘테이션게임 실행 코드 → 한 덩어리캐릭터 정보 같은 데이터 → 또 다른 덩어리게임 도중 생기는 임시 정보들(예: 점수 계산 등) → 또 다른 덩어리 세그멘테이션에서는 프로그램이 여러 세그먼트(조각)로 나눠져있음 → 그래서 사용자가 어떤 세그먼트 안에서 논리 주소를 사용하면, 운영체제는 그 주소가 실제 메모리의 어디에 있는지 계산하기 위해 물리 주소로 바꿔줘야 함개요프로그램은 여러 개의 세그먼트(조각)로 구성됨→ ex) 메인 코드, 전역 데이터, ..

CS/운영체제 2025.06.01

가상 메모리(Virtual Memory)

가상 메모리 (Virtual Memory)개요만약 운영체제나 프로세스가 4GB 메모리에서 동작하도록 만들어졌다면 이보다 작은 메모리의 컴퓨터에서는 실행되지 않음→ 가상 메모리가 이런 문제를 해결함가상 메모리의 크기는 이론적으로는 무한대이지만, 실제로는 물리 메모리의 크기와 CPU의 비트 수로 결정됨ex) 32비트 CPU인 경우 표현할 수 있는 주소값→ 가상 메모리 크기: 4GB (2의 32승) 부족한 물리 메모리를 가상 메모리로 해결하는 방식여러 프로세스를 실행하려는 경우32비트 CPU의 경우 최대 메모리 크기가 4GB인데, 4GB를 차지하는 프로세스 5개와 운영체제를 실행시키려면 → 운영체제를 제외하고도 적어도 20GB가 필요함이럴 때 가상 메모리 시스템은물리 메모리 내용의 일부를 하드디스크에 있는..

CS/운영체제 2025.06.01

메모리 종류, 메모리와 주소, 메모리 할당 방식

메모리 종류컴퓨터 내부의 메모리들 레지스터(Register) : 가장 빠른 기억 장소CPU 내에 존재CPU는 계산을 할 때, 메인 메모리에 있는 값을 레지스터로 가져와 계산함 → 계산 결과는 다시 메인 메모리에 저장함휘발성 메모리 ⇒ 컴퓨터 전원이 꺼지면 데이터가 사라짐 32비트 CPU는 레지스터 크기가 32비트, 64비트 CPU는 64비트임 캐시(Cache) : CPU와 메모리 간 속도 차이를 줄이기 위한 메모리 레지스터는 CPU가 사용하는 메모리로 굉장히 빠르지만 그에 비해 메인 메모리는 느림 → 메인 메모리에 있는 값을 레지스터로 옮기려면 한참 걸리기 때문에 필요할 것 같은 데이터를 미리 가져와서 저장함⇒ 캐시 메모리휘발성 메모리 ⇒ 컴퓨터 전원이 꺼지면 데이터가 사라짐ex) CPU가 값..

CS/운영체제 2025.06.01

[연봉 앞자리를 바꾸는 개발자 기술 면접 노트] 도서 리뷰

연봉 앞자리를 바꾸는 개발자 기술 면접 노트 서평 "한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다." '연봉 앞자리를 바꾸는 개발자 기술 면접 노트'는 20년 차 개발자이자 쿠팡과 카카오에서 면접관으로 활동한 이남희 저자가 집필한 실전 중심의 IT 취업·이직 가이드입니다. 이 책은 단순한 기술 나열이 아닌, 면접관의 시선과 지원자의 입장을 동시에 담은 전략서로, 개발자 취업에 필요한 전반적인 프로세스를 담고 있습니다. 커리어 설계 → 이력서 작성 → 기술 면접 및 코딩 테스트까지, 모든 단계를 현실적으로 다루며, 특히 실무에 필요한 핵심 역량과 “성장 가능성이 있는 회사”를 고르는 법까지 알려준다는 점에서 매우 실용적입니다. 현재 개발자 취준 시장에 막 뛰어든 저에게 딱 ..

카테고리 없음 2025.05.31

메모리(Memory)

메모리(Memory) 개요현대 컴퓨터의 폰 노이만 구조에서는 프로그램의 코드와 데이터는 모두 메모리에 올라가서 실행됨⇒ 프로그램 내장 방식(Von Neumann Stored Program Concept)이라고 부름이 방식 덕분에 프로그램이 변경될 때마다 하드웨어를 바꾸지 않아도 됨메모리에는 메인 메모리와 보조 메모리가 있음 메모리의 구분컴퓨터에서 사용하는 메모리는 크게 메인 메모리(Main Memory)와 보조 메모리(Secondary Memory)로 나눌 수 있음 1. 메인 메모리(Main Memory)RAM (Random Access Memory): 어떤 데이터에 접근해도 접근 시간이 동일한 메모리 휘발성 메모리 → 전원이 끊기면 모든 데이터가 사라짐그래서 대부분의 프로그램은 비휘발성 보조 메모..

CS/컴퓨터 구조 2025.05.30

중앙 처리 장치(CPU, Central Processing Unit)

중앙 처리 장치(CPU, Central Processing Unit): 컴퓨터의 핵심 두뇌 역할을 하는 장치개요현대 컴퓨터는 기본적으로 폰 노이만 구조를 따름⇒ 중앙 처리 장치(CPU), 메모리, 입출력 장치가 서로 독립적으로 분리된 구조CPU는 이 구조의 중심에서 명령을 읽고, 해석하고, 실행하는 역할을 담당함→ 우리가 작성한 코드도 결국 CPU가 읽고 실행해야만 동작함프로그램은 명령어와 데이터로 구성됨프로그램을 실행하면 메모리에 적재되고, 중앙 처리 장치 내에 있는 제어 장치가 프로그램의 명령어와 필요한 데이터를 읽어와 적절한 계산을 반복하며 프로그램을 실행힘 중앙 처리 장치의 구성 요소 산술 논리 연산 장치 (ALU, Arithmetic Logic Unit): 실제 계산 작업을 담당하는 장치산..

CS/컴퓨터 구조 2025.05.30

블랙 박스(Black Box), 컴파일러 & 인터프리터

블랙박스(Black Box): 내부 작동 원리는 숨겨져있고, 입력에 따른 출력만 예측 가능한 것사용자는 시스템의 내부 구조를 몰라도 출력 결과를 예측할 수 있는 상태ex) 자동차 운전, 엔진이나 부품의 원리를 몰라도 운전 가능→ 복잡한 내부 구조를 감춘 채 사용만 가능하게 만든 구조 모듈화: 복잡한 시스템을 여러 블랙박스로 나누는 것각각의 블랙박스를 독립적으로 설계하여 전체 시스템을 효율적으로 구성→ 유지보수 용이, 재사용성 증가, 설계 간결화 분할 정복: 큰 문제를 보다 작은 문제로 분할해서 복잡함을 단순화하는 방법컴퓨터 하드웨어나 소프트웨어 같은 복잡한 시스템은 이 방식을 사용함→ 문제를 작은 단위로 나누어 하나씩 해결하는 구조→ 블랙박스 개념과 모듈화를 통해 구현 가능 탑다운 방식 (Top-d..

CS/컴퓨터 구조 2025.05.30

동적 프로그래밍 - 메모이제이션, 타뷸레이션

동적 프로그래밍(Dynamic Programming): 큰 문제를 작은 문제로 나누고, 그 결과를 저장하여 중복 계산을 피하는 최적화 기법 메모이제이션 (Memoization): 계산 결과를 저장해서 여러 번 계산하지 않도록 하는 기법하향식(Top-Down) 방식재귀를 사용해 큰 문제부터 내려가며 계산이미 계산한 결과는 저장해두고 다시 사용함 메모이제이션의 장단점장점재귀 덕분에 하향식 계산 방식으로 어려운 문제를 간단히 해결할 수 있음중복 계산을 하지 않아서 속도가 빠름 단점재귀를 사용하기 때문에 오버헤드가 큼 메모이제이션은 속도를 위해 메모리를 사용하기 때문에 메모리 사용량 증가 예시: 피보나치 수열 기본 재귀 방식function fibonacci1(n){ if(n == 0 || n ..

CS/알고리즘 2025.05.26

정렬 알고리즘: 퀵 정렬(Quick Sort)

퀵 정렬 (Quick Sort): 기준값(피벗)을 정해 작은 값은 왼쪽, 큰 값은 오른쪽으로 나누며 정렬하는 빠른 정렬 알고리즘 분할 정복 알고리즘재귀로 정렬하는 알고리즘 퀵 정렬의 성능시간 복잡도평균: Θ(n log n) → 피벗이 배열의 절반씩 나누는 경우최악: O(n²) → 피벗이 한쪽 끝에 치우친 경우→ 하지만 최악의 경우는 거의 발생하지 않음성능 평가병합 정렬이 평균 성능만 보면 더 나을 수 있지만, 퀵 정렬은 실제로 더 적은 비교와 메모리 사용량으로 인해더 빠르고 효율적인 알고리즘으로 평가됨 퀵 정렬의 장단점장점 전체적으로 성능이 좋음 단점 전체적으로 성능이 좋음 퀵 정렬의 흐름[ 5, 3, 7, 2, 6, 4, 9, 1, 8 ]정렬을 시작하기 전에 배열에서 하나를 피벗(pivot)..

CS/알고리즘 2025.05.26