Interrupt 동작과정 (feat. System Call)
·
Low Level/OS
Unix 계열의 어셈블리어의 3줄의 코드로 표현되는 시스템 콜 함수 인터럽트 수행과정을 살펴보자. 우선 cpu Register의 'EAX' 'EBX'부터 가볍게 눈으로 보고 넘어가자 EAX (Extended Accumulator Register) : Arithmetic Logic Operation 수행, 함수의 반환값이 이 레지스터에 저장됨. EBX (Extended Base Register): 메모리 주소를 저장하기 위한 용도 (32 bit Linux OS 기준) 시스템콜 인터럽트의 수행 과정을 살펴보자 1. 시스템콜 어셈블리 코드 실행 (살펴보기!) [Assembly Code] mov eax, 1 mov ebx, 0 int 0x80 eax : systemcall number (주소)가 저장됨 ebx:..
Signal 생성 함수, 예제
·
LINUX/Linux
모든 시그널은 SIG_ 로시작하는 Symbolic name을 가진다. 각각의 Signal에 대한 기본동작은 이미 OS단에서 정의되어있다. 더 자세히 설명하면? 시그널은 프로세스의 PCB 블록에 담겨있는 SIGNAL 관련 자료구조에 기본적인 액션이 명세되어있고, 이 기본 액션에 따라서 시그널이 도착하는 시점에 프로세스가 동작한다, 물론 sigaction 같은 함수를 통해 동작의 재정의가 가능하다. POSIX에서 지정한 시그널 번호와 이름은 다음과 같다. Signal symbolic name Signal Number default action Signal 0: question process alive? 0 SIGHUP 1 SIGINT 2 프로세스에 인터럽트를 발생시켜 죽임 ( Ctrl+C ) SIGQUIT ..