본문 바로가기

전체 글

(388)
C++ 사용에 대한 이해 C언어가 있는데 왜 C++언어가 생겨 났을까? 수업시간에 들은 이야기이다. 문법적인 내용은 필요에 의해서 나중에 배우게 되어있다. 하지만 왜 필요한지를 모르면 쓸모 없는거와 같다. 그러니 왜 필요한지에 대해서 고민을 해라 생각해보면 맞는 말이다.. 그리고 문법적 요소나 리버싱 관점에서 어떠한 차이가 있을까? 하나 하나 정리 해보려 한다. C++을 사용하는 목적은 무엇일까? 시대가 변화함에 따라서 기술이 빠르게 변화하고 있다. 이에 발 맞추어서 뛰어나고 빠른 속도를 지향하고 있다. 이 것을 한마디로 설명하면 생산성이라고 할 수있다. 그러면 생산선의 요소에는 무엇이 들어 갈까? 생산성의 요소빠른 생산개발자 입장 : 프로그램을 빨리 개발 --> 회사, 사용자 : 이익을 얻음, 더욱 편리성 제공 적은오류빠르게 ..
암호학 정리 암호의 특성[Cryptographic Property] Confidentiality키를 모르는 제3자가 암호문을 올바르게 읽을 수 없음 Authentication수신자에게 정당한 사용자/메시지임을 증명상대방 인증, 메시지 인증 Integrity전송도중 변화/수정되지 않았음을 증명허락된 사용자만이 메시지 수정 가능 Non-repudiation송/수신자가 메시지의 송/수신을 부인할 수 없음 암호 해독[Cryptanalysis] Cryptanalytic attacks암호문 단독 공격[Ciphertext-only attack]암호화 키를 추측하는데 목적이 있음암호문을 많이 수집하여 가능한한 많은 평문을 획득 기지 평문 공격[Known-plaintext attack]공격자가 여러 암호문과 그에 대응하는 평문을 알..
Graph[그래프] 1학년 때 배우고 이게 중요한지 알게된건 4학년 뭐하며 산것인지... 에휴 필요한 개념이여서 천천히 정리하자. 주로 영어 용어로 정리하고 익숙하게 해야 할거 같다. 한글에 익숙해있어서 어려울거 같다. 그래프의 개념 Graph Vertex or Node[꼭지점]로 서로 다른 Vertex와 연결되는 edge[변]로 연결된 것. 인접[adjacent]과 근접[incident] adjacent는 서로 다른 Vertex를 연결하는 edge가 있는 경우를 말한다. vertex u와 v가 있고 이를 연결하느 edge e가 존재 할때, edge e는 vertex u,v에 incident라고 한다. Loop[루프] 근접하는 점이 같은 점인 변 walk[길] 그래프에서 꼭지점 Vi와 Vi+1을 연결하는 변을 Ei라고 할 ..
Overriding vs Overloading 두개의 이름이 비슷하다. 출제 되었다고는 하는데 명확하게 정립되어 있지 않아서 정리하고자 한다. Overloading 해당 개념은 sum이라는 이름의 함수가 있다. 하지만 각 매개변수에 따라서 다른 연산을 하고 싶다. float 형의 인자일 경우 int 형의 경우 모두 다르게 처리하고 싶은 sum 함수를 처리 할 때 하는 것이다. Overriding 해당 개념은 부모의 클래스를 상속 받았을 때 사용 하는 개념이다. 해당 부모 클레스에서의 메소드를 자식 클래스에서 재정의 해서 사용하는 것이다.
가상 메모리 to 물리 메모리[3] 앞에 설명한 내용을 통해서 Linear Address를 구했다. 이제 Paging을 통해서 최종 목표인 Physical Address를 구하도록 한다. Paging이라고 하면 무엇을 의미하는가? 가상 주소를 블록 단위[Page]로 메모리를 관리하는 방식을 의미한다. 바꿔 말하면 Linear Address[선형주소]룰 물리주소를 바꿔서 관리하는 방식? 그러면 왜 이런 Paging 이라는 기법을 사용하는가. 무슨 이득이 있길레? 단편화[Fragmentation]의 발생을 줄여 메모리를 효과적으로 사용한다. 내부 단편화, 외부 단편화 설명 [http://richong.tistory.com/admin/entry/post/?id=44] 그리고 메모리를 페이지 단위로 사용 하기 때문에, 해당 페이지 번호만 알면 메..
크리티컬 섹션 vs 뮤텍스 vs 세마포어 스레드 동기화 방법 User Mode Synchronization[유저모드 동기화] 동기화를 하는 과정에서 커널의 자원을 이용하지 않고 수행 --> 커널모드로 전환이 이루어 지지 않기 때문에, 성능상의 이점 Kernel Mode Synchronization[커널모드 동기화]동기화가 진행되는 과정에서 커널의 자원을 이용 --> 커널모드로 전환이 이루어 지기 때문에, 성능상의 저하가 발생유저 모드에서 제공하지 못하는 기능 제공 임계영역이란?두개 이상의 스레드가 동시에 접근해서는 안되는 공유 자원 영역두개의 스레드가 동시에 임계영역에 접근할 경우 문제가 발생할 수 있음 EX)하나의 변수에 10이라는 값이 저장A 스레드는 하나의 변수에 값을 더하기 하는 역할B 스레드는 하나의 변수에 값을 빼기 하는 역할 만약에..
가상 메모리 to 물리 메모리[용어] 보호되어 있는 글입니다.
중앙값 정리 보호되어 있는 글입니다.