CSAPP 7

[C언어][csapp] Tiny서버 구현 시 SIGPIPE 상황 발생 해결 (문제 11.7과 연결)

https://jinsang-2.tistory.com/87  링크 11.7의 문제의 연장선이라 볼 수 있다.  [CSAPP] 11장 숙제(Homework) 문제 정답11.7) Tiny를 확장해서 MPG 비디오 파일을 처리하도록 하시오. 실제 브라우저를 사용해 여러분의 결과를 체크하시오(MPG 대신 mp4)1.get_filetype에 mp4 추가하기 //MIME type을 읽고 값을 *filetype에 저장void gejinsang-2.tistory.com{IP 주소}.godzilla.jpg로 직접 요청하기잘 나온다!!❗문제발생{IP 주소}.video.mp4 요청 시 SIGPIPE, Broken pipe가 뜨고 영상은 안나온다..접속 시에 서버는 터진다..GDB 디버깅 시도 rio_writen() 부분에서..

[CSAPP] 11장 숙제(Homework) 문제 정답

11.7) Tiny를 확장해서 MPG 비디오 파일을 처리하도록 하시오. 실제 브라우저를 사용해 여러분의 결과를 체크하시오(MPG 대신 mp4)1.get_filetype에 mp4 추가하기 //MIME type을 읽고 값을 *filetype에 저장void get_filetype(char *filename, char *filetype){ if (strstr(filename, ".html")) // 파일 확장자가 .html이면 strcpy(filetype, "text/html"); // MIME 타입을 text/html로 설정 else if (strstr(filename, ".gif")) // .gif 파일이면 strcpy(filetype, "image/gif"); /..

[CSAPP] 11.3 글로벌 IP 인터넷

https://jinsang-2.tistory.com/84 [CSAPP] 11.2 네트워크💡호스트에게 네트워크는 단지 또 다른 I/O 디바이스이다 !그림처럼 데이터를 위한 소스와 싱크로 서비스한다. I/O 버스의 확장 슬롯에 꽃혀 있는 어댑터는 네트워크에 물리적인 인터페이스를jinsang-2.tistory.com 글로벌 IP 인터넷은 11.2에서 봤듯이 LAN과 WAN과 라우터를 통해 internet을 성공적으로 구현한 것이다.각 인터넷 호스트는 `TCP/IP` 프로토콜을 구현한 소프트웨어를 실행한다. 인터넷 클라이언트와 서버는 `소켓 인터페이스`와 `Unix I/O 함수`들의 혼합을 사용해서 통신한다. 소켓 함수들은 일반적으로 `시스템 콜`들로 구현되며 이 시스템 콜은 커널에서 트랩을 발생시키며, T..

[CSAPP] 11.2 네트워크

💡호스트에게 네트워크는 단지 또 다른 I/O 디바이스이다 !그림처럼 데이터를 위한 소스와 싱크로 서비스한다. I/O 버스의 확장 슬롯에 꽃혀 있는 어댑터는 네트워크에 물리적인 인터페이스를 제공한다. 네트워크에서 수신한 데이터는 I/O와 메모리 버스를 거쳐서 어댑터에서 메모리로, 대게 DMA 전송으로 복사된다. 소스와 싱크로 서비스 : 소스는 데이터를 보내는 쪽, 싱크는 데이터를 받는 쪽을 의미한다. 네트워크 상에서 데이터를 보내는 장치와 받는 장치가 서로 데이터를 주고 받으며 역할을 분담한다는 뜻DMA 전송 : DMA 전송(Direct Memory Access)은 컴퓨터의 메모리와 주변 장치 간에 데이터를 CPU를 거치지 않고 직접 전송하는 방법 💡이더넷물리적으로 네트워크는 기하학적 위치로 구성된 계..

[CSAPP] 11-1 클라이언트-서버 프로그래밍 모델

모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초한다.서버 : 일부 리소스를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공웹 서버는 디스크 파일들을 관리하고, 클라이언트를 대신해서 이들을 가져오고 실행한다.FTP 서버는 클라이언트를 위해 저장하고 읽어오는 디스크 파일들을 관리이메일 서버는 클라이언트를 위해서 읽고 갱신하는 스풀 파일을 관리클라이언트-서버 모델에서 근본적인 연산은 트랜잭션이다.클라이언트 - 서버 트랜잭션의 4 단계클라이언트가 서비스를 필요로 할 때, 클라이언트는 한 개의 요청 request을 서버에 보내는 것으로 트랜잭션을 개시서버는 요청을 받고, 해석하고, 자신의 자원들을 적절한 방법으로 조작한다.서버는 응답 response을 클라이언트로 보내고, 그 후에..

[CSAPP] 1-7. 운영체제는 하드웨어를 관리한다.

운영체제(Operation System, OS)란?`운영체제`는 컴퓨터의 하드웨어 자원을 관리하고, 사용자 및 응용 프로그램이 컴퓨터와 상호작용할 수 있도록 지원하는 소프트웨어의 집합이다.이전에 hello 프로그램을 로드하고 실행했을 때 프로그램이 키보드나, 디스플레이, 디스크나 메인 메모리를 직접 엑세스하지 않았다. 운영체제가 제공하는 서비스를 활용했다.아래 그림과 같이 하드웨어와 소프트웨어 사이에 위치한 소프트웨어 계층이라고 생각할 수도 있다.운영체제의 두 가지 목적제멋대로 동작하는 응용프로그램들이 하드웨어를 잘못 사용하는 것을 막기 위해응용프로그램들이 단순하고 균일한 매커니즘을 사용하여 복잡하고 매우 다른 저수준 하드웨어 장치들을 조작할수 있도록 하기 위해컴퓨터 시스템 계층화 모습운영체제에 의한 추..

[CSAPP]1-5, 1-6 캐시와 저장장치 계층구조

https://jinsang-2.tistory.com/76 [CSAPP]1-2,1-3 컴파일 시스템#inclue int main(){ printf("hello, world\n"); return 0;}hello.c를 시스템에서 실행시키기 위해 저급 기계어 인스트럭션들로 번역되어야 한다!!컴파일 시스템 = 전처리기 + 컴파일러 + 어셈블러 + 링커Pre-processor:jinsang-2.tistory.com앞에서 살펴 봤듯이, 시스템이 정보를 한 곳에서 다른 곳으로 이동시키는 일에 많은 시간을 보낸다. 데이터 복사과정1. 기계어 인스트럭션프로그램의 기계어 인스트럭션들은 하드디스크에 저장되어 있다.프로그램이 로딩되면 디스크의  프로그램이 메인메모리로 복사된다.프로세서가 프로그램을 실행하면 인스트럭션들이 메인..