프로그래밍 QnA

posjkh22의 이미지

쓰레드에 대한 멀티코어의 코어배분 ?

리눅스 환경에서 프로그래밍을 공부하고 있는 학생입니다.

멀티 코어를 통한 병렬처리에 대해서 공부하고 있는데요.

한 프로그램내에서 쓰레드를 이용하여 쓰레드당 CPU의 코어를 배분하고 싶습니다.

일반적으로 쓰레드를 그냥 생성 하면 운영체제에서 알아서 코어를 배분하잖습니까?

그런데, 이를 프로그래머가 제어할 수는 없나요?

근본적인 궁금증은 멀티코어 환경에서 '각 코어를, 한 프로세스 내에서의 각 쓰레드에게 배분(1)' 또는

'각 코어를, 두 개 이상의 각 프로세스에게 배분(2)' 하는 병렬처리 방법들에 대해 알고 싶습니다.

concurrent 한 처리가 아니라 parallel 한 처리 방법을 알고 싶습니다.

다양한 어떠한 방법이 있는지 알고 싶고, 혹시 코드레벨에서 가능하다면(C언어) 꼭 알고 싶네요.

bureokjam의 이미지

확장 문자(wide character) 질문입니다.

다음은 C언어 펀더멘탈이라는 책의 일부 내용(p.112)을 발췌한 것입니다.


아무리 확장 문자를 단일 문자처럼 잘 다룰 수 있다고 해도 입출력이나 파일로 저장할 때는(사실 파일로 저장하는 것 역시 출력의 일종이다) 바이트 단위여야 한다. 외부 세계와는 바이트 단위로 정보를 주고 받는다. 따라서 외부와의 입출력을 위해 (내부적으로는 어디까지나 한 바이트처럼 하나의 기본단위로 다루어지는) 확장 문자를 반드시 바이트로 다뤄야 한다. 물론 바이트보다 큰 단위로 다루어지는 문자(샤실상 코드값)를 단일 바이트 안으로 구겨넣는 것은 말이 안된다. 따라서 적절한 약속과 조합(이것을 '인코딩'이라고 한다)을 결정해서 여러 개의 바이트가 확장 문자 하나와 대응관계를 맺도록 만들어 이 문제를 해결하였다.

nshhsn의 이미지

Python matploylib 사용시 그래프가 표시가 안됩니다.

안녕하세요

리눅스에서 파이선 사용시 어려운 점이 있어 질문 드립니다.

구글 클라우드에서
ubuntu14.04 LTS 버전을 사용했습니다.

Python matplotlib를 사용해서
그래프를 그리면

servent2616의 이미지

디바이스 드라이버에서 키보드 입력을 받을 수 있나요?

리눅스 device driver 코딩 가운데 키보드 입력을 받을수 있나요?
사용하는 함수가 있나요?
어떻게 해야할지...

코드 분석하는데 사용하고자 합니다.

rlj1202의 이미지

pipe의 file descriptor를 공유해서 사용 불가능 한가요?

memory mapping으로 int변수들을 공유할수 있어서 int[2]로 파이프의 fd를 공유해 놓고 다른 프로세스에서 그놈을 가져다가 write, read를 하려고 햇더니 EBADF(0x9)라는 오류가 뜨네요.
일반적인 파이프는 부모 자식 프로세스에서만 사용 가능한가요?

mydream의 이미지

소켓 프로그램에서 socket와 bind는 반드시 1:1인가요?

socket 함수로 반환받은 소켓을 bind 함수로 전달해 소켓과 특정 주소, 포트를 결합할 때 해당 소켓에 대해 결합될 수 있는 주소 및 포트는 하나인가요? 즉 하나의 경청 소켓에 대해 결합될 수 있는 sockaddr 구조체는 하나로 한정되는 것인지 궁금합니다. 여러개 결합을 할 수는 없는 것인가요?

SOCKET sock=socket(~~);
sockaddr_in sock;
//sock를 설정했다고 가정
bind(sock, sock~);
sockaddr_in secsock;
bind(sock, secsock~);

ozon1000의 이미지

도대체.. 이게 무슨말인가요...ㅎㅎㅎ

The Core language is meant to be just large enough to express efficiently the full range of Haskell programs, and no larger.

많은 의역과 생각을 해봐도 아주 깔끔하게 해석이 어려운거 같네요..
무슨 뜻이라고 생각하세요??

ozon1000의 이미지

안드로이드 역분석 관해 질문드립니다.!!

대표적으로 Dalvik은 apk파일에서 -> .dex 을 생성해서 앱이 필요한 순간마다 컴파일하는 방식이죠.
ART는 app code 안의 중간코드는 모두 native code로 변환하여 설치하는 방식인데요..

dalvix은 역분석 즉 리버싱이 가능한것으로 알고 있습니다.

ART도 역분석 즉 리버싱이 가능한가요??

제가 이제 시작한 새내기인데.. 지식에 한계가 있어 질문드립니다. 감사합니다!

bureokjam의 이미지

C언어 주로 constant와 관련된 질문입니다.

1) constant와 literal의 관계는?
상수가 리터럴을 포함하는 개념으로 이해하고 있습니다. 따라서 상수는 항상 리터럴이 될 수 있지만, 리터럴은 상수가 될 수 없는게 맞는건가요? 참고로 프로그램 소스에서 글자 그대로의 값(문자, 문자열 포함)을 리터럴로, 리터럴에서 자료형이 추가되어 메모리에 저장된 값이 항상 일정한 것을 상수라고 이해하고 있습니다.

2) constant는 정말 변경할 수 없나요?
흔히 상수를 변하지 않는 수, 항상 일정한 수라고 설명하잖아요? 그럼 우리가 일반적으로 아는 상수는 컴파일러 역시 구분할 수 있을테고, 그런 상수는 프로그램 실행 중에 운영체제가 변하지 않도록(항상 일정 하도록) 소프트웨어적으로 보호 해주는게 맞을까요? 그럼 결국 상수는 물리적으로(하드웨어적으로) 변경될 수 있는건 맞나요? 상수가 저장되는 물리적 장치가 일반적으로 RAM 이니까요.

페이지

프로그래밍 QnA 구독하기