728x90
반응형

정글

Chapter 10 시스템 수준 입출력입출력(I/O)은 메인 메모리와 디스크 드라이브, 터미널, 네트워크 같은 외부 장치들 간에 데이터를 복사하는 작업이다.입력 연산은 데이터를 입출력 장치에서 메인 메모리로 데이터를 복사하고, 출력 연산은 데이터를 메모리에서 디바이스로 복사한다.리눅스는 Unix I/O 모델에 기초해서 응용 프로그램이 파일을 open, close, read, write할 수 있도록 하는 적은 수의 시스템 수준 함수를 제공한다. 그리고 I/O 재지정을 수행할 수 있게 해준다.리눅스의 읽기와 쓰기 연산은 응용 프로그램이 예상하고 정확히 처리해야 하는 짧은 카운트가 발생할 수 있다.Unix I/O 함수들을 직접 호출하는 대신, 응용 프로그램은 RIO 패키지를 사용해야 한다.RIO 패키지는 모든..
에코_클라이언트// TCP 에코 클라이언트 프로그램// 헤더파일 포함#include "csapp.h"// main 함수int main(int argc, char **argv){ // 파일디스크립터, 호스트정보, 포트번호, 버퍼 정의 int clientfd; char *host, *port, buf[MAXLINE]; // 버퍼 입출력을 위한 rio 변수 rio_t rio; // 명령행 인자 확인 if (argc != 3) { fprintf(stderr, "usage: %s \n", argv[0]); exit(0); } // 인자에서 호스트정보와 포트번호 저장 host = argv[1]; port = argv[2]; ..
HTTP(Hypertext Transfer Protocol) 웹에서 데이터를 주고받는 서버-클라이언트 모델의 프로토콜(웹 브라우저가 서버와 통신하는 규칙)  통신 방법사용자가 웹사이트를 방문하면 브라우저가 웹서버로 리소스를 요청요청을 받은 웹서버는 HTML, CSS와 같은 리소스를 응답으로 돌려줌클라이언트 요청과 서버의 응답 사이에 여러 프록시(Proxy) 서버를 거침프록시 서버를 통해 캐시를 보관하거나 보안을 위해 서버의 IP 주소를 숨기는 등 처리이 모든 통신을 안전하게 이뤄지게 하기 위해 TCP(Transmission Control Protocol) 연결을 사용  특징TCP/IP를 이용하는 응용 프로토콜HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜임(Connectionless)(이러한 단..
소켓(Socket)소켓은 프로토콜, IP 주소, 포트 넘버로 구성되고, 프로세스가 데이터를 보내거나 받기 위한 창구 역할을 하는 존재임전송 계층(Transport layer)와 프로세스 사이에서 인터페이스 역할을 하며 떨어져 있는 두 호스트를 연결하는 존재소켓은 장치 파일의 일종으로 이해할 수 있음 / 일반 파일에 대한 개념이 대부분 적용됨소켓 프로그래밍을 통해 네트워크 상의 다른 프로세스와 데이터를 주고 받을 수 있음더보기소켓의 3 요소 * 프로토콜프로토콜은 원래 외교상의 언어로써 의례나 국가간에 약속을 의미하며, 통신에서는 어떤 시스템이 다른 시스템과 통신을 원활하게 수용하도록 해주는 통신 규약, 약속 * IP전 세계 컴퓨터에 부여된 고유의 식별 주소 * 포트포트(Port)는 네트워크 상에서 통신하기..
네트워크컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고 받기 위해 유선 혹은 무선으로 연결된 통신체계 기능애플리케이션 목적에 맞는 통신방법신뢰할 수 있는 데이터 전송 방법네트워크 간의 최적의 통신 경로목적지로 데이터 전송노드 사이의 데이터 전송네트워크 프로토콜네트워크 통신을 하기 위해서 통신에 참여하는 주체들이 따라야하는 형식, 절차, 규약 등[대표적인 10가지 네트워크 프로토콜] 인터넷 프로토콜 스위트(internet protocol suite)인터넷에서 컴퓨터들이 정보를 주고받는데 사용되는 프로토콜의 집합이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명  OSI 7계층특징각 레이어에 맞게 프로토콜이 세분화되어 구현됨각 레이어의 프로토콜은 하위 레이어의 프로토콜이 제공하는 ..
❗️키워드 정리❗️     1. 가상 메모리, 페이징가상 메모리(virtual memory)실제 메모리를 추상화하여 가상 메모리에 올림으로써 프로세스들이 연속된 물리적 메모리 공간처럼 여기게 만들수 있을 뿐만 아니라 실제 메모리보다 많은 크기의 메모리도 운용이 가능 이슈주소 번역(Address Translation) : 가상 메모리와 물리 메모리의 주소를 번역해 매핑가상 공간에 대한 관리페이징 기법(Paging)가상 메모리와 물리 메모리의 매핑을 위한 기술컴퓨터의 물리적 메모리는 연속적으로 할당되어 존재할 필요가 없으며, 반대로 연속적으로 존재하지 않는 물리적 메모리라도 페이징 기법을 통해 연속적으로 존재하는 것처럼 이용될 수 있음 특징가상 메모리 상의 주소 공간을 일정한 크기로 분할(페이지)주소 공간은..
9.9 동적 메모리 할당동적 메모리 할당기는 힙(Heap)이라고 하는 프로세스의 가상메모리 영역을 관리미초기화된 데이터 영역(bss) 직후에서 시작해서 위쪽으로(높은 주소 방향으로) 커지는 무요구 메모리 영역커널은 힙의 꼭대기를 가르키는 변수 brk를 사용할당기는 힙을 다양한 크기의 블록들의 집합으로 관리(각 블록은 할당 또는 가용한 가상메모리의 연속적인 묶음)명시적 할당기(malloc, free)응용 프로그램이 명시적으로 할당된 블록을 반환해 줄 것을 요구(free)할당 : malloc / 해제 : free묵시적 할당기(garbage collector)자동으로 사용하지 않은 할당된 블록을 반환시켜주는 역할을 함9.9.1 malloc과 free 함수프로그램은 malloc 함수를 호출해서 힙으로부터 블록들..
728x90
반응형
개발찾아 삼만리
'정글' 태그의 글 목록 (3 Page)