본문 바로가기

CS

인터넷 네트워크 IP 패킷 정보 : 출발지 IP, 목적지 IP, 기타 등TCP 패킷 정보 : 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등* PORT란? 같은 IP내에서 프로세스 구분(HTTP(80), HTTPS(443))TCP : 연결 지향(TCP 3 way handshake), 데이터 전달 보증, 순서 보장, 신뢰성UDP : 연결 지향 x, 데이터 전달 보증 x, 순서 보장 x, 단순하고 빠름(IP와 유사 + port, 체크섬) DNS : 도메인 네임 시스템, 도메인 명을 IP 주소로 변환(IP는 변경 가능)웹 브라우저 요청 흐름웹 브라우저가 HTTP 메세지 생성socket 라이브러리를 통해 전달(TCP/IP 연결(IP, PORT), 데이터 전달)TCP/IP 패킷 생성, HTTP 메세지 포함네..
TCP vs UDP - TCP(Transmission Control Protocol) 일반적으로 TCP와 IP를 함께 사용(IP가 데이터 배달을 처리한다면 TCP는 패킷을 추적 및 관리) 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜 사전에 3-way handshake를 통해 연결을 설정하고 통신을 시작 -> 4-way handshake를 통해 연결을 해제(가상 회선 방식) 흐름제어, 혼잡제어, 오류제어를 통해 신뢰성을 보장(그러나 UDP보다 전송 속도가 느림) 데이터의 전송 순서를 보장하며 수신 여부 확인 가능 TCP를 사용하는 예 : 웹 HTTP 통신, 이메일, 파일 전송 등 TCP가 가상회선 방식을 제공한다는 것은 송신측과 수신측을 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 뜻 + 패킷(Pack..
OSI 7 계층 - OSI(Open System Interconnection) 7계층 OSI 모형이란 국제표준화기구인 ISO에서 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명하기 위해 개발한 모델 프로토콜은 연결을 위한 일종의 규칙(쉽게 말하면 둘 이상의 디바이스에서 서로 연결하기 위해 일어나는 일들을 과정에 따라 구분한 단계) 실제 인터넷에서 사용되는 TCP/IP 는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화한 것 - OSI 7계층을 나누는 이유? 초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성이 없었음 -> 모든 시스템들의 상호 연결에 있어 문제 없도록 표준을 정한 것이 OSI 7계층 중요한 목적은 표준(호환성)과 학습 도구 표준화를 통..
시스템 콜(System Call) - 커널(Kernel) 모드 프로그램 카운터가 운영체제가 존재하는 부분을 가리키고 있다면, 현재 운영체제의 코드를 수행 중이며 CPU가 커널 모드에서 수행 중이라고 함 - 사용자(User) 모드 프로그램 카운터가 사용자 프로그램이 존재하는 메모리 위치를 가리킬 경우, 사용자 프로그램을 수행 중이며 CPU가 사용자 모드에서 수행 중이라고 함 일반 명령 : 메모리에서 자료를 읽어와서 CPU에서 계산하고 결과를 메모리에 쓰는 일련의 명령들, 모든 프로그램이 수행할 수 있음(사용자 모드) 특권 명령 : 보안이 필요한 명령으로 입출력 장치, 타이머 등 각종 장치를 접근하는 명령(커널 모드) CPU 내에 모드 비트를 두어 두 명령을 수행 사용자 프로그램이 디스크의 파일을 접근하거나, 화면에 결과를 출력하는 등의 작..
인터럽트(Interrupt) - 인터럽트(Interrupt)란? 하드웨어 장치가 CPU에게 어떤 사실을 알려주거나 CPU의 서비스를 요청해야 할 경우, CPU 내에 있는 인터럽트 라인을 세팅하여 인터럽트를 발생시킴(프로그램이 명령을 수행하기 위해서는 CPU를 할당받아야 함) CPU는 매번 프로그램 카운터가 가리고 있는 곳의 명령을 수행한 뒤, 다음 명령을 수행하기 직전에 인터럽트 라인이 세팅되었는지 체크함 이를 통해 인터럽트가 발생했으면 CPU는 현재 수행 중이던 프로세스를 멈추고 운영체제의 인터럽트 처리 루틴으로 이동하여 인터럽트 처리를 수행함 - 인터럽트의 종류 1) 하드웨어 인터럽트(일반적인 인터럽트) 하드웨어 컨트롤러가 CPU의 서비스를 요청하기 위해 발생시키는 인터럽트 2) 소프트웨어 인터럽트(Trap) 1. 예외 상황(E..
캐시의 지역성 - 캐시의 지역성 원리 캐시 메모리는 속도가 빠른 장치와 느린 장치 간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리 이러한 역할을 수행하기 위해서는 CPU가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 함 캐시의 성능은 작은 용량의 캐시 메모리에 CPU가 이후에 참조할 쓸모 있는 정보가 어느 정도에 들어있느냐에 따라 좌우됨 이때 적중률(Hit rate)을 극대화 시키기 위해 데이터 지역성(Locality)의 원리를 사용 지역성의 전제조건으로 프로그램은 모든 코드나 데이터를 균등하게 Access하지 않는다는 특성을 기본으로 함 => Locality란 기억 장치 내의 정보를 균일하게 Access하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조하는 특성 이 데이터 지역성은 대표..
가상 메모리 - 가상 메모리 다중 프로그래밍을 실현하기 위해서는 많은 프로세스들을 동시에 메모리에 올려두어야 함 가상 메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행 가능하게 하는 기법(프로그램이 물리 메모리보다 커도 됨) 운영체제는 모든 프로그램에게 같은 크기의 메모리를 할당하지 않고 몇몇 프로그램에게 집중적으로 메모리를 할당한 후, 시간이 흐르면 이들에게서 메모리를 회수하여 다른 프로그램들에게 다시 집중적으로 할당하는 방식 사용 CPU를 할당 받아 당장 수행할 부분만 메모리에 올려놓고, 그렇지 않은 부분은 디스크의 swap 영역에 내려놓았다가 다시 필요해지면 메모리에 올라가 있는 부분과 교체하는 방식 사용 -> 프로그램이 자기 자신만 메모리를 사용하는 것과 같은 효과 가상 메모리는 프로세스마다 각각 ..
Paging vs Segmentation - 메모리 관리 배경 각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려 있음 (단, 운영체제만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약 없음) 1) Swapping : 메모리 관리를 위해 사용되는 기법 표준 Swapping 방식으로는 Round-robin과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치(하드디스크)로 내보내고 다른 프로세스의 메모리를 불러 들일 수 있음 (이 과정을 swap이라 함. 주기억장치(RAM)으로 불러오는 과정을 swap-in, 보조 기억장치로 내보내는 과정을 swap-out이라 함. swap에는 큰 디스크 전송시간이 필요하기 때문에 현재에..