나만의 작은 도서관
[TIL] 240603 캠프 50일차: 소켓, 쓰레드, I/O 본문
오늘 배운 내용
소켓
소켓은 통신의 극점(endpoint)를 말하며, 두 프로세스가 네트워크 상에서 통신을 할 때 사용한다. 양 프로세스에 하나씩 총 두개의 소켓이 필요하며, 각 소켓은 IP주소 + 포트 번호 조합으로 구별한다. 서버-클라이언트 구조인 경우, 클라이언트가 서버로부터 부여받는 포트번호는 유일한다(1024번 이상의 포트 번호)
쓰레드
프로세스 내에서 작업을 실행하는 주체이다. 하나의 프로세스에 1개 또는 그 이상의 쓰레드가 존재할 수 있는데, 이 대 여러 개의 쓰레드를 사용할 수 있는 프로세스를 멀티쓰레드 프로세스라고 한다. 멀티 쓰레드인 경우 각 쓰레드는 프로세스의 메모리를 공유 자원으로 사용한다. 그렇기 때문에 하나의 쓰레드에 문제가 발생하면, 같은 프로세스에 존재하는 다른 쓰레드들에게 영향을 줄 수 있다.
같은 프로세스에 있는 쓰레드와의 콘텍스트 스위칭(context switching)은 다른 프로세스와의 콘텍스트 스위칭보다 부담이 적다. 그 이유는 같은 프로세스의 콘텍스트 스위칭이 발생한 경우, 캐시를 삭제하고 생성하는 일련의 과정을 생략할 수 있기 때문이다(공유 데이터가 동일하기 때문)
I/O
I/O는 input/output을 의미하며, I/O장치로는 키보드, 마우스, 스피커 등이 있다. I/O의 작업 처리 속도는 CPU보다 매우 느리기 때문에 동기식으로 I/O작업 처리를 기다리는 것은 CPU가 idel상태로 놀고 있는 기간이 치명적이게 길어지는 결과를 초래한다. 따라서 되도록이면 I/O작업 처리는 비동기 방식으로 처리하는 것이 바람직하다.
오늘의 Trouble Shooting
- 오늘은 해결한 Trouble이 없어요!
오늘 한 일
- IOCP, Select모델 발표 자료 제작 완료
- 1차 팀 프로젝트 각 팀원의 PR & merge 완료(필수 요구사항 80%완료)
- 팀 프로젝트 2번째 역할 분배
'Today I Learn' 카테고리의 다른 글
[TIL] 240605 캠프 52일차: Prisma 배열과 객체의 반환 값 판정, Prisma NOT, gte, lte사용법 (0) | 2024.06.05 |
---|---|
[TIL] 240604 캠프 51일차: prisma client와 연결된 DB간의 관계. 협업에서 발생할 수 있는 문제에 대해서... (0) | 2024.06.04 |
[TIL] 240531 캠프 47일차: 식별/비식별 관계, IOCP (0) | 2024.06.01 |
[TIL] 240530 캠프 46일차: Prisma: include, 관계 속성 사용법 (0) | 2024.05.30 |
[TIL] 240529 캠프 45일차: prisma: @map 생략, createMany (0) | 2024.05.29 |