[라즈베리파이] 동기화 - 스핀락(spinlock): 스핀락 중복 획득 시 동작
By Guillermo Austin Kim | 2018년 12월 25일 |
이전 시간까지 스핀락을 획득하고 해제하는 기본 동작만을 확인했습니다. 실전 개발에서는 스핀락을 다른 프로세스가 접근하는 동작에서 예상치 못한 문제를 볼 수 있습니다. ftrace 로그로 커널을 디버깅하면 스핀락을 바로 획득할 때 보다 스핀락을 얻지 못해 기다리는 빈도가 훨씬 높습니다. 스핀락을 제대로 이해하려면 스핀락을 누군가 획득한 다음 다른 프로세스가 같은 스핀락을 얻기 위해 기다릴 때 어떤 동작을 하는지 상세히 분석할 필요가 있습니다. 그동안 이미 분석한 어셈블리 코드는 될 수 있는 대로 넘어가고 스핀락 중복 획득 시 스핀락이 어떤 동작을 하는지 초점을 맞춰서 코드를 살펴보겠습니다.
locate - mlocate 데이터베이스 정보 확인 및 수동 갱신
By 반달가면 | 2018년 12월 5일 |
파일을 빠르게 찾기 위한 locate 명령에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로 기본적인 사용 예시는 아래와 같다. # 디렉토리 경로 또는 파일명에 문자열 "abc"를 포함한 경우 찾기 locate "abc" # 파일명(basename)에 문자열 "abc"를 포함한 경우 찾기 locate -b "abc" # 정규표현식 사용, 문자열 "Abc" 또는 "abc"를 포함한 경우 찾기 locate --regex "[Aa]bc" locate에서 참조하는 데이터베이스(mlocate DB) 관련 정보를 확인하려면 -S(대문자) 옵션을 이용한다. # mlocate DB 정보 출력 locate -S Database /var/lib/mlocate/mlocate.d
[리눅스 centos 6.4] Redmine 설치하기
By RightBear님의 이글루입니다 | 2017년 3월 15일 |
centos 6.4 기준으로 설치 합니다.[SELinux 변경] disable" >vi /etc/sysconfig/selinux SELINUX=disabled // 로 변경[port 허가]system-config-firewall &를 통하여GUI로 방화벽을 추가해주던지vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT //추가/etc/init.d/iptables restart[필요한 도구 설치]rpm -Uvh groupinstall "Development Tools"yum install openssl-devel readline-devel zlib-devel curl-devel lib
[리눅스커널] 워크큐: struct worker 구조체 파악하기
By Guillermo Austin Kim | 2020년 3월 11일 |
워커를 관리하고 저장하는 자료구조는 worker 구조체입니다. 이번 절에서는 worker 구조체의 세부 필드를 분석하겠습니다. worker 구조체 분석 다음은 worker 구조체의 선언부입니다. struct worker {2 union {3 struct list_head entry; 4 struct hlist_node hentry; 5 };6 struct work_struct *current_work; 7 work_func_t current_func; 8 struct pool_workqueue *current_pwq; 9 bool desc_valid;10 struct list_head scheduled; 1112 struct task_struct *task; 13 struct worker_p