Unix 및 Linux의 핵심 철학
‘모든 것은 파일이다’ 라는 UNIX의 핵심 철학이 가지는 의미와 코드를 살펴봅니다.
open, read, write 등의 Low Level 파일 API 활용
리눅스 시스템 프로그래밍시에 가장 많이 활용하는 open, read, write, lseek, close 등에 대해 알아봅니다.
opendir, readdir, mkdir 등의 Low Level 디렉토리 API활용
리눅스 시스템 프로그래밍시에 디렉토리와 관련된 제어를 수행하기 위해 활용한 디렉토리 관련 시스템 콜을 활용하는 방법에 대해 학습합니다.
프로세스와 객체
C/C++, Java 등에서 객체라는 용어가 자주 사용되는데 이것은 무엇인지 또 프로세스와 객체의 관계는 무엇인지 살펴봅니다.
fork을 통한 태스크 제어 API 활용과 Multi-Tasking의 원리
fork()를 사용하여 여러개의 main 함수가 프로그램상에서 함께 동작하는 Multi-Tasking 개념에 대해 학습합니다
signal을 통한 태스크 제어 API 활용
signal()을 사용하여 정상 종료된 태스크와 비정상 종료된 태스크를 구별하는 방법을 학습하고 또한 2일차에 배웠던 내용들을 실제 제품군에서 어떻게 활용하였는지 간단하게 소개하는 시간을 가집니다.
IPC 메커니즘은 왜 사용하는 것인가요?
IPC(Inter-Process Communication)의 필요성에 대해 학습하고 어째서 프로세스간에 메모리 공유가 안되는지 스레드는 무엇인지에 대해 알아보는 시간을 가집니다.
동기 / 비동기 메커니즘 pthread_create, mutex 스레드 제어 API 활용
동기/비동기 메커니즘의 핵심 개념에 대해 소개하고 pthread_create(), mutex 등을 통해 멀티 스레드 프로그래밍과 여기에서 발생하는 Critical Section 등등의 다양한 동기화 이슈에 대해 설명하는 시간을 가집니다.
Semaphore, Message Queue, Shared Memory 등의 IPC API 활용
세마포어, 메시지 큐, 공유 메모리를 사용하는 방법을 학습하고 IPC와 관련된 코드를 실제 코드에서 어떻게 활용 되었는지 살펴보는 시간을 가지도록 합니다.