[라즈베리파이] 동기화 - 스핀락(spinlock): 첫 번째 스핀락 해제 시 동작(1)
By Guillermo Austin Kim | 2018년 12월 26일 |
스핀락을 해제할 때는 spin_unlock() 함수를 호출하는데 스핀락 인스턴스의 owner를 +1만큼 증감한다고 알고 있습니다.static inline void arch_spin_unlock(arch_spinlock_t *lock){smp_mb();lock->tickets.owner++;dsb_sev();}spin_unlock() 함수를 호출하면 여러 인라인 형태 함수로 연결되는데 실제 동작은 arch_spin_unlock() 함수가 수행합니다. [1] 번 프로세스가 스핀락을 해제할 때 스핀락 인스턴스인 owner를 +1증감합니다. [2] 프로세스는 Busy-waiting 동작으로 스핀락 인스턴스의 owner가 0x2가 될 때까지 무한루프를 돌고 있는 상태였습니다. 그런데 [2]번 프
xxd - 리눅스에서 바이너리 파일 내용을 16진수로 출력하기
By 반달가면 | 2017년 6월 19일 |
리눅스에서 바이너리 파일 내용을 16진수로 출력해야 할 경우 xxd라는 요긴한 도구가 있다. 아래의 예시를 보자. # data.bin 파일 내용 출력 xxd data.bin 0000000: 1f8b 0800 ... 0000010: e103 6abb ... ... 위와 같이 입력하면 통상 많이 볼 수 있는 바이너리 파일 편집기와 유사한 형식으로 내용을 출력해 준다. 기본 출력은 2바이트씩 묶어서 공백으로 구분해서 보여주는데, 만약 각 바이트마다 공백으로 구분하려면 -g 옵션을 추가해 주자. # data.bin 파일 내용 출력, 1바이트 단위로 구분 xxd -g 1 data.bin 0000000: 1f 8b 08 00 ... 0000010: e1 03 6a bb ... ...
[bash: iconv] iconv를 이용한 텍스트 인코딩 확인
By 반달가면 | 2017년 8월 4일 |
인코딩이 불분명한 텍스트 파일이 있을 경우 iconv를 이용하는 간단한 셸 스크립트를 작성해서 인코딩을 확인해 볼 수 있다. 캐럭터 인코딩을 변환해주는 도구인 iconv에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로 방법은 단순하다. iconv에서 지원하는 인코딩 목록 전체를 가지고 현재 내 리눅스 시스템에서 사용중인 인코딩(통상 UTF-8)으로 한번씩 다 변환해 보는 것이다. 이걸 수작업으로 하기가 귀찮으므로 스크립트를 만들어서 하면 된다. 먼저, iconv에서 지원하는 인코딩 목록을 출력해 보자. # 지원하는 캐럭터 인코딩 목록 확인 iconv -l | more 437// 500// 500V1// ... iconv 버전에 따라 출력이 다를 수도 있겠는데, 어쨌든 데
OS별 EOS 정리
By 멋진넘 | 2018년 8월 14일 |
IT 관련 관리자로 있다보면, 이런 저런 일들이 많은데, 그중에 하나가 OS의 EOS와 연관된 서버에 대한 이슈를 확인하는 일이다. 특히 새로운 것에 대해서 수행할때, EOS에 대해서 관심있게 한다. 1. CENTOS 20. What is the support ''end of life'' for each CentOS release? CentOS 3 CentOS-3 updates until October 31, 2010 CentOS 4 CentOS-4 updates until February 29, 2012 CentOS 5 CentOS-5 updates until March 31, 2017 CentOS 6 CentOS-6 updates until November 30, 2020 Ce