
총 278개
-
사용자가 입력한 수를 계속 더하는 프로그램을 배열과 연결리스트로 각각 구현했을 때 장단점 비교 및 설명2025.01.191. 배열을 사용한 프로그램 구현 배열을 사용한 프로그램은 고정된 크기의 메모리 블록에 데이터를 저장한다. 배열은 정적 메모리 할당을 통해 메모리를 관리하며, 인덱스를 통해 각 요소에 빠르게 접근할 수 있다. 이로 인해 특정 위치의 값을 읽거나 쓰는 작업이 매우 효율적이다. 그러나 배열의 크기를 동적으로 조절할 수 없다는 단점이 있다. 2. 연결리스트를 사용한 프로그램 구현 연결리스트를 사용한 프로그램은 동적으로 메모리를 할당하여 데이터를 저장한다. 연결리스트는 각 노드가 데이터와 다음 노드를 가리키는 포인터를 포함하고 있어, 새로...2025.01.19
-
C언어에서 메모리를 효율적으로 활용하기 위한 포인터의 활용2025.05.061. 포인터 정의 포인터는 변수의 주소를 나타내는 변수이다. 변수는 메모리 상의 어떤 위치에 할당되며, 이 위치를 주소(address)라고 한다. 포인터는 이러한 변수의 주소를 저장하고, 이 주소를 통해 변수에 접근할 수 있다. 포인터를 선언할 때는 포인터 변수의 자료형을 지정해야 하며, 포인터 변수의 자료형은 포인터가 가리키는 변수의 자료형과 일치해야 한다. 2. 포인터 변수 정의와 예제 포인터 변수는 메모리의 주소를 저장하는 변수이다. 포인터 변수를 사용하면 변수의 값을 직접 변경하거나, 함수의 인자로 포인터를 사용하여 함수 외...2025.05.06
-
다양한 주소 지정 방식 중 직접 주소 방법과 간접 주소 방법을 비교 설명하시오2025.01.271. 직접 주소 방법 직접 주소 지정 방식(Direct or Absolute Addressing Mode)은 명령어의 주소 필드가 유효 주소(EA)를 직접 포함하는 방식이다. 이 방식은 간단하고 보편적인 방법으로, 명령어 자체에 포함된 주소 필드 값이 바로 데이터가 저장된 기억장치의 실제 주소를 의미한다. 직접 주소 지정 방식은 데이터 인출을 위해 기억장치 접근이 한 번만 필요하다는 장점이 있지만, 명령어의 주소 필드가 제한된 비트를 사용하기 때문에 지정할 수 있는 기억장소의 범위가 한정된다는 단점이 있다. 2. 간접 주소 방법 간...2025.01.27
-
다양한 주소 지정 방식 중 직접 주소 방법과 간접 주소 방법을 비교 설명하시오2025.01.181. 주소 지정 방식 주소 지정 방식은 데이터와 명령어의 위치를 지정하는 방법에 따라 구분되며, 대표적인 방식으로 직접 주소 지정 방식과 간접 주소 지정 방식이 있다. 직접 주소 방식은 컴퓨터가 필요한 정보를 찾을 때 바로 정보가 있는 곳을 알려주는 방식이고, 간접 주소 지정 방식은 직접 정보가 있는 곳을 알지는 못하고 한 번 더 거쳐 정보를 찾는 방식이다. 2. 직접 주소 지정 방식 직접 주소 지정 방식은 명령어의 주소 필드 내용이 유효 주소가 되는 방식으로, 데이터 인출을 위해 기억장치에 한 번만 접근하여 속도가 빠르지만 지정할...2025.01.18
-
컴퓨터 내부에서 사용하는 명령어 사이클의 4가지 단계에 대한 비교 설명2025.01.231. 명령어 가져오기 단계 명령어 사이클의 첫 번째 단계는 명령어를 가져오는 단계이다. 이 단계에서는 메모리에서 명령어를 읽어오는 작업이 이루어진다. 명령어는 보통 메모리에 저장되어 있으며, CPU는 프로그램 카운터(PC)를 사용하여 다음에 실행할 명령어의 주소를 가리킨다. 이 과정에서 CPU는 메모리의 접근 시간을 고려하여 명령어를 빠르게 가져오기 위한 다양한 기술을 활용한다. 예를 들어, 캐시 메모리를 사용하여 자주 사용되는 명령어를 빠르게 가져올 수 있도록 한다. 2. 명령어 해독 단계 두 번째 단계는 명령어를 해독하는 단계이...2025.01.23
-
컴퓨터 내부에서 사용하는 명령어 사이클의 4가지 단계에 대해서 비교 설명2025.01.151. 명령어 사이클 컴퓨터 내부에서 명령어는 인출(Fetch Cycle), 간접(Indirect Cycle), 실행(Execute Cycle), 인터럽트(Interrupt Cycle)의 4개 단계로 구성된다. 이 4개 단계를 명령 주기 또는 명령어 사이클이라고 하며, 이는 컴퓨터의 기본적인 동작 순환이다. 인출 단계는 명령어를 CPU로 가져오는 단계이고, 간접 단계는 명령어의 오퍼랜드가 간접 주소 지정 방식인 경우 유효주소를 계산하기 위해 메모리에 접근하는 단계이다. 실행 단계는 명령어를 해독하고 해당 명령어가 요구하는 타이밍과 제...2025.01.15
-
소프트웨어 보안 CWE Top 25 보안 약점 과제2025.01.121. Use After Free (UAF) UAF는 해제된 메모리 영역을 재사용할 때 발생하는 보안 약점으로, Heap 영역에서 일어나는 문제입니다. 해제된 메모리 공간이 새로운 포인터에 할당될 경우 그 포인터가 해당 영역의 값과 주소 값을 사용할 수 있게 되어 발생합니다. 이를 악용하여 공격자가 해당 영역을 공격 코드로 덮으면 개발자가 의도치 않게 공격 코드를 실행할 수 있습니다. 2. Server-Side Request Forgery (SSRF) SSRF는 서버 측에서 피해자에게 위조된 요청을 보내도록 하는 공격입니다. 웹 서버...2025.01.12
-
운영체제의 실제 메모리 구성 및 관리 방식2025.01.241. 물리적 메모리 관리 운영체제는 한정된 물리적 메모리를 효율적으로 관리하기 위해 고정 분할 방식과 가변 분할 방식을 사용한다. 고정 분할 방식은 메모리를 고정된 크기로 나누어 할당하지만 비효율적일 수 있으며, 가변 분할 방식은 메모리를 동적으로 할당하여 낭비를 줄일 수 있지만 외부 단편화 문제가 발생할 수 있다. 운영체제는 압축 기법을 통해 단편화 문제를 해결한다. 2. 가상 메모리 운영체제는 가상 메모리 기법을 사용하여 물리적 메모리의 한계를 극복한다. 가상 메모리를 통해 프로그램이 필요한 만큼의 메모리를 제공할 수 있으며, ...2025.01.24
-
운영체제 mmap 시스템콜 과제2025.01.121. mmap 시스템콜 mmap 시스템콜은 운영체제의 커널이 제공하는 서비스에 대해 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스입니다. 데이터 세그먼트는 C 언어로 작성한 프로그램이 주 기억장치를 더욱 효율적으로 운영하기 위해 일정한 크기로 단위를 나누어 할당하며 관리하는 것을 의미합니다. mmap()은 메모리의 내용을 파일이나 디바이스에 매핑하기 위해 사용되는 시스템 콜입니다. 프로세스들은 각각의 주소공간을 가지게 되며, 이 주소공간은 텍스트, 데이터, 스택 3개의 세그먼트로 분할됩니다. 프로세스의 메모리는 데이터...2025.01.12
-
[자료구조] 동적메모리를 구현하고 출력하는 소스코드2025.05.051. 동적 메모리 할당 이 코드는 동적 메모리 할당을 사용하여 구조체 배열을 생성하고 값을 할당한 후 출력하는 예제입니다. malloc() 함수를 사용하여 메모리를 동적으로 할당하고, 구조체 포인터 p를 통해 메모리에 접근하여 값을 설정합니다. 마지막으로 free() 함수를 사용하여 동적으로 할당된 메모리를 해제합니다. 1. 동적 메모리 할당 동적 메모리 할당은 프로그램 실행 중에 필요한 메모리 공간을 동적으로 할당하는 기능입니다. 이를 통해 프로그램은 실행 시간에 메모리 요구량을 유연하게 조절할 수 있습니다. 동적 메모리 할당은 ...2025.05.05