이 블로그 검색

2024년 2월 13일 화요일

CPP> std::lock_guard 뮤텍스 활용법.

CPP은 직접 메모리를 할당하고 제어하다보니, 포인터를 사용하여 힙에 메모리를 할당한 후,
해당 주소를 반환해서 쓰는 경우가 많다.


그렇다보니, 잠깐 뭔가를 하는 경우에도, new로 클래스를 할당하고, 끝날 때 delete를 호출해야하는 경우가 발생했다. 

그런데, 이 delete를 호출하기전에, 중간에 return이 되는 경우와 같이 delete가 호출되지 않거나, 코드 작성자가 까먹거나 하는 일이 생기는데, 매번 new가 호출될 때마다, 메모리가 할당되므로

여러번 호출되는 함수에서 이런 실수가 발생하면 해당 프로세스가 메모리를 점점 잡아먹다가, 시스템을 먹통이 되게 만들거나, OS에서 해당 프로세스를 정지하거나 하는 등, 정상적인 작동을 하지 못하게 된다. 이것을 메모리 누수라고 부르는데, 

이 메모리 누수를 막기 위해, 보통의 지역변수들처럼, 스택에서 무언갈 하다가, 스택이 pop되면 delete를 자동 호출하기 위해, 스마트 포인터라는 것이 도입 되었다.  실제로는 굉장히 복잡하겠지만 간단히 설명하자면 다음과 같다. 
template<class T> 
class smart_p {
    public:
        T* ptr; 
        operator= (smart_p<T> a, T* b){
            ptr = b;
        }
        smart_p(T* b) {
            ptr = b;
        }
        void ~smart_p() {
            delete ptr;
        }
}
new에서 반환하는 메모리 주소를 받아다가 내부 메모리 주소를 저장하는 클래스를 만들고 클래스를 스택에 만들어 사용하는 것이다. 
그러면 스택에 끝에서 자동으로 메모리의 해제가 발생한다. 

시작이 있으면 반드시 끝이 있어야 하는 것 가운데에는 mutex라는 것도 있다.
mutex는 lock을 걸어주면 반드시 unlock을 걸어주어야, 다른 프로세스가 일하기를 대기하다가 일을 시작할 수가 있다, 

메모리 누수는 서서히 시스템이 죽어가지만 mutex를 unlock하지 않으면 그냥 시스템이 죽는다. 

mutex도 스마트포인터처럼 같은 스택에 클래스를 만들어 사용할 수 있다. std::lock_guard이 그와 같은 일을 한다.  스마트 포인터는 메모리 생성은 그래도 직접 new를 호출하는 방식을 많이 사용했는데, (아무래도 팩토리 방식을 쓸 수도 있으니까)

mutex는 lock_guard도 직접 거는 방식을 사용한다. 대략 간단히 쓰자면 다음과 같겠지.

template<class T> 
class lock_guard {
    public:
        T& m; 
      
        lock_guard(T& b) {
            m = b;  m.lock(); 
        }
        void ~lock_guard() {
            m.unlock();
        }
}

그 외,std::lock이라는  여러개의 mutex를 동시에 받아서 lock을 걸 수도 있다. 

문서를 읽어보자.

각각의 lock을 직접 건다면, 사용 방법에 따라, ABC, BAC 순인 lock이 걸릴 때,

상호간 무한 대기상태에 빠질 수 있으므로 이런 방법을 사용한다.
(두 항목들간 복사 같은 상황) 

실제 구현은 std::atomic 등을 사용해, 락을 동시에 거는 방법 등을 사용하는 것이 아닐까!,  추측한다. 

2024년 2월 8일 목요일

앗 astronvim을 깔아보고 나서 알게 되는 것이 꾀나 많다. (맞춤법 검사기 이상한데...)

 꽤나 -> 꾀나로 바꿈.


Astronvim을 깔았더니,

홈화면이 ?

홈 화면의 존재는 처음보는건 아니다만, 생각보다 편해 보인다. 해당 패키지를 찾아서 
내 vim 셋팅에 넣어야 겠다. l
처음 시작하니 일단 Plugin install 화면이 미려하게 나온다. fzf+telescope의 힘이라는데,
fzf는 이미 잘 쓰고 있고, telescope는 지금 셋팅에서 설치하는 것을 실패 했다. lua가 필수 이거나, lua 셋업을 어떻게 잘 해봐야겠는데, vim configure 명령 옵션을 더 넣고 싶지는 않아 여기서 포기 했다. 
  첫 화면에  space ff를 누르면 findfile 창이 열린다고 한다 시키는 대로 해보니...

 Space를 눌렀더니 emacs에서나 보던 화면이?

