
총 136개
-
운영체제의 실제 메모리 구성 및 관리 방식2025.01.241. 물리적 메모리 관리 운영체제는 한정된 물리적 메모리를 효율적으로 관리하기 위해 고정 분할 방식과 가변 분할 방식을 사용한다. 고정 분할 방식은 메모리를 고정된 크기로 나누어 할당하지만 비효율적일 수 있으며, 가변 분할 방식은 메모리를 동적으로 할당하여 낭비를 줄일 수 있지만 외부 단편화 문제가 발생할 수 있다. 운영체제는 압축 기법을 통해 단편화 문제를 해결한다. 2. 가상 메모리 운영체제는 가상 메모리 기법을 사용하여 물리적 메모리의 한계를 극복한다. 가상 메모리를 통해 프로그램이 필요한 만큼의 메모리를 제공할 수 있으며, ...2025.01.24
-
C언어 - 포인터에 관련한 다음 물음들에 대한 답을 제시하시오2025.01.271. 포인터의 개념과 기능 포인터의 개념은 '주소를 저장하는 변수'로 여기에는 두 가지 중요한 점이 있습니다. 하나는 '주소를 저장한다'는 것이고 다른 하나는 '변수'라는 것입니다. 포인터는 정의할 때 *를 붙이며, 포인터에 어떤 주소를 넣느냐에 따라 정수형 포인터, 문자 포인터, 함수 포인터 등의 이름이 지정됩니다. 포인터는 메모리를 저장할 수 있는 특징이 있지만, 변수이기 때문에 생성만 해놓은 상태만으로는 아무것도 할 수 없습니다. 다른 변수의 메모리 주소를 대입하거나 메모리를 할당하는 함수를 사용하여 메모리를 할당받은 후, 해...2025.01.27
-
C언어에서 메모리를 효율적으로 활용하기 위한 포인터의 활용2025.05.061. 포인터 정의 포인터는 변수의 주소를 나타내는 변수이다. 변수는 메모리 상의 어떤 위치에 할당되며, 이 위치를 주소(address)라고 한다. 포인터는 이러한 변수의 주소를 저장하고, 이 주소를 통해 변수에 접근할 수 있다. 포인터를 선언할 때는 포인터 변수의 자료형을 지정해야 하며, 포인터 변수의 자료형은 포인터가 가리키는 변수의 자료형과 일치해야 한다. 2. 포인터 변수 정의와 예제 포인터 변수는 메모리의 주소를 저장하는 변수이다. 포인터 변수를 사용하면 변수의 값을 직접 변경하거나, 함수의 인자로 포인터를 사용하여 함수 외...2025.05.06
-
컴퓨터 운영체제의 메모리 관리 기술2025.01.061. 컴퓨터 운영체제와 메모리 구성 운영체제는 컴퓨터 시스템에서 핵심적인 역할을 수행하며, 메모리 관리는 운영체제가 가장 중요하게 다루는 영역 중 하나입니다. 운영체제는 물리적인 메모리를 가상의 메모리 공간으로 변환하고, 이를 프로세스들이 독립적으로 사용할 수 있게끔 관리해야 합니다. 이러한 과정에서 운영체제는 프로세스들 간의 메모리 충돌을 방지하고, 최적의 메모리 할당 방식을 선택해야 합니다. 2. 컴퓨터 메모리 구성 컴퓨터 메모리는 물리적 메모리와 가상 메모리로 구성됩니다. 물리적 메모리는 주기억장치로서, 중앙처리장치(CPU)가...2025.01.06
-
멀티 스레드와 스레드 간 통신 방법 및 문제점 극복2025.01.181. 멀티 스레드 개념 멀티 스레드는 애플리케이션이 여러 작업을 동시에 수행할 수 있도록 하는 기술입니다. 스레드는 프로세스 내의 단일 실행 단위로, 자체 스택과 프로그램 카운터를 사용하여 자체 컨텍스트에서 실행할 수 있지만 프로세스 내의 다른 스레드와 동일한 메모리를 공유합니다. 2. 스레드 간 통신 방법 스레드 간 통신에는 공유 메모리, 메시지 전달, 신호 등 여러 가지 방법이 있습니다. 공유 메모리는 여러 스레드가 동일한 메모리 위치에 액세스할 수 있도록 하는 기술이며, 메시지 전달은 통신 채널을 통해 스레드 간에 메시지를 보...2025.01.18
-
서강대학교 디지털논리회로실험 9주차 - Memory Devices and dot/key-matrix interfaces2025.01.201. ROM ROM은 기본적으로 n개의 address 입력 신호를 받고 b개의 출력 신호를 내보내는데, 자체 적으로 가지고 있는 2^n x b 개의 데이터 중 address의 입력에 대응하는 것을 출력한다. 이렇 게 자체적으로 가지고 있는 데이터는 단순한 방법으로는 수정할 수 없고, 생산과정 중 진행 되는 입력, 혹은 값의 수정을 위해 만들어진 장치를 이용해야 데이터를 입력할 수 있다. ROM은 이렇게 단순한 방법으로는 데이터 수정이 불가능하지만, 한번 입력된 데이터는 전 원이 차단되어도 사라지지 않고 남아있는 non-volatil...2025.01.20
-
연결형 자료구조를 이용한 다항식의 계산 프로그래밍2025.01.131. 다항식 계산 프로그래밍 이 프로그래밍 과제에서는 연결형 자료구조를 이용하여 다항식의 계산을 구현하였습니다. 다항식의 항을 표현하는 구조체를 정의하고, 다항식을 입력받아 연결 리스트로 구성하는 함수, 두 다항식을 더하는 함수, 두 다항식을 곱하는 함수 등을 구현하였습니다. 이를 통해 연결 리스트, 포인터 연산, 알고리즘 설계의 중요성을 배웠고, 프로그래밍 경험을 쌓을 수 있었습니다. 2. 연결 리스트 이 프로그래밍 과제에서는 다항식을 연결 리스트로 표현하였습니다. 연결 리스트는 동적 메모리 할당을 통해 구현되며, 각 항목은 다음...2025.01.13
-
배열의 정의, 선언, 초기화 및 활용2025.05.051. 배열의 정의 배열은 C언어에서 연속적인 메모리 영역에 동일한 데이터 타입의 여러 요소를 저장할 수 있는 구조입니다. 배열을 사용하면 데이터를 더욱 구조화된 방식으로 저장하고 접근할 수 있습니다. 2. 1차원 배열 선언 1차원 배열을 선언하려면 데이터 타입, 배열 이름, 배열 크기를 지정해야 합니다. 예를 들어, int arr[5]는 크기가 5인 int형 1차원 배열을 선언하는 것입니다. 3. 배열 활용 사례 배열은 시계열 데이터 저장, 문자열 처리, 정렬 및 검색 알고리즘 구현, 행렬 및 벡터 연산 등 다양한 상황에서 활용됩니...2025.05.05
-
방통대 방송대 C++프로그래밍 출석수업과제물 A+2025.01.251. C++ 프로그래밍 이 프레젠테이션은 C++ 프로그래밍 과제물에 대한 내용을 다루고 있습니다. 여기에는 C++ 기초 프로그래밍 예제, 배열 최댓값 구하기, 포인터 사용, 동적 메모리 할당, 참조 활용, 함수 활용 등 다양한 C++ 프로그래밍 기법이 소개되어 있습니다. 2. 객체 지향 프로그래밍 이 프레젠테이션에는 C++ 클래스 사용 예제가 포함되어 있습니다. 'CppBeginner' 클래스를 정의하고 'hello()' 메서드를 구현하는 등 객체 지향 프로그래밍 기법이 활용되고 있습니다. 3. 배열 및 데이터 구조 프레젠테이션에는...2025.01.25
-
프로세스의 스케줄링과 상태 변화에 대해 조사하시오2025.01.121. 프로세스 프로세스는 컴퓨터에서 실행되는 프로그램 또는 작업을 의미합니다. 멀티 프로세스 운영 체제에서는 여러 프로세스가 CPU를 분할하여 시간을 할당받아 실행됩니다. 2. 스케줄링과 스케줄러 스케줄링은 프로세스의 CPU 할당 순서와 방법을 결정하는 것을 의미합니다. 스케줄링 알고리즘을 사용하고 이를 적용하여 프로세스를 관리하는 운영체제 요소를 스케줄러라고 합니다. 3. 멀티 프로세스 멀티 프로세스 운영 체제에서는 여러 프로세스가 CPU를 분할하여 시간을 할당받아 실행됩니다. 프로세스 A가 입출력 작업을 수행하는 동안 프로세스 ...2025.01.12