High Memory is the part of physical memory in a computer which is not directly mapped by the page tables of its operating system kernel 4GB RAM일 때 PAGE_OFFSET(3GB)~0xFFFFFF까지의 1GB를 Kernel 공간으로 잡는 것이 일반적인데이때 896MB 이하를 lowmem(DMA + Normal) 여기는 커널이 물리 메모리에 직접 매핑됨.그 위를 highmem(128MB)으로 구분하며 이곳은 필요할 때만 kmap()등을 통해 연결해서 사용해야 한다. 커널이 128MB를 사용하는 곳vmalloc 공간연속적인 커널 가상 주소를 불연속적인 물리 주소로 할당커널은 불연속적인 물리 주소를..
분류 전체보기
Zygote는 /dev/socket/zygote에 생성된 UDS (Unix Domain Socket)을 사용해서 ActivityManager로부터 전달되는 새 안드로이드 애플리케이션의 생성 요청 메시지를 수신한다. 이 소켓은 부팅 과정에서 init 프로세스에 의해 성성되며, init.rc 파일에 소켓 생성에 관련된 부분이 기술돼 있다.생성될 소켓의 이름, 종류, 접근 권한이 기술돼 있다. android/system/core/rootdir/init.zygote32.rcservice zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class main socket zygote stream 660 root sys..
하드웨어적 캐시속도가 다른 두 장치 사이에서 속도 차이를 메워주는 장치랜덤 액세스 버퍼주기억 장치와 주변장치 사이에서 데이터를 주고 받을 때 정보를 임시로 기억해두고 사용할 수 있는 공간버퍼가 사용되면 CPU는 입출력 자료를 기다릴 필요 없이 입력이나 출력 명령을 내릴 수 있다.빠른쪽에서 느린쪽으로 데이터를 보낼 때 손실이 일어나는 것을 막기 위해서도 쓰인다.순차적 액세스 버퍼캐시보조기억장치로서, 디스클의 입출력 효율을 높히기 위해 주기억 장치의 한 영역을 최근에 사용된 디스크 블록의 내용을 기억하는 영역으로 할당한 것을 말한다. 버퍼캐시에 있는 디스크 블록은 디스크에 액세스하지 않고 바로 이용할 수 있다. 이는 주기억장치와 CPU 캐시의 관계와 비슷하다. Top 명령을 통해 살펴본 메모리 (리눅스 관점..
메모리는 이렇게 생겼다. Address pin과 Data pin (이 둘이 서로 따로 존재한다는 것을 기억하자! 이게 중요하다!)으로 구성되어 있다. RD(Read) pin : memory로부터 data를 읽을 때 사용WR : write 할 때A[0]~[7] : Addresss pin이며 8개니까 2^8개의 주소를 가리킬 수 있다. 0x0~0xFFD[0]~[7] : Data pin이며 각 주소당 몇 칸의 데이터를 저장할 수 있느냐이다. 이 메모리에서 주소 하나로 가리킬 수 있는 데이터 량은 8bit (1byte)임을 알 수 있다.그럼 이 메모리에 담을 수 있는 총 데이터의 크기는 주소의 크기 x 주소 하나당 데이터 크기 이니까 2^8 x 8 bit = 2^8 Byte = 256 Byte가 된다. 본격 m..
Bus란 장치들이 정보 공유를 위해 공유하는 선들의 집합인데, 한 번에 한 녀석만 다닐 수 있는 Freeway에 가깝다.어느 특정 시점에 시간을 멈추고 bus를 바라본다면 bus 위에는 그 당시 bus를 쓰도록 허가 받은 장치들의 신호만이 보인다고 생각하면 된다. clock 별로 바라보면 마치 clock 단위마다 네온 사인처럼 왔다갔다 하는 형국이다.아래처럼 길 하나를 함께 쓰되 특정 시점에 허가 받은 녀석만 사용할 수 있다. MUX를 이용한 register 끼리의 통신 통로로써의 bus를 예로 들어보자. 각각의 register는 4bit latch이며 4개의 MUX에 연결되어 있다. S1, S0가 MUX control신호이며, 이 신호에 의해 MUX의 enabled port 번호가 결정된다. 진리표를 ..