어... emacs에서 org-agenda에서나 보던, 커맨드 입력 중에 다음 커맨드에 대한 설명이 화면에 나오는 것이다. 

어... 이거는 안 깔 수가 없다. 

당장 깔아야지...

찾아보니, 이 툴은 Which-key.nvim이라는 패키지였고
vim-leader-guide 라는 툴이 emacs의 guide-key에서 영감을 받아서(?)
만든 툴이라고 한다. 
그리고 emacs에 guide-key가 emacs-which-key로 재작성되었을 때, 
vim-leader-guide도 vim-which-key로 재작성 되었다고 한다. 

그리고 nvim하는 사람들이 유난히도 싫어하는 vimscript 기반에서 lua 기반으로 바뀐 것이 
바로 which-key.nvim이다. 

뭐 난 아직은 좀 더 vim9쪽에 있고 싶으니 난, vim-which-key를 내 .vimrc로 이동시키려고 한다. 

흠 lsp에 패키지 추가하는게 너무 쉬워서, 결국은 nvim이나 nvim위에 올라간 astronvim으로 넘어갈 거 같기는 한데, 그래도 조금 더 버텨보자.


2024년 2월 6일 화요일

음 삼성이 GDDR7을 만들었다는데서 PAM3 기술을 사용해서, 데이터를 전송한다고 한다.


음 말이 좋아.. 

그냥 전송 매체의 클럭한계가 와서, 디지털에서 다시 아날로그로 가는거랑 같은 거 같은데


PAM3는 그러니까, 기존 0V, !0 V  신호 체계에서   0, 중간, 1 세개의 신호체계로 간다는거고
PAM4는 한번에 2비트씩     0V, (x/3)V, (2x/3)V , x V로 보내겠다는 거네...

디지털의 한계는 결국 아날로그로 가는 것으로 해결한다니.. 참... 


그래서 관심이 가서 어떻게 전송하는지 좋은지 python3으로 찾아보았다.

#!/bin/python3
ntrit = 1
nbit = 1

x = 3 / 2.0

pmin = 0.87
pmax = 1 / pmin

print("program start")

for n in range(1, 30000):
    if x > pmin and x < pmax:
        print(f"{n} loops 3**{ntrit} / 2**{nbit}")
    if x < 1:
        x = x * 2.0
        nbit += 1
    elif x >= 1:  # 
        x = x / 3.0
        ntrit += 1

print("program end")


2024년 2월 2일 금요일

[한줄평]KAI 파견 인도네시아인 기술자, KF-21 내부자료 유출 기도 / 연합뉴스TV

 

이야, 서로 잘 주고 받네.


예전에 국정원이 인도네시아 장관 호텔 털다가 걸린 적 있지 않나...

이준석은, 개혁이라는 타이틀 달고 추대 방식으로 대표에 올라가네...

 


이준석이 가진 무기는,


여당에서 선거로 당대표를 먹었다는 그 인기가 무기인데, 추대방식으로 대표가 되어버리면,

대통령 명령하달에 따라서 징계위원회 열리고 징계받아서 비대위원장한테 권력 이양하는 

그 모델과 다를 바가 없을텐데...


강력한 지도력이라는 무기를 만들고 싶은건가 본데, 가진 무기가 뭉뚝해지고 있네..



케비닛으로 조종하는 사람들이 원하는 임무를 완수해야 하니까 그런건가..


주호민 재판 결과의 의의.

 


재판과 관련된 기사를 읽어보면, 



변호인측 주장은, 당사자간의 대화를 녹음한게 아니므로 불법성 증거라는 것.

그리고 아이한테 직접한 말이 아니라 혼잣말이라는 것 등이었던 것 같고,


주호민측 주장은, 아이가 학대를 받는다는 정황이 있어서, 그렇게 했고,

그 말은 충분히 학대에 해당하며, 아이+장애인이기 독자적인 법률행위를 할 수 없기에

정당하다는 것이 었을텐데.



