프로그래밍 QnA

mandugukbap의 이미지

[완료] FreeBSD 8.0 커널에서 TCP retransmission time out (RTO) 를 변경하고자 합니다.

TCP RTO를 변경하려고 합니다. 해당 코드가 sys/netinet/tcp_timer.c 에 있는건 알아 내었습니다.

511        rexmt = TCP_REXMTVAL(tp) * tcp_syn_backoff[tp->t_rtxshift]; // 이 부분은 Handshake에만 사용되는 RTO 

에서 backoff는 그대로 두고 TCP_REXMTVAL(tp) 매크로 대신에 해당 값을 static하게 바꾸려고 합니다.

테스트로 해당 값을 3으로 나누어지게 해 보았습니다.

일반적으로 FreeBSD의 RTO가 3초인것으로 알려져 있으니 3으로 나눈 값이면 1초가 되야 한다고 생각하는데, 첫 번째 Timeout (Handshake 동안 발생한)을 보니 여전히 3초더군요. 두 번째로 발생하는 RTO는 분명 1초로 줄어 들어 있었습니다.

dndlf2의 이미지

MFC 다이어로그에 스크롤 삽입 중입니다. 도와 주세요.

현재 스크롤바가 있는 다이어로그를 클래스를 스크롤바가 없는 다이어로그에서 상속받아
부모객체를 이용해 스크롤 바를 삽입하는 작업을 하고 있습니다.
도무지 어떻게 해야 될지 감이 잡히지가 않아서 도움을 청하고자 글을 올립니다.

해당되는 클래스들을 첨부하오니 많은 도움 부탁드립니다.

첨부파일에 대한 설명을 아래와 같이 정리하였습니다.

[ 설명 ]
첨부된 압축 파일 : original.zip --> 제가 작업하기 전의 파일들.
worked.zip --> 제가 작업 중인 파일들.

wkaxld의 이미지

unix time이 0이 되는 기준

제목 그대로 unix time이 0이 되는 기준 시간을 알고 싶습니다. Google 등을 찾아보면 unix time의 기준 시간이 1970년 1월 1일 0시라고 나오는데, 이것을 C를 이용하여 local unix time으로 바꾸기 위해 mktime 함수를 사용하면 결과가 이해가 안되게 나옵니다. mktime이 혹자는 1900년이 기준이라 주장(?) 하는 문서도 있고 해서 1970년이든 1900년이든 local time을 계산 하면 세계시간기준지하고 약 9시간 차이 날테네 대략 1900년 1월 1일 (또는 기준에 따라 1970년 1월1일) 0시 0분을 집어 넣으면 대략 9*3600 정도의 숫자가 나와야 되는거 아닌가요?
혹시 몰라 test를 해 본 code를 넣어 봅니다.

escat의 이미지

c++ 메인에서 갑자기 리스트안에 값이 변경되서요...

먼저 학교 과제로 운영체제에서 버퍼캐쉬의 5가지 시나리오에 대한 프로그래밍 짜는 것입니다....
열심히 하다가 정말 갑작스러운 오류때문에 12시간이 넘게 고민하고있어요 ㅠㅠ
자료구조를 이용해서 프로그램을 짜는데요...
제가 실력도 부족하고 해서 리스트나 큐부분은... 솔직히 부끄럽습니다..;

제 질문 내용은 먼저 아래 메인부분의 코드를 보여드리면서 설명을 드리겠습니다...

ljh0431의 이미지

안드로이드 언어개념 ?

안드로이드 플래폼은 java언어를 사용한다고 합니다.
그런데 java의 기본 라이브러리들을 이용해서 안드로이드용 앱을 개발하려고 하니
java의 순수 라이브러리들이 지원이 안되는 것이 많습니다.
그렇다면,

안드로이드 플래폼은 자바언어로 만들어진 것이 아닌
다른 언어로 개발됐고 단지 안드로이드용 앱을 개발할 때 java언어형태로 처리해 줘야 된다고 봐야 되나요 ?
아니면 java가 우선적으로 기본으로 하고 이 기본위에 안드로이드 플래폼이 개발된건가요 ?

어떤식으로 안드로이드가 존재하는지 궁금합니다.

hckim75의 이미지

RTOS를 Linux로 포팅 시 Callback 처리 문제

