리눅스

포스트: 554|조회수: 0|TERM
Items

Posts

554 posts

[라즈베리파이] 동기화 - 스핀락(spinlock) Deadlock으로 생기는 문제

Guillermo Austin Kim|2019년 1월 6일

스핀락 코드를 잠깐 살펴봤는데 뮤텍스와 다르게 상당히 코드 복잡도가 낮습니다. tickets.next과 tickets.owner 두 값으로 스핀락을 획득하는 순서를 콘트롤하죠. spin_lock 함수가 처음 실행되는 시점에 tickets.owner 값을 로컬 변수에 저장하고 전역 tickets.next 값이 업데이트 될 때까지 Busy-wait합니다. 여기서 중요한 포인트는 tickets.owner 값을 로컬 변수 즉 스택 메모리 공간에 저장해서 제어한다는 점입니다. 모든 프로세스들은 각각 스택 공간에서 돌기 때문에 ticket 스핀락을 획득한 순서를 정확하게 파악할 수 있습니다. 낮은 복잡도에 정확하기 까지 합니다. 이렇게 스핀락 함수는 빠른 시간 내에 실행돼야 하는 인터럽트 서비스 루틴에서 공유 데이

천체 관측 프로그램 “스텔라리움”

소인배(小人輩).com|2019년 1월 5일

천체 관측 프로그램 “스텔라리움” 바쁜 현대사회를 살아가다 보면, 간혹 주변의 경치를 돌아볼 수 있는 여유조차 가질 수 없는 경우가 많습니다. 낮에도 이렇게 하늘을 올려다보기 힘든데, 밤에 별자리를 보겠다고 하늘을 올려다보는 일은 더욱더 하기 힘들지 않을까 하는 생각이 드는 시대입니다. 게다가 혹시나, 밤하늘의 별자리를 확인할 수 있는 여유가 생겼다고 하더라도, 대기 환경이 옛날만큼 좋지 않기에 하늘의 별자리를 보는 것도 쉽지 않은 시대가 되기도 했..

[라즈베리파이] 가상 파일시스템 동작 분석(유저 프로세스 입장)

Guillermo Austin Kim|2019년 1월 3일

이번에 유저 어플리케이션 입장에서 가상 파일시스템 동작을 살펴보겠습니다. 먼저 유저 공간에서 실행하는 다음 코드를 같이 작성해 봅시다.1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 89 #define FILENAME_NAME "/home/pi/sample_text.text"1011 int main() 12 { 13 int fd = 0;14 ssize_t read_buf_size;15 off_t new_file_pos;

sshpass - ssh 자동접속

반달가면|2019년 1월 3일

예전에 expect를 이용해서 ssh 자동접속하는 방법을 정리한 적이 있는데(여기로), ssh 접속후에 실행할 명령이 한줄 짜리라면 expect로 복잡하게 스크립트를 만드는 것보다 sshpass를 사용하는 것이 더 편리하다. 우선 sshpass 패키지를 설치한다. 데비안/우분투 계열 기준으로 아래와 같이 작업. # S/W 저장소 정보 갱신 sudo apt-get update # sshpass 패키지 설치 sudo apt-get install sshpass 사용 형식은 대략 아래와 같다. 암호는 -p 옵션으로 지정하면 접속할 때 자동으로 입력된다. -p와 접속암호 문자열 사이에 공백이 없음에 유의. sshpass -p'접속암호' ssh 계정@서버주소 예를 들어 server.