The hisWorld
- day #2 2010.02.27
- day #1 2010.02.27
- Android Architecture 2010.02.24
- Day #9 2010.02.23
- day #8 2010.02.23
- Nagle 알고리즘 2010.02.22
- intelisense 2010.02.18
- day #7 2010.02.17
- day #6 2010.02.16
- day #5 2010.02.11
day #2
day #1
Process 마다 -> 가상머신 => 격리 실행
Application -> User ID부여 (동일 ID 부여 가능, Process/VM 공유), Permission(File)
App의 element(구성요소) 공유가능 => main() 없음, component(필요시 -> instance 생성)
Activity :
Visual UI(focused)
첫번째 Activity에는 표시
Drawable window 부요(하나 이상) -> visual context( activity <- [view - supply view] ->user)
Service :
Background 실행, non-visual
ex)재생목록, 음악재생 미디어 플레이어(음악 제어 -> Activity 아님 / Background 상태 재생 안됨)
Broadcast Receiver :
Broadcast Announcement 수신/응답
System code에서 발생(app도 가능)
Notification Manager : 사용자 이목 끌기(조명, 진동, 사운드) -> Status bar에 상주
Content Provider :
다른 App에서 특정 App의 Data set 생성 -> 표준 Method
content provider -> Method 호출, content provider 통신 가능
Android Architecture
from : [http://developer.android.com/index.html]
Day #9
Wait() 호출 시점에 child process가 없다면, 생성시까지 blocking -> waitpid() 사용 blocking 해결
Signal : system에 특정 상황 발생 -> OS 전달 메시지 => process(signal handler 서유)에 전달
Signal handler : signal 처리 함수 모듈
Sigaction() : signal 발생 -> signal handler 함수 연결
day #8
Time-Wait :
(ACK의 소멸로 인한) 연결종료 과정에서 Four-Way-Handshaking이 제대로 안되면 Time-Wait 상태가 된다.
ACK를 재전송
Time-Wait 상태일 때 socket은 완전히 소멸되지 않는다. -> bind() error가 생긴다.
SO_REUSEADDR (1 -> True : 새 socket에 ip/port 할당 / 0 -> False : Default)
Nagle's Algorithm :
전송 가능할 때 많이 보낸다.
OFF로 설정 -> 속도가 빠름, 과부하 발생
Nagle 알고리즘
http://en.wikipedia.org/wiki/Nagle's_algorithm
전송 가능할 대 많이 보낸다.
OFF -> 속도가 빠름, 과부하 발생
intelisense
Visual Studio 2008의 최대 단점은 Inteli_sense의 캐싱 속도가 너무 느리다는 것이다.
적어도 내가 천재가 아닌지라,
모든 메소드와 인자, 멤버를 알지 못한다.
코딩하면서 가장 답답한 일은
접근 연산자를 찍었는데도 인텔리 센스에서 멤버를 못 보여주는게 아닌가 싶다.
혹시나 싶어 Visual Assist를 설치해 보았지만
별로 도움이 안된다.
5분만에 삭제...
안그래도 무거운 IDE를 더 무겁게 하기만 한다 ㅡㅡ;
day #7
socket의 종료 :
close() -> 수신/전송 모두 종료
Full Duplex에서 문제 발생 -> Half Close 방법 사용
socket -> host간 연결 -> I/O stream 생성
shutdown() :
half close를 사용하는 이유 : File 전송시 Out Stream 종료 -> EOF 자동 전송
day #6
TCP / UDP :
ip를 사용하지만 Flow Control 제공 유/무 차이가 있다
UDP 특징 :
TCP에 비해 속도가 빠름
Flow Control 제공하지 않기 때문
TCP : packet 단위
UDP : datagram 단위
UDP는 Host의 내부에서 port 정보 -> 최종 목적지를 구분
TCP를 사용해야 하는 경우 :
packet 손실이 전체 Data영향을 미치는 경우 ex)압축파일 전송
UDP를 사용해야 하는 경우 :
Muntimedia Data 실시간 전송 (빠른 속도)
TCP가 느린 이유 :
CE, CT, FC
Data 클 경우 TCP가 UDP보다 유리 (session 유지 긴 경우)
UDP :
server - listen(), accept() / client - connect() 필요없음
socket(), bind() 있어야 함
socket 하나
Data 전송 함수 호출시 + 수신 주소 정보 포함 시킴
최초의 sendto() -> ip/port를 할당(종료시까지 유지됨)
connect() 사용 할 수도 있다. -> 속도개선 (kernel -> socket 연결 / 가장 시간 많이 걸리는 작업을 미리 함)
day #5
socket :
전이중(Full - Duplex)
three - way - handshaking >> connect() 로 시작
call establish (3way) -> data transfer -> call terminate (4way)
TCP기반 -> Data 경계 모름 -> Pakcet 구성수 모름
Kernel I/O Buffer