kernel mode 밖에 없는 RTOS에서
kernel/user mode를 구분하는 Linux로 포팅하는데 따른 문제입니다.

RTOS에서 어떤 task가 callback을 등록하고, ISR은 등록된 callback을 호출하도록 설계되어 있습니다.
이를 Linux로 포팅할 때 ISR은 kernel 영역에 놓이고, task는 user 영역에 놓이게 되는데요,

ISR에서 callback을 호출하는 부분을 Linux로 어떻게 처리해야 될 지 고민입니다.
관건은 이 부분(ISR에서 callback으로 제어가 넘어가는 부분)이
Linux에서도 최대한 delay없이 처리되는 것인데요..

고수분들의 의견 부탁드립니다.

감사합니다.

dh1789의 이미지

kqueue를 linux에서 사용할 수 있나요?

제목 그대로입니다.

검색을 좀 해봤는데 고성능 서버를 작성할 때

NT : IOCP
BSD : kqueue
linux : epoll

를 일반적으로 사용한다고 하는데요. NT는 둘째치고..

http://monkey.org/~provos/libevent/ 의 그래프를 보면..

kqueue가 epoll보다 근소하나마 성능이 더 좋다고 나와있습니다.

지금 현재 사용하는 OS가 CentOS인지라.. epoll을 사용해야 할것 같긴 한데

BSD와 linux는.. 비슷한점이 많으니.. 되지 않을까 생각도 들고 해서

혹시 linux에서도 kqueue를 사용할 수 있는지 알고싶습니다.

많은 분들 조언 부탁드립니다.

pogusm의 이미지

[완료] Qt 좀 도와주세요.

1. 랜덤숫자레이블, 1번레이블,2번레이블, .... 5번레이블, 시작버튼, 멈춤버튼, 초기화버튼이 있습니다.

2. 시작버튼을 누르면, 1~5사이의 랜덤 숫자가 "랜덤숫자레이블"에서 빛의 속도록 변합니다.
동시에, 1번레이블~5번레이블에는, 각 숫자가 몇번 나왔는지 count됩니다.

3. 창을 옮기거나, 창의 크기를 줄이는 도중에도 위의 작업은 멈추지 않고 계속 진행됩니다.

4. 멈춤버튼을 누르면, 딱 멈춥니다.

5. 초기화버튼을 누르면 초기화됩니다.

근데, 실행하면 안됩니다.. ㅠㅠ
아마도, while(1) 실행도중에는 일일히 레이블을 재출력해주지 않아서 인것 같습니다.

조금 손좀 봐주세요.. (소스파일 첨부합니다)

혼자 공부하는 C/C++ 초보라서 좀 막막합니다.

감사합니다.

declspec의 이미지

심볼 해석에 대해서

리눅스든 윈도우즈든
링커가 심볼을 해석할때...(심볼을 해석하는 주체는 링커 맞죠?)

심볼을 해석한다는 의미는 결국
아스키 코드의 문자열로 되어있는
함수명 또는 변수명(이것 외에도 심볼이 있나요?)
에 대해서 그것이 메모리상에 존재하는
가상메모리주소를 연결해주는 것이죠?

요컨대 소스파일에서

void hello(){}

void main(){
hello();
}

이런 게 있는경우
hello를 호출하는 부분에서
어셈블러의 입장을 생각하면

CALL ?; // call hello()

CALL 로 함수호출을 할때 어떤 주소를 불러줘야 할지
모르겠죠?

이것을 hello 의 시작 메모리 주소 값을 찾아서 넣어주는게
링커가 하는 일인것이죠?

그런데 동적 라이브러리의 경우 이게 어떻게 수행될까요?
즉 동적 라이브러리에 hello 의 실행코드가 존재할 경우에
그것을 참조하는 프로그램의 경우

zinggu의 이미지

SPEC사용해 보신분 있으신가요

Branch Predictor 성능 데이터를 뽑고 싶은데

벤치마크 프로그램이 대부분 text 사이즈가 작아서..branch 도 별로 없구요..

논문 보면 SPEC많이 쓰던데 혹시 써 보신분 있으시면 여쭤보고 싶은게 많습니다.

이 게시판에 맞는 질문인지 모르겠지만,,;여튼 댓글 부탁해요~

페이지

프로그래밍 QnA 구독하기