[컴퓨터 네트워크] 네트워크 최적화
·
Computer Science/ComputerNetwork
네트워크 최적화란?유선망은 고속 데이터 전송과 안정성을 제공하지만, 네트워크 최적화가 이루어지지 않으면 병목현상, 지연, 패킷 손실 등의 문제가 발생하여 성능이 저하될 수 있습니다.특히, 송신 측 전송 계층에서 데이터를 무작정 목적지로 보내버린다면 경로 상의 라우터가 혼잡해지며, 이는 병목 현상, 지연, 패킷 손실로 이어질 것입니다.이 문제를 해결하기 위한 방법에 대해 알아보도록 하겠습니다. TCP 흐름제어수신 측이 송신 측보다 데이터 처리 속도가 빠르면 문제 없지만, 송신 측의 속도가 빠를 경우 문제가 발생하게 됩니다. 수신 측에서 제한된 저장 용량을 초과한 이후에 도착하는 패킷은 손실될 수 있으며, 만약 손실된다면 불필요한 추가 패킷 전송이 발생하게 됩니다.흐름 제어는 위와 같이 송신 측과 수신 측의..
[컴퓨터 네트워크] 링크 계층
·
Computer Science/ComputerNetwork
이번에는 컴퓨터 네트워크 링크 계층에 대해서 알아보도록 하겠습니다.링크 계층의 계요링크 계층이 구현된 위치링크 계층 및 물리 계층은 유선 랜카드(=Network interface controller)에 구현되어 있습니다.유선 랜카드 내부의 링크 계층은 Ethernet 프로토콜을 기반으로 구현 및 동작합니다. 유선 랜카드 동작 과정데이터 준비: 컴퓨터에서 생성된 데이터를 네트워크 계층을 통해 전달받음(IP 패킷 형태)프레임 생성: IP 패킷의 앞쪽에 Ethernet 프로토콜 헤더를 추가하여 프레임으로 캡슐화신호 변환 및 송신: 디지털 데이터(0 or 1)로 표현된 프레임을 아날로그 신호(전기적 신호)로 변환(인코딩)하여 케이블을 통해 전송수신 데이터 처리: 랜카드로 들어오는 데이터를 디코딩, 오류 검사 후..
[컴퓨터 네트워크] 네트워크 계층
·
Computer Science/ComputerNetwork
이번에는 네트워크 계층에 대해서 알아보도록 하겠습니다!네트워크 계층네트워크 계층은 출발지 호스트에서 목적지 호스트까지 데이터를 전달하는 역할을 수행합니다.목적지까지 IP 패킷을 전달하기 위해서는 중간 라우터를 반드시 거쳐야 하며, 이때 네트워크 계층은 어떤 라우터를 거쳐서 패킷을 최종 목적지까지 전달할 지를 결정합니다.주요 프로토콜: IP(Internet Protocol), ICMP, OSPF, BGP 등 있습니다. 네트워크 계층의 역할전송 계층에서는 종단 호스트 간의 세그먼트 or 데이터그램을송수신한 뒤 애플리케이션으로 전달함네트워크 계층에서는 세그먼트 or 데이터그램을 중간 라우터를 거쳐 최종 목적지로 전송함 포워딩의 개념포워딩: 라우터의 입력 인터페이스로 들어온 IP패킷을 목적지 주소에 맞는 출력 ..
[운영체제] 스레드 동기화, 상호배체, 임계구역
·
Computer Science/OperatingSystem
스레드 동기화의 필요성두 스레드(또는 프로세스)가 동시에 공유 데이터를 접근하는 경우-> 두 스레드가 동시에 공유 데이터를 읽기만 하는 경우 : 문제 없음-> 한 스레드는 갱신하고 다른 스레드는 읽기만 하는 경우 -> 읽고 갱신하는 순서에 따라 각 스레드가 접근하는 값이 달라질 수 있지만 공유 데이터의 훼손은 없음-> 두 스레드가 동시에 공유 데이터를 읽어 갱신하는 경우: 공유 데이터 훼손 발생위 경우가 스레드가 공유 데이터를 읽어 데이터의 훼손이 발생하게 된다. 즉 동기화란 스레드가 공유 데이터로 접근할 때 공유 데이터의 자원 훼손을 막는 것을 의미한다.(스레드 동기화(thread synchronization): 다수의 스레드가 공유 데이터를 동시에 접근할 때 공유 데이터가 훼손되지 않게 스레드의 실행..
[운영체제] 프로세스 개요
·
Computer Science/OperatingSystem
이번에는 프로세스의 관리에 대해서 알아보도록 하겠습니다.우선 프로세스에 대해서 알아보도록 하겠습니다. 프로세스란?프로세스의 정의는 다음과 같습니다.수행 중인 프로그램: 프로세스는 메모리에 적재되어 실행되고 있는 프로그램입니다.컴퓨터 상에서 수행 중인 프로그램의 인스턴스: 프로세스는 프로그램의 실행 인스턴스로, 동일한 프로그램이 여러 번 실행될 경우 각각의 실행 인스턴스가 독립적인 프로세스가 됩니다.처리기에 할당되어 수행될 수 있는 개체: 프로세스는 CPU에서 실행될 수 있는 단위이며, 운영 체제는 프로세스에게 CPU 시간을 할당하여 실행합니다.단일 순차 수행 스레드, 현재 상태, 연계된 자원 등에 의해 특징지어지는 활동 단위: 프로세스는 하나의 실행 흐름(스레드)을 가지며, 현재 상태(실행 중, 대기 중..
[운영체제] 컴퓨터 하드웨어
·
Computer Science/OperatingSystem
이번에는 컴퓨터 시스템과 하드웨어의 밀접한 관계에 대해서 알아보도록 하겠습니다. 컴퓨터 시스템을 구성하는 계층위 사진은 컴퓨터 시스템을 구성하는 계층의 사진입니다. 응용소프트웨어, 운영체제, 컴퓨터 하드웨어로 구성되어 있습니다. 그리고 응용소프트웨어 -> 컴퓨터 하드웨어로 바로 접근하는 행위는 하지 못하며 반드시 각 계층을 지나야 접근할 수 있습니다.(이 내용은 나중에 다시 설명하도록 하겠습니다) 하드웨어 구성기본적인 하드웨어의 구성은 다음과 같습니다. CPU(Central Processing Unit)기계 명령어를 수행하고, 다른 수행 장치들을 제어합니다.제어 장치(Control Unit)역할: 제어 장치는 CPU의 "두뇌" 역할을 합니다. 기계 명령어(프로그램)를 하나씩 읽어들여 그 명령어가 무엇을 ..
[운영체제] CPU(중앙처리장치)의 여러 구성 요소
·
Computer Science/OperatingSystem
이번에는 CPU의 여러 구성요소에 대해 설명하도록 하겠습니다.CPU는 크게 PC, ALU, AC, MAR, 제어 유니트, IR, MBR의 요소를 가지고 있습니다. 1. PC (Program Counter) - 프로그램 카운터역할: 현재 실행 중인 명령어의 주소를 가리키는 레지스터입니다.다음에 실행될 명령어의 메모리 주소를 저장합니다.명령어를 읽을 때마다 증가하며, 프로그램 흐름을 제어합니다. 2. ALU (Arithmetic Logic Unit) - 산술 논리 장치역할: 산술 연산(덧셈, 뺄셈 등)과 논리 연산(AND, OR, XOR 등)을 수행하는 장치입니다.CPU의 연산 능력을 담당하며, 데이터를 처리하는 가장 핵심적인 장치입니다. 3. AC (Accumulator) - 누산기역할: ALU에서 연산된..
[운영체제] 운영체제(Operating System)란?
·
Computer Science/OperatingSystem
운영체제(Operating System)란?컴퓨터 응용 소프트웨어와 하드웨어를 안전하게 인터페이스 하기 위해 필요한 서비스의 모음입니다.운영체제는 컴퓨터의 모든 자원을 효율적으로 관리하는 시스템으로, 하드웨어, 소프트웨어, 데이터 자원에 대한 독점적인 권한을 소유하며, 자원 할당, 공유, 액세스 등을 제어합니다.하드웨어 자원: CPU, 메모리, 키보드, 마우스, 디스플레이, 하드디스크, 프린터 등소프트웨어 자원: 응용 프로그램데이터 자원: 신호, 세마포어, 뮤텍스, 파일, 데이터베이스 등운영체제는 컴퓨터 시스템 관리자 역할을 하며, 프로그램 관리, 메모리 관리, 파일과 디스크 장치 관리, 입출력 장치 관리, 사용자 계정 관리를 수행합니다. 운영체제는 소프트웨어(software)입니다.GUI를 비롯한 도구..
[컴퓨터 네트워크] 프로토콜이란 무엇인가?
·
Computer Science/ComputerNetwork
프로토콜이란?프로토콜(Protocol)은 컴퓨터 네트워크에서 데이터 통신을 위해 정의된 규칙과 절차의 집합을 말합니다. 네트워크 상의 장치들이 서로 데이터를 주고받기 위해 따라야 하는 표준화된 규칙입니다. 프로토콜은 어떤 데이터가 전송될지, 어떻게 전송될지, 오류가 발생했을 때 어떻게 처리할지 등을 규정하여, 서로 다른 시스템들이 문제없이 통신할 수 있도록 해줍니다. 그리고 프로토콜은 네트워크 상에서 서로 다른 기기들이 원활하게 통신할 수 있도록 만들어주는 규칙의 집합입니다. 이러한 규칙 덕분에 네트워크는 복잡한 환경에서도 데이터를 안정적으로 주고받을 수 있습니다. 주요 프로토콜의 역할데이터 포맷 지정: 프로토콜은 데이터가 어떤 형태로 포맷되어야 하는지 정의합니다. 예를 들어, 이메일을 전송할 때 사용하..
[컴퓨터 네트워크] 헤더란 무엇인가?
·
Computer Science/ComputerNetwork
헤더란 무엇인가?헤더(Header)는 네트워크에서 전송되는 각 데이터 패킷의 앞부분에 위치한 정보 블록입니다. 이 헤더는 패킷이 전달되는 동안 경로를 따라 올바르게 처리될 수 있도록 도와주는 다양한 메타데이터를 포함합니다. 소스에서 데이터가 전송될 때, 전송 계층이나 네트워크 계층에서 해당 데이터 앞부분에 특정 정보가 추가되어 패킷을 구성하게 됩니다. 소스 헤더의 주요 역할1) 주소 지정헤더에는 패킷이 어디서 왔고, 어디로 가야 하는지에 대한 정보가 포함됩니다. 이는 소스 IP 주소와 목적지 IP 주소를 통해 이루어집니다. 이 정보는 패킷이 네트워크 상에서 적절한 경로를 따라 이동하도록 도와줍니다. 예를 들어, 인터넷에서 패킷은 여러 라우터를 거쳐 목적지에 도달합니다. 이때, 라우터는 헤더에 있는 주소 ..
피사노 주기(Pisano Period)
·
Computer Science/Math
피사노 주기란 피보나치 수열을 어떤 수 m으로 나눈 나머지들의 수열이 반복되는 주기를 말합니다. 피보나치 수열의 각 항을 m으로 나눈 나머지들을 구하다 보면, 이 나머지들이 주기적으로 반복되는 패턴을 갖게 됩니다. 이 패턴이 반복되기 시작하는 주기의 길이를 피사노 주기라고 합니다. 예시예를 들어, 피보나치 수열을 3으로 나눈 나머지의 피사노 주기를 살펴보겠습니다:피보나치 수열: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...피보나치 수열을 3으로 나눈 나머지: 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, ...여기서 나머지의 수열을 보면 0, 1, 1, 2, 0, 2, 2, 1 이후부터 다시 0, 1, 1, 2, 0, 2, 2, 1이 반복되기 시작합니다. 이 주기는..
김치바보
'Computer Science' 카테고리의 글 목록