법원에서는 주호민 측 주장에 손을 들었으며, 발언 중 일부는 학대에 해당한다고 판결하였다.


증거재판주의가 어쩌고 하지만, 살인이 아닌 이상, 증언 역시 핵심임이 아님을 모르는 사람이 과연 있을 것인가. 증언도 역시 중요하다. 하지만 과거 재판들을 보면, 아이들은 증언능력을 인정치 않거나, 장애인의 증언을 인정치 않은 사례가 있다. 장애인의 경우는 두드려 패서 스스로 범인이라고 한 경우는 오히려 그전과 다르게 법원에서 인정하는 등(약촌오거리 사건)  , 아이와 장애인의 말을 신뢰하지 않았고 불이익 줄 때만 신뢰한 것 역시 사실이다. (장애인을 예비 범죄자로 보는 판사에 시각)


그들의 말을 여전히 신뢰하지 않는 대신, 후견인 또는 대리인들의 자력구제를 위법성 조각사유로 보는 방향으로 보는 방향으로 진행될 가능성이 있다. 이 재판이 대법원까지 그대로 간다면 말이다. 


이미, 대한민국은 인구 급감시대에 도래했고, 20-40대는 하나만 낳아 잘 기르자 시대의 유산이며, 실버산업의 시대가 도래했고, 서울 근교로만 나가도 어디에서나 요양원을 볼 수 있는 시대가 된 이 때, 


이 판례는 요양원에 부모님을 모신 자녀들에게 큰 변화를 줄 것으로 보인다. 뭐 아이들이 있어야 아이들한테 영향을 줄 것 아닌가... 

귀가 잘 안 들린다고 어르신들 면전에서 욕하거나 하는 경우도 있을 것이고, 말을 잘 안 듣는다고 묶어 놓거나 하는 사건들은 뉴스로도 보도가 되었다. 이제, 그 자녀들이 부모가 학대 받는다는 생각이 들면, 과감히 법의 경계에서 구제방안을 마련할 것이고, 법원은 위법성을 조각해 과감히 재판할 가능성이 있다. 


미안하지만 난 이 재판 초기부터, 주호민 편에 섰다. 뭐 2심 3심 가면서 재판이 뒤집어 질 수야 있겠다만,     초반부터 맘에 안 들었던 점이 몇가지 있었으니까.

하나는, 서초 사건과 별개의 사건임에도, 동일 사건으로 인식한 듯한 기래기들과 인터넷에 있는 인간들의 기사와 글들 때문이고. 인터넷에서 항상 보는 것이지만, 생각하는 비용을 아까워하는지 모든 사건을 병합해서 보는 것을 좋아 한다.  모든 일은 개별로 봐야 한다. 그걸 종합적으로 보고 판단하고 사회문제로 바꾸는 것은 전문가들이 할 일이다. 

또 하나는, 저쪽 변호사들이 자기들의 전문인 법률로 법원에서 싸우는 것이 아니라, 대중을 동원해서, 싸우길 원해서 기사로 계속해서 주호민의 아들이 얼마나 고약한 지를 설명하는 방법 때문이다.  그럴 만 해서 그렇게 했다는 이 시각은 어떻게 보면 굉장히 무섭다.

나는 이전부터 경찰과 검찰들이 피의사실 공표하는 것을 혐오한다. 이 사건을 거치면서 변호사들이 똑같은 행동을 하는 것을 보았는데, 똑같히 혐오하게 되었다. 사실 상 아무 것도 다를 게 없다.  소위 사시 출신들이 자랑하는 게(법전이라고 다를건 없음) 그렇게 공부해서 그 자리에 갔으니 잘났다면서, 이길려고 할 때는 우회해서 이상한 방법을 사용한다. 그러면서 그대로 자부심을 가지고 산다. 

하나를 선택했으면 하나는 포기해야 한다. 

세 번째도 있다. 저 선생이 아이에게 한 말은, 내 어릴 적 못된 선생들이나 군대에서 선임들이나 간부들이 하는 듯한 말로 여겨졌다. 그 말이란 건, 비장애인인 보통 아이들이 선생에게 듣기는 어려운 말로 여겨졌다.  녹음기가 좋아서 혼잣말이 녹음 되었다는 건 말도 안되는 소리이고, 녹음기가 좋으면 잡음이 많이 들어 갔을거고 판독에 어려움이 있었을 텐데, 그런 것 같지는 않다.  그렇다는 건 말한 사람만 혼잣말이지 다 들리는 소리라는 소리이다. 

  면전에서 욕하면서 혼잣말이라니, 들리게 말하는 걸 혼잣말이라고 하는 건 좀 싫다.

