전체 354

[Pintos Project][Getting Start] Need to reading about the "Interrupt" document.

Pintos Project를 시작하기 전에 반드시 알아야 하는 것이 있다. interrupt에 대한 것인데, 문서를 보자면 다음과 같다. 간단하게 동기화 하는 방법은 바로 interrupt를 disable하는 것이다. 이 방법은 임시로 cpu가 interrupt에 응답하는 것을 막는다. 만약 interrupt가 Off되면, 모든 스레드들은 실행 중에 있는 스레드를 선점하려 하지 않는다. 스레드 선점은 timer interrupt에 의해 주어지는 것이기 때문이다. 만약 interrupt가 On이면, 그들은 일반적인 스레드로 변할 것이다. 그리고 실행되는 스레드는 아마 아무때나 다른 스레드들에 의해 선점될 것이다. (CPU 점유를 말하는 것 같음) 이는 2개의 C 구문 사이 또는 하나의 execution 내..

OS/Pintos Project 2014.04.12

[C, C++] More Effective C++ Item28 : Smart Pointer

스마트 포인터는 보통의 포인터처럼 생겼고 보통의 포인터처럼 동작하고 보통의 포인터처럼 느껴지지만 사실 엄청난 기능을 제공하도록 설계된 객체이다. 리소스 관리 등에 사용된다. 스마트 포인터를 쓰는 이유는 다음과 같다.생성과 소멸, 복사와 대입, 역참조 작업을 조절할 수 있기 때문이다. 스마트 포인터는 C++ 기본 제공 포인터처럼 타입이 명확해야 하기 때문에 템플릿 기반으로 만들어 진다.스마트 포인터를 생성하는 방법은 가리킬 객체를 스마트 포인터의 내부에 있는 더미 포인터로 가리키도록 하는 것이다. 1. 생성, 대입, 소멸스마트 포인터의 복사 생성자, 대입 연산자, 소멸자를 구현하는 방법은 소유권이라는 것 때문에 복잡하다. 스마트 포인터는 소멸될 때, 가리키던 객체를 삭제해야 한다. 하지만 이는 그 객체가 ..

C, C++ 2014.03.30

[C++][추후 추가해야 함] More Effective C++ Item 26 : 클래스 인스턴스의 개수를 의도대로 제한하는 방법

객체를 전혀 생성하지 않거나 단 한 개만 생성하는 방법특정한 클래스의 객체가 생성되지 않도록 막는 방법 중 하나는 생성자를 private으로 선언하는 것이다.class PrintJob;class Printer{public:friend Printer& thePrinter();private:Printer();Printer(const Printer& rhs);}; Printer& thePrinter(){static Printer p;return p;} 이렇게 하면 하나로 제약을 넣을 수 있다. 언제든지 thePrinter() 함수를 호출하면 된다.이 코드 설계에 필요한 키 포인트는 세 가지이다.- Printer클래스의 생성자가 private이다. : 다른 곳에서는 객체 생성 불가- thePrinter 함수가 ..

C, C++ 2014.03.16

[C++] More Effective C++ Item 25 : 생성자 함수와 비 멤버 함수를 가상 함수처럼 만드는 방법

More Effective C++ Item 25 생성자의 호출은 만들고자 하는 객체의 타입을 정확히 아는 상태에서만 가능하다.가상 생성자라는 것은 사실 뭔가 이상하다..생성자라는 것은 객체가 생성될 때 호출되야 하는 것인데 이걸 가상으로 한다는 건.. ㅎㅎ여기서 말하고 싶은 가상 생성자는 그런 일반의 생성자와는 거리가 좀 있다. 여기서 말하는 가상 생성자는 사실 '가상의 타입을 토대로 객체를 생성하는 함수'를 그렇게 부른 것이다.물론 객체를 생성하는 것이기 때문에 생성자처럼 동작해야 하는 것은 맞다. 그렇기 때문에 가상 생성자라고 부르는 것이다. 이 가상 생성자 중에 가장 많으 쓰이는 것이 바로 가상 복사 생성자이다.포인터가 실제로 가리키는 타입에 맞게 객체를 복사하고 싶다! 할 때 쓰인다.가상 복사 생..

C, C++ 2014.03.16

[펌][OpenGL Tip] OpenGL Font 재미있는 사실

출처 : http://aslike.egloos.com/2762856 오늘... 우연히 발견했지만 같은 OpenGL코드도 그래픽카드 제품군에 따라 다르게 처리된다는 엄청난(?) 사실을 발견하게 되었다 폰트를 출력하면서 발견한 것인데 일단 초기화 코드를 보자 1: int InitGL(GLvoid) 2: { 3: glClearColor (1.f, 0.f, 1.f, 0.0); 4: glEnable(GL_BLEND); 5: glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); 6: 7: // 문제가 되는 부분!! // 8: glPixelZoom(1, -1); 9: ///////////////////// 10: 11: glMatrixMode(GL_MODELVIEW); 12: gl..

OpenGL 2014.02.25
반응형