PowerPoint 프레젠테이션

Similar documents
Chapter #01 Subject

슬라이드 1

슬라이드 1

1장. 유닉스 시스템 프로그래밍 개요


HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

제1장 Unix란 무엇인가?

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

10.

Unix Network Programming Chapter 4. Elementary TCP Sockets

[Brochure] KOR_TunA

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

2009년 상반기 사업계획

6주차.key

Microsoft PowerPoint - 12 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 1.ppt

11장 포인터

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

K&R2 Reference Manual 번역본

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

화판_미용성형시술 정보집.0305


Microsoft PowerPoint - 발표_090513_IBM세미나_IPTV_디디오넷_완료.ppt

chap 5: Trees

제11장 프로세스와 쓰레드

Frama-C/JESSIS 사용법 소개

Chapter 4. LISTS

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

The Pocket Guide to TCP/IP Sockets: C Version

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Chapter_02-3_NativeApp

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

13주-14주proc.PDF

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - a10.ppt [호환 모드]

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Adobe Flash 취약점 분석 (CVE )

chap7.key

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

UI TASK & KEY EVENT

UI TASK & KEY EVENT

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

PowerPoint 프레젠테이션

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Microsoft PowerPoint - C++ 5 .pptx

The Pocket Guide to TCP/IP Sockets: C Version

Embeddedsystem(8).PDF

Slide 1

PowerPoint 프레젠테이션

03장.스택.key

Microsoft PowerPoint - Chapter_09.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx


Abstract View of System Components

Microsoft Word - Network Programming_NewVersion_01_.docx

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

02장.배열과 클래스

untitled

The Pocket Guide to TCP/IP Sockets: C Version

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

윈도우시스템프로그래밍

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

윤성우의 열혈 TCP/IP 소켓 프로그래밍

제1장 Unix란 무엇인가?

PowerPoint Template

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

API 매뉴얼

PowerPoint 프레젠테이션

< F325FBABB5F C7E0B0A8B0E1B0FABAB8B0EDBCAD5B315D2E687770>

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

제12장 파일 입출력

Lab 5. 실습문제 (Double linked list)-1_해답.hwp

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

Microsoft PowerPoint - chap11-포인터의활용.pptx

KEY 디바이스 드라이버


/chroot/lib/ /chroot/etc/

Chapter 4. LISTS

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

PowerPoint Presentation

Microsoft PowerPoint - 03-TCP Programming.ppt

슬라이드 1

목 록( 目 錄 )

03-1영역형( )

02-1기록도전( )

PowerPoint Template

슬라이드 1

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - chap10-함수의활용.pptx

Transcription:

영상플랫폼구조개선적용기술 2015/06/05 엠앤엘솔루션

부하분산 지정된특정포트로 스트리밍 하는의부하분산방법으로전처리클로닝 & 소켓이관 1) listen 2) connect 3) accept 2) connect 3) accept 1) listen handover ( ufd, void *ptr, size_t nbytes, fd, char *path) struct sockaddr_un sun; val; struct msghdr msg; struct iovec vec; union struct cmsghdr cm; char control[cmsg_space(sizeof())]; control_un; 5) close struct cmsghdr *cmptr; 4) forking sun.sun_family = AF_UNIX; strcpy(sun.sun_path, path); 4) h/o msg.msg_name msg.msg_namelen = &sun; = sizeof(sun); 서비스별 forking하는구조로서자원소모가많음 ( 전체복사 ; 메모리, CPU) 시간지연요소발생 w/ Unix domain Socket 사전에미리생성적절한분배규칙에의해분산연결된소켓정보를이관 vec.iov_base = ptr; vec.iov_len = nbytes; msg.msg_iov = &vec; msg.msg_iovlen = 1; msg.msg_control = control_un.control; msg.msg_controllen = sizeof(control_un.control); msg.msg_flags = 0; cmptr = CMSG_FIRSTHDR(&msg); cmptr->cmsg_level = SOL_SOCKET; cmptr->cmsg_type = SCM_RIGHTS; cmptr->cmsg_len = CMSG_LEN(sizeof()); *(( *) CMSG_DATA(cmptr)) = fd; return(sendmsg(ufd, &msg, 0));

