[커널 17차 4조] 6주차

2020.09.27 15:06

주영 조회 수:185

 

  • 일시 : 2020.09.26

  • 프로그램 : 행아웃

  • 교재 : ARM_linux_kernel, ARM® Cortex®-A Series Version: 1.0 Programmer’s Guide for ARMv8-A

  • 진행 : 1.5.4 ~ 1.8 전력 관리, 2.3 디바이스 관리 ~ 2.3.3 early FDT 사용

  • 참석자

    • 15:00 ~ 18:00 8명 (김주영, 김동혁, 김주성, 한가윤, 유정우, 이경재, 김은영 )
    • 19:00 ~ 22:00 8명 (김주영, 김동혁, 김주성, 한가윤, 유정우, 이경재, 김은영 )

 

1. copy_to_user 동작 원리
- http://jake.dothome.co.kr/copy_from_user/

 

2. cacheable에서 inner와 outer의 차이점은?
- Programmer's guide 그림 13.4

 

3. 하드웨어 일관성이란?
- 캐시 일관성 유지 방식이다. 일반적으로 하드웨어 방식과 소프트웨어 방식으로 나뉘며, 두 방식 모두를 포함하는 구현도 있음.

 

- 소프트웨어 방식

컴파일러와 OS를 이용. 잠재된 문제를 검출하는 오버헤드가 run time에서 compile time으로 이동하고, 설계 복잡도가 하드웨어에서 소프트웨어로 이동하는 것이 장점. 반면 compile time에 문제를 검출해야 하므로 캐시 이용률이 저하됨. 공유 데이터 변수들이 캐시에 저장되지 않도록 하는 방법과 안전한 공유 변수 사용을 위한 주기를 코드 분석을 통해 결정하는 방법이 있음.

 

- 하드웨어 방식
캐시 일관성 프로토콜이라고도 하며, 잠재적인 불일치 조건들을 run time에 동적으로 검출. 소프트웨어 방식에 비해 캐시 사용률이 좋으며, 프로그래머와 컴파일러에 투명하므로 소프트웨어 개발 부담을 줄임. 일반적으로 디렉토리 프로토콜(directory protocol)과 스누피 프로토콜(snoopy protocol)으로 나뉘며, 이들은 데이터 라인에 대한 상태 정보가 유지되는 위치, 정보가 조직화되는 방법, 일관성이 지켜지는 위치 등이 다름.

 

4. 로컬 모니터를 비공유 하는 이유는?
- lock의 개념에서 비공유를 하는것 같다.

 

5. MOESI 프로토콜
- https://www.youtube.com/watch?v=sGBrM5i4k1M&list=PLAwxTw4SYaPkr-vo9gKBTid_BWpWEfuXe&index=103 
- http://jake.dothome.co.kr/cache4/

 

6. early_init_dt_scan 안에서 early_init_dt_scan_node를 호출한다.

 

7. 101 페이지 코드 2-25에서 /가 아니라 모든 노드를 호출하고 /에 대해서만 초기화한다.

 

8. 그림 2-7 Child node에서 Choose 3d interrupt-parent(NULL)이 아니다. bootargs이다. 그림이 잘못되었다.

 

9. 코드 2-30의 2번 코드 내용은?
- #define PAGE_MASK    (~(PAGE_SIZE-1))
- underflow 판단하는 로직이다.

 

10. memblock은 무엇인지?
- 리눅스가 memblock을 통해 slab을 할당하고 레이어를 관리한다.
- 메모리 관리 전에 memblock으로 관리하고 초기화 이후엔 사용하지 않는다.

 

XE Login