학부_대학원 (121) 썸네일형 리스트형 Graph - DFS Depth First Search [DFS] 깊이 우선 탐색이다. 1. 시작인 정점을 정한다. 2. 방문한 정점은 visited 했다고 설정 해준다. 방문한 정점은 stack에 push한다. 3. 방문한 정점의 인접한 Vertex를 확인한다. 4.. [인접한 Vertex가 없을 경우] stack에서 pop해서 이전 정점으로 돌아간다. 다른 인접 정점이 있는지 확인한다. 5. [인접한 Vertex가 있을 경우] 2번으로 돌아간다. 이를 구현 할 때는 stack을 사용해서 구현하며 동작은 "처음 시작했던 정점"으로 돌아오게 되면 그만한다. stack이니까 당연한 이야기이다. [그래프] 위와 같은 그래프의 깊이 우선 탐색을 알아보기 위한 소스코드이다. 12345678910111213141516171819202.. 연결리스트 - Graph 연결 리스트를 이용해서 그래프를 표현 배열로 포현하면 복잡도가 O(n^2)이 되는데, 연결 리스트로 표현하면 O(n)이 되서 효율적 [그래프] 위의 [그래프]를 각 Vertex 마다 Adjacent한 Vertex를 연결리스트로 표현한 그림은 밑에 그림이다. 간단하게 각 Vertex마다 Head Node를 만들고 연결 리스트로 Adjacent 한 Node를 연결하면 된다. [Adjacent Vertex를 연결 리스트로 표현] 설계없이 그냥 막 짜서 더럽다. #include "stdio.h" #include "stdlib.h" #include "string.h" #define MAX 30 //A-B-C 인접 연결 Node typedef struct Graph_Node { //현재 Vertex char Ver.. 프로세스간 통신 IPC - Shared Mem IPC(Inter-Process Communication)이란 영어 번역 그대로 프로세스간 통신을 말한다. 동일한 바이너리를 실행해도 전혀 다른 메모리를 사용하면서 서로 침범할 수 없다. 하지만 프로세스끼리 통신을 하기 위해서 여러가지 방법이 존재한다. 그 중 이번에 알아볼 내용은 메모리의 공유를 이용한 방법이다. FILE MAPPING을 이용하여서 메모리를 공유를 할 것이다. 그럼 FILE_MAPPING이란 무엇인가? FILE MAPPING이란 파일을 메모리에 연결하여 메모리에 입출력을 하면, 디스크와 직접 연결되어 있어 디스크에도 입출력이 이루어지는 기능을 말한다. [참고1]이를 잘 나타낸 그림이 MS에 나와 있어 가져왔다. 즉 하나의 메모리 조각을 같이 공유 함으로써, 데이터를 공유 할 수 있는 것.. 캐시[Cache]란? 캐시를 설명하기에 앞서 사상(Mapping)이라는 용어에 대해서 알고 들어가려 한다.사상이라고 하면 보통.. 그.. 사상.. 우리가 생각하는 사상을 많이 생각했다. 하지만 컴퓨터 용어에서사상이란 사상(寫像, mapping)이란 가상주소와 물리주소의 대응 관계 또는 가상 주소로부터 물리 주소를 찾아내는 일을 말한다. 해당 용어는 프로세스간 통신(IPC)에서 공유 메모리를 이용한 방법에서도 많이 나온다. 캐시[Cache]란?프로그램이 수행될 때 나타나는 지역성을 이용하여 메모리나 디스크에서 사용되었던 내용을 특별히 빠르게 접근할 수 있는 곳에보관하고 관리함으로써 이 내용을 다시 필요로할 때 보다 빠르게 참조하도록 하는 것이다. [참고2]쉽게 풀어서 설명하면 사용되었던 데이터는 다시 사용되어 질 가능성이 높다.. 동기화 vs 비동기화 컴퓨터 문서를 읽다 보면 운영체제 뿐만 아니라 여러 부가적인 요소에서 동기화와 비동기화에 관한 내용이아주 아주 많이 나온다.하나의 용어로 완벽하게 설명하기가 좀 어려워서 I/O 동기화 방식과 비동기화 방식을 접하게되어서이와 관련하여서 내용을 정리하고자 한다. 이와 관련해서 설명하기 전에 블로킹[Blocking] 함수에 관해서 알아 보고자 한다.소켓 프로그래밍을 만들면서 recv 함수를 사용하면서 블로킹 함수로서 사용 하였다. * 물론 블로킹 함수를 사용할지 말지를 선택하는 것은, 어떠한 프로그램이냐에 따라 다르게 선택해야한다.* 공격 payload를 작성할 때는 블로킹 함수를 사용 했다.블로킹 함수는 한번 호출되고 나서 해당 역할을 완료 될 때까지 return 하지 않고 기다리는 것이다.즉 해당 코드를 .. IDS vs Firewall 침입 탐지 시스템(Intrusion Detection System, IDS)과 방화벽(Firewall)을 비교하고자 한다. 침입 탐지 시스템(Intrusion Detection System, IDS)해당 이름을 잘 보면 Detection이라고해서 검출만 할 수있다. 즉 이말은 유해한 데이터가 전송되어도 Alert와 같이 경보만 할 수있지 실제로 막을 수없다. 방화벽(Firewall)IDS와는 다르게 데이터들을 확인하면서 유해한 데이터나 정책에 맞지 않는 경우막을 수있다. IDS와 Firewall의 구성도Firewall은 막을 수 있어야 한다. 즉 일자로 통로를 배치 해야지만 막을 수 있다는 말이다.라우터나 스위치에 Firewall기능을 추가 할 수도있고, 아니면 그 외로 일자 라인으로 구성 할 수도 있다.. System Bus[버스란?] 버스란?!컴퓨터를 공부하다 보면 I/O 버스, PCI 버스 등 기본적으로 많이 사용되는 용어이다.이를 명확히 하고자 정리한다. Computer Bus란?CPU가 처리한 데이터들은 모니터에 출력되거나 메모리에 저장되어 진다.이러한 행위가 이루어 지기 위해서는 위의 데이터들이 각 컴포넌트끼리 통신이 가능 해야한다.이러한 통신을 가능하게 해주는 Subsystem이 존재한다.또한 이러한 Subsystem을 Computer Bus라고 한다.즉 버스는 데이터를 통신할 수 있게 해주는 시스템이다.*컴포넌트란? http://richong.tistory.com/60 Bus의 종류 [더 많을수도..]System BusCPU와 메모리를 연결하는 Subsystem을 System Bus라고 명명한다.I/O Bus메모리와 다른 .. SSL[Secure Socket Layer] SSL[Secure Socket Layer]말 그대로, 안전한 소켓을 위한 층을 말한다. IP Sec 처럼 원래 있단 층을 수정, 교정하는 방식이 아닌.새로운 층을 만들어서 기밀성과 인증을 제공하는 개념이다. 새로운층에서 단편화, 압축, 인증, 암호화 등을 수행하게 된다.우리가 안전한 사이트에 들어가면 나오는 HTTPS와 같은 경우가 대표적인 예이다. SSL의 구성해당 층은 2개의 층으로 세분화 되어 진다. 하나의 층은 제어 프르토콜[Control Protocol]과 관련된 상위 층, 다른 하나는실제 암호화, 압축, 무결성 등을 제공하는 레코드 층[Record Layer]으로 나누어진다.SSL Key 관계와 용어 정리사전마스터키[PreMasterKey] : 클라이언트 측에서 생성하는 사전 키이다. 해당 .. 이전 1 ··· 7 8 9 10 11 12 13 ··· 16 다음