[커널 17차 4조] 2주차

2020.08.30 21:34

주영 조회 수:123

일시 : 2020.08.29

 

장소 : 온라인 스터디 (팀즈)

 

교재 : 리눅스 커널 내부구조 (백승재, 최종무 저)

 

진행 : 3.8 문맥 교환(P.86) ~ 6.1 인터럽트 처리 과정 (p.170)

 

참석자

 

15:00 ~ 18:00 10명 (유정우, 한가영, 최왕용, 김은영, 김동혁,이경재, 김석원, 김주영, 김영석, 최원용)

19:00 ~ 22:00 7명 (최왕용, 김은영, 김동혁,이경재, 김석원, 김주영, 김영석)

 

 

질문, 토론

1. Signal, Pending 변수의 차이점은?

 - 그룹에 해당하는 것이 signal이며 특정 하나의 태스크를 가리키는 것이 pending이다. 참고로 kill -9로 signal을 날릴 수 있다.

 

2. Zone dma 16MB도 일대일 대응이 되는가.

- 32비트 기준 896MB까지 일대일 대응이 된다.

 

3. 부팅시 시작 page 구조체가 동일한 값으로 구축 되는지 (물리 메모리 변경 없음)

- 장치에서 메모리 정보를 가져오므로 같을 것이다.

 

4. lazy buddy는 해제이후 바로 합치지 않고 나중에 합병한다. 그렇다면 할당 해제한 곳을 관리하는 것이 부하가 더 발생하지 않을까?

- 10.2절 코드 참고.

 

5. 그림 4.8에서 order를 어떻게 구할 수 있을까? index를 구하려면 order를 구해야 한다.

- (미해결)

 

6. 그림 4.6 1번. order 1의 4567구간에서 0,1이 0이 되는 원리는?

- order 1의 경우 두 페이지가 기준이다. 45에도 할당할 수 없고 67에도 할당할 수 없다. 따라서 0이다. order 0와 연관이 없다. 

 

7. 그림 4.6 1번. 만일, 56번이 free라면 2 페이지를 할당 해주는가?

- 56은 붙어있는게 아니므로 할당해 주지 않는다.

 

8. 2^n의 크기를 가지는 캐시가 2^4, 2^5 등 공존하는 상태인가? 

- 입력을 받아 할당하지 않을까. 코드 확인 필요. 캐시는 하나의 크기만을 가진다. Ex 32바이트 캐시, 64바이트 캐시 등. 한 캐시내에 다른 종류의 크기가 혼합되지 않는다. 

 

9.  task A가 시스템콜 등으로 인한 문맥 교환 발생 시, 커널 스레드를 위한 task struct 가 따로 있는가.

- thread_info에 user, kernel 정보가 모두 들어있다.

 

10. inode 번호로 inode를 찾아가는 방법은 무엇인가.

- (미해결)

 

11. arm에서도 인터럽트가 발생했을 때, 메커니즘이 있는가?

- 동일하게 있다.

 

12. 쓰기 순서를 보장한다는 것은 무슨 의미인가?

 

 

이슈 및 건의 사항

- 질문에 관한 토론 진행후에 질문을 제시한 분께서 질문을 정리하여 채팅으로 기록하기. (질문 정리)

 

 

XE Login