반응형

CS(Computer Science) 14

UNIX - [MEMORY MAPPING]

메모리 매핑이란 메모리의 특정 부분을 프로세스에 매핑하는 것을 의미한다. 이는 mmap() 함수를 통해 수행할 수 있으며, 같은 메모리 공간을 여러 프로세스가 동시에 매핑할 수 있다. 하지만 매핑한 주소의 값을 직접 변경 하는 것이 아니라, 매핑된 주소 위치의 레퍼런스를 수정하면 매핑된 주소의 값이 바뀌는 식으로 한 번 거쳐서 변경된다. 다음은 메뉴얼 페이지의 글이다. mmap()은 호출 프로세스의 가상 주소 공간에 새 매핑을 만듭니다. 새 매핑의 시작 주소는 addr에 지정됩니다. length 인수는 매핑의 길이(0보다 커야 함)를 지정합니다. Signal은 동기화의 수단으로는 사용가능하다. but 데이터를 주고받는 수단으로는 사용 불가능하다. 메모리 매핑을 이용해서 데이터를 건들면 파일의 내용 자체가..

UNIX - [SIGNAL]

signal이란? → 소프트웨어 인터럽트 (하드웨어가 아니라 소프트웨어적으로 interrupt를 발생시키는 방법) 인터럽트(interrupt)를 발생시키는 기능을 하는 시그널은 시스템에서 아주 중요하게 사용된다. 예를 들면 터미널에서는 흔히 Control + C 을 사용해서 실행 중인 프로세스를 종료시킨다. 이는 SIGINT(interrupt signal)라는 미리 정의된 시그널을 프로세스에게 보내서 강제 종료 시키는 방법이다. 우리는 이렇게 알게 모르게 시그널을 사용 중이다. 인터럽트(Interrupt)란? 인터럽트란 CPU가 하던 일을 멈추게하고(혹은 아무 것도 안하고 있는 상태를 멈추고) 끼어드는 것으로 CPU에 할당된 작업을 변경하는데 사용할 수 있다. 일반적으로 CPU는 Fetch stage -..

UNIX - [소켓 프로그래밍 예제 - 2]

👉 이 절에서는 소켓을 이용한 간단한 예제 프로그램을 작성해본다. 소켓에는 같은 시스템에 있는 프로세스끼리 데이터를 주고받을 때 사용하는 유닉스 도메인 소켓과 다른 시스템의 프로세스와 통신을 하는 인터넷 소켓이 있다. 이 절에서는 예제를 통해 각각의 사용 방법을 알아보자. 유닉스 도메인 소켓 예제 유닉스 도메인 소켓(unix domain socket)은 같은 시스템에서 통신이 일어나므로 TCP/IP 프로토콜을 직접 이용할 필요가 없다. 따라서 유닉스 도메인 소켓에서 사용하는 소켓 주소 구조체의 항목도 IP 주소가 아닌 경로명을 지정하도록 되어 있다. 이는 파이프나 시스템 V IPC에서 특수 파일을 통신에 사용하는 것과 같다고 생각하면 된다. 소켓 주소 구조체의 항목이 다른 것을 제외하면 유닉스 도메인 소..

UNIX - [소켓 프로그래밍 기초 - 1]

TCP/IP 프로토콜을 이용한 소켓 프로그래밍 👉 학습목표 TCP/IP 프로토콜의 기본 개념을 이해한다. IP 주소와 포트 번호의 개념을 이해한다. 소켓 관련 구조체와 함수를 이해한다. 소켓을 이용한 통신 프로그램을 작성할 수 있다. TCP/IP 프로토콜 TCP/IP 프로토콜은 계층 구조를 구성하는 다양한 프로토콜 중에서 전송 계층의 대표적인 프로토콜인 “TCP 프로토콜”과 네트워크 계층의 대표적인 프로토콜인 “IP 프로토콜”을 묶어서 부르는 말이다. 👉 프로토콜(Protocol) 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수 있다. TCP/IP 프로토콜은 계..

반응형