리눅스에서 특정 프로세스가 점유하고 있는 메모리 크기 확인하기
By 반달가면 | 2022년 12월 6일 |
리눅스에서 어느 프로세스가 어느 정도의 메모리를 점유하고 있는지 확인하려면 ps 명령에서 출력 옵션을 지정하면 된다. -o 옵션으로 출력할 항목을 설정할 수 있다. 필요한 출력 항목은 아래와 같다. user 프로세스 사용자 pid 프로세스ID rss 점유하고 있는 메모리 크기(kB) cmd 실행 명령(프로세스 명칭) -e 옵션으로 모든 프로세스를 출력하도록 지정하고 -o 옵션을 조합한다. 아래의 예시다. ps -eo user,pid,rss,cmd -o 옵션의 인자를 설정할 때 쉼표(,) 다음에 공백이 없어야 함에 유의하자. 이제 여기에 grep 명령을 조합하면 내가 관심 있는 프로세스의 메모리 점유를 확인할 수 있다. # firefox 프로세스의 메모리 점유 확인
[리눅스커널] 스핀락 플러그인 함수: spin_lock_irq()/spin_unlock_irq()
By Guillermo Austin Kim | 2019년 8월 21일 |
리눅스 커널 코드를 조금만 분석하면 spin_lock() 함수뿐만 아니라 spin_lock_irq() 함수를 써서 임계 영역을 보호하는 코드를 많이 볼 수 있습니다. 이렇게 커널은 스핀락 기능을 확장한 플러그인 형태 스핀락 함수들을 제공합니다. 이번 소절에서는 spin_lock() 함수 기능을 확장한 스핀락 플러그인 함수를 소개합니다. spin_lock_irq()/spin_unlock_irq() 먼저 spin_lock_irq()/spin_unlock_irq() 함수를 리눅스 커널에서 지원하는 이유를 알아보고 세부 코드를 분석하겠습니다. spin_lock_irq()/spin_unlock_irq() 함수가 생겨난 이유는 무엇일까? spin_lock_irq()/spin_unlock_irq() 함수 코드
리눅스 민트에서 nVidia 그래픽 드라이버 설치
By 반달가면 | 2017년 7월 17일 |
최근에 리눅스 민트(Linux Mint)를 설치한 PC에서 3D 가속을 사용하기 위해 nVidia 그래픽 드라이버를 설치하게 되었다. 어쨌든 성공적으로 되긴 했는데 그 과정에서 좀 헤맸던 관계로 여기에 정리해 두기로. 가장 처음에 해 본 것은 리눅스 민트에 기본으로 제공되는 "드라이버 매니저(driver manager)"라는 프로그램이었는데, nVidia 드라이버를 선택해서 적용했는데 시간이 지나도 별 반응이 없길래 취소. 두번째로 nVidia 웹사이트에서 리눅스용 지포스(Geforce) 드라이버를 다운로드해서 설치를 시도했다. 그러나 안타깝게도 드라이버 설치 파일을 실행하면 대략 아래와 같은 오류 메세지와 함께 설치가 중단되었다. ERROR: You appear to be running a
[리눅스커널] 워크큐(workqueue): 워크를 워크큐에 큐잉하는 인터페이스 함수 분석하기
By Guillermo Austin Kim | 2019년 9월 16일 |
커널은 디바이스 드라이버 레벨에서 워크큐를 큐잉할 수 있는 여러 가지 함수를 지원합니다.이번 시간에는 워크를 워크큐에 큐잉할 때 사용하는 함수를 소개하고 코드를 분석합니다. schedule_work() queue_work() queue_work_on() 먼저 schedule_work() 함수를 분석해볼까요? schedule_work() 함수 분석하기 schedule_work() 함수 구현부 코드는 다음과 같습니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/include/linux/workqueue.h]1 static inline bool schedule_work(struct work_struct *work)2 {3 return queue_wo