총 54개
-
단편화의 의미와 이를 극복하는 방법, 내부 단편화와 외부 단편화의 차이점2025.01.191. 단편화의 정의 단편화는 컴퓨터 과학에서 매우 중요한 개념이다. 이는 주로 메모리 관리와 밀접한 관련이 있으며, 시스템 성능 저하를 유발할 수 있는 주요 원인 중 하나이다. 단편화에는 내부 단편화와 외부 단편화가 있으며, 내부 단편화는 할당된 메모리 블록 내에서 사용되지 않는 공간이 발생하는 현상이고, 외부 단편화는 사용 가능한 메모리 블록들이 불규칙하게 분산되어 큰 메모리 요청을 처리할 수 없는 상태를 의미한다. 2. 단편화 극복 방법 단편화를 극복하기 위한 방법으로는 메모리 압축, 메모리 풀링, 가비지 컬렉션 등이 있다. 메...2025.01.19
-
재귀함수와 포인터의 개념 및 활용2025.01.191. 재귀함수 재귀함수는 자기 자신을 다시 호출하는 함수로, 주어진 문제를 더 작은 하위 문제로 분해하여 해결하는 방식으로 동작합니다. 재귀함수는 종료 조건을 명시적으로 정의해야 하며, 이 조건이 충족될 때 함수 호출을 중단하고 반환값을 계산합니다. 재귀함수는 분할 정복 알고리즘, 백트래킹, 데이터 구조 순회, 수학적 계산 및 문제 해결, 문자열과 배열 처리 등 다양한 분야에서 활용됩니다. 2. 포인터 포인터는 메모리의 주소를 저장하는 변수로, C언어에서 메모리 관리와 복잡한 데이터 구조 구현에 중요한 역할을 합니다. 포인터는 메모...2025.01.19
-
다양한 주소 지정 방식 중 직접 주소 방법과 간접 주소 방법 비교 설명2025.01.171. 직접 주소 방법 직접 주소 방법은 명령어가 데이터의 실제 메모리 주소를 포함하는 방식입니다. 이 방법은 구현이 단순하고 접근 속도가 빠르다는 장점이 있지만, 프로그램의 유연성이 떨어지고 메모리 사용의 비효율성이 있습니다. 주로 간단한 프로그램이나 시스템에서 사용됩니다. 2. 간접 주소 방법 간접 주소 방법은 명령어가 데이터의 실제 주소 대신 주소를 가리키는 포인터를 포함하는 방식입니다. 이 방법은 메모리 사용의 유연성을 높이고 프로그램의 유연성을 향상시킬 수 있지만, 접근 속도가 느리고 포인터 사용의 오류 가능성이 있습니다. ...2025.01.17
-
시스템프로그래밍(명령어 실행 4단계 및 논리주소와 물리주소)2025.01.031. 명령어(instruction) 명령어(instruction)란 컴퓨터가 직접 실행할 수 있는 프로그램의 최소 단위를 의미합니다. 명령어는 프로세서가 외부적으로 작동하는 '판독'과 '기록' 사이클, 기억장치에서 읽은 프로그램 명령어를 '실행시키는 4단계'로 구분해서 이해할 수 있습니다. 2. 명령어 실행 4단계 명령어 실행은 '명령어 인출 → 명령어 해독 → 데이터 인출 → 명령어 실행'의 4단계로 진행되며, 각 단계별 내용이 자세히 설명되어 있습니다. 3. 물리 주소와 논리 주소 메모리의 구조는 크게 물리 주소와 논리 주소 두...2025.01.03
-
가상메모리에서 페이지 대치 알고리즘 비교2025.01.171. FIFO 알고리즘 FIFO 알고리즘은 메인 메모리에 가장 먼저 입력된 페이지를 선택하여 제거하는 방식입니다. 이는 마치 터널을 통과하는 자동차와 같아서, 터널에 가장 먼저 들어간 자동차가 반대편 터널에서 가장 먼저 나오게 됩니다. 2. 최적 페이지 대치 알고리즘 최적 페이지 대치 알고리즘은 향후 가장 오랫동안 사용되지 않을 페이지를 선택하여 교체합니다. 이는 향후 2초 동안 사용되지 않을 페이지를 교체하는 것과 같습니다. 3. LRU 알고리즘 LRU 알고리즘은 가장 최근에 사용되지 않은 페이지를 교체합니다. 이는 집을 청소하는...2025.01.17
-
운영체제 메모리 관리 레포트2025.05.021. 가상 메모리 가상 메모리는 사용자와 논리적 주소를 물리적으로 분리하여 프로세스에 주소를 지정하고 메모리 제한 없이 사용할 수 있게 해줍니다. 메모리의 일부만 적재해도 프로세스를 실행할 수 있으며, 메모리와 디스크 사이의 데이터 이동을 통해 효율적으로 메모리를 활용할 수 있습니다. 가상 메모리를 사용하면 프로그래밍이 용이해지고 프로세서 이용률과 처리율이 향상되지만, 메모리와 디스크 사이의 이동량이 증가하고 페이징 알고리즘 결정이 필요한 단점이 있습니다. 2. 매핑 방법 가상 주소와 물리적 주소를 매핑하는 방법에는 동적 주소 변환...2025.05.02
-
C언어로 구현한 배열과 구조체의 차이점 설명 및 성적 처리 프로그램2025.01.171. 배열 배열은 동일한 자료형을 갖는 데이터들을 연속적인 메모리 공간에 저장하기 위한 자료구조입니다. 배열의 각 요소는 인덱스라는 숫자로 식별되며, 이를 통해 데이터에 빠르게 접근할 수 있습니다. 배열은 반복 루프와 결합하여 데이터를 효율적으로 처리할 수 있게 해 줍니다. 2. 구조체 구조체는 서로 다른 자료형을 가진 데이터들을 하나의 단위로 묶기 위해 사용됩니다. 구조체 내의 각 요소들은 멤버 또는 필드라고 불리며, 각각이 서로 다른 데이터 타입을 가질 수 있습니다. 구조체는 여러 유형의 데이터를 관련성 있게 그룹화하는 데 유용...2025.01.17
-
컴퓨터에서 숫자 표현과 중앙처리장치 동작 원리2025.05.111. 보수의 개념 보수(Complement)는 '보충을 해주는 수'라는 의미로 컴퓨터가 뺄셈을 할 때 사용되는 개념입니다. 보수는 2의 보수와 1의 보수로 나뉩니다. 2의 보수는 어떤 수의 1의 보수에 1을 더한 값이며, 1의 보수는 비트를 반전시킨 값입니다. 보수는 컴퓨터에서 음수를 표현하거나 덧셈과 뺄셈 연산 등에서 사용됩니다. 2. 보수체계 사용 이유 보수체계는 컴퓨터에서 수의 표현과 연산을 보다 효율적으로 처리할 수 있도록 도와줍니다. 컴퓨터는 연산체계에서 덧셈기능만 할 수 있는데, 보수를 이용하면 뺄셈도 수행할 수 있습니다...2025.05.11
-
어셈블리언어(시스템프로그래밍) 과제-4 (고급 언어 구조와 정수 연산을 수행하는 프로그램)2025.05.111. 메모리 변수 사용 프로그램 메모리 변수를 사용하는 간단한 프로그램을 작성하여 Visual Studio 통합개발환경에서 어셈블러를 사용할 수 있는 프로젝트를 만들고 실행해보았습니다. 디버거 사용법도 연습하였습니다. 코드를 통해 변수 val1과 val2의 메모리 주소와 저장된 값을 확인할 수 있었고, 레지스터 eax에 두 값의 합이 저장된 것을 확인할 수 있었습니다. 2. if-else 구문 구현 if-else 구문을 구현하는 프로그램을 작성하였습니다. ecx와 edx 레지스터에 입력받은 값을 비교하여 조건부 점프를 통해 x 변수...2025.05.11
-
건국대학교 객체지향프로그래밍_3주차_랩실습보고서2025.05.011. 객체지향프로그래밍 이 보고서는 건국대학교 객체지향프로그래밍 수업의 3주차 랩실습 내용을 다루고 있습니다. 주요 내용은 파일로부터 동적 메모리 할당, 메모리 출력 및 저장, 메모리 정리 등입니다. 이를 통해 C++의 동적 메모리 관리 기능을 실습하고 이해할 수 있습니다. 1. 객체지향프로그래밍 객체지향프로그래밍은 소프트웨어 개발에 있어 매우 중요한 패러다임입니다. 이 방식은 현실 세계의 개체를 모방하여 프로그램을 구축하는 것으로, 코드의 재사용성, 유지보수성, 확장성 등 많은 장점을 가지고 있습니다. 객체지향 프로그래밍은 클래스...2025.05.01
