메모리 관리 운영체제의 대표적인 할 일 중 하나가 메모리 관리이다. 컴퓨터 내의 한정된 메모리를 극한으로 활용해야 하기 때문이다. 가상 메모리 (virtual memory) 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말한다. 가상적으로 주어진 주소를 가상 주소(local address)라고 하며, 실제 메모리상에 있는 주소를 실제 주소(physical address)라고 한다. 가상 주소는 메모리관리장치(MMU)에 의해 실제 주소로 변환되며, 이 덕분에 사용자는 실제 주소를 의식할 필요 없이 프로그램을 구축할 수 있다. 가상 메모리는 가상 주소와 실제 주소가 매핑되어 있고 프로세스의 주소 정보가 들어 있..
메모리 계층 레지스터, 캐시, 메모리, 저장장치로 구성되어 있다. 레지스터 : CPU 안에 있는 작은 메모리. 휘발성, 속도 가장 빠름, 기억 용량이 가장 적음. 캐시 : L1, L2 캐시를 지칭. 휘발성, 속도 빠름, 기억 용량 적음. 주기억장치 : RAM을 가리킨다. 휘발성, 속도 보통, 기억 용량 보통. 보조기억장치 : HDD, SDD를 일컬으며 휘발성, 속도 낮음, 기억 용량 많음. 램은 하드디스크로부터 일정량의 데이터를 복사해서 임시 저장하고 이를 필요 시마다 CPU에 빠르게 전달하는 역할을 한다. 계층 위로 올라갈수록 가격은 비싸지고 속도가 빨라지며 용량은 작아진다. 캐시 데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리이다..
1. 코루틴 코루틴(Coroutine)은 코틀린에서 비동기-논블로킹 프로그래밍을 명령형 스타일로 작성할 수 있도록 도와주는 라이브러리이다. 코루틴은 멀티 플랫폼을 지원하여 코틀린을 사용하는 안드로이드, 서버 등 여려 환경에서 사용할 수 있다. 코루틴은 일시 중단 가능한 함수(suspend function)를 통해 스레드가 실행을 잠시 중단했다가 중단한 지점부터 다시 재개(resume)할 수 있다. 코루틴을 사용한 구조적 동시성 예시 suspend fun combineApi() = coroutineScope { val response1 = async { getApi1() } val response2 = async { getApi2() } return ApiResult { response1.await() r..
- Total
- Today
- Yesterday
- 프로세스
- 코틀린
- 정렬병합조인
- 연관매핑
- 네트워크 기초
- 프로세스 컴파일
- 자바
- 프로세스와 스레드
- java
- 직접연관매핑
- 직접매핑
- 선언형 프로그래밍
- 프로그래밍
- 스프링 WebFlux
- 인덱스최적화
- 프로그래밍 패러다임
- 클러스터형인덱스
- 캐시매핑
- 중첩루프조인
- 스레드
- 스프링 R2DBC
- 디자인 패턴
- 세컨더리인덱스
- 네트워크
- 보이스코드정규형
- 메모리 계층
- Design Pattern
- 함수형 프로그래밍
- 불연속할당
- 대수확장성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |