Spinlock(스핀락) - Deadlock 시나리오
By Guillermo Austin Kim | 2017년 12월 6일 |
자자, 이제 A, B, C 모듈에서 spinlock을 순서대로 잡는 시나리오를 만들어 볼께요.spinlock value는 특정 메모리 공간에 있는 전역 변수와 같다고 보면 되요. 1. A 모듈이 스핀락을 겁니다.spinlock valuenext | owner0001 0000 2. B 모듈이 스핀락을 겁니다. 자 이때 A모듈이 스핀락을 잡고 있어요. spinlock value next | owner 0001 0000 //<<-- arch_spin_lock() 진입 전 next값을 로컬 변수에 저장, 자 그럼 로컬 변수 lockval.tickets.next=1, lockval.tickets.owner=0 이겠죠 0002 0000 // spinlock value next를
OS별 EOS 정리 -2
By 멋진넘 | 2018년 8월 14일 |
6. oracle linux 7. windows server MS는 너무 길어서 이정도로만 위치만 표기하는 것으로 정리해 보고자 한다. 힘들다.그러나 저러나 이글루는 왜그리 길이가 짧은지 원..
[Linux][Kernel] WARN 매크로
By Guillermo Austin Kim | 2018년 5월 9일 |
WARN 매크로는 코드 흐름에 소프트웨어적인 오류가 있을 때 실행합니다. 그래서 소스 코드를 보다가 WARN() 매크로를 보면 뭔가 논리적인 오류가 있는 조건이라고 봐야겠죠. WARN 매크로를 어떤 함수에서 실행되면 시스템 정보를 커널 로그로 출력합니다.1. 콜스택2. 현재 수행 중인 프로세스 정보: CPU번호, 프로세스 이름, pid3. 함수 이름과 라인 정보 하지만 커널 시스템에 심각한 오류가 있는 상태가 아니라 판단해서 에러 메시지만 출력하고 시스템을 계속 구동시킵니다. 그럼 새로운 드라이버 코드를 짰는데 WARN 매크로가 실행되면 어떻게 해야 할까요? 시스템에 치명적인 에러는 아니라 그냥 둬야 할까요? 그렇지 않습니다. WARN 매크로는 시스템에 뭔가 논리적인 오류가 있는 상태이므로 반드시 잡아
[bash: grep] 바이너리 파일에서 문자열 검색하기
By 반달가면 | 2017년 4월 24일 |
grep 명령을 이용한 문자열 검색을 바이너리 파일에 적용할 경우, 별도의 옵션을 주지 않으면 해당 문자열 존재 여부만 알 수 있다. # my_data.bin 파일에 문자열 ABC가 존재하는지 확인 grep "ABC" my_data.bin Binary file my_data.bin matches 일치하는 문자열이 있을 때 해당 문자열을 화면에 표시하고 싶다면 -a 옵션을 추가해 주면 된다. # my_data.bin 파일에서 문자열 ABC를 검색, 있을 경우 화면에 출력 grep -a "ABCD" my_data.bin ABCDEFG 텍스트 파일에 대해 문자열 검색을 할 때 -a 옵션을 붙여도 별 문제 없이 검색이 잘 되므로, 텍스트 파일인지 바이너리 파일인지 잘 모르겠는 상황에서는