Programming/열혈 TCP, IP 소켓 프로그래밍(저자 윤성우)50 Ch 18. 내용 확인문제 모든 내용은 [윤성우 저, "열혈강의 TCP/IP 소켓 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! 01. 하나의 CPU를 기반으로 어떻게 둘 이상의 프로세스가 동시에 실행되는지 설명해보자. 그리고 그 과정에서 발생하는 컨텍스트 스위칭이 무엇인지도 함께 설명해보자. - CPU에 의한 실행대상 프로세스를 매우 짧은 시간마다 교체하기 때문에 둘 이상의 프로세스가 (거의) 동시에 실행 가능하다. - 컨텍스트 스위칭이란, CPU에 의한 실행의 대상을 변경하는 과정에서 발생하는 준비과정으로써, 이전에 실행되던 프로세스의 데이터를 메모리 공간에서 내리고 이어서 실행될 프로세스의 데이터를 메모리 공간 위에 올리는 작업이.. 2020. 8. 10. Ch 18. 멀티쓰레드 기반의 서버구현 모든 내용은 [윤성우 저, "열혈강의 TCP/IP 소켓 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 멀티프로세스 기반의 서버구현의 단점 1) 프로세스 생성이라는 운영체제 차원에서 부담스러운 작업과정을 거침 2) 두 프로세스 사이에서의 데이터 교환을 위해서는 별도의 IPC 기법을 적용해야함(e.g. 파이프) 3) 초당 적게는 수십번에서 많게는 수천번까지 일어나는 "컨텍스트 스위칭"에 따른 부담은 프로세스 생성 방식의 가장 큰 부담 - 가장 치명적 단점 * CPU 내의 코어보다 많은 수의 프로세스가 실행될 수 있는 이유는 프로세스들이 CPU의 할당시간을 나눠서 사용하기 때문인데, 이를 위해서는 "컨텍스트 스.. 2020. 8. 10. Ch 17. 내용 확인문제 모든 내용은 [윤성우 저, "열혈강의 TCP/IP 소켓 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! 01. select 함수를 기반으로 서버를 구현할 때 코드상에서 확인할 수 있는 단점 두 가지는 무엇인가? # select 기반의 IO 멀티플렉싱이 느린 이유 1) select 함수호출 이후에 항상 등장하는, "모든 파일 디스크립터를 대상"으로 하는 반복문 2) select 함수를 호출할때마다 인자로 매번 전달해야 하는 관찰대상에 대한 정보들 => 매번 운영체제에게 이 정보를 전달해야 함. (1보다 2가 성능에 치명적인 약점이 될 수 있음, 코드의 개선을 통해서 덜 수 있는 유형의 부담이 아니기 때문) 02... 2020. 8. 10. Ch 17. select보다 나은 epoll 모든 내용은 [윤성우 저, "열혈강의 TCP/IP 소켓 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요! # 멀티플렉싱 기법 중 하나인 select는 오래 전에 개발됨. - 이를 이용하면 아무리 프로그램의 성능을 최적화시켜도, 허용할 수 있는 동시접속자의 수가 백을 넘기 힘듦. (물론 하드웨어 성능에 따라 많이 좌지우지 되겠지만) - 따라서, 웹기반의 서버개발이 주를 이루는 오늘날의 개발환경에서는 적절치 않음. - 따라서 이에 대한 대안으로 리눅스 영역에서 주로 활용되는 epoll에 대해 공부해보자. # select 기반의 IO 멀티플렉싱이 느린 이유 1) select 함수호출 이후에 항상 등장하는, "모든 파일.. 2020. 8. 10. 이전 1 2 3 4 5 6 7 ··· 13 다음