본문 바로가기

컴퓨터공학/리눅스 시스템 프로그래밍(linux system programming)2

signal in terms of OS signal이란 상황을 알리는 정보이다. 프로세스가 종료 되었다던지. 프로세스가 이상한 짓을 한다던지 하는 상황을 os에게 알리기 위한 정보이다. OS는 프로세스들을 관리해야 되고 프로세스들이 어떤 짓을 하고 있는지 지켜봐야 한다. 그래서 signal이라는 규칙을 정해서 사용한다. 자식 프로세스가 끝나거나 런타임 에러로 중단되거나 키보드로 종료해달라는 명령을 주는 등 다양한 상황에 따른 시그널이 미리 정의되고 그것을 통해 상황을 처리하는 규칙이 있는 셈이다. OS는 시그널 정보를 이용하여 위와같은 상황을 처리하도록 한다. 특정 상황이 발생하면 SIGNAL이 어딘가에 저장되고 OS가 감지할 수 있도록 해야한다. 프로세스 내부에서 수식의 계산에서 0으로 나누는 등 이상한 짓을 한 경우에는 자신의 프로세스가 .. 2019. 10. 3.
makefile 사용법 makefile은 컴파일과 링킹 자동화를 위한 도구이다. 세 개의 c 파일을 합쳐서 실행파일을 만들 경우 % gcc -c main.c % gcc -c foo.c % gcc -c fun.c 각각 object 파일을 만든 후 링킹을 시켜 실행파일을 만들어야 한다. 또한, clean이나 각종 환경변수 설정을 하게 되는 경우 반복되는 작업들이 많이 발생한다. 따라서, makefile을 통하여 반복되는 작업을 재사용하는 효과를 얻을 수 있다. object 파일이란 c파일 자체를 컴파일하여 얻은 binary 파일이다. main.c -> main.o , foo.c -> foo.o 가 된다. 여러 object 파일이 있다면 각각의 object 파일(binary, 기계어 파일)을 우선 만들고 이들을 링킹하여 실행파일을 .. 2019. 9. 28.