Linux(Centos or RHEL) (30) 썸네일형 리스트형 컨텍스트 스위칭과 컨텍스트...? 아래의 블로그를 참조하여 공부하였습니다. 제가 공부할 때 참조한 커널 버전은 v2.6.39.4입니다. http://egloos.zum.com/rousalome/v/9990483 [라즈베리파이] 스케줄링: 컨택스트 스위치(Context Switch)이란 CPU에서 실행 중인 프로세스를 비우고 새로운 프로세스를 CPU에서 실행시키는 과정을 컨택스트 스위칭이라고 합니다. 컨택스트 스위치란 다음 그림을 보면서 컨택스트 스위칭란 용어에 대해서 살펴봅시다. CPU에서 E란 프로세스가 실행 중이라고 가정합시다. 어떤 프로세스가 CPU에서 실행 중이란 의미는 CPU 레지스터 세트에 프로세스 실행 정보가 채워져 egloos.zum.com 컨텍스트 스위칭이란? 멀티 프로세스 환경에서 CPU가 하나의 프로세스를 실행하고 있.. 인터럽트 디스크립터...? 아래의 블로그를 참고하여 글을 작성하였습니다. 제가 공부할 때 참조한 커널 버전은 v2.6.39.4입니다. http://rousalome.egloos.com/10012152 인터럽트 핸들러 인터럽트 벡터 인터럽트 디스크립터 인터럽트 컨텍스트 앞에서 인터럽트 벡터에 대해서 공부해 보았으니, 이제 인터럽트 디스크립터에 대해서 공부해 보겠습니다. 인터럽트 디스크립터란? 인터럽트 종류별로 다음과 같은 인터럽트의 세부 속성을 관리하는 자료구조를 인터럽트 디스크립터라고 합니다. 인터럽트 핸들러 인터럽트 핸들러 매개변수 논리적인 인터럽트 번호 인터럽트 실행 횟수 프로세스의 세부 속성을 표현하는 자료구조가 태스크 디스크립터이듯이 인터럽트에 대한 속성정보를 저장하는 자료구조가 인터럽트 디스크.. 도커 데몬이 종료되어도 컨테이너의 상태 보존 아래 링크를 참조하였습니다. https://docs.docker.com/config/containers/live-restore/ Keep containers alive during daemon downtime By default, when the Docker daemon terminates, it shuts down running containers. Starting with Docker Engine 1.12, you can configure the daemon so that containers remain running if the daemon... docs.docker.com 도커 데몬이 종료되면 컨테이너들도 종료가 됩니다. 만약 도커 데몬이 crash가 발생하여 종료되거나, 도커 데몬의 업그레이드를.. 인터럽트 벡터? 아래의 블로그를 참고하여 글을 작성하였습니다. 제가 공부할 때 참조한 커널 버전은 v2.6.39.4입니다. http://rousalome.egloos.com/10012152 [리눅스커널] 인터럽트: 리눅스 커널이 처리하는 인터럽트의 주요 개념 앞에서 인터럽트에 대해 소개했으니 리눅스 커널에서 인터럽트를 처리하는 방식을 이해하기 위해 알아야 할 주요 개념을 소개합니다. 인터럽트 핸들러 인터럽트 벡터 인터럽트 디스크립터 인터럽트 컨텍스트 인터럽트 핸들러란? 인터럽트가 발생하면 이를 핸들링하기 위한 함수가 호출되는데 이를 인터럽트 핸들러라고 합니다. 예를 들어 rousalome.egloos.com 인터럽트 핸들러 인터럽트 벡터 인터럽트 디스크립터 인터럽트 컨텍스트 앞에서 인터럽트 .. 인터럽트 핸들러? 하드웨어 인터럽트의 처리 과정은? 아래의 블로그를 통해 인터럽트 핸들러에 대해 공부해 보았습니다. 제가 공부할 때 참조한 커널 버전은 v2.6.39.4입니다. http://rousalome.egloos.com/10012152 [리눅스커널] 인터럽트: 리눅스 커널이 처리하는 인터럽트의 주요 개념 앞에서 인터럽트에 대해 소개했으니 리눅스 커널에서 인터럽트를 처리하는 방식을 이해하기 위해 알아야 할 주요 개념을 소개합니다. 인터럽트 핸들러 인터럽트 벡터 인터럽트 디스크립터 인터럽트 컨텍스트 인터럽트 핸들러란? 인터럽트가 발생하면 이를 핸들링하기 위한 함수가 호출되는데 이를 인터럽트 핸들러라고 합니다. 예를 들어 rousalome.egloos.com 앞에서 인터럽트에 대해 소개했으니 리눅스 커널에.. 인터럽트? 아래의 블로그를 참조하여 글을 작성하였습니다. ● http://rousalome.egloos.com/9971347 ● https://velog.io/@codemcd/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8Interrupt-3ek4aww0xj ● https://coding-factory.tistory.com/353 인터럽트(interrupt)란 사전적인 의미로는 "방해하다", "중단시키다", "차단하다" 등의 의미가 있습니다. 하던 일을 멈추게 하는 무엇인가가 갑자기 발생하는 상황을 의미합니다. 일상에서의 예를 들면, 책을 읽는 도중 갑자기 전화가 와서 읽던 책을 덮어 놓고 전화를 받는 상황이 있습니다. 리눅스에서도 이런 인터럽트 방식을 사용하여 여러 가지 처리를 합니다. 예를 들.. 프로세스를 TASK_RUNNING(CPU 실행) 상태로 바꾸는 함수...? 프로세스를 TASK_UNINTERRUPTIBLETASK_RUNNING(CPU 실행) 상태로 바꿀 때 호출되는 함수들에 대해서 공부를 해 보았습니다. 커널 버전은 v2.6.39.4 입니다. http://rousalome.egloos.com/10003491 [리눅스커널] 스케줄링: TASK_RUNNING(CPU 실행)로 바뀔 때 호출되는 함수 TASK_RUNNING(CPU실행)로 바뀔 때 호출하는 함수 분석 프로세스 상태를 CPU실행(TASK_RUNNING)으로 변경하는 함수는 1개 밖에 없습니다. __schedule() 함수를 실행할 때 프로세스는 CPU를 점유하면서 실행하는 상태로 바뀝니다. __schedule() 함수 코드를 살펴봅시다. [https://elixir.bootlin.com/ rousalo.. linux에서 likely와 unlikely란? 리눅스 소스코드를 보다 보면 조건문에서 가끔씩 likey()와 unlikely()를 볼 수 있습니다. 프로그램에서의 조건문은 굉장히 중요한 것인데, 어떻게 동작하는 것인지는 알아야겠다는 생각이 들어서 한번 찾아 봤습니다. likely()와 unlikely()는 “include/linux/compiler.h“에 정의되어있습니다. 얼핏 보면 반대의 동작을 하는 것 같은 느낌이 듭니다. # define likely(x) __builtin_expect(!!(x), 1) # define unlikely(x) __builtin_expect(!!(x), 0) [https://elixir.bootlin.com/linux/v2.6.39.4/source/include/linux/compiler.h#L115] 자 그럼 실제.. 이전 1 2 3 4 다음