[라즈베리파이] 동기화 - 스핀락(spinlock): 두 번째 스핀락 해제 시 동작(2)
By Guillermo Austin Kim | 2018년 12월 30일 |
스핀락을 해제할 때 spin_unlock() 함수를 호출하며 이 때 스핀락 인스턴스 owner 값을 +1만큼 증감한다고 배웠습니다. 이제 [2] 번 프로세스가 임계 영역 실행을 마치고 스핀락을 해제했습니다. spin_unlock() 함수를 실행하니 스핀락 인스턴스 중 owner를 +1만큼 증감해서 0x3이 됐습니다. [3]번 프로세스는 스핀락 인스턴스를 계속 읽으면서 스핀락 인스턴스 owner 값이 0x3이 되기를 기다리고 있었습니다. 그런데 스핀락 인스턴스 owner 값이 0x3이니 스핀락을 획득하고 무한 루프를 빠져나갑니다. 스핀락 기본 동작과 함께 누군가 스핀락을 획득했을 때 스핀락 동작에 대해서 알아봤습니다. 코드 분석으로 다음과 같은 중요 포인트를 알 수 있습니다.1.스핀락은 코드 구현도가
리눅스 커널, 드디어 6.0 버전대 시대로 진입
By 파란오이의 Beautiful Life | 2022년 10월 6일 |
며칠 지난 소식이지만, 새로운 10월의 시작과 함께 하듯이 10월 2일 리눅스 커널의 6.0 릴리즈가 등장했습니다. 기존 안정 버전 5.19 버전대에서 6.0 대에서 한 번에 올라왔지만, 메이저 버전업에 기대하는 천지개벽 같은 요소는 그리 없습니다. 버전을 6.0으로 올린 것도 5.19에서 5.20으로 가기에는 서브 버전이 좀 숫자가 크다... 고 해서 올린 의미 정도이니까요. 하지만 지속적으로 진행 중인 변화의 폭 자체는 그리 작지 않습니다. 이번 커널 6.0에서도 최신 하드웨어들에 대한 지원들이 추가되었습니다. 프로세서에서는 3세대 제온 스케일러블 ''아이스 레이크''나 AMD 라이젠 쓰레드리퍼, AMD 에픽 프로세서 등에서의 성능 최적화 등이 적용되었고, 인텔의 차세대 프로세서가 될 4세대 제온 스케일러
[라즈베리파이] 가상 파일시스템 공통 모델이란
By Guillermo Austin Kim | 2019년 1월 2일 |
가상 파일시스템 구조와 동작을 알려면 가상 파일시스템에서 쓰는 자료구조를 이해할 필요가 있습니다. 가상 파일시스템 자료구조를 소개하기 전 자료구조를 왜 생성했는지 생각 해 봅시다. 우리는 리눅스 시스템에서 파일을 열고 디렉토리를 검색하는 동작을 반복합니다. 이 과정에서 파일을 실행할 수 있는 권한이 있는지 해당 파일이 어떤 파일시스템에서 관리하는지 특별히 신경 쓰지 않습니다. 리눅스 가상 파일시스템에서 배경 작업으로 이런 동작을 수행하기 때문입니다. 어떤 파일시스템에서도 파일이나 디렉토리를 찾거나 유효성을 점검하는 공통 패턴이 있습니다. 또한 파일시스템에서 파일을 관리하기 위한 속성이 있습니다. 파일에 대한 공통 속성인 메타 데이터에 대해서 생각해 봅시다. 먼저 파일이 접근한 시간, 수정 시각 그리고 실
anbox - 리눅스용 안드로이드 에뮬레이터 설치
By 반달가면 | 2019년 11월 18일 |
anbox는 리눅스에서 안드로이드 앱을 실행할 수 있게 해 주는 에뮬레이터다. 하드웨어와 OS를 포함하는 가상머신과 달리 안드로이드 앱을 마치 리눅스 GUI 프로그램처럼 실행할 수 있게 해 준다. anbox 공식 홈페이지는 아래의 링크를 참고하자. 우분투 계열 배포판인 리눅스 민트(linux mint) 18.2 XFCE에서 설치를 진행했다. anbox 홈페이지에 안내된 절차에 따라 작업. 설치 절차는 아래의 링크에 있다. 우선 snapd 패키지를 설치한다. 생소하긴 한데, snap이라는 리눅스 패키지 배포/관리용 도구가 있는 모양이다. anbox는 snap 패키지 형태로 배포된다. # S/W 저장소 정보 갱신 sudo apt-get update # snapd 설치 sudo