프로세스경량화를통한고용량시스템 가입자서비스단위별프로세스생성방식에서그룹별프로세스생성 / 관리, 동일자원대비고집적구현 해시함수 #define HashIsp(d,x) #define HashOsp(d,x) (atoi(&(d)[0]+ter_id_len-4)%x) (atoi(&(d)[0]+ter_id_len-4)%x) instream outstream ter_id ter_token user_id user_token 그룹그룹그룹 가입자서비스별로프로세스를생성하므로자원을많이소모하고에관리 / 분배역할집중, 가재기동할경우이전의프로세스를관리할수없음. 가입자와관련된키 (KEY) 를기반으로분배, 는빠르게부하분산에집중최소한의관리정보를취하고그룹에서관리재기동이후관리가능는그룹의쉘 (SHELL) 로동작하며, 그룹프로세스의이상상황감지시재기동작업을수행 ISA OSA 영속성 VOC ter_id ter_token user_id user_token mac RTSP URL 내부세션관리를위한호환키로서 ter_id 고객응대관련키로 user-id mac 사용

실시간자료색인및검색속도개선 메모리, 오픈해시기반빠른검색 #define sockhashfunc(d) ((d) % MAX_HASH) #define keyhashfunc(d,l) (atoi(&(d)[0]+l-4)%max_hash) typedef struct pthread_mutex_t lock; X X X X 환형큐방식의 linked-list 구조체사용 Pending 자료 ( 대부분대기열소켓 ) 가많아질경우급격한성능저하발생 X X X X X X X X 해시 array 에 linked-list 를연결한방식 해시함수를이용, 적절히분배하면 O(1) 검색속도 예 ) array 크기가 256 개에 linked-list depth 가 4 이면 1024 가입자의빠른검색이가능, 자원손실최소 u8_t priv[0]; u8_t mac [MAC_LEN+4]; u8_t ter_id [TER_ID_LEN+4]; u8_t ter_token [TER_TOKEN_LEN+4]; u32_t user_id; u8_t user_token [USER_TOKEN_LEN+4]; char url[short_url_len+4]; // URL char sdp[bufsiz]; // SDP retry; up_bytes; up_packets; dn_bytes; dn_packets; struct list_head til; // ter_id struct list_head ttl; // ter_token struct list_head uil; // user_id struct list_head utl; // user_token struct list_head csl; // control socket struct list_head ssl; // stream socket struct list_head rsl; // relay socket struct list_head tsl; // trigger socket 적용된 linked-list 기법은 Linux 커널에서사용 검증된 list.h 사용 sockh_t *csock; sockh_t *ssock; sockh_t *rsock; sockh_t *tsock; keyh_t; // 자료예시 // control // stream // relay (ISP <-> OSP) // trigger (EB)

효율적인타이머기술적용 주기적작업, 재전송등의작업에효율적인전역타이머적용 에서의 Keep-alive / call-check 구현예시 ) 프로세스 timer #define MAXCB 10 void cbfn(char* d) struct timeb t; ftime(&t); prf("%d.%03d : (-) %s \n",t.time,t.millitm,d); worker worker 컨텍스트데이터 프로세스별타이머존재, worker thread 는모든메시지의시각을 timer 컨텍스트에남기고, 타이머가무한루프를돌면서 현재의시각과비교하는방식으로구현 X X X X 타이머등록 ( 콜백함수, expired time/msec) 타이머등록 ( 콜백소켓, 데이터, expired time/msec) 프로세스 독립적인타이머 thread 존재, 등록함수에따라 timer 가직접콜백함수를실행 또는콜백소켓으로데이터를만료시간에전달해줌 최적성능을위하여등록시, 만료시간을기준으로 Sorting 하고 timer thread 가일정주기로 wake 하여 현재시간이전작업을순차적으로처리 main() tid[maxcb],i; char p[maxcb][20]; struct timeb t; for(i=0;i<maxcb;i++) ftime(&t); sprf(p[i],"hello-%02d",i); tid[i] = set_cb_timeout (cbfn, p[i],1000*(i+1)); prf("%d.%03d : (+) %s (callback after %7.3f sec)\n", t.time,t.millitm,p[i],(float)1000*(i+1)/1000); while(1) sleep(1);

