Posts
556 posts[리눅스커널] 프로세스 상태: 언제 TASK_RUNNING 변경할까?
이번 시간에 프로세스를 RUNNING 상태로 누가 언제 변경하는지 알아봅시다. wake_up_new_task()[set_filter 가능 함수]wake_up_new_task() 함수는 _do_fork() 함수에서 프로세스를 생성하는 과정에서 호출됩니다. 코드를 봅시다.[https://elixir.bootlin.com/linux/v4.14.70/source/kernel/sched/core.c]1 void wake_up_new_task(struct task_struct *p)2 {3 struct rq_flags rf;4 struct rq *rq;56 raw_spin_lock_irqsave(&p->pi_lock, rf.flags);7 p->state = TASK_RUNNING; 7번째 줄
[라즈베리파이] 동기화 - 스핀락(spinlock) Deadlock으로 생기는 문제
스핀락 코드를 잠깐 살펴봤는데 뮤텍스와 다르게 상당히 코드 복잡도가 낮습니다. tickets.next과 tickets.owner 두 값으로 스핀락을 획득하는 순서를 콘트롤하죠. spin_lock 함수가 처음 실행되는 시점에 tickets.owner 값을 로컬 변수에 저장하고 전역 tickets.next 값이 업데이트 될 때까지 Busy-wait합니다. 여기서 중요한 포인트는 tickets.owner 값을 로컬 변수 즉 스택 메모리 공간에 저장해서 제어한다는 점입니다. 모든 프로세스들은 각각 스택 공간에서 돌기 때문에 ticket 스핀락을 획득한 순서를 정확하게 파악할 수 있습니다. 낮은 복잡도에 정확하기 까지 합니다. 이렇게 스핀락 함수는 빠른 시간 내에 실행돼야 하는 인터럽트 서비스 루틴에서 공유 데이
천체 관측 프로그램 “스텔라리움”
천체 관측 프로그램 “스텔라리움” 바쁜 현대사회를 살아가다 보면, 간혹 주변의 경치를 돌아볼 수 있는 여유조차 가질 수 없는 경우가 많습니다. 낮에도 이렇게 하늘을 올려다보기 힘든데, 밤에 별자리를 보겠다고 하늘을 올려다보는 일은 더욱더 하기 힘들지 않을까 하는 생각이 드는 시대입니다. 게다가 혹시나, 밤하늘의 별자리를 확인할 수 있는 여유가 생겼다고 하더라도, 대기 환경이 옛날만큼 좋지 않기에 하늘의 별자리를 보는 것도 쉽지 않은 시대가 되기도 했..
[라즈베리파이] 가상 파일시스템 동작 분석(유저 프로세스 입장)
이번에 유저 어플리케이션 입장에서 가상 파일시스템 동작을 살펴보겠습니다. 먼저 유저 공간에서 실행하는 다음 코드를 같이 작성해 봅시다.1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 89 #define FILENAME_NAME "/home/pi/sample_text.text"1011 int main() 12 { 13 int fd = 0;14 ssize_t read_buf_size;15 off_t new_file_pos;

![[CV] [Comi] 'ダンダダン'(단다단) 24권. 레드 바론](https://img.zoomtrend.com/2026/06/11/1781228393-EB829CED8380.jpg)
