[bash: awk] 각 항목별 합계 계산
By 반달가면 | 2018년 8월 14일 |
텍스트 파일에 각 항목별로 값이 있을 때, 같은 항목끼리 모아서 그 합을 구하는 방법이다. 간단한 예시를 생각해 보면 쉽게 감이 잡힐 것이다. 텍스트 파일 my_data.txt의 내용이 아래와 같다고 가정하자. 각 항목의 구분자는 탭(tab)이다. # my_data.txt 파일 내용 확인(구분자는 탭) cat my_data.txt 2018.1.3 apple 10 2018.1.3 orange 3 2018.2.5 pineapple 7 2018.3.10 apple 2 2018.3.15 pineapple 10 2018.3.30 apple 9 위와 같이 날짜마다 어떤 과일을 몇개 팔았는지 기록했다고 생각해 보자. 이제 여기서 각 과일별로 총 몇개씩 판매했는지 알고 싶은 것이다. 첫번째 항
우분투 14.04 기반 배포판에서 16.04 / 18.04의 S/W 저장소 미러를 구성하는 문제(apt-mirror 오류)
By 반달가면 | 2019년 4월 11일 |
apt-mirror를 이용해서 우분투 S/W 저장소(software repository)의 미러(mirror) 서버를 구성하는 방법은 이전 게시물을 참고하자. 여기로 우분투 14.04 LTS 기반 배포판인 리눅스 민트 17에서 apt-mirror로 우분투 14.04(trusty), 16.04(xenial), 18.04(bionic)의 S/W 저장소 미러를 구축해서 사용하던 중, 한가지 문제가 발생했다. 14.04 기반의 클라이언트에서는 별 문제가 없었는데, 16.04와 18.04 기반의 클라이언트에서 저장소 정보 갱신을 위해 "sudo apt-get update" 명령을 입력하면 오류가 발생했다. 예를 들어 18.04 클라이언트의 경우 /ubuntu/dists/bionic/main/dep11/C
[라즈베리파이] 커널동기화 - 임계영역(Critical Section)이란
By Guillermo Austin Kim | 2018년 9월 7일 |
리눅스 커널이나 운영체제에서 임계영역(Critical Section)이나 커널 동기화를 설명할 때 화장실을 예를 많이 듭니다. 하나밖에 없는 화장실 문에 있는 자물쇠를 잠그고 용무를 보는 상황입니다. 위 상황을 리눅스 커널 동기화 과정과 빗대서 생각해 봅시다. 첫 번째, 자물쇠는 화장실 문에 있는 잠금장치입니다. 누구나 화장실에 들어갈 때 화장실 문을 잠급니다. 화장실에 들어갈 때 먼저 화장실 문에 있는 자물쇠가 잠겨 있나 확인하는 습관입니다. 화장실 잠금장치는 여러 가지 종류가 있듯 리눅스 커널에도 스핀락, 뮤텍스 기법에 따라 자물쇠 잠금 방법이 다릅니다. 두 번째, 화장실에서 용무는 딱 한 사람만 볼 수 있습니다. 화장실에서 두 사람이 동시에 들어갈 수 없습니다. 유일하게 한 사람이 일을 보는 순
[리눅스커널][인터럽트후반부] IRQ 스레드 핸들 irq_thread() 함수 분석
By Guillermo Austin Kim | 2019년 2월 25일 |
IRQ 스레드 핸들 irq_thread() 함수 분석 이번에는 IRQ 스레드 핸들 함수가 어떤 과정으로 실행하는지 점검해 보겠습니다. 커널 쓰레드가 생성되면 무한 루프를 돌면서 쓰레드 상태에서 따라 정해진 동작을 수행하는 스레드 핸들 함수가 실행합니다. IRQ 스레드는 irq_thread() 함수가 이 역할을 수행합니다. 먼저 IRQ 스레드를 깨우면 실행하는 irq_thread() 함수를 소개합니다.1 static int irq_thread(void *data)2 {3 struct callback_head on_exit_work;4 struct irqaction *action = data; 5 struct irq_desc *desc = irq_to_desc(action->irq);6 irq