목록수업 과제 & 실습 (6)
ddongstudy

1. Newton Fractal 정의 2. CPU 구현 // CPU(점&픽셀) 최종 #include "..\usr\include\GL\freeglut.h" #include #include #include #include #include #include struct ucomplex { float real; float imag; }; const int width = 1024; float scope = 0.8; // 확대,축소 float pre_scope = 0.0; float* z = (float*)malloc(width * width * sizeof(float)); unsigned char Image[width * width * 3]; float dx = 0.0, dy = 0.0; // mouse move..

1. Julia Set 정의 2. CPU 구현 #include #include #include #include #include "..\usr\include\GL\freeglut.h" const int Dim = 1024; unsigned char Image[Dim * Dim * 3]; float Theta = 0.0; int MaxIter = 256; // 콜백 함수 void Render(); void Reshape(int w, int h); void Timer(int id); // 사용자 정의 함수 void CreateJuliaSet(); int Julia(float a, float b, float cx, float cy, float R); void GetColorRainbow(float t, int ..

1. Ray Tracing 알고리즘이란? 3차원 장면의 사실적인 랜더링을 위한 기법 픽셀에 도달하는 광선을 역으로 추적하여 픽셀의 색상을 결정하는 기법 하나의 픽셀에서 하나의 광선이 나와 픽셀의 색상을 결정한다 광선이 물체와 만나면 2차광선(반사, 굴절)이 생성되고, 이를 재귀적으로 추적하여 픽셀의 색상을 결정한다. 2. 구현에 필요한 개념 직선, 구, 평면의 방정식 계산 광선과 구, 광선과 평면의 교차점 계산 반사광 계산 굴절광 계산 (투명 물체에만 적용) Phong 조명모델 계산 3. 소스 코드 #include #include #include #include "..\2016112622_김동연\usr\include\GL\freeglut.h" #include "gmath.h" using namespace..

1. Banker's Algorithm의 등장배경 Program에서 자원 할당 시 Deadlock 상태의 발생을 피하고자 safety or unsafety 상태인지를 확인하는 알고리즘이 필요하다. 2. 소스 코드 #include #include #include using namespace std; typedef struct inform { int* allocation; // 할당된 자원 int* max; // 최대 필요 자원 int* need; // 필요 자원 }inform; int p_num; // 프로세스 개수 int rtype_num; // 리소스 타입 개수 inform* process; // 프로세스 배열 int* available; // 이용 가능한 리소스 저장 배열 int* total; //전..

1. CPU 스케줄링의 목적 Multiprogramming을 할때 CPU사용을 최대화 하기 위해 CPU 스케줄링 알고리즘이 필요하다. 2. CPU 스케줄링 알고리즘별 특징 First - Come - First - Served (FCFS) FIFO 구조로 먼저 들어온 process 먼저 처리하고, 선점이 발생하지 않는다. 시분할 시스템에서 사용하기에 부적합하다. 프로세스 실행 순서에 따라 성능 차이가 크다. 오버헤드가 적다. Shortest Job First (SJF) 다음 CPU Burst Time이 가장 적은 프로세스에 CPU가 할당된다. 선점이 발생한다. Minimum Average Waiting time 을 구하는데 최적의 알고리즘이다. 다음 CPU 요청 길이를 파악하기가 어려운게 단점이다. pri..

멀티스레드를 두 번 이용하여 40개의 웹페이지를 크롤링하는 프로그램을 만들어보자. 웹 크롤링이란 웹페이지네 데이터를 추출하여 가공하는 행위를 말한다. JAVA JSOUP Library를 이용하여 1980년 ~ 2019년까지 genie차트에서 원하는 가수의 랭킹을 출력하는 프로그램을 만들어 보았다. 1. 멀티스레드를 이용하는 지점 웹 페이지를 크롤링할때 각각의 스레드는 1개의 URL 주소를 할당받고 크롤링하는 작업을 진행한다. 웹 페이지에서 크롤링한 데이터를 이용하여 원하는 검색어를 탐색할 때 각각의 스레드는 1개의 URL 주소를 크롤링한 결과에서 원하는 검색어를 탐색하는 작업을 진행한다. 2. 프로그램 구성 클래스 WebCrawling Class WebCrawling Class는 프로그램의 전반적인 진행..