728x90

전체 글 494

메모리 시스템

Windows 시스템 메모리 운용 방법 가상 메모리 시스템 직접 활용 메모리 맵 File -> char * 로 맵핑해서 쓰는것 (비동기 쓰기) 힙 크기가 작은 데이터 (4kb 이하) 할당 시 매우 우용 할당 단위나 페이지 경계를 고려하지 않음 heap data structure 로 관리되고 있는 메모리를 의미 ram 이 16기가 라 하더라도 32 bit cpu processor 에서 process 는 4gb 정도로 최대로 할당 받기 때문에 4개의 program(process) 만 띄우더라도 꽉차게 된다. process가 할당 받은 VMS(virutal memeroy space) 에서 받은 user , 나머지 반은 kernel 이 가지게 되고 이 작업을 OS 나 compiler가 하게 된다. user sp..

Win32 파일 입/출력

디스크, 디렉토리, 파일열거 #include #include #include void LoadDiskInfo(const TCHAR* pszPath) { TCHAR szVolName[MAX_PATH] = { 0 }; TCHAR szFileSys[MAX_PATH] = { 0 }; TCHAR szRoot[MAX_PATH] = { 0 }; DWORD dwSerialNum = 0, dwMaxCompLen = 0, dwSysFlag = 0; memcpy(szRoot, pszPath, sizeof(TCHAR) * 3); ::GetVolumeInformation(szRoot, szVolName, MAX_PATH, &dwSerialNum, &dwMaxCompLen, &dwSysFlag, szFileSys, MAX_PAT..

스레드 동기화

