프로그래밍 QnA + 설치 및 활용 QnA

dao_3651의 이미지

fork/exec 이후 deadlock

C 데몬 중에서 system 함수를 사용 하여 스크립트를 수행 하는 프로세스가 있습니다.

그런데, socket등이 상속 되어 이슈가 되어서 다음과 같은 순서로 변경 하였습니다.
fork --> 자원 해제 --> exec (child)
`--> waitpid (parent)

그런데 이렇게 하니 드물게 child side 에서 deadlock이 발생 하네요.

익명 사용자의 이미지

gnome + VNC로 로그인 할 때 환경변수가 적용되게 하고 싶습니다

foo라는 GUI 프로그램이 있습니다. 이 시스템은 클라우드 위에 있어서 local에 연결된 모니터, 키보드 등은 없습니다. 원격으론 오직 VNC를 연결해서 gnome GUI 메뉴에서 아이콘을 골라 클릭하면 실행됩니다.

foo 프로그램을 실행할 때, E라는 환경변수를 E="/usr/bin/java"로 셋팅해서 실행하고 싶습니다. 터미널에서라면 아래와 같이 하고 싶습니다.

$ export E="/usr/bin/java" 
$ foo &

해당 export 라인을 .bashrc나 /etc/profile.d/foo.sh 같은 곳에 넣어도 gnome + VNC 세션에 로그인했을 때는 적용이 되지 않는 것처럼 보입니다. 터미널을 열고 echo $E를 해보면 그때는 /usr/bin/java로 셋팅이 되어 있구요. 레드햇 계열의 배포판입니다.

kimgarchi@GitHub의 이미지

캐시 지역성에 관한 의문

캐시 적중도는
시간 지역성(얼마나 자주 쓰는가)과 공간 지역성(주변것들이 연관이 되어있는거 같은가)으로 구분됩니다.

뭐 이거는 다들 알고들 아는 사실이신데...

의문이 드는 사항은 다음과 같습니다.

컨테이너에 다량의 변수가 투입되어져 있을 경우,

1번 컨테이너 : 해당 변수들이 스택에 저장되어져 있는 컨테이너
2번 컨테이너 : 해당 변수들이 힙에 저장되어져 있는 컨테이너 (포인터 변수)

로 우선 구분을 지었었습니다.

다만 스택오버 플로때문에 변수 개별의 크기 (혹은 갯수)를 무지막지하게 늘릴수없어서,
행위 자체만을 늘려서 테스트를 수행하였습니다.

테스트의 방식은 다음과 같았습니다.

디버깅모드로 작업, 릴리즈는 단순연산을 최적화로 무마시켜버려 동작이 수행되지않아 배제하였습니다.

1번과 2번 컨테이너를 각각 미리 준비
단순 연산을 통해 작업을 수행

ljs0652의 이미지

CreateProcess 질문입니다

제가 알고 있는 CreateProcess는
존재하고 있는 프로세스를 실행시키고 있는걸로 알고 있는데요
혹시 존재 하지 않는 프로세스를 빈 깡통으로 열 수 있는 방법이 있을까요?

ljs0652의 이미지

CreateProcess 질문입니다

제가 알고 있는 CreateProcess는
존재하고 있는 프로세스를 실행시키고 있는걸로 알고 있는데요
혹시 존재 하지 않는 프로세스를 빈 깡통으로 열 수 있는 방법이 있을까요?

artains의 이미지

Java new 객체 생성시 주소값이 변수에 저장되는 시점이 궁금합니다.

Java 공부중인 초보입니다.
MovieVo 클래스를 new 를 통해 생성하는데, m1,m2,m3라는 변수에 생성된 클래스의 주소값이 저장된다고 이해했습니다. 그리고 아래코드와 같이 출력을 해보았는데
MovieVO@15db9742
MovieVO@6d06d69c
MovieVO@7852e922
이런 주소값이 나왔습니다.

다만 출력 부분의 m1,m2,m3의 순서를 아무리 바꿔도 출력은 위와 같이 나옵니다.

MovieVO m1 = ;new MovieVO(); 하는 시점에 m1,m2,m3가 주소값을 받아서 저장하고, 그리하여 각각의 객체가 구분되어 되어진다고 생각했는데, 잘 이해가 되지 않습니다.

왜 출력 순서를 바꿔도 주소값의 순서가 바뀌지 않는지 궁금합니다.

4whomtbts의 이미지

/dev/sda2 clean 에서 시스템 부팅이 stuck 됩니다.

안녕하세요?갑자기 /dev/sda2 clean ***/*** files, ***/*** block (***는 숫자)가 뜨면서 booting 이 stuck됩니다.
그런데 cui모드로는 로그인도 되고 모든 기능을 할 수 있는데(저 위의 상태에서 cui모드로 들어갈 수 없고 recovery모드에서 가능합니다.) lightdm 만 작동하지 않는 것 같습니다. gnome-desktop은 혹시 될 까 해서 깔아봤는데 똑같이
되지 않습니다.

갑작스레 이렇게 됬는데, 이렇게 되기 전에 C++ make를 돌리고, gradle을 동시에 돌리고 있었습니다. 프로젝트를 돌리면서 마우스 이동이 점점 느려져서 프로젝트가 너무 커서 빌드하는데 cpu를 많이 써서 그런가보다 했는데 그대로 멈추어버렸습니다. 그래서 하릴없이 강제종료 한 후로부터 이런 현상이 발생했습니다.

4whomtbts의 이미지

CMake 를 이용해 third_party 링크관련 문의드립니다

안녕하세요! 컴퓨터공학과 재학중인 학부생입니다. 이번에 방학에 합의 알고리즘인 raft 알고리즘을
gRPC를 사용해서 구현하려고 합니다. 당연히 gRPC를 먼저 프로젝트에 넣어야하는데, CMake를 처음 배워서
여러 헷갈리는 부분이있습니다. 그리고 자바나 node 같이 빌드나 링킹을 신경쓰지 않은 안락한 환경에서만
프로그래밍을 해와서, C++ 의 빌드가 아리송하기만 합니다. 다행히도 이번 학기에 시스템소프트웨어를 배워서
링킹이나 라이브러리의 개념은 잘 알게되어서 용기를 얻을 수 있었는데요. 본론을 말씀드리면

phi의 이미지

리눅스 설치 시 사용할 스크립트를 만들고 싶습니다.

이와 관련해서 larbs라고 괜찮은게 있어서 잘 뜯어서 사용해보려 합니다.
(스크립트 주소: larbs.xyz/larbs.sh)

그런데 다음 내용이 뭘 뜻하는건지 잘 몰라서 완전하게 제 것으로 만들기가 애매해서 질문 올립니다.

1.조건문

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기