[리눅스커널] 메모리관리: 페이지 테이블에 대해 알아보기
By Guillermo Austin Kim | 2019년 7월 17일 |
페이지 테이블로 가상 주소를 물리 주소로 변환하는 흐름을 살펴봤습니다. 이 과정에서 알아야 하는 주요 개념을 소개합니다. - 페이지 테이블 엔트리 - 페이지 테이블 엔트리 주소 페이지 테이블 엔트리페이지 테이블 엔트리(Page Table Entry, 줄여서 PTE)는 페이지 테이블의 정보이며 레코드라고도 부릅니다. 페이지 테이블 엔트리 주소말 그대로 페이지 테이블 엔트리가 있는 주소를 의미합니다. 이해를 돕기 위해 다음 주소 테이블을 보겠습니다. 주소 | 값 1 NSD:80004000 | 0x02 NSD:80004004 | 0x03 NSD:80004008 | 0x04 NSD:8000400C | 0x0...5 NSD:80006018 | 0x0061941E6 NSD:8000
[임베디드] 소프트웨어의 지배자 - 오픈 소스 프로젝트
By Guillermo Austin Kim | 2019년 12월 26일 |
제가 개발자로 첫 걸음을 내딛으면서 플래시 엔진을 포팅하는 일을 맡았어요. 조금 전문적으로 말하자면 미들 웨어 계층의 코드를 짰다고 해야 할까요? 플레시 엔진을 포팅하는 소스 코드는 물론 회사의 소유였어요. 물론 제가 작성한 소스 코드는 외부에 공개할 생각도 없었고, 만약 공개한다면 처벌을 받을 것 같았어요. 왜냐면 소스 코드는 회사의 소유물이기 때문이죠. 요즘도 회사의 기밀을 누출했다는 개발자의 뉴스를 보면 '소스 코드를 몰래 들고 튀었다.'란 이야기를 듣곤 하죠. 한 4~5년 개발을 하면서 소프트웨어 개발의 세계에서는 독특한 문화가 있다는 사실을 알게 됐어요. * 가장 먼저 희한하다고 느꼈던 것은 커뮤니티였어요. 웹에는 정말 수많은 개발 관련 커뮤니티가 있어요. 누군가 프로그래밍에 대해 질문을
[리눅스커널] 워크큐: 워커 스레드 핸들 worker_thread() 함수 분석하기 (2/2)
By Guillermo Austin Kim | 2019년 10월 1일 |
2단계: “전처리” 단계 워커 스레드의 “전처리” 단계 코드를 분석할 차례입니다. 다음 24번째 줄 코드를 보겠습니다. 24 recheck:25/* no more worker necessary? */26if (!need_more_worker(pool))27goto sleep; need_more_worker() 함수는 다음 동작을 수행합니다.struct worker_pool 구조체 worklist 필드에 접근해 이미 큐잉한 워크가 있는지 체크struct worker_pool 구조체 nr_running 필드에 저장된 실행 중인 워커 스레드 갯수를 점검 워크를 워크큐에 큐잉한 적이 없다면 워커 스레드를 실행할 필요가 없습니다. 따라서 goto sleep; 구문을 실행해 다시 휴면에 진입합니다.
[킹스톤] HYPERX PREDATOR DDR4 3200MHz 메모리
By 타누키의 MAGIC-BOX | 2018년 7월 13일 |
XMP 인증도 있고 이제까지 별 탈없이 조합해서 그냥 샀었는데....ㅜㅠ 오버 3200이 제대로 안 돌아가네요. 설정된 프로파일대로 몇가지 돌려봐도 계속된 재부팅 끝에 리셋되니;; 직접 만지는건 영 불안해서 ㄷㄷ 방열판이랑 멋지긴 한~~ 언젠간 지원이 되지 않을까 싶어서 써왔는데 1년이 지나도 ㅜㅜ 32기가나 사서 오랜만에 망한 부품 지름ㅋㅋ 크흡.... 아무래도 메인보드와 안맞나보더군요.