CS

CS/운영체제

스핀락, 뮤텍스, 세마포어

프로세스 동기화 💡 여러 개의 프로세스가 동시에 실행될 때, 서로가 영향을 주지 않도록 프로세스 간의 상호작용을 조절하는 것을 프로세스 동기화라고 함 여러 프로세스가 서로 협력해 공유 자원을 사용하는 상황에서 경쟁(race condition)이 발생하면 공유 자원의 신뢰성이떨어짐 Critical Section(임계 영역) 공유 데이터를 접근하는 코드 부분을 의미 하나의 프로세스만 사용할 수 있는 구역 공유되는 자원에서 문제가 발생하지 않도록 독점 보장 Mutual Exclusion(상호 배제) Progress(진행) Bounded Waiting(한정 대기) 스핀락(Spinlock) 특정한 자료구조를 획득(lock), 또는 해제(unlock) 함으로써 공유 데이터에 대한 접근 권한을 관리하는 방식 권한을 ..

CS/운영체제

프로세스의 이해 & 프로세스간 통신

프로세스의 개념 실행 중인 프로그램 비동기적 행위 실행 중인 프로시저 실행 중인 프로시저의 제어 추적 운영체제에 들어 있는 프로세스 제어 블록 프로세서에 할당하여 실행할 수 있는 개체 디스패치가 가능한 대상 💡 프로시저 : 루틴, 서브루틴, 함수와 같은 뜻으로 사용되며, 하나의 프로시저는 특정 작업을 수행하기 위한 프로그램의 일부이다. 또는 어떤 행동을 수행하기 위한 일련의 작업 순서를 말한다. 💡 디스패치 : 준비 리스트의 맨 앞에 있던 프로세스가 CPU를 점유하게 되는 것, 즉 준비 상태에서 실행 상태로 바뀌는 것을 디스패치라고 한다. 💡 프로세스 제어 블록(Process Control Block, PCB) : 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료구조. 운영체제가..

CS/네트워크

Forwarding vs Routing / Data Plane, Control Plane

라우팅 패킷을 목적지까지 전달하는 빠른 경로를 찾아주는 작업 A.B… F는 라우터를 나타내고 라우터를 연결하는 링크에 기록된 숫자는 이 링크를 지나가는데 소요되는 코스트를 의미 코스트란 패킷이 이 링크를 지나가는데 걸리는 시간을 의미 C → F 가장 빨리 전달될 수 있는 경로는 C→ B →E → F 하지만 C 라우터에서 모든 경로에 대해서 알고 있는 것이 아니라 인접한 노드 중에서 최적을 찾음 이와 같이 라우팅이 이루어 지려면 라우터는 목적지를 찾아가기 위한 최적의 경로를 알고 있어야 하는데, 최적의 경로를 찾아내기 위해서 라우팅 알고리즘 사용 패킷이 도착할 때 마다 라우팅 알고리즘을 실행하는 것이 아니라, 어느 경로가 최적인지를 먼저 구해놔야 함 라우팅 알고리즘을 통해 얻은 정보를 정리해 둔 것 ⇒ 라..

CS/네트워크

TCP 흐름제어와 혼잡제어

TCP 흐름제어와 혼잡제어 흐름제어 흐름제어란 ? 송신 측과 수신 측의 TCP 버퍼 크기 차이로 인해 생기는 데이터 처리 속도 차이를 해결하기 위한 기법 흐름 제어 기법 Stop and Wait 매번 전송 패킷에 대해 확인 응답(ACK)을 받으면 다음 패킷을 전송하는 방법 패킷을 하나씩 보내기 때문에 비효율적 Sliding Window 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답(ACK) 없이 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 제어 기법 ✨ 윈도우 크기 ? 최초의 윈도우 크기는 3way handshaking을 통해 수신 측 윈도우 크기로 설정되며, 이후 수신 측의 버퍼에 남아있는 공간에 따라 변한다. 윈도우 크기는 수신 측에서 송신 측으로 확인 응답(ACK)을 보낼 때 ..

