
총 46개
-
시스템프로그래밍(명령어 실행 4단계 및 논리주소와 물리주소)2025.01.031. 명령어(instruction) 명령어(instruction)란 컴퓨터가 직접 실행할 수 있는 프로그램의 최소 단위를 의미합니다. 명령어는 프로세서가 외부적으로 작동하는 '판독'과 '기록' 사이클, 기억장치에서 읽은 프로그램 명령어를 '실행시키는 4단계'로 구분해서 이해할 수 있습니다. 2. 명령어 실행 4단계 명령어 실행은 '명령어 인출 → 명령어 해독 → 데이터 인출 → 명령어 실행'의 4단계로 진행되며, 각 단계별 내용이 자세히 설명되어 있습니다. 3. 물리 주소와 논리 주소 메모리의 구조는 크게 물리 주소와 논리 주소 두...2025.01.03
-
운영체제 ) 가상 메모리 관리 기법의 기본 동작 원리와 페이징 기법과 세그먼트 기법, 그리고 구역성(Locality)이 페이징 기법에서 가지는 중요한 의미에 대해서 조사하시오.2025.05.131. 가상 메모리 관리 기법의 기본 동작 원리 컴퓨터는 프로그램을 수행하기 위해 프로그램을 메인 메모리(주기억장치)에 탑재해야 한다. 그러나 실제 장치의 물리적인 메모리 용량에는 한계가 있기 마련이고, 또 프로그램을 실행할 때 프로그램 전체를 동시에 실행하는 경우도 없다. 이러한 상황에서 컴퓨터 공학자들은 좀 더 효율적인 컴퓨터 사용을 위해 당장 실행하는 프로그램의 일부분만 메인 메모리에 저장하고 필요할 때마다 나머지 부분을 하드 디스크와 같은 보조 장치에서 불러오는 메모리 관리 기법을 떠올렸고, 이를 가상 메모리 관리 기법이라고 ...2025.05.13
-
컴퓨터 시스템의 구조와 운영체제2025.01.281. 컴퓨터 시스템의 기본 구조 컴퓨터 시스템은 데이터를 입력받아 처리한 뒤 출력하는 과정을 수행하는 전자 장치이다. 이를 가능하게 하는 핵심 구성 요소는 하드웨어(CPU, 메모리, 입출력장치, 버스)와 소프트웨어(응용 소프트웨어, 시스템 소프트웨어)로 구성된다. 2. 운영체제의 주요 기능 운영체제는 컴퓨터 시스템에서 필수적인 소프트웨어로, 하드웨어를 관리하고 사용자와 시스템 간의 인터페이스 역할을 한다. 주요 기능으로는 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리, 보안 및 사용자 관리 등이 있다. 3. 컴퓨터 ...2025.01.28
-
C언어 1 - 재귀함수와 포인터의 개념 및 활용2025.01.151. 재귀함수 재귀함수는 함수가 자기 자신을 호출하여 문제를 해결하는 기법입니다. 이 기법은 큰 문제를 작은 문제로 나누어 해결할 수 있게 해주며, 특히 반복적이고 계층적인 구조의 문제를 해결하는 데 유용합니다. 재귀함수를 사용할 때는 기본 조건(base case)과 재귀 조건(recursive case)을 명확히 정의해야 합니다. 재귀함수의 대표적인 사용 사례로는 팩토리얼 계산, 피보나치 수열 계산, 트리 탐색 등이 있습니다. 2. 포인터 포인터는 다른 변수의 메모리 주소를 저장하는 변수로, 간접적으로 변수에 접근하고 조작할 수 ...2025.01.15
-
메모리 단편화(Memory Fragmentation)의 개념과 해결 방안2025.01.161. 메모리 단편화의 개념 메모리 단편화는 사용가능한 메모리가 충분하지만 메모리 공간이 조각으로 분할되어 프로그램이 필요한 만큼의 메모리 공간을 할당 받지 못하는 상태를 말합니다. 메모리 단편화의 원인으로는 메모리 할당 정책이나 알고리즘이 메모리를 비효율적으로 사용하게 되는 경우, 메모리 할당 및 해제 과정에서 메모리 블록들이 불연속적으로 배치되는 경우, 메모리를 할당하고 해제하는 순서나 크기가 문제가 되는 경우, 프로그램 실행 중에 메모리 사용량이 바뀌는 경우 등 다양한 원인들이 있습니다. 2. 내부 단편화와 외부 단편화의 개념 ...2025.01.16
-
소프트웨어 보안 CWE Top 25 보안 약점 과제2025.01.121. Use After Free (UAF) UAF는 해제된 메모리 영역을 재사용할 때 발생하는 보안 약점으로, Heap 영역에서 일어나는 문제입니다. 해제된 메모리 공간이 새로운 포인터에 할당될 경우 그 포인터가 해당 영역의 값과 주소 값을 사용할 수 있게 되어 발생합니다. 이를 악용하여 공격자가 해당 영역을 공격 코드로 덮으면 개발자가 의도치 않게 공격 코드를 실행할 수 있습니다. 2. Server-Side Request Forgery (SSRF) SSRF는 서버 측에서 피해자에게 위조된 요청을 보내도록 하는 공격입니다. 웹 서버...2025.01.12
-
배열의 정의, 선언, 초기화 및 활용2025.05.051. 배열의 정의 배열은 C언어에서 연속적인 메모리 영역에 동일한 데이터 타입의 여러 요소를 저장할 수 있는 구조입니다. 배열을 사용하면 데이터를 더욱 구조화된 방식으로 저장하고 접근할 수 있습니다. 2. 1차원 배열 선언 1차원 배열을 선언하려면 데이터 타입, 배열 이름, 배열 크기를 지정해야 합니다. 예를 들어, int arr[5]는 크기가 5인 int형 1차원 배열을 선언하는 것입니다. 3. 배열 활용 사례 배열은 시계열 데이터 저장, 문자열 처리, 정렬 및 검색 알고리즘 구현, 행렬 및 벡터 연산 등 다양한 상황에서 활용됩니...2025.05.05
-
운영체제 LRU (Least Recently Used) 알고리즘 구현 과제2025.04.281. LRU (Least Recently Used) 알고리즘 LRU (Least Recently Used) 알고리즘은 운영체제에서 메모리 페이지 교체 정책으로 사용되는 알고리즘입니다. 이 알고리즘은 가장 오랫동안 참조되지 않은 페이지를 교체하여 페이지 폴트를 최소화하는 것을 목표로 합니다. 이 프로그램은 C로 작성되었으며 Doubly Linked List로 LRU 알고리즘을 구현하고 있습니다. 페이지 번호를 읽어와 메모리에 올릴 수 있는 최대 페이지 개수를 고려하여 LRU 알고리즘을 적용하고 있으며, 페이지 참조 시마다 연결 리스트...2025.04.28
-
메시지 큐에서 수신이 없을 때 시스템 메모리에 미치는 영향과 해결 방안2025.01.131. 메모리 누수 메시지 큐에 지속적으로 메시지를 등록하는 경우, 메모리 누수가 발생할 수 있습니다. 메모리를 해제하지 않은 상태에서 계속해서 메모리를 사용하게 되어 시스템 자원이 낭비됩니다. 이는 성능 저하로 이어질 수 있는 치명적인 문제입니다. 2. 메모리 사용량 증가 지속적인 메시지 등록으로 인해 메모리에 메시지가 계속 쌓이게 됩니다. 이로 인해 메모리 사용량이 크게 증가하게 되며, 가용 메모리 부족으로 시스템이 중단되거나 성능이 저하될 수 있습니다. 메모리 부족은 다른 시스템에도 영향을 미칠 수 있는 심각한 문제입니다. 3....2025.01.13
-
단편화의 의미와 이를 극복하는 방법, 내부 단편화와 외부 단편화의 차이점2025.01.191. 단편화의 정의 단편화는 컴퓨터 과학에서 매우 중요한 개념이다. 이는 주로 메모리 관리와 밀접한 관련이 있으며, 시스템 성능 저하를 유발할 수 있는 주요 원인 중 하나이다. 단편화에는 내부 단편화와 외부 단편화가 있으며, 내부 단편화는 할당된 메모리 블록 내에서 사용되지 않는 공간이 발생하는 현상이고, 외부 단편화는 사용 가능한 메모리 블록들이 불규칙하게 분산되어 큰 메모리 요청을 처리할 수 없는 상태를 의미한다. 2. 단편화 극복 방법 단편화를 극복하기 위한 방법으로는 메모리 압축, 메모리 풀링, 가비지 컬렉션 등이 있다. 메...2025.01.19