Kernel Theory Stuff

local exclusive monitor & global exclusive monitor

Exclusive Monitor 는 메모리 접근에 대한 동기화를 위해서 ARM 에서 제공하는 방식입니다. ARM Information Center 에 가보면 아래와 같은 예제 그림이 나와 있네요. Exclusive Monitor 는 위와 같이 Local Monitor 와 Global Monitor 가 존재하는데, 그림에는 나와있지 않지만 Exclusive...

Branch Target Buffer

Branch Target Buffer

Branch Target Buffer 는 수행이 된(Taken) Branch 에 대해 instruction address + predicted PC 값을 가지고 있는 일종의 Cache 이다. 즉, instruction address (PC) 값을 이용하여 BTB Entry 검색한 결과로 predicted PC 값을 얻게 된다. processor...

NUMA 에서 메모리 뱅크와 노드

NUMA 에서 메모리 뱅크와 노드

NUMA 에서 메모리뱅크 = 노드 라고 볼 수 있을 것 같네요. 접근속도가 같은 메모리의 집합을 뱅크라고 부르니 그것이 곧 노드의 분류기준이 됩니다. https://access.redhat.com/site/documentation/ko-KR/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/main-cpu.html 간단한 NUMA의 예로 소켓이 2개 있는 마더보드가 있다고 가정합니다. 여기서 각 소켓은...

파일시스템 – 블록그룹

파일시스템 – 블록그룹

파일시스템 블록 그룹은 몇개가 생기고 관리 정보는 어디있을까에 대한 의문이 생겼었는데 파일시스템 관련 책에 나온 아래의 글을 보면 시원하게 풀립니다. 결국 다음과 같이 정리할 수 있겠네요. ㅇ 파일시스템 내의 모든 블록 그룹들의 크기는 같다. (마지막...

MMU(Memory Management Unit)의 TLB 를 이용한 가상주소(Virtual Address)의 물리주소 변환

CPU 에서는 대부분 가상주소를 사용합니다. CPU 가 특정 task 의 가상주소를 이용하여 실제 물리주소로 변환하고 물리 메모리의 데이터를 가져오기 위한 과정이 다음의 그림 한장에 잘 나타나 있습니다. http://www.cs.rpi.edu/academics/courses/fall04/os/c12/index.html 과정을 살펴볼까요 ? 원문을 번역해보겠습니다. The CPU...

리눅스 커널 스케줄러(Scheduler)

리눅스 커널 스케줄러(Scheduler)

리눅스 커널 책보고 자료찾아보면서 이해한대로 정리해본 것. 참고로 CFS 기법은 kernel 2.6.23 부터 추가되었다고 함. 1. 스케줄러는 kernel thread 같이 별도의 thread 나 process 가 존재하는 것이 아니라 kernel 의 스케줄링 알고리즘이 적용되어 있는 component(커널함수)를 말한다. 몇...