Computer Science/유닉스프로그래밍
[유닉스 시스템 프로그래밍] Ch11. 소켓 프로그래밍 기초
[유닉스 시스템 프로그래밍] Ch10. 시스템V의 프로세스간 통신 학습목표 - TCP/IP 프로토콜의 기본 개념을 이해한다. - IP 주소와 포트번호의 개념을 이해한다. - 소켓 관련 구조체와 함수를 이해한다. - 소켓을 이용한 통신 프로그램을 작성할 수 있다. 목차 1. TCP/IP 개요 2. IP 주소와 호스트명 3. 포트번호 4. 소켓 프로그래밍 기초 5. 소켓 인터페이스 함수 1. TCP/IP 개요 TCP/IP 란? - 인터넷의 표준 프로토콜 - 5계층(4계층)으로 구성 TCP와 UDP의 차이 *참고 2. IP 주소와 호스트명 IP주소와 호스트명 IP 주소 : 인터넷을 이용할 때 사용하는 주소로 점(.)으로 구분된 32비트 숫자 호스트 명 : . 시스템에 부여된 이름 호스트명(도메인 명)과 IP주..
Pthread 개념
목표 - Thread를 이해한다 - Pthread를 이용하여 기본적인 thread programming을 할 수 있다. 목차 1. Thread 2. Pthread 3. Pthread create / exit 4. Pthread join / detach 5. Thread에서의 변수 공유 6. 상호 배제 1. Thread Thread란? 경량 프로세스(ligthweight process: LWP) - 일반 프로세스는 생성 시 자신만의 메모리 영역을 할당 받는다 : PCB, code, static, heap, stack 등 - Thread : PCB와 스택만 별도로 할당 받고 나머지는 부모 프로세스와 공유 - 생성과 전환(context switch)시 프로세스보다 오버헤드가 적다 대부분 운영체제가 여러 쓰레드..
[유닉스 시스템 프로그래밍] 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. 파이프
(본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) 학습목표 - 파이프를 이용한 IPC 기법을 이해한다 - 이름 없는 파이프를 이용해 통신 프로그램을 작성할 수 있다 - 이름 있는 파이프를 이용해 통신 프로그램을 작성할 수 있다 목차 1. 파이프의 개념 2. 이름없는 파이프 만들기 3. 복잡한 파이프 생성 4. 양방향 파이프 활용 5. 이름있는 파이프 만들기 1. 파이프의 개념 파이프 - 두 프로세스 간에 통신할 수 있도록 해주는 특수 파일 - 그냥 파이프라고 하면 일반적으로 이름없는 파이프를 의미 - 이름없는 파이프는 부모-자식 프로세스 간에 통신할 수 있도록 해줌 - 파이프는 기본적으로 단방향 2. 이름없는(간단한) 파이프 생성 파이프 생성 : popen() #include FILE *p..
[유닉스 시스템 프로그래밍] Ch08. 메모리 매핑
(본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 통신프로그램이 무엇인지 이해한다. 메모리 매핑을 이용한 IPC 기법을 이해한다. 메모리 매핑 함수를 사용해 프로그램을 작성할 수 있다. 목차 1. 메모리 매핑의 개념 2. 메모리 매핑 함수 3. 메모리 매핑 해제 함수 4. 메모리 매핑의 보호모드 변경 5. 파일의 크기 확장 6. 매핑된 메모리 동기화 7. 데이터 교환하기 1. 메모리 매핑의 개념 메모리 매핑 - 파일을 프로세스의 메모리에 매핑 - 프로세스에 전달할 데이터를 저장한 파일을 직접 프로세스의 가상 주소 공간으로 매칭 - read, write 함수를 사용하지 않고도 프로그램 내부에서 정의한 변수를 사용해 파일에서 데이터를 읽거나 쓸 수 있음 메모리 매핑과..
[유닉스 시스템 프로그래밍] Ch07. 시그널
(본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 시그널의 기본 개념을 이해한다. 시그널을 보내는 방법을 이해한다. 시그널을 받아서 처리하는 기본적인 방법을 이해한다. 시그널 집합의 개념과 사용방법을 이해한다 sigaction 함수를 사용해 시그널을 처리하는 방법을 이해한다. 알람 시그널의 처리방법을 이해한다. 시그널 관련 기타 함수들의 사용방법을 이해한다. 목차 1. 시그널의 개념 2. 시그널의 종류 3. 시그널 보내기 4. 시그널 핸들러 함수 5. 시그널 집합 6. sigaction 함수의 활용 7. 알람시그널과 인터벌 타이머 8. 기타 시그널 관련 함수 01. 시그널의 개념 시그널이란? 소프트웨어 인터럽트 프로세스에 뭔가 발생했음을 알리는 간단한 메시지를 비..
[유닉스 시스템 프로그래밍] Ch06. 프로세스 생성과 실행
(본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch06. 프로세스 생성과 실행 학습목표 프로세스를 생성하는 방법을 이해한다. 프로세스를 종료하는 방법을 이해한다. exec함수군으로 새로운 프로그램을 실행하는 방법을 이해한다. 프로세스를 동기화하는 방법을 이해한다. 목차 프로세스 생성 프로세스 종료함수 exec 함수군 활용 exec 함수군과 fork 함수 프로세스 동기화 01. 프로세스 생성 프로그램 실행 : system( ) 새로운 프로그램을 실행하는 가장 간단한 방법이나 비효율적이므로 남용하지 말 것 실행할 프로그램명을 인자로 지정 프로세스 생성 : fork( ) 새로운 프로세스를 생성 : 자식 프로세스(Cv hild Process) fork 함수를 호출한 프로세스 : 부모 프로세스(..
[유닉스 시스템 프로그래밍] Ch05. 프로세스 정보
(본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch05. 프로세스 정보 학습목표 유닉스 시스템에서 프로세스가 무엇인지 이해한다. 함수를 사용해 프로세스의 속성을 검색할 수 있다. 프로세스의 실행시간을 측정할 수 있다. 환경변수를 설정하고 사용할 수 있다. 목차 프로세스의 정의 프로세스의 구조와 상태변화 프로세스 목록 보기 프로세스 식별 함수 프로세스 그룹 및 세션 프로세스 실행시간 측정 환경변수의 이해 환경변수의 사용 01. 프로세스의 정의 프로세스 : 실행중인 프로그램을 의미 프로세서 : 중앙처리장치 프로그램 : 사용자가 컴퓨터에 작업을 시키기 위한 명령어의 집합 고급언어로 작성한 프로그램을 기계어 프로그램으로 변환해야 실행 가능 02. 프로세스의 구조와 상태 변화 프로세스의 구조 :..