2024년 1월 31일 수요일

<조선일보>마약 투약 혐의 내사 받던 재벌가 3세.. 피의자 신분 전환 -> 여전하네 경찰은.

<<<
경찰은 A씨의 마약 투약 혐의 확인을 위해 조만간 소환 조사할 예정이다. 경찰 관계자는 "현재 수사가 진행 중으로, 구체적인 내용을 밝힐 수 없다"고 말했다.
>>>




이미 다 말했는데???

기자는 다 들어놓고, 저거만 넣으면 되는 건가... 

<<<
31일 법조계 등에 따르면 인천경찰청 마약범죄수사계는 최근 마약류 관리에 관한 법률 위반 혐의로 재벌가 3세 A씨를 형사 입건해 피의자 신분으로 전환했다. 
>>>
이번엔 검찰이나, 검찰수사관이 유출했구나... 

수사기관들 수준이 왜 이러냐.

2024년 1월 30일 화요일

verilog rle 등 디지털 신호쪽에 관심이 있다면 이 건 알아야지.

 https://wavedrom.com/editor.html

뭐 이런식으로 만들 수 있다. 

FPGA, 나 MCU로 영상 출력하는데 관심있다면 알면 좋을 것.

뭐 엑셀같은걸로도 쉽게 할 수 있긴함. 스타일 복사해서 하면 되니까.


카카오가 SM 터는건 OK인데 '카카오 모럴해저드, 온정주의는 끝났다' 는 뭔 개소리...

 https://news.mt.co.kr/mtview.php?no=2024012914503531948&VMT_PT


카카오의 모럴헤저드는 카카오 간판달고 있는 애들이 책임져야지.


왜 SM을 치면서 그딴거 올려놓냐...


기자놈들 진짜 주는 대로 다 쓰는구나..

팬메이드로... 스타1 브르드워 라스트씬 시네마틱 뮤비.. 이야...

 https://youtu.be/lOoQToNG0Lw?si=tHGH1Qh8cuvbNNen



스타2로... 프로토스 학습하고 스타1 AI 업스케일링 한 것이려나... 

2024년 1월 26일 금요일

기본소득당 용혜인 의원이 다시 비례로 나가는건 그냥 이자스민 되는 길임...



심상정 지역구 같은데 가서 싸울 테니까, 공동 경선하자고 하고 지역구 나와야지,

비례는 한번만 할 수 있게 한 건 3김 정치 시대로 가지 않겠다는 선언인데, 그걸 건드리는건

정치 후퇴임.

임종석은 뭐, 미운털 박혔어도, 경선 기회까지 박탈하는건 부당한거 같은데, 전병헌은 여기 왜 끼냐..

 


전 전 의원은 대기업들을 상대로 e스포츠협회에 기부하거나 후원하게 한 혐의 등으로 기소돼 2021년 3월 뇌물수수·정치자금법 위반 혐의로 징역 1년에 집행유예 2년 형 등을 확정받았다가 2022년 사면됐다.


그러니까 요약하면, ... 범죄로  2031년3월까지 피선거권 박탈되었다가, 

상대편인 윤석렬 대통령한테 사면 받아서, 민주당 경선에 나가려고 했는데, 자격이 박탈 당했다고 화난다고 탈당한다고??


왜 아직 탈당안한거지가 의문이네... 



2024년 1월 23일 화요일

기자들은 오늘도 부도덕하다. 타이틀부터 거짓말이네...

 공지영이 조국 지킴이????  왜 시작부터 거짓말이지... 


조국지킴이는, 김어준 말고 아무도 없었음 다 등 돌렸고,  모든 언론이 기사 받아쓰기 

하라고 화력보충만 해주던 인간들인데...


윤정부 폭정 동안 조용하다가 선거철 되니까 다시 나오는 이유가 뭘까... 

기자가 다시 불러온걸까 본인이 스스로 나타난걸까... 

그동안 조용하다가 갑자기 나타나서 이러네... 


가장 많이 본 글