기본 이론 임계구간 코드가 여러 스레드에서 동시에 실행되는 일을 막는것 연산 시점(혹은 종료) 감지 동기화 객체를 이용해 구현 Critical Section , Mutext, Semaphore, Event(Set/Reset 상태) Kernel Object라고 부른다. 스레드 실행 시점 동기화 T2 스레드에서 어떤 특정 시점 A,B에서 Set Event를 해주면 T1 스레드에서 해당 Event 객체를 WaitForSingleObject 에 넣어주면 Set 되는 순간을 알 수 있게 된다. UINT WINAPI ThreadFunction(LPVOID pParam) { HANDLE hEvent = pParam; std::cout

스레드 생성 및 제어

스레드에 대한 기본 이론 Win32 스레드 생성 한 Process는 최소 1개 이상의 Thread를 갖는다. 젤 처음 생성되는 메인스레드 Thread는 개별화된 흐름(문맥) 과 전용스택을 갖는 실행의 단위이다. 모든 Thread는 자신이 속한 Process의 가상 메모리공간을 공유한다. 개별 ID(부호가 없는 정수)와 핸들 -> 제어 용도 Win32 스레드 속성 ID, Handle 우선순위(highest, above normal) 상태 (run, suspended , terminated) 친화력 (Cpu core) 주로 gui 앱 같은곳에서 event loop 방식으로 해결함 -> gui event thread는 오래걸리는 작업들은 새로운 스레드에서 작업을 진행해서 반응성을 높게 해줌 스레드 생성 및 종..

기본 이론

대전제 (feat. 핸들) 결국 내가 작성하는 코드는 실행 주체이며 Process 이다. 주체가 아닌 나머지는 모두 객체 (대상체) 이다. 모든 객체는 주체가 생성/개방 할 수 있으며 사용 후 삭제하거나 닫는다. 자료형을 재정의 한게 굉장히 많다. F12 를 눌러서 windows.h, winnt.h 로 가서 어떤 자료형을 warpping 한것인지 확인하자 모든 객체 (프로세스 포함) 를 식별하는 것은 핸들(Handle) 이며 핸들의 실체는 결국 포인터이다. 핸들에 대한 토큰은 핸들이 식별하는 대상에 관한 정보를 담은 구조체로 이해한다. 보안 객체와 (보안) 기술자 보안 객체에 대한 정보 (객체의 소유자, 그룹, 보호 속성, 감사 정보) 를 의미 객체 소유자 및 그룹 보호속성 (Protection attr..

VPN과 네트워크 보안 솔루션

PN과 VPN 보안 서비스 기술 = 내부 사설망을 외부로부터 스스로 보호하고, 사용자 인증을 통한 접근통제가 가능해야한다. 데이터 인증 및 암호화 기술 = 사설망 간의 traffic을 무결성과 기밀성을 유지 하기 위해서, 모든 traffic에 인증 메커니즘을 적용하거나, 정보 유출의 방지를 위해서 암호화 할 수 있어야 한다. 터널링 기술 = 기존의 공개 네트워크에서 가상의 사설 망을 구성하기 위해서, 기존 네트워크에서 정보 이동이 가능하도록 정보를 캡슐화 하고 , 다시 풀어 내어 논리적으로 두 네트워크를 연결하는 기술(망연계) 이다. 이미 전세계로 연결되어있는 ISP를 통해서 암호화, 인증 기술을 통해 private하게 쓸 수 있다. IPSec VPN과 터널링 개념 IPSec 은 네트워크 계층에 보안 서..

부하분산 시스템 작동원리

L4 부하분산과 무정지 시스템 client가 LB에 접속을 시도하고 manager가 알려준 server로 접속을 하게된다. manager가 부하율이 어떤 sever가 적은지 감지하고 LB에게 알려주게 된다. server1이 고장나도 manager가 다른것으로 routing 해줄것이기 때문에 server1 을 수리하거나 앱을 재배포해도 문제없다. 하지만 LB가 고장이나면 다 무의미해진다. 그래서 보통 LB가 2개로 있고 이중화 되어 있어서 Single point of failure를 막게 된다. GSLB Global Sever Load Balancing DNS 체계를 활용하는 구조 각 서버들의 콘텐츠는 CDN을 활용해 동기화 하는 것이 대부분 CDN는 별도의 서버들이 글로벌하게 있을 때 content up..

인터넷 공유기 작동원리

공유기 작동원리 및 개요 일반적인 인터넷 공유기는 NAT(Network Address Translation) 기술이 적용된 장치이다. 보통 주소와 포트번호를 모두 제어한다. 인터넷 IP 주소 부족 문제를 해결해준다. 패킷 필터링 방화벽과 비슷한 보안성을 제공한다. 공유기 구조에 따른 분류 Cone NAT Host 단위로 외부포트 지정 Full Cone Restricted Con IP Address restricted Port restricted Symmetric NAT TCP 세션마다 외부 포트 지정 192.168.x.x , 172.16.x.x , 10.x.x.x 인 경우 private ip이다. public internet에서 이 대역의 ip를 쓰는 host가 없다는 것이다. Symmetric NAT ..

네트워크 장치의 구조

3가지 네트워크 장치 구조 Inline Packet + Drop/Bypass + Filtering packet이 inline device를 통과 하게 되는데 그것을 drop,bypass,할지 결정하는것이다. bypass 하더라도 filtering 을 하게되어 지정된 장소로 전달하게 된다. Router가 대표적이다. Out of path Packet + Read only , Sensor 읽기만 하게 된다. 보안, 장애 , 센서역할을 하게 된다. tab 스위치가 복사해준 packet 을 읽기만한다. 이 tab switch에 연결되는 네트워크 장치들이 주로 out of path 구조를 가지게 된다. Proxy Socket stream + Filtering file 수준 (mp3, jpg... ) 을 다룬다. ..

웹을 이루는 핵심기술

한 번에 끝내는 DNS 도메인 이름으로 검색해서 ipv4주소를 돌려줌 분산 구조형 데이터 베이스 데이터베이스 시스템 (DNS 네임 서버) 의 분산 구성 데이터의 영역별 구분(Domain Zone) 및 분산관리 도메인의 네임서버 및 도메인 데이터는 해당 관리주체에 의해 독립적으로 관리됨 트리 구조의 도메인 네임(Domain Name) 체계 Domain = 영역 , 영토를 의미 도메인 네임의 자율적 생성 생성된 도메인 네임은 언제나 유일하도록 네임체계를 구성 한번 조회된 DNS는 DNS Cache에 local 에 저장이 된다. ip 주소는 항상 유효기간과 함께 오게 된다. 보통 2시간 이런식으로 굉장히 짧다 hosts , DNS Cache 가 local 에 존재하면 DNS에 따로 물어보지 않는다. 그래서 안..

728x90