[네트워크] IP 주소 개요
·
CS/Network
전공 수업 내용 정리 (문제 발생시 비공개합니다.)IP 주소 개요IPv4 주소는 32비트로 구성되어 있다.유일하고 보편적이라 할 수 있다.주소 공간은 총 2^32 개의 주소를 지원한다.주소 표현 방식은 Dotted-decimal notation을 사용한다.2진법 ↔ 10진법 변환예제 5.1: 2진법 → Dotted-decimal 표기법a. 10000001 00001011 00001011 11101111 → 129.11.11.239b. 11000001 10000011 00011011 11111111 → 193.131.27.255c. 11100111 11011011 10001011 01101111 → 231.219.139.111d. 11111001 10011011 11111011 00001111 → 249...
[네트워크] 소켓 프로그래밍: 프로토콜, 클라이언트와 서버의 함수호출
·
CS/Network
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 소켓의 타입과 프로토콜의 설정프로토콜의 개념프로토콜은 컴퓨터 간의 데이터 송수신에 필요한 통신 규약으로, 개념적으로는 약속의 의미를 담고 있다. 소켓을 생성할 때 기본적인 프로토콜을 지정해야 한다.TCP 서버의 기본적인 함수 호출 순서소켓 생성: socket()소켓 주소 할당: bind()연결 요청 대기 상태: listen()연결 허용: accept()데이터 송수신: read()/write()연결 종료: close()bind 함수까지 호출이 되면 주소가 할당된 소켓을 얻게 되며, 이후 listen 함수를 호출하여 연결 요청을 받을 수 있는 상태로 변환한다.연결 요청 대기 상태로의 진입연결 요청 대기 상태로 진입하기 위해서는 일반 소켓을 서버 소켓으로 바..
[네트워크] 소켓 프로그래밍 개요
·
CS/Network
전공 수업 내용 정리 (문제 발생시 비공개합니다.)소켓 프로그래밍소켓소켓은 네트워크(인터넷)에서의 연결 도구로, 운영체제에 의해 제공되는 소프트웨어적인 장치소켓을 사용하면 프로그래머는 데이터 송수신에 대한 물리적, 소프트웨어적 세부 사항에 신경 쓰지 않고도 네트워크 프로그래밍을 할 수 있다.소켓의 비유와 분류TCP 소켓은 전화기에 비유될 수 있습니다. 전화기를 사용하는 방식에 따라 전화를 거는 용도(클라이언트)의 소켓과 전화를 받는 용도(서버)의 소켓으로 나눌 수 있으며, 이 두 소켓의 생성 방법에는 차이가 있다.서버 소켓의 생성 (전화를 받는 소켓)1단계: 소켓 생성 (socket 함수 호출)서버 소켓은 socket 함수를 호출하여 생성한다.int server_sock = socket(AF_INET, ..
[네트워크] TCP 타이머, 옵션
·
CS/Network
전공 수업 내용 정리 (문제 발생시 비공개합니다.)TCP 타이머재전송 타이머영속 타이머킵얼라이브 타이머시간대기 타이머킵얼라이브 타이머(keepalive timer)오랜 기간 동안 idle 상태에 있는 것 방지서버가 2시간 동안 클라이언트로부터 세그먼트를 전송받지 못하면, probe 세그먼트 전송cf. https, s+a, a이 먼저 셋업되어야 요청을 보낼 수 있다.RTT 측정*RTT: Round Trip Time, 왕복 시간RTTm: 측정값Smoothed RTT (평균)처음: 아무 값도 설정 안 됨첫 번째 측정 시: RTTs = RTTm ☞최초 측정값을 평균으로 대입해서 시작첫 번째 이후의 측정 시: RTTs = (1-α)RTTs + α RTTm → (7/8)기존 평균값 + (1/8)측정값새로운 측정값에..
[네트워크] TCP segment, control
·
CS/Network
전공 수업 내용 정리 (문제 발생시 비공개합니다.) TCP segmentsending buffer보내는 버퍼는 버퍼 안에 보내 복사본을 그대로 가지고 있음(재전송이 필요할까봐)recieving buffer패킷 번호 매기기각 연결에서 전송되는 데이터의 바이트는 TCP에 의해 번호가 매겨짐.번호 매기기는 임의로 생성된 번호로 시작Cumulative ACK현재 사용하는 TCP 방식다음 번에 받고 싶은 번호를 보냄TCP segment 형식옵션마다 헤더 길이가 달라질 수 있음→ 이를 표현하기 위해 HLEN 사용(보낼 때 %4, 받을 때 *4)IP(발신지 16 + 목적지 16) + seq(32) + ack(32) + 헤더(4) + 예약(6)제어 필드(6) + 윈도우 크기(16) + 검사합(16) + 긴급 포인터(1..
[운영체제] 메모리 관리
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 메모리 관리운영체제의 핵심 기능 중 하나인 메모리 관리는 프로세스가 실행되기 위해 필요한 메모리를 적절히 할당하고 관리하는 역할1. 페이징 (Paging) = 분산적재페이징은 프로세스의 주소 공간을 동일한 크기의 블록으로 나누어 메모리에 분산하여 적재하는 방법페이지(Page): 프로세스의 주소 공간을 동일한 크기의 블록으로 나눈 단위.프레임(Frame): 실제 물리적 메모리를 페이지와 동일한 크기로 나눈 블록.특징외부 단편화 없음: 모든 페이지와 프레임의 크기가 동일하기 때문에 외부 단편화 문제가 발생하지 않음주소 변환 필요: 논리 주소를 물리 주소로 변환하기 위해 페이지 테이블을 사용해야함논리 주소 구조:페이지 번호 (p): 논리 주소에서 상위 비트로..
[운영체제] 동기화
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.)프로세스 동기화(Process Synchronization)여러 프로세스가 공유하는 자원의 일관성을 유지하는 것여러 프로세스가 서로 협력해 공유자원을 사용하는 상황에서 경쟁조건(race condition)이 발생하면 공유자원의 신뢰성이 떨어진다. 이를 방지하기 위해 프로세스들이 공유자원을 사용할 때 특별한 규칙을 만드는 것경쟁 상황(race condition)여러 프로세스(또는 스레드)가 공유자원에 동시에 접근할 때 공유자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황동시에 접근할 때 자료의 일관성을 해치는 결과가 나올 수 있다.임계구역(critical section)여러 프로세스 또는 스레드가 자원을 공유하는 상황에서 하나의 프로세스만 접..
[운영체제] 스레드
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 스레드와 동기화프로세스와 스레드의 기본 개념프로세스실행 중인 프로그램의 인스턴스리소스 소유권의 단위이며 스케줄링/실행의 단위메모리, I/O 채널, I/O 장치, 파일 등의 리소스를 소유스레드프로세스 내의 실행 단위동일한 프로세스 내의 다른 스레드와 리소스를 공유경량 프로세스(lightweight process)라고도 불림멀티스레딩의 이점1. 응답성 향상프로그램의 일부가 블록되어도 계속 실행 가능I/O와 연산을 동시에 수행 가능RPC(원격 프로시저 호출) 등에서 동시 응답 처리 가능2. 리소스 공유와 비용 절감새로운 PCB 생성이 불필요프로세스 간 전환보다 스레드 간 전환이 빠름동일 프로세스 내 스레드들은 메모리를 통해 직접 통신 가능3. 병렬 처리멀티코..
[운영체제] 프로세스 스케줄링
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 프로세스 스케줄링1. CPU 버스트와 I/O 버스트CPU 버스트: CPU가 작업을 실행하는 데 걸리는 시간I/O 버스트: CPU가 I/O를 대기하는 데 걸리는 시간CPU - I/O 버스트 주기: 각 프로세스 실행은 CPU 실행 및 I/O 대기 주기로 구성프로세스 유형에 따라 CPU 및 I/O 버스트가 변경될 수 있음.(a) CPU 기반: 긴 CPU 버스트 후 I/O 차단(b) I/O 기반: 짧은 CPU 버스트 후 I/O 차단2. 프로세서 스케줄링의 목적프로세서를 시스템 목표를 충족하는 방식으로 실행할 프로세스를 할당.3. 프로세서 스케줄링의 유형장기 스케줄링: 새로운 프로세스를 시스템에 진입시킬지 결정.중기 스케줄링: 멀티프로그래밍 정도를 제어하고 프로..
[운영체제] 프로세스 관리
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 실행 모드대부분의 프로세서는 두 가지 이상의 실행 모드를 지원모드연산자메모리CPU 레지스터커널(시스템)모든 연산자 실행모든 곳 접근모든 레지스터 접근유저연산자 특권 없음내 메모리 영역만특수 레지스터 없음모드 스위치모드 스위치는 현재 실행 중인 프로세스의 상태를 변경하지 않고 사용자 모드와 커널 모드 간에 프로세서를 전환할 수 있다.이 과정에는 모드 컨텍스트 저장/복원에 따른 오버헤드가 포함됨.인터럽트비동기적인 외부 예외트랩현재 명령어 실행시스템 호출요청에 의해모드 스위치의 주요 원인인터럽트: 비동기적인 외부 예외트랩: 현재 명령어 실행 중 발생시스템 호출: 프로그램의 요청에 의해 발생프로세스 컨텍스트와 인터럽트 컨텍스트프로세스 컨텍스트: 프로그램이 시스..