
총 19개
-
네트워크 프로그래밍_파일전송 프로그램 작성하기2025.01.131. 네트워크 프로그래밍 이 프레젠테이션은 네트워크 프로그래밍에 대한 내용을 다루고 있습니다. 클라이언트-서버 모델을 사용하여 파일 전송 프로그램을 작성하는 방법을 설명하고 있습니다. 클라이언트 코드에서는 서버에 연결하고 파일을 전송하는 과정을 보여주며, 서버 코드에서는 클라이언트의 연결을 받아 파일을 저장하는 과정을 보여줍니다. 이를 통해 네트워크 프로그래밍의 기본적인 개념과 구현 방법을 이해할 수 있습니다. 2. 파일 전송 이 프레젠테이션에서는 클라이언트에서 서버로 파일을 전송하는 방법을 다루고 있습니다. 클라이언트 코드에서는 ...2025.01.13
-
어셈블리어의 특징과 명령어 형식2025.01.031. 어셈블리어 어셈블리어는 컴퓨터 프로그래밍 언어의 한 종류로 저급언어에 속하는 언어입니다. 어셈블리어는 어셈블러라는 프로그램을 사용하기 위해서 쓰는 프로그램 언어로, 기계어와 거의 일대일로 이루어집니다. 어셈블리어는 하드웨어에 직접 접근해서 프로그램을 처리하며, 명령의 실행 속도가 가장 빠르지만 세밀하게 프로그래밍해야 한다는 단점이 있습니다. 하지만 하드웨어를 효율적으로 제어할 수 있기 때문에 많은 사람들이 이 언어를 배웁니다. 2. 어셈블리어 명령어 형식 어셈블리어의 명령어 형식은 다음과 같습니다. Label은 명령어나 데이터...2025.01.03
-
[A+레포트] 어셈블리어의 특징과 명령어 형식을 설명하시오.2025.01.131. 어셈블리어의 개념 및 특징 어셈블리어는 컴퓨터 아키텍처에 밀접하게 연관된 저수준 프로그래밍 언어입니다. 이는 기계어 코드에 대응하는 기호적인 명령어를 사용하여 프로그래밍을 수행합니다. 어셈블리어의 가장 큰 특징은 기계어와의 1:1 대응 관계에 있습니다. 이로 인해 프로그래머는 컴퓨터의 작동 원리와 메모리 구조를 정확히 이해하고, 이를 바탕으로 최적화된 코드를 작성할 수 있습니다. 그러나 어셈블리어의 사용은 코드의 가독성이 낮고, 작성 및 유지 보수가 어렵다는 단점이 있습니다. 2. 어셈블리어의 명령어 형식과 구조 어셈블리어의 ...2025.01.13
-
쓰레드 구현 모델과 쓰레드 폴링에 대해 조사하시오2025.05.151. 쓰레드 구현 모델 쓰레드 구현 모델은 운영체제에서 사용되는 것으로 사용자 수준, 커널 수준, 두 수준을 혼합한 방식이 있다. 사용자 수준 쓰레드는 커널 쓰레드를 지원하지 않는 운영체제에서 사용되며 다대일 쓰레드 매핑이다. 커널 수준 쓰레드는 사용자 수준 쓰레드가 가지는 한계를 해결하기 위해서 사용되기 시작했으며 일대일 쓰레드 매핑을 지원한다. 혼합형 쓰레드는 여러 개의 사용자 수준 쓰레드에 여러 개의 커널 쓰레드가 매핑되는 다대다 쓰레드 모델이다. 2. 쓰레드 폴링 쓰레드 폴링은 혼합형 쓰레드에서 사용되며 과부하를 줄여 프로그...2025.05.15
-
시스템 프로그램 어택랩(attack lab) 과제 보고서2025.05.081. Phase_1 Phase_1에서는 getbuf 함수에 오버플로우가 일어날 값을 입력하고 touch1의 주소값을 입력하여 touch1이 실행되게 한다. asm.txt 파일을 확인하여 getbuf와 touch1의 어셈블리 코드를 찾아 필요한 값을 입력한다. 2. Phase_2 Phase_2에서는 touch2 함수를 실행하기 위해 rdi 레지스터에 cookie 값을 넣어주고 touch2 함수로 이동하는 코드를 삽입한다. 이를 위해 gdb를 실행하여 getbuf 직전의 rdi 값을 확인하고, buffer.s 파일을 작성하여 필요한 값...2025.05.08
-
시스템프로그래밍 레지스터의 역할과 종류2025.05.091. 레지스터의 종류 레지스터에는 데이터 레지스터, 포인터 레지스터, 인덱스 레지스터, 플래그 레지스터, 세그먼트 레지스터 등이 있다. 데이터 레지스터는 일시적인 결과를 기록하고, 포인터 레지스터는 스택 포인터와 베이스 포인터로 구성되어 스택 조작에 사용된다. 인덱스 레지스터는 데이터의 주소를 저장하고, 플래그 레지스터는 연산 결과의 정보를 저장한다. 세그먼트 레지스터는 세그먼트의 시작 주소를 저장한다. 2. 논리주소와 물리 주소의 관계 8086에서 출력된 주소 데이터는 세그먼트 레지스터 값을 4비트 시프트 한 것에 오프셋 값을 가...2025.05.09
-
어셈블리언어(시스템프로그래밍) 과제-3 (라이브러리 활용과 조건부 처리 프로그램 작성)2025.05.111. 난수 생성 프로그램에서 Randomize를 이용하여 시작 시드값을 항상 변경하므로, 난수 생성 시 처음 시작할 때와 동일하지 않은 랜덤한 값들이 나오게 된다. 이를 통해 -100 이상 100 미만의 20개의 난수를 생성하여 화면에 10진수로 출력하는 프로그램을 작성하였다. 2. 메모리 덤프 DumpMem 프로시저를 사용하여 워드 배열과 더블워드 변수의 값을 출력하는 프로그램을 작성하였다. ESI에 시작 주소, EBX에 원소의 크기, ECX에 원소 개수를 저장하여 DumpMem을 호출하였고, 이를 통해 메모리 내용을 확인할 수 ...2025.05.11
-
어셈블러의 설계 알고리즘과 자료구조2025.05.131. 어셈블러의 설계 알고리즘 어셈블러는 두 개의 패스로 구성됩니다. 패스 1은 명령어 표를 참조하여 명령어들의 상대 주소를 결정하고, 기호표를 작성하여 기호의 재배치 여부를 결정하는 역할을 합니다. 패스 2는 명령어를 2진 코드로 대체하고 명령어의 기호를 기호표에 있는 값으로 대체하는 역할을 합니다. 2. 어셈블러의 자료구조 패스 1과 패스 2는 각각 다른 역할을 수행하므로 연관된 데이터베이스도 달라 각각의 자료구조를 갖습니다. 패스 1은 원시 프로그램, 명령어 및 지시어 표를 입력으로 받고 기호 표를 출력합니다. 패스 2는 패스...2025.05.13
-
레지스터의 역할과 종류2025.01.031. 레지스터의 역할과 특징 레지스터는 메모리의 일종으로 컴퓨터의 중앙처리장치 내부에 있는 여러 개의 비트로 이루어진 고속 데이터 기억장치로써, 소량의 데이터를 저장함으로써 용량은 다른 장치에 비해 낮다. 중앙처리장치는 연산을 위해 메모리에 있는 데이터를 레지스터에 옮기고, 연산을 하는 중 결과 값을 레지스터에 임시 저장한다. 레지스터는 CPU와 직접 연결되어있어 연산 속도가 가장 빠르며, CPU는 자체적으로 데이터를 저장할 수 없기에 연산을 위해서는 반드시 레지스터를 이용해야 한다. 2. 레지스터의 종류 레지스터의 종류는 그 쓰임...2025.01.03
-
매크로 프로세서의 기능에 대한 조사2025.05.071. 매크로 정의와 확장 매크로 프로세서는 프로그래머가 코드를 작성할 때 작업을 단순화하고 코드의 재사용성을 높이는 도구로 사용됩니다. 매크로 프로세서는 프로그램에서 자주 사용되는 코드 조각이나 패턴을 단순한 키워드로 정의할 수 있게 해줍니다. 이렇게 정의된 키워드는 나중에 코드에서 사용될 때 자동으로 원래의 코드 조각이나 패턴으로 확장되어집니다. 이 과정은 매크로 확장이라고 합니다. 매크로 확장의 장점은 코드 중복의 최소화, 가독성 향상 등입니다. 2. 매개변수화된 매크로 매크로 프로세서는 매개변수화된 매크로를 지원하여, 프로그래...2025.05.07