안녕하세요. Linux kernel 강의를 듣고 있는 수강생입니다 제가 Crash utility 를 이용해서 쉽게 해당 dump 의 최종 프로세스의 cpu 번호는 알 수 있는데, 만약 현장에서 Crash Utility 설치가 불가피해서 사용을 못하고(시간상이나 알수 없는 원인으로 설치가 안될때) 오직 TRACE 32 만으로 SMP(멀티코어) 시스템의 DUMP 발생 원인이 된 프로세스의 CPU 번호를 파악하고 싶을때는 어떤 방법을 이용할 수 있을지 궁금합니다. 예를들어 아래와 같이 상황에서 해당 Soft IRQ 를 발생시킨 CPU 번호를 오로지 TRACE 32 를 이용해서 찾아야 한다고 했을때 , 어떻게 해야하는지 궁금합니다 사실 교수님께서 설명하셨던것 같은데, 기억이 잘 안나서요. 죄송합니다.... 감사합니다.
메모리의 주소 공간 강의중 메모리에서 주소번지를 CPU로 가지고 온다는 부분이 이해가 어렵습니다. 메모리는 요청받은 명령에 응답을 한다고 알고 있습니다 cpu가 mmu를 통해 논리주소 -> 물리 주소로 변환 후 메모리 관여를 하듯 CPU가 메모리로부터 주소번지를 받아 관여하는 상황이 있는건가요? 있다면 어떻게 이루어지는지도 궁금합니다. 논리->물리의 상황에서는 cpu상에 존재하는 베이스 레지스터를 통해 물리주소를 변환하는데 역참조도 가능한걸까요?
수료증 발급 기준에서 [부록] 강좌 제외 요청 드립니다. 현재는 수료증 발급 기준이 [부록] 강좌까지 모두 수강해야 발급되는 걸로 확인됩니다. 이는 정규 수강 강좌가 아닌 것으로 알고 있습니다. 이러한 이유로 수료증 발급 기준에 [부록] 강좌 제외 요청 드립니다. 감사합니다.
void swap(int * x, int * y) { int temp; temp = *x; * x = *y; *y = temp; } 안녕하세요 강사님 위 함수가 temp를 지역변수로 선언하면 재진입가능한 함수가 된다고하셨는데 x와 y 포인터 접근으로 공유자원이 발생할 수 있는 상황이 발생할 수 있어 재진입 불가능한 함수이지 않나요? 잦은 질문드려 죄송합니다.
강좌 3번에서 진행되는 TASKMAN의 task.c를 디버깅 모드로 실행했는데 에러가 뜹니다. ../Inc/FreeRTOSConfig_base.h:120:59: error: '__FILENAME__' undeclared (first use in this function); did you mean '__FILE_NAME__'? inc 폴더에 시스템 헤더파일 같은데 어떻게 대처 해야할지 모르겠습니다.
안녕하세요 강사님 fflush를 주석처리하지 않고 동일한 우선순위인 task1 과 task2가 있을때 aaaaaaaaaaaaaaab와 같이 비정상 출력이 나오는 상황에서 아래 제가 정리한 내용이 맞나요? FACT 1. HAL_UART_Transmit 실행 중에도 컨텍스트 스위칭은 가능하며, 단지 UART 하드웨어 자원이 점유 중이라 다른 Task는 전송만 못 할 뿐이지 SysTick에 의해 timeslice마다 Context Switching이 일어난다. FACT2. FACT1에 따라 Task2가 printf("b")와 fflush로 UART 점유 및 전송중일때 Tick마다 ContextSwitching이 일어나고 그때 Task1의 printf("a")로 인해 버퍼가 누적되며 동시에 fflush는 기존에 TASK2가 UART를 점유중이여서 Skip된다는 것이 맞을까요? ____________ 그리고 task1과 task2가 fflush때문에 aaaaaaaaaaaaaab 와 같이 a다수 b한개만 실행될경우 어떤 timeline을 거쳐 저렇게 실행되는것인지 정리해주실수 있나요? ___________
안녕하세요. https://inf.run/j6Fso 위 질문과 답변이 제가 궁금했던 내용과 유사하여 글을 읽어보게 되었습니다. 그리고 추가로 궁금한 점이 있어 질문을 드리고 싶습니다. 먼저 제가 이해한 내용은 다음과 같습니다. 공유 캐시는 클라이언트와 서버 사이에 있으며 사용자간에 공유할 수 있는 응답을 저장할 수 있고, 공유 캐시는 중간 프록시 서버에 저장하는 건데, 이 프록시의 종류는 forward proxy와 reverse proxy가 있다. 그리고 reverse proxy의 경우는 대표적으로 nginx서버가 있다. 그리고 질문드리고 싶은 내용은, nginx의 경우는 서버 앞단에 있기 때문에 ip 주소를 알아야지 접근할 수 있다고 알고 있습니다. 그래서 위에서 말씀하신 '브라우저 캐싱과 공유 캐싱이 DNS캐시보다 먼저 수행됩니다.' 의 뜻은 '브라우저 캐싱과 공유 캐싱(forward proxy, CDN 캐시)이 DNS캐시보다 먼저 수행되고, 공유 캐싱(reverse proxy)이 수행된다.'로 이해하면 되는지 여쭙고 싶습니다. 질문 읽어주셔서 감사합니다.
이전 프로세스 상태 파트에서, Suspend는 Ready 나 Block 상태에서 가능하다고 배웠는데요! 중기 스케줄러에 보시면 "실행 중인 프로세스를 메모리에서 디스크로 이동(Swap out)하거나 디스크에서 다시 메모리로 복구함" 이라고 나와있습니다. 실행 중인 프로세스는 실행 데이터가 메모리에 적재되고 CPU 자원을 할당받은 상태 아닌가요..?
안녕하세요 선생님, 덕분에 linux kernel을 쉽게 접근하여 배우고 있습니다. debugfs 드라이버 코드 작성하는 것을 보니 어느정도 틀이 있는 것 같더라구요. (init 처리, set/get 등록) 모든 드라이버 작성이 위와 비슷한 틀로 작성이 되는 것일까요??
안녕하세요. 41강의 병목현상 해결 사례에서 설명해 주신 내용을 보고 회선과 대역폭의 관계에 대해 제가 이해한 부분이 맞는지 확인하고 싶습니다. 기존 로드밸런서에는 WAS와 DB 각각에 대해 하나의 회선만 연결되어 있었기 때문에, 해당 회선이 제공할 수 있는 대역폭의 한계로 인해 병목현상이 발생한 것으로 이해했습니다. 이후 추가 회선을 연결함으로써 전체 대역폭을 확장하는 효과를 가져와 병목현상이 해소된 것으로 이해했는데, 제 이해가 정확할까요? 감사합니다.