질문1 Deadlock detection을 할 때 Allocation이 0인 경우 Finish 초기화를 true로 해준다고 하셨는데요. 이것은 Dead lock avoidance 알고리즘에서도 적용할 수 있지 않나요? 자원을 차지하지 않은 스레드의 요청은 최종적으로 무조건 들어준다고 생각하면 되니까, Allocation이 0이 아닌 스레드들의 safe sequence만 찾아줘도 될 것 같은데요. 질문2 같은 Banker's 알고리즘을 사용해서 dead lock detection 관점에서 Finish에 false 상태가 있으면 dead lock으로 보는 것을 보면, 반대로 dead lock avoidance 관점에서는 모든 finish가 true가 아닌 상태가 당장에는 unsafe 상태지만 필연적으로 dead-lock 상태가 되는 과정으로 보면 되겠네요? Banker's 알고리즘 자체가 모든 경우의 수를 뒤져서 dead lock에 도달하지 않는 경우를 찾는 것인데, 그것에 만족하는 경우가 없다는 뜻이니까요. 질문3 dead lock detection 시기를 1년에 한 번 dead lock이 발생하는 프로그램을 예로 드셔서 6개월에 한 번, 1달에 한 번, 하루에 한 번 등을 예시로 드셨는데요. 일단 detection 시기가 길어지는 것과 detection 되는 cycles의 수가 많아지는 것이 무슨 관계인지 잘 모르겠습니다. dead lock에 의한 사이클 수는 시스템이 멈추는 그 순간 고정되는 것이 아닌가요? 또 예시로 드신 detection 텀이 상당히 긴대, dead lock이 걸리면 프로그램이 멈춘다는 거잖아요? 비즈니스 어플리케이션을 예로 들면 아침에 dead lock 걸렸는데 저녁에 detection 해서 Recovery하면 회사에서 난리가 날 것 같은데요. detection 텀이 정말로 예시로 들어주신 것처럼 하루, 1 달, 6개월 이렇게 되나요?
StompAllocator에서, void StompAllocator::Dealloc(void* p) { // 이건 Offset을 처리해줄 필요없지만... 그래도 모르니... int64 addressNo = reinterpret_cast<int64>(p); addressNo &= 0xffffffffffff1000; ::VirtualFree((void*)addressNo, 0, MEM_RELEASE); } 이런식으로 페이지 끝단에 위치했던 p를 다시 페이지 시작 지점으로 offset을 지정 해줄 필요가 있나요?? VirtualFree 는 p가 존재하는 페이지 전부를 해지시켜주는데 해당 페이지 끝단에 있던, 시작주소에 있던.. 그 페이지가 날라가는건 똑같은걸로 아는데요 ㅠㅠ
T1이 R2에 요청을 했을때 cycle이 형성되어 wait 시킨다고 하더라도 T2가 R2를 반환하기 위해서는 T2가 R1에 요청한 자원이 T2로 가야합니다. 하지만 R1은 현재 T1에 있는 상태이고 T1은 R2에 대한 요청이 거절되었으므로 waiting 상태이고, 결론적으로는 dead lock 상태에 빠집니다. T1이 R1을 T2에게 주기 위해서는 T1도 작업을 완료해야 하기 때문입니다. 그래서 공유 자원 타입마다 1개가 존재할 때, cycle이 생성되는 요청을 허가하지 않더라도, 시간이 지나더라도 dead lock 상태가 해결되지 않습니다. 해당 요청을 허가했을 때 unsafe 상태에 빠지는 것이 아니라, cycle을 detect하는 순간 이미 deadlock 상태에 있는 것 같은데요. 제가 어디를 잘못 이해했는지 모르겠습니다.
안녕하세요~ 좋은 강의 넘 잘 듣고 있습니다~ 감사합니다 :) 이 에러 핸들링을 하는 함수를 middleware라고 언급해주셨는데, 저는 조금 헷갈려서 질문 드립니다! app.use((req: express.Request, res: express.Response, next: express.NextFunction) => { console.log('this is error middleware'); res.send({ error: '404 not found error' }); }); 미들웨어는 하려는 일의 중간에서, 개발자가 원하는 무언가를 할 수 있도록 하는 것을 말하는거니까 express 에서는 next() 가 있는 경우를 middleware 로 본다 는 것으로 이해했습니다. 그런데 위 코드는 다음으로 넘기는 것 없이 바로 404를 반환해서, next가 꼭 필요하지 않은 것 같은데... 이 경우에도 이 함수를 middleware 함수라고 볼 수 있나요~?
■ 질문 남기실 때 꼭! 참고해주세요. - 먼저 유사한 질문이 있었는지 검색해주세요. - 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다. - HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요. - 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.
볼륨의 경우 로컬 디렉토리를 만들어 wordpress 에서 디비 컨테이너를 삭제하고 다시 띄워도 기존 데이터가 그래도 wordpress에 적용되는 것을 볼수 있었습니다. 실험삼아 compose down을 하고 다시 up을 하니 기존 데이터가 날라가고 wordpress도 다시 설치하라고 뜨더군요.. wordpress 컨테이너까지 삭제하고 다시 띄우는 경우 왜 기존 데이터가 유지 되지 않는지 궁금합니다. 또한 compose의 경우 db 컨테이너만 삭제하고 다시 띄우는 방법은 없는것인지 궁금합니다.
안녕하세요, 오늘 Chapter1, 1/20을 듣는데 UsageError: Line magic function `%mv` not found. 라는 코드가 떠서 진행을 못하고있습니다...window쓰고 있습니다. 같은 경로로 옮기는 명령어가 %mv라고 하셨는데 명령어 설정을 해야하는걸까요,,, 주피터가 있는 폴더에도 엑셀 파일을 넣어놨는데 뭐가 문제인지 궁금합니다. 그리고 역슬레쉬는 왜 써야하는건지 궁금합니다 . 감사합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 11.6강 strcat() 함수 구현 중 질문드립니다. char * strcat_ptr(char* dest, const char* src) // strcat 구현하기 { char* temp = dest; // temp 포인터 주소를 dest 로 while (*temp) // temp가 가르키는 문자가 null 일때까지 반복 *질문사항 : *temp 를 *dest 로 바꾸면 무한루프가 되더라구요..ㅠㅠ 왜 그런지 모르겠어요.. { temp++; // temp 주소 하나씩 증가 } while (*src) // src가 가르키는 문자가 null 일때까지 반복 { *temp++ = *src++; // temp가 가르키는 주소에 src가 가르키는 문자로 변경 } temp = 0x00; // temp를 null 로 해줌. return dest; //dest 반환 }
yml 파일에서 wordpress 환경변수를 보면 WORDPRESS_DB_HOST: db:3306 이라고 되어있는데 여기서 3306은 데이터베이스가 띄어져 있는 컨테이너의 포트번호를 의미하는 것인가요???? 또한 궁금한것이 mysql에는 여러가지의 데이터베이스가 있을수 있는데 어떻게 wordpress 라는 데이터베이스 이름을 명시하지 않아도 특정 데이터베이스와의 커넥션이 생기는것인지 궁금합니다.
안녕하세요 햇갈리는 게 하나 있어서 질문드립니다 FormattingConversionService 는 ConversionService 관련 기능을 상속받기 때문에 결과적으로 컨버터도 포맷터도 모두 등록할 수 있다. 라고 자료에 적혀있습니다. ========================= 제가 궁금한건 .addConverter(new XxxConverter()); // 컨버터 등록 .addFormatter(new XxxFormatter()); // 포멧터 등록 이 두 등록 메소드는 ConversionService 인터페이스가 아닌 다른 인터페이스에 존재 하는데 ConversionService 도 같이 상속을 받아서 사용을 할 수 있다고 생각하면 되는건가요?