인터페이스추상화모델및개발관리방안제시 스트리밍구성요소인 inbound/outbound streamer 인터페이스추상화제시 ISP ISA ISP ISA OSP OSA 공통모듈 ( 라이브러리 ) 각프로세스파일구조 ( 모두동일 ) main.c 메인함수 init.c 초기화및종료관련 ( 자료형 /DB/ 로그 / 환경설정 / 시그널관리 ) cock.c 논리코드 ( 소켓관련처리 ) command.c 커맨드, 명령어처리관련 Fsm.h 유한상태기계 (Finite State Machine) 정의및콜백함수지정 config.c 환경설정수행부 config.h 환경설정정의 OSA OSP 재사용가능공통모듈없음개발방법론부재에따른프로그램가독성떨어짐 실제각프로세스는대부분논리코드만존재, 작업의대부분을공용화하여라이브러리화 전체스트리머의인터페이스추상화모델개발 / 구현 제어 (control) 스트리밍 (streaming) C S 서비스요청 (trigger) T 인터페이스모델 U R 릴레이 (ISP/OSP) (relay) ISP/ISA 통신 (UNIX domain socket) 라이브러리구성 db.c 데이터베이스 ODBC wrapper/api 함수 hash.c/h 스트리밍관련해시함수 list.h 리눅스커널함수를사용자스페이스로포팅 cctv.c/h CCTV 관련 API/ 라이브러리 rtsp.c/h RTSP 관련클라이언트 / API 함수 timefmt.c/h 각종시각포맷변환함수 sock.c/h 소켓관련 API 함수 seed.c/h 암호화관련함수 premmc.c / mmc.c 커맨드라인기반명령어처리파서 / 함수 rc.c/h 자원관리함수 proc.c/h 프로세스관리함수 log.c/h 로그 /TLO 관련함수 util.h 각종매크로유틸리티

fsm (finite state machine) 을적용한상태천이관리 복잡한논리단계를코드에쉽게적용가능 유한상태관리기자료형 : 특정상태에서이벤트를수신하면해당콜백함수가수행되는구조 클래스기반의복잡한논리구조로설계구현각메시지별로클래스정의기능단위별로워크 thread가작성되어있으므로, IPC ( 각객체 / 클래스 / 별로고유의메시지큐및내부버퍼를사용 ) 의단계가복잡하고지연요소가발생 협상메시지송 / 수신기반시스템에서유한상태기계를사전에정의하고, 상태와이벤트에의해서수행할작업 (action) 과상태천이를수행하도록설계 / 구현함 typedef struct status; event; (*cbfunc)(void*, void*); next; fsm_t; ISP/OSP 에서 Relay negotiation 하는유한상태기계자료정의 static fsm_t rfsm[] = ; OPEN, UP, cbsendtypereq, SENT(REQ(SEND_TYPE)), SENT(REQ(SEND_TYPE)), RCVD(RES(SEND_TYPE)), NULL, RCVD(RES(SEND_TYPE)), RCVD(RES(SEND_TYPE)), RCVD(REQ(SDP)), cbusertokenreq, SENT(REQ(USER_TOKEN)), SENT(REQ(USER_TOKEN)), RCVD(RES(USER_TOKEN)), NULL, RCVD(RES(USER_TOKEN)), RCVD(RES(USER_TOKEN)), RCVD(REQ(STRM_START)), cbstartstrmresp, ESTABLISH, RCVD(REQ(STRM_START)), cbstartstrmresp, ESTABLISH, ESTABLISH, RCVD(REQ(STRM_STOP)), cbstopstrmresp, ESTABLISH, 0, 0, NULL, 0 ESTABLISH,