일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Lua
- meta table
- 등록임대주택
- QT TCP
- 프리미어 영상저장
- 프리미어 영상변환
- 엑스퍼트생일축하해
- lua interpreter
- 국토교통부
- TCP/IP
- 찾다죽는줄
- 엑스퍼트2주년
- lua install
- #신혼부부 #결혼준비 #신혼부부희망타운신혼부부특별공급
- #부동산전자거래 #부동산전자계약 #부동산계약 #부동산전자계약방법 #부동산전자계약하는법 #부동산계약방법 #부동산중개수수료 #부동산중개수수료아끼기 #부동산복비아끼기
- 중소규모택지
- 티몬삼겹살데이
- C++ API
- file open
- C API
- lua for windows
- file read
- object
- 청량리역한양수자인192
- QTcpServer
- FILE TRANSFER
- 수도권주택공급
- file write
- 월세
- lua setup
- Today
- Total
목록1. 프로그래밍/4) Network (27)
Value Creator의 IT(프로그래밍 / 전자제품)
I/O 이벤트 통지 모델 이벤트 통지 모델은 Non-Blocking에서 제기된 문제를 해결하기 위해서 고안되었다. I/O처리를 할 수 있는 소켓(혹은 파일 디스크립터)을 가려내서 가르쳐준다면, 다시말해 입력 버퍼에 데이터가 수신되어서 데이터의 수신이 필요하거나, 출력버퍼가 비어서 데이터의 전송이 가능한 상황을 알려준다면, 위에서 이야기한 구조보다 더 단순하고 효과적으로 다중 I/O모델을 처리할 수 있을 것이다. I/O 이벤트를 통지하는 방법은 크게 동기형 통지모델과 비동기형 통지모델로 나눌 수 있다. 위의 모든 반환이 I/O의 진행시간과는 관계없이 빠르게 동작하기 때문에, 유저 프로세스는 자신의 작업을 오랜시간 중지하지 않고도 I/O 처리를 수행할 수 있다. 동기형 통지모델 동기(synchronous)와..
1. 멀티프로세스의 특징 프로세스 신규 생성은 운영체제가 부담을 느끼는 작업이다. 프로세스 마다 독립된 메모리 공간을 보유하기 때문에 프로세스 사이에서 메시지를 주고받는 구현이 어렵다. (별도의 IPC 기법을 적용해야 한다.) 컨텍스트 스위칭을 하기 때문에 CPU에 부담이 많이 된다.(컨텍스트 스위칭은 CPU를 매우 작은 시간 단위로 프로세스 끼리 나눠서 사용하는 것이다. 때문에 사용자는 수많은 프로그램이 동시에 실행되는 것처럼 보이는 것이다.) 2. 쓰레드의 특징 쓰레드는 경량화된 프로세스이다. 쓰레드의 생성 및 컨텍스트 스위칭은 프로세스의 그것보다 빠르다. 쓰레드 사이의 데이터 교환은 특별한 기법이 필요하지 않다. 프로세스의 스택 영역만 분리시키면 다음과 같은 장점이 있다. - 컨텍스트 스위칭시 데이..
네트워크 바이트 순서 (Byte Ordering) T heory/Network 설정 ■ 시스템이 내부적으로 데이터를 표현하는 방법 (1) 바이트 순서 : 바이트 순서는 데이터가 바이트 단위로 메모리에 저장되는 순서를 의미한다. - 크게 Big Endian과 Little Endian 방식이 존재하며, 각 CPU 벤더 의존적인 특징을 가지고 있다. - Little Endian을 사용하는 대표적인 벤더가 '인텔(AMD)'계열의 80x86시스템이고, - Big Endian을 사용하는 대표적인 벤더가 '모토로라 or IBM'계열의 Power PC 시스템이다. - Network Protocol은 Big Endian, ARM은 대부분 Little Endian이다. (2) Big Endian : 데이터가 상위 바이트 ..
http://lily.mmu.ac.kr/lecture/ 강의 관련 lily.mmu.ac.kr '지난 강의' 페이지로 가면 많은 자료가 있음
쓰레드란? 1. 경량화된 프로세스(컨텍스트 스위칭이 빠르다.) 2. 쓰레드끼리 메모리 공유가 가능하다. 3. 프로세스 내에서 프로그램 흐름을 추가한다? 프로세스는 각자의 독립된 메모리 영역을 가진다. 쓰레드는 프로세스에 속한 것으로서 쓰레드 끼리는 공유하는 메모리 영역이 있다. 운영체제 > 프로세스 > 쓰레드 thread1.c #include #include void* thread_main(void *arg); //쓰레드에서 사용할 함수 int main(int argc, char *argv[]) { pthread_t t_id; int thread_param=5; // if(pthread_create(&t_id, NULL, thread_main, (void*)&thread_param)!=0) //쓰레드 생..
select 함수 기반 멀티플렉싱의 단점을 극복한다. select 함수는 호출할 때마다 관련 인자의 정보를 전달해줘야 한다. 리눅스의 epoll 함수는 운영체제에서 멀티플렉싱을 지원한다.(참고 : 윈도우의 IOCP) 단, select함수는 호환성이 상대적으로 좋다(select 기반 코드는 윈도우와 리눅스간 상호 변경 쉬움) select 방식 사용 조건 1. 서버 접속자 수 적다. 2. 다양한 운영체제에서 사용가능해야 한다. epoll 기반의 에코 서버 echo_epollserv.c #include #include #include #include #include #include #include #define BUF_SIZE 100 #define EPOLL_SIZE 50 //epoll 사이즈 선언 void ..
앞서 설명한 입출력 스트림 분리는 2가지이다. 2019/10/30 - [1. 프로그래밍/4) Network] - Chapter 10 멀티 프로세스 기반의 서버 구현 Chapter 10 멀티 프로세스 기반의 서버 구현 1. 프로세스란? 실행중인 프로그램을 의미한다. 멀티프로세스 운영체제는 다수의 프로세스를 동시에 실행 가능하다. 프로세스마다 프로세스 ID가 할당된다. 2. Fork 함수 : 프로세스를 복사하는 함수. 복사되어서.. valueelectronic.tistory.com --> 멀티 프로세스 기반 입출력 분리 2019/11/07 - [1. 프로그래밍/4) Network] - Chapter 15 소켓과 표준 입출력 불러오는 중입니다... --> FILE 구조체 포인터 기반 입출력 분리 입력과 출력을..
----------------------------------------------------------------------------------------------------------------------------------- 표준 입출력 함수는 버퍼링을 사용하기 때문에 전송속도가 빠르다. 같은 경로에 임의의 파일을 하나 만들어놓고, 복사속도를 비교해보면 알 수 있다. 용량이 클수록 속도 차이를 확연히 느낄 수 있다. 시스템 함수(open, close, read, write) syscpy.c #include #include #define BUF_SIZE 3 int main(int argc, char *argv[]) { int fd1, fd2, len; char buf[BUF_SIZE]; fd1=..