일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 알림
- 버전별 관리
- NotificationCompat.Builder
- 펜딩인텐트
- 알림 인텐트
- notifications
- setContentIntent
- notification channel
- android notification 예제
- Pending Intent
- 알림 우선순위
- setDefaults(NotificationCompat.DEFAULT_ALL)
- 안드로이드 알림채널
- setPriority(NotificationCompat.PRIORITY_HIGH)
- notification manager
- 안드로이드 알림 예제
- Today
- Total
공부용 블로그
Web Server Architecture 마인드맵 본문
1. 프로세스 혹은 스레드 간 메모리 공유란?
2. 프로세스 메모리 구조는?
Stack
- 메서드가 실행될 때 변수가 push(입력)되며 실행이 종료될 때 pop(해제=삭제)된다.
- LIFO(Last In, First Out) 구조로 CPU에 의해 관리됨 => 메모리를 직접 관리할 필요없고, 변수가 자동으로 할당/삭제 된다.
- 스택은 저장할 수 있는 변수의 크기가 제한되어 있음(Heap은 제한되지 않음) => 스택 크기가 제한되어 있다.
- 스택변수는 함수가 실행되는 동안에만 존재한다.
Heap
- 프로그래머가 할당/해제하는 메모리 공간이다
- malloc() 또는 new 연산자를 통해 할당하고,
free() 또는 delete 연산자를 통해서만 해제가 가능하다.
JAVA에서는 가비지 컬렉터가 자동으로 해제하는 것 같기도 하다.
- 이 공간에 메모리 할당하는 것을 동적 할당 이라고도 부른다.
- 런타임(프로세스 실행)시에 크기가 결정된다.
Stack 영역이 크면 클 수록 Heap 영역이 작아지고, Heap 영역이 크면 클 수록 Stack 영역이 작아진다.
그럼 Heap 영역, 동적 할당은 왜 필요한 것일까?
메모리를 효율적으로 관리할 수 있기 때문이지 않을까?
임베디드 시스템을 개발하다보면 하드웨어 크기가 매우 작은 경우가 많다.
하드웨어 크기가 작다는 것은 메모리의 용량도 작음을 의미한다.
뭐 메모리 용량이 클 수도 있지만, 가격이 매우 비싸질 것이다.
여튼 그러한 작은 메모리 공간에 프로그래머가 메모리 관리의 달인이라면…
컴파일러가 자동으로 할당해주는 것보다 더 효율적인 관리가 가능하지 않을까?
4. 프로세스를 병렬적으로 처리할때는 Context Switching 이 발생한다. 왜??
5. 메모리. 커널영역, 유저영역
'설계 > WebServer' 카테고리의 다른 글
FastCGI (0) | 2018.10.02 |
---|---|
Context Switching (0) | 2018.10.02 |
mysql connector/j download (0) | 2018.09.27 |
apache mpm 설정 (0) | 2018.09.25 |
Jmeter Listener 사용법 (0) | 2018.09.21 |