개발/잡다개발 82

Synchronization Examples

Readers-Writers Problem 전산학에서 독자-저자 문제(readers-writers problem)란 여러 명의 독자와 저자들이 하나의 저장 공간(버퍼)을 공유하며 이를 접근할 때 발생하는 문제이다. 독자는 공유 공간에서 데이터를 읽어온다. 여러 명의 독자가 동시에 데이터를 읽어오는 것이 가능하다. 저자는 공유 공간에 데이터를 쓴다. 한 저자가 공유 공간에 데이터를 쓰고 있는 동안에는 그 저자만 접근이 가능하며, 다른 독자들과 저자들은 접근할 수 없다. 생산자-소비자 문제(producer-consumer problem)[1][2]는 여러 개의 프로세스를 어떻게 동기화할 것인가에 관한 고전적인 문제이다. 한정 버퍼 문제(bounded-buffer problem)라고도 한다. 유한한 개수의 물..

개발/잡다개발 2020.06.18

Synchronization Tools

Critical Section Problem 은 thread들이 공통 변수를 변경하고 파일의 쓰기 작업들을 수행하는 구역에서 한 Thread가 Critical Section에 들어갔을 경우, 다른 Thread들은 해당 구역 접근이 배제되어야 합니다. 위의 경우를 해결하기 위해 Peterson's Solution 이 사용됩니다. 2개의 Thread가 있을 때 flag를 사용하여 접근을 배제합니다. Mutext Lock이란 임계구역에 들아가기 전에 lock을 획들하고 나올때는 lock을 반환합니다. available 변수를 가지고 lock의 가용 여부를 판단합니다. Semaphore(세마포어) 카운팅 세마포어는 프로세스가 임계구역에 들어갈 때 wait값이 감소하고, lock을 반납할 때(signal) 값이 ..

개발/잡다개발 2020.06.18

CPU Scheduling

FCFS(First Come First Served) 디스크 스케줄링에서 가장 심플한 방식입니다. 가장 먼저 도착한 요청을 우선적으로 처리하고, 입출력 요청 대기 큐에 들어온 순서대로 서비스합니다. 장정 : 개발이 용이하고 무기한 기다림이 없습니다. 단점 : 이동경로가 길어지고 최적의 seek time을 찾을 수 없습니다. SJF(Shorteset Job First Scheduling) CPU를 적게 사용하는 것 부터 먼저 수행을 시켜 Waiting time이 적습니다. Priority Scheduling 우선순위 스케줄링이 있는데, 문제점으로 외부에서 새로운 프로세스가 들어오면 그 프로세스 우선적으로 처리하면서 오래 기다린 프로세스가 멈추는 경우가 있는데, 오래 기다릴 수록 우선순위를 높여주어야 한다...

개발/잡다개발 2020.06.18

TCP UDP

데이터를 전달하는 프로토콜에 TCP, UDP가 있습니다. TCP(Transmission Control Protocol) 특징 - 흐름 및 혼잡 제어 - 높은 시회선 - UDP보다 속도가 느림 - 서버와 클라이언트는 1:1로 연결 - 패킷에 대한 응답을 함 UDP(User Datagram Protocol) 특징 - 신뢰성이 낮다 - TCP보다 속도가 빠르다. - 1:1 or 1:N으로 연결될 수 있다. - 신뢰성보다 성능이 중요한 서비스에 제공 참조 [1] - https://mangkyu.tistory.com/15

개발/잡다개발 2020.06.14

DHCP

DHCP(Dynamic Host Configuration Protocol) DHCP란 호스트의 IP주소와 TCP/IP 기본 설정을클라리언트에게 자동적으로 제공해주는 프로토콜입니다. DHCP 장점으로는 PC의 수가 많거나 변동이 많을 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용이 가능합니다. DHCP 단점으로는 DHCP 서버가 죽으면 IP할당이 이루어지지 않습니다. 참조 [1] - https://jwprogramming.tistory.com/35

개발/잡다개발 2020.06.14

NAT

네트워크 주소 변환(Network address translation) NAT은 IP패킷의 TCP/UPD 포트 숫자와 소스 목적기의 IP주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술입니다. 패킷에 변화가 생겨, IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 합니다. NAT을 사용하는 이유는 여러 개의 호스트가 하나의 공인 IP 주소를 사용해 인터넷에 접속하기 위함이다.

개발/잡다개발 2020.06.14