23.11.22 최초 작성X0 ~ X30 : 연산 시 데이터를 저장하는 공간XZR / WZR : 제로 레지스터 (0을 저장해놓는 레지스터)PC : 프로그램 카운터 SP_EL<N> (0~3) 각 Exception Level별 stack pointer 각 Except
23.11.22 최초 작성Armv8아키텍처는 EL0 ~ EL3까지 Exception Level 을 정의한다.EL0, PL0 다양한 사용자 Application이 구동 됨unprivileged level : 하드웨어에 직접 접근할 수 없음인터럽트, MMU, 캐시 기능을
23.11.22 최초 작성Arm에서 제공하는 시큐리티 기능으로 CPU 내부에 보안 관점으로 소프트웨어/하드웨어 적으로 신뢰할 수 있는 실행영역일반 애플리케이션 (Non-Secure Mode)에서 kernel 호출(SVC)kernel에서 SMC 호출EL3로 변경되며 Se
23.11.23 최초 작성 1. 프로세스 자료구조 task_struct : 프로세스의 정보를 저장하는 자료구조로 task descriptor라고 함 (아키텍처와 무관) thread_info : 스레드의 정보를 저장하는 자료구조 (아키텍처 의존) 1.1 stack
23.11.24 최초 작성 1. Interrupt 하드웨어 신호를 감지해 외부 입력으로 전달되는 전기 신호 발생 시 소프트웨어는 Interrupt Handler 수행 (Interrupt Service Routine) 각 CPU 구조에 따라 인터럽트를 처리하는 방식이
23.11.28 최초 작성디바이스 드라이버는 인터럽트 발생 시 신속히 처리해줘야 한다. 하지만 현실적으로 그럴 수 없는 경우도 있기에 인터럽트를 처리할 코드를 다음과 같이 2단계로 분리해 설계한다.Top Half인터럽트가 신속히 처리해야 하는 루틴최소한의 일을 수행함인
23.11.28 최초 작성시스템에 부하가 많이 걸리거나 작업 처리에 시간이 많이 걸릴 경우 타이머를 활용해 적절한 처리를 해야 함커널 드라이버에서 실행 시간을 체크하는 단위1초에 Hz만큼 증가함 (Armv8 : 기본 250Hz)jiffeis자료형에 값이 저장되며 jif
23.11.28 최초 작성TASK_RUNNING(실행 대기) : ready 상태TASK_RUNNING(실행) : running 상태TASK_INTERRUPTIBLE : sleep 상태TASK_UNINTERRUPTIBLE : TASK_DEAD : terminate 상태/
23.11.29 최초 작성임계 영역에 대한 다수의 프로세스의 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황SMP (Symmetric Multiprocessing) : 여러 cpu가 프로세스를 동시에 실행하기 때문에 발생 Pree
23.11.29 최초 작성 1. 시스템 콜의 흐름 표준 함수 호출 시스템 콜 실행 (svc) 시스템 콜 핸들러 호출 시스템 콜 핸들러 실행
23.11.30 최초 작성파일을 조작하는(open, read, write) 기능을 추상화하는 자료구조프로세스가 파일을 관리하기 위해 생성 struct super_block : Superblockstruct inode : Inodestruct dentry : Dentry
23.11.30 최초 작성시그널 생성시그널을 받을 프로세스의 태스크 디스크립터에 시그널을 받을 것이란 정보 저장하고 프로세스를 깨움시그널 받을 프로세스의 thread_info 구조체의 flags필드에 \_TIF_SIGPENDING플래그 포함wake_up_process(
23.11.30 최초 작성시그널 생성시그널을 받을 프로세스의 태스크 디스크립터에 시그널을 받을 것이란 정보 저장하고 프로세스를 깨움시그널 받을 프로세스의 thread_info 구조체의 flags필드에 \_TIF_SIGPENDING플래그 포함wake_up_process(
23.11.30 최초 작성하나의 명령어로 여려개의 데이터를 처리할 수 있는 기법하나의 명령어로 여려개의 데이터를 처리할 수 있는 기법V 레지스터(128-bit)를 분할해서 병렬 연산VLA (Vector Length Agnostic) : 128~2048bit까지 벡터 길
23.12.01 최초 작성동적으로 cpu를 enable/disable할 수 있는 기능 (Armv7~)CPUfreq : cpu의 clock을 조절할 수 있는 리눅스 서브시스템Governor : cpu의 clock 설정코어마다 다른 Governor적용 가능Performan