본문 바로가기
반응형

CS(Computer Science)55

[네트워크] TCP 세그먼트 구조와 통신원리 TCP 1. point-to-point: TCP 소켓 한 쌍끼리의 통신을 책임진다. 2. 신뢰성 3. send, receive buffers 4. 흐름제어: 받을 수 있는 양에 맞게 보내야함 TCP 세그먼트 구조 receive window: window 빈 공간 체크 A가 B에게 c를 보내려고한다. Tcp에서 ack 10의 의미는 9번까지 잘 받았고 10번을 기다리고 있다는 뜻이다. 자료출처 컴퓨터 네트워크, 이석복 2023. 2. 10.
[네트워크] TCP Pipelining 방식 : Go-Back-N & selective repeat 2023.01.29 - [CS(Computer Science)/네트워크] - [네트워크] 애플리케이션 계층에서 신뢰성 있는 통신 원리 [네트워크] 애플리케이션 계층에서 신뢰성 있는 통신 원리 애플리케이션 계층 간의 통신에서 신뢰성은 어떻게 보장될까? 각 채널별로 필요한 메커니즘에 대해 알아보자. Rdt1.0 에러 없는 완벽한 채널 sender은 패킷 보내고 receiver는 패킷을 받는 과정에서 whdgus928.tistory.com 이전 시간에 학습했던 패킷을 하나씩 보내는 방식은 실생활에서 사용하기 어렵다. 그래서 신뢰성 있는 통신에서 패킷을 더 효율적으로 송수신하기 위해 pipelining을 사용한다. go-back-N과 selective repeat는 실제 사용하는 프로트콜은 아니지만 pipeli.. 2023. 2. 9.
[데이터베이스] 데이터베이스 정규화 데이터베이스 정규화가 무엇인지 알아보자 학원에 등록한 사람들을 DB에 정리한 students 테이블이 있다고 생각해보자 번호 이름 과목 101 박찬호 수학 102 이승엽 영어 103 이대호 영어 여기서 이대호가 과학을 또 등록하면? 번호 이름 과목 101 박찬호 수학 102 이승엽 영어 103 이대호 영어, 과학 위와 같은 방식으로 추가한다면 단점이 생기게 된다. 단점1. 과학을 듣는 사람을 찾기 귀찮아짐. select * from students where 과목='과학'으로 구할 수가 없다 단점2. 과목명 수정도 어려워짐 그래서 아래와 같이 데이터를 보관하는 것이 좋다 번호 이름 과목 101 박찬호 수학 102 이승엽 영어 103 이대호 영어 103 이대호 과학 하나의 칸 안에는 하나의 데이터만 저장한.. 2023. 2. 9.
[운영체제] 프로세스 동기화의 고전적인 문제 1. Bounded-buffer Problem shared data: buffer 자체 및 buffer 조작 변수 semaphore full=0, empty=m, mutex=1 #producer do{ produce an item in x p(empty) p(mutex) add x to buffer v(mutex) v(full) }while(1) 2. Readers Writers Problem 한 process가 DB에 write 중일 때 다른 process가 접근하면 안됨 read는 동시에 여럿이 해도 됨 해결방법 writer는 대기 중인 Reader가 하나도 없을 때 DB접근이 허용된다 일단 Writer가 DB에 접근 중이면 Reader들은 접근이 금지된다 Writer가 DB에서 빠져나가야만 Read.. 2023. 2. 8.
[운영체제] Semaphores Semaphores은 앞의 방식들을 추상화시킨 일종의 추상자료이다. 공유자원 획득과 반납을 도와준다 Semaphores s #자원의 개수 # p연산: 공유데이터 획득 while(s 2023. 2. 8.
[운영체제] 프로세스 동기화 문제 & 해결방법 프로세스들은 수행의 동기화를 위해 변수를 공유할 수 있다 do{ entry section critical section exit section remainder section } while(1); entry로 lock을 걸어서 critical section 접근을 막고 exit를통해 다른 프로세스가 critical section에 진입할 수 있게한다 프로그램적 해결법의 충족 조건 1. Mutual Exclusion(상호 배제) - 프로세스가 critical section 부분을 수행중이면 다른 모든 프로세스들은 그들의 critical section에 들어가면 안 된다 2. Progress - 아무도 critical section에 있지 않은 상태에서 critical section에 들어가고자 하는 프로세.. 2023. 2. 7.
[운영체제] 프로세스 동기화 & Race Condition 프로세스 간에 동기화에 대해 알아보자 E-box S-box CPU Memory 컴퓨터내부 디스크 프로세스 그 프로세스의 주소 공간 데이터가 저장되어 있는 storage box와 연산을 하는 execution box가 있다. 데이터를 s-box에서 읽어와서 연산을 하고 s-box에 다시 반영을 한다. 여기서 E-box가 여러 개인 경우가 생긴다. 저장공간을 혼자 사용하면 문제가 없는데 다른 실행박스와 공유한다고 하면 데이터 동기화 문제가 발생한다. 저장소에서 하나의 값에 대해서 한 실행박스는 1을 증가시키고 하나는 1을 감소시키려할 때 우리는 값은 변하지 않겠다라고 결과를 생각하게 된다. 하지만 실제 결과는 덧셈은 반영이 안돼고 1을 뺀 결과만 반영이 된다. 여러주체가 하나의 데이터에 동시에 접근하는 경우.. 2023. 1. 31.
[운영체제] CPU 스케줄링 CPU 스케줄링의 핵심은 두 가지다. 1. 여러 작업이 들어올 때 누구를 먼저 할 것인가 2. 사용하고 있는 CPU를 언제 가져올것인가 스케줄링 알고리즘 스케줄링에는 CPU를 다 사용할때까지 기다리는 비선점형과 중간에 뺏을 수 있는 선점형이 있다. 1. FCFS(First Come First Served): 먼저 오면 먼저 사용 - 비선점형 - 나머지 작업들 CPU를 다 사용할 때까지 기다려야한다 - 비효율적 ※ convoy effect: CPU 사용시간이 긴 프로세스에 의해 사용시간이 짧은 프로세스들이 오래 기다리는 현상 이로 인해 평균 대기시간이 길어지게 된다. 2. SJF(Shortest job first): CPU를 사용하는 시간이 짧은 작업에 먼저 이용권을 준다 - average wait tim.. 2023. 1. 30.
[네트워크] 애플리케이션 계층에서 신뢰성 있는 통신 원리 애플리케이션 계층 간의 통신에서 신뢰성은 어떻게 보장될까? 각 채널별로 필요한 메커니즘에 대해 알아보자. Rdt1.0 에러 없는 완벽한 채널 sender은 패킷 보내고 receiver는 패킷을 받는 과정에서 패킷 에러, 패킷 상실이 발생하지 않는 완벽한 채널이다 이 때는 오류가 없기에 특별한 메커니즘이 필요 없다. 하지만 비현실적이다. Rdt2.0 패킷 유실은 없고 에러는 있는 채널 아까와 달리 좀 더 현실적인 상황이다. 이 때는 에러 탐지와 에러를 알려주는 피드백 메커니즘이 필요하다, receiver는 에러를 판단하고 ACK or NAK의 피드백을 준다. NAK의 피드백이 온다면 sender는 패킷을 재전송한다. 여기서 sequence number라는 개념이 등장한다. 시퀀스 넘버는 패킷을 구분하기 위.. 2023. 1. 29.
728x90