System programming (CSE 232)

강의개요 (2021년도 가을학기) (PDF)

  • 화 9:00~11:00, 목 11:00~13:00 / 2공학관 407호

  • 담당교수: 김덕수(Duksu Kim) (bluekds at koreatech.ac.kr / 2공학관 435)

    • Office hour: Online

  • 조교: 노유찬 (bluebear102 at koreatech.ac.kr) / R&D돔(구,나래돔) 1연구실

    • Office hour: Online

선수과목

  • (필수) C programming, (권장) 운영체제 (Operating System)

교재

주요링크

  • Course git repository [link]

  • FAQ page [link]

      • 구버전의 익스플로어에서는 보이지 않음

      • 최신 브라우저 (크롬, MS edge 등) 사용 권장

  • Linux 개발 환경 설정 (Lab. 0 참조)

강의 자료

  • 강의 슬라이드의 일부 그림 및 코드는 본 교과목의 주교재에서 가져 옴

  • 강의 영상은 EL을 통해 주차별 학습기간에 수강해야 출석으로 인정됩니다.

    • 본 홈페이지를 통한 시청은 출석에 반영 안됨

Lecture 1. System programming overview [slides]

  • What is and Why system programming? [video]

  • Unix/Linux overview [video]

  • Basic commands [video]

  • Compiling Environments [video]

    • GNU C Compiler, Makefile & Make

Lab 0. Development environment setup [slides]

  • Install and setup Ubuntu [vidoe]

  • VI editor & Hello Linux! [video]

  • Build GUI-base development environment

Lecture 2. Low-level file I/O (system call) [slides]

  • File overview & basic commands [video]

  • Open and Close a file [video]

  • File Read and Write [video]

  • Handling file descriptor [video]

Lab 1. Low-level file I/O [slides]

Lecture 3. Standard IO (High-level IO) [slides]

  • User-buffered IO [video]

  • Open and Close a file/stream [video]

  • File Read and Write

    • Character IO, String IO [video]

    • Binary IO, Formatted IO [video]

  • Handling File offset & File pointer [video]

Lecture 4. File and directory [slides]

Lecture 5. System information [slides]

Lecture 6. Process information [slides]

  • What is a process? [video]

  • Process hierarchy [video]

  • Running time of a process [video]

  • Environment variables [video]

Lecture 7. Process management [slides]

  • Running a new process [video]

  • Terminating a process [video]

  • Synchronization with child processes [video]

Lecture 8. Signal [slides]

Lecture 9. Memory mapping [slides]

  • Mapping a file into memory [video]

  • IPC with a memory-mapped file [video]

Lecture 10. Pipe [slides]

Lecture 11. IPC (Inter-Process Communication) [slides]

  • IPC in Unix/Linux

  • Message queue

  • Shared memory [video]

  • Semaphore [video]

HPC Lab.에서 예비 대학원생(학부연구생)을 모집 중입니다.

고성능 컴퓨팅, VR/AR, 인공지능/자율주행 등을 함께 공부/연구하고 싶으신 분들 연락주세요 :)

자세한 내용은 여기 를 확인해주세요.