Computer Science

    [유닉스 시스템 프로그래밍] Ch10. 시스템V의 프로세스간 통신

    [유닉스 시스템 프로그래밍] Ch10. 시스템V의 프로세스간 통신

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) 학습목표 - 유닉스 시스템V에서 제공하는 IPC기법을 이해한다. - 메시지 큐를 이용해 통신 프로그램을 작성할 수 있다. - 공유 메모리를 이용해 통신 프로그램을 작성할 수 있다. - 세마포어를 이용한 IPC기법을 배운다. 목차 1. 시스템 V IPC 기초 2. 시스템 V IPC 관련 명령 3. 메시지 큐 4. 공유 메모리 5. 세마포어 1. 시스템 V IPC 기초 시스템 V IPC - 시스템 V 계열 유닉스에서 개발해 제공하는 프로세스 간 통신방법 - 메시지 큐, 공유 메모리, 세마포어 공통 요소 - 시스템 V IPC를 사용하기 위해서는 IPC 객체를 생성해야 함. - IPC 객체를 생성하기 위해 공통적으로 사용하는 기본 요소는 키와 식별..

    [유닉스 시스템 프로그래밍] Ch09. 파이프

    [유닉스 시스템 프로그래밍] Ch09. 파이프

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) 학습목표 - 파이프를 이용한 IPC 기법을 이해한다 - 이름 없는 파이프를 이용해 통신 프로그램을 작성할 수 있다 - 이름 있는 파이프를 이용해 통신 프로그램을 작성할 수 있다 목차 1. 파이프의 개념 2. 이름없는 파이프 만들기 3. 복잡한 파이프 생성 4. 양방향 파이프 활용 5. 이름있는 파이프 만들기 1. 파이프의 개념 파이프 - 두 프로세스 간에 통신할 수 있도록 해주는 특수 파일 - 그냥 파이프라고 하면 일반적으로 이름없는 파이프를 의미 - 이름없는 파이프는 부모-자식 프로세스 간에 통신할 수 있도록 해줌 - 파이프는 기본적으로 단방향 2. 이름없는(간단한) 파이프 생성 파이프 생성 : popen() #include FILE *p..

    [유닉스 시스템 프로그래밍] Ch08. 메모리 매핑

    [유닉스 시스템 프로그래밍] Ch08. 메모리 매핑

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 통신프로그램이 무엇인지 이해한다. 메모리 매핑을 이용한 IPC 기법을 이해한다. 메모리 매핑 함수를 사용해 프로그램을 작성할 수 있다. 목차 1. 메모리 매핑의 개념 2. 메모리 매핑 함수 3. 메모리 매핑 해제 함수 4. 메모리 매핑의 보호모드 변경 5. 파일의 크기 확장 6. 매핑된 메모리 동기화 7. 데이터 교환하기 1. 메모리 매핑의 개념 메모리 매핑 - 파일을 프로세스의 메모리에 매핑 - 프로세스에 전달할 데이터를 저장한 파일을 직접 프로세스의 가상 주소 공간으로 매칭 - read, write 함수를 사용하지 않고도 프로그램 내부에서 정의한 변수를 사용해 파일에서 데이터를 읽거나 쓸 수 있음 메모리 매핑과..

    [Head First Design Patterns] 07 어댑터 패턴과 퍼사드 패턴

    [Head First Design Patterns] 07 어댑터 패턴과 퍼사드 패턴

    (본 강의 노트는 한빛 미디어의 [Head First Design Patterns]책을 기반으로 하고 있습니다) 07 어댑터 패턴과 퍼사드 패턴 Adapter Pattern & Facade Pattern 07-01. Adapter Pattern 목적 클래스의 인터페이스를 클라이언트가 원하는 형태의 또다른 인터페이스로 변환. 어댑터는 호환되지 않는 인터페이스 때문에 동작하지 않는 클래스들을 함께 동작할 수 있도록 만들어줌 (aka. Wrapper in Java) 어댑터 패턴 정의 디자인 패턴 요소 요소 설명 이름 어댑터(Adapter) 문제 사용 객체의 API가 서로 다름 해결방안 함수를 변환하는 객체를 중간에 넣음 결과 변경 최소화 객체를 감싸는 역할을 함(Object Wrapping) - 서로 호환되지..

    [유닉스 시스템 프로그래밍] Ch07. 시그널

    [유닉스 시스템 프로그래밍] Ch07. 시그널

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 시그널의 기본 개념을 이해한다. 시그널을 보내는 방법을 이해한다. 시그널을 받아서 처리하는 기본적인 방법을 이해한다. 시그널 집합의 개념과 사용방법을 이해한다 sigaction 함수를 사용해 시그널을 처리하는 방법을 이해한다. 알람 시그널의 처리방법을 이해한다. 시그널 관련 기타 함수들의 사용방법을 이해한다. 목차 1. 시그널의 개념 2. 시그널의 종류 3. 시그널 보내기 4. 시그널 핸들러 함수 5. 시그널 집합 6. sigaction 함수의 활용 7. 알람시그널과 인터벌 타이머 8. 기타 시그널 관련 함수 01. 시그널의 개념 시그널이란? 소프트웨어 인터럽트 프로세스에 뭔가 발생했음을 알리는 간단한 메시지를 비..

    [Head First Design Patterns] 06 커맨드 패턴

    [Head First Design Patterns] 06 커맨드 패턴

    (본 강의 노트는 한빛 미디어의 [Head First Design Patterns]책을 기반으로 하고 있습니다) 06 커맨드 패턴 Command Pattern 목적 - 요구사항(요청, 명령)을 객체로 캡슐화시킴. 이를 이용해서 다른 요구사항을 지닌 클라이언트를 매개변수화 시킬 수 있고, 요구사항을 큐에 넣거나 로그로 남길 수 있으며 작업 취소(undo) 기능을 지원할 수도 있음 요소 설명 이름 커맨드(Command) 문제 사용 객체의 API가 서로 다름 해결방안 실행과 요청을 분리 결과 작은 클래스가 많아지지만, 객체 사용에 필요한 복잡성을 제거하고 감춤(함수 이름이 동일해짐) 커맨드 패턴 클래스 다이어그램 문제(1) - 홈오토메이션용 리모컨 1. 사용하려는 객체가 많고, API가 서로 다른 경우 - 차..

    [Programming Language Pragmatics] 06 Control Flow(1)

    [Programming Language Pragmatics] 06 Control Flow(1)

    [06 Control Flow (1) ] 6.0~6.1.2 Table of Contents 6.0 Introduction 6.1. Expression Evaluation - 6.1.1 Precedence and Associativity - 6.1.2 Assignments 6.0 Introduction Control flow or ordering in program execution Sequencing : 절차지향언어에서는 기본적으로 순차적으로 코드 실행 Selection(alternation) : 조건문 : 특정 런타임 컨디션에 의존함, 가장 자주 볼 수 있는 구조의 조건문은 if 와 case(switch) 문임 Iteration : 반복문 : 반복적으로 특정 부분의 코드가 실행됨 예로는 for/do, ..

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(3)

    [Programming Language Pragmatics] 03 Names, Scopes, and Bindings(3)

    (해당 강의노트는 Michael L. Scott의 [Programming Language Pragmatics: 4th edition] 책을 기반으로 작성되었습니다) [ 03 Names, Scopes, and Bindings(3)] 3.4~3.7 Table of Contents 3.4 Implementing Scope - 3.4.1 Symbol Tables - 3.4.2 Association Lists and Central Reference Tables 3.5 The Meaning of Names within a Scope - 3.5.1 Aliases - 3.5.2 Overloading - 3.5.3 Polymorphism and Related Concepts 3.6 The Binding of Refere..