CS/운영체제

1강 운영체제 개요

1강 운영체제가 뭐길래? 정보란건 뭘까? 정보의 최소 단위 : bit(Binary digit) 정보의 처리 : 정보의 상태 변환(0에서 1로, 1에서 0으로) 부울 대수(Boolean Algebra) : NOT, AND, OR 논리 게이트 : NOT, AND, OR, XOR, NAND, NOR 논리 회로 : IC, LCI, VLCI, ULCI, SoC 정보의 저장과 전송 : 플립-플롭, 데이터 버스, RF 무어의 법칙 황의 법칙 그래서, 컴퓨터가 정보를 어떻게 처리하죠? 덧셈은 ? 반가산기, 전가산기 뺄셈은 ? 2의 보수 표현법 곱셈과 나눗셈은 ? 덧셈과 뺄셈의 반복 → 단일 회로로 구현 가능 실수 연산은 ? 부동 소수점 표현법, 별도의 회로로 구성하면 GPU? 함수는 ? GOTO 그럼, 컴퓨터는 만능인..

CS/네트워크

ARQ Stop and Wait, Go Back N, SR

ARQ 란 ? Automatic Repeat Request 통신회선 상에서 신뢰성 있는 데이터 전달을 위해 에러 검출 후 재전송을 통해 오류를 복구하는 에러 제어 방식 자동 반복 요청 에러가 발생한 경우, 재전송을 요구하는 방식 Stop and Wait 동작 방식 송신측은 프레임을 보내고 기다림과 동시에 타이머를 작동시킴 송신측에서는 ACK를 받으면 타이머를 멈춤 오류가 발생한 블록만 재전송하므로 구현 방법이 가장 단순하고 신뢰성 있는 통신 방식 다만, 한 프레임을 보낼 때 마다 기다리므로 속도가 느림 Go-Back-N 슬라이딩 윈도우 방식 연속적 ARQ(Continuous ARQ) 위에 두 개 다 Go Back n ARQ! 흐름제어를 위한, 검출 후 재전송 방식(ARQ)의 일종 일정한 윈도우 크기 이내..

CS/네트워크

3 Way-Handshake, 4 Way-Handshake

3 Way-Handshake 3 Way-Handshake란? TCP에서 통신하는 장치 간에 서로 연결이 잘 되어 있는지 확인하는 과정, 방식 ㅎㅇ TCP 프로토콜은 연결 지향적, 상대방이 내 신호를 받을 수 있는지 확인한 후에 통신을 시작 → 내 신호를 받을 수 있는지 확인할 때 3 Way-Handshake! TCP 표준에서는 Client가 먼저 3 Way-Handshake를 시작하기 때문에 Client를 Active Opener라고 표현, Server를 Passive Opener라고 표현 💡 SYN(Synchronize Sequence Number) 연결 설정. Sequence Number를 랜덤으로 설정하여 세션을 연결하는데 사용하며 초기에 Sequence Number 전송 따라서 Connection..

CS/네트워크

HTTP와 HTTPS

HTTP와 HTTPS HTTP(HyperText Transfer Protocol) HTTP(Hyper Text Transfer Protocol)는 인터넷에서 데이터를 주고받을 수 있는 프로토콜 클라이언트와 서버 사이에 이루어지는 요청/응답 (request/response) 프로토콜 HTTP의 특징 TCP와 UDP를 사용하며, 80번 포트를 사용 비연결성(Connectionless) 클라이언트가 요청을 서버에 보내고 서버가 적절한 응답을 클라이언트에 보내면 바로 연결이 끊어짐 무상태성(Stateless) 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않음 HTTP Message의 구조 HTTP는 어플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고..

D_Helloper
'CS' 카테고리의 글 목록 (2 Page)