프로세스와 스레드
·
Camp/Standard
소프트웨어 개발을 하다 보면 프로세스, 스레드, 메모리 영역, 컨텍스트 스위칭, 레이스 컨디션, 세마포어, 뮤텍스, 그리고 데드락과 같은 개념들을 접하게 된다. 1. 프로세스와 스레드프로세스(Process)정의: 프로세스는 실행 중인 프로그램의 인스턴스를 의미한다.운영 체제에서 프로그램이 실행되면 해당 프로그램에 대한 프로세스가 생성된다.특징:독립적인 메모리 공간: 프로세스는 고유의 메모리 공간(코드, 데이터, 힙, 스택)을 가지게 된다.자원 할당의 단위: 운영 체제는 프로세스 단위로 메모리, 파일 디스크립터 등의 자원을 할당한다.프로세스 간 통신(IPC): 프로세스들은 서로 독립적이므로 통신하기 위해서는 특별한 메커니즘(파이프, 소켓, 공유 메모리 등)이 필요하게 된다. 스레드(Thread)정의: 스레..
컴퓨터에서의 CPU란?
·
Camp/Standard
컴퓨터를 구성하는 모든 부품이 다 중요하지만, CPU만큼 중요한 부품은 없다 해도 과언이 아니다.실제로 모든 작업을 처리하고, 시스템의 스펙에 가장 큰 영향을 끼치는 하드웨어다. CPU란 무엇인가?CPU(Central Processing Unit) 컴퓨터 시스템에 있어 핵심 처리 장치로,프로그램에서 처리해야 하는 명령을 해석하고 실행하는 역할을 담당한다.이는 프로세서라고도 불리며, 인간의 두뇌와 같은 역할을 한다.  주요 구성 요소CPU의 구성요소는 위 이미지와 같이 크게 3개의 부분으로 나눌 수 있다. 1. 산술 논리 장치(ALU, Arithmetic Logic Unit)실제로 연산을 담당하는 부분이다.산술 연산(사칙 연산)과 논리 연산(AND, OR, NOT 등)을 수행한다.프로그램 로직의 실질적인 ..
컴퓨터에서의 메모리란?
·
Camp/Standard
컴퓨터에서의 메모리(Memory)는 데이터를 저장하기 위한 하드웨어 장치이다.인간도 중요한 행위를 위해 기억이 필요하듯이 컴퓨터도 데이터들을 기억할 필요가 있다. 메모리의 계층 구조메모리는 속도, 용량, 비용 등의 다양한 팩터에 의해 계층적으로 구성되어 있다.빠르고 용량이 크다는 두 마리 토끼를 모두 잡을 수 없기 때문에 특성에 따라 계층으로 구분된 것이다.  1. 레지스터 (Register)CPU 내부에 위치한 가장 빠른 메모리.연산에 직접 사용되는 데이터와 명령어들이 저장된다.용량은 매우 작으나, 속도는 가장 빠르다. 2. 캐시 (Cache)CPU와 주기억장치(보통 RAM) 사이에 위치한 메모리.주기억장치와 레지스터 간의 속도 차이가 매우 크기 때문에, 그 중간의 스펙을 가지는 메모리를 둔 것.L1,..
[OSI 7계층] 응용 계층
·
Camp/Standard
응용 계층(Application Layer)은 7 계층 모델에서 7번째 계층에 해당하며,TCP/IP 모델에서는 응용 계층이 세션 / 표현계층의 역할까지 포함하게 된다.이는 최상위 계층으로 사용자와 데이터를 주고받는 기능을 제공하게 된다.HTTP나 메일 교환을 생각해 보자. 그게 7 계층에서 제공하는 기는 중 일부이다.  주요 프로토콜1. HTTP/S (HyperText Trasfer Protocol / Secure)어쩌면 가장 많이 들어봤을 프로토콜이기도 하다.웹페이지 주소가 저걸로 시작하기에 일반 사용자와 가장 친숙한 프로토콜이라 볼 수 있겠다. 무상태 프로토콜각 요청과 응답이 독립적으로 처리된다. 상태를 유지하지 않기 때문에 Stateless Protocol이라고 부른다.요청/응답 모델클라이언트가 요..
[OSI 7계층] 전송 계층
·
Camp/Standard
전송 계층은 OSI 7 계층에서 4번째 계층에 해당하며,데이터 및 전송의 신뢰성, 흐름 제어, 오류 복구 등을 담당하는 계층이다. 개념전송 계층은 데이터의 신뢰성을 보장하면서, 두 호스트 간의 통신을 논리적으로 연결하는 역할을 한다.이 계층에선 주요 단위인 세그먼트(Segment) 단위로 데이터를 나누어 송수신 및 재조립하게 된다.이 과정에서 데이터의 흐름이 제어하고 오류를 복구하며, 데이터의 순서를 보장한다. 1. 세그멘테이션 (Segmentation)응용계층의 데이터를 세그먼트로 분할2. 오류 제어 (Error Control)통신 중 발생한 오류를 감지하고, 필요시 데이터를 재전송한다.3. 흐름 제어 (Flow Control)송수진자 간의 데이터 흐름을 제어한다.4. 신뢰성 보장데이터를 목적지에 정확..
[OSI 7계층] 네트워크 계층
·
Camp/Standard
네트워크 계층은 OSI 7 계층 중 3번째 계층으로,데이터를 목적지까지 효율적으로 전달하기 위한 라우팅을 담당하는 계층이라고 볼 수 있다.네트워크 계층에서 중요한 개념으로는 패킷, 라우팅, IP 등의 프로토콜이 있다. 주요 개념1. 패킷 (Packet)패킷은 네트워크 계층에서 사용되는 전송을 위한 데이터의 단위이다.각 패킷은 독립적이며, 데이터와 출발 및 도착지의 IP 주소가 포함된다.패킷이 전송되는 과정은 라우팅과 밀접한 관련이 있다.패킷의 구조에 대해선 잠시 뒤에 간단히 알아보자. 2. IP 주소 (Internet Protocol Address)IP 주소는 네트워크 상에서 장치를 구분하기 위한 고유한 주소이다.주소 체계론 일반적으로 사용되는 ``IPv4``가 있고 새로 등장한 ``IPv6``가 있다...
[OSI 7계층] 데이터 링크 계층
·
Camp/Standard
데이터 링크 계층은 물리 계층 바로 다음, 2번째에 위치한 계층이다.데이터 링크라는 말만 보면 데이터를 연결해 주는 기능을 하는 것처럼 보인다.그런데 뭘 정확히 연결한다는 것일까? 데이터 링크의 개념데이터 링크란, 네트워크 통신에서 하나의 데이터가 다른 장치로 전달되기 위해 세워진 연결을 뜻한다.네트워크 장비 간 데이터 전송의 신뢰성을 보장하고, 물리 계층과 네트워크 계층 사이의 연결을 관리하는 것이데이터 링크 계층의 역할이다. 연결이라는 말이 나왔다...!여러 시스템 간의 안정적이고 신뢰할 수 있는 데이터 링크를 보장해야 하니,단순히 데이터를 연결해 주는 기능을 한다고 생각해도 큰 줄기만 보자면 문제가 없을 것이다.  데이터 링크의 주요 요소프레이밍 (Framing)네트워크 계층에서 전달받은 데이터 그..
[OSI 7계층] 물리 계층
·
Camp/Standard
물리 계층(Layer 1)은 OSI 7 계층 중 가장 하위 단계의 계층이다.이름에서 알 수 있듯이 네트워크에서 실제 데이터의 전송이 이루어지는 부분이다.디지털 신호를 물리 매체를 통해 전송할 수 있는 형태로 변환하고,이를 통해 전송하는 모든 과정을 전담하는 계층이라고 할 수 있다.  물리 계층의 개념비트 전송물리 계층의 가장 기본적인 역할은 데이터를 비트 단위로 변환해 전송하는 것이다.데이터 링크 계층에서 받은 프레임을 물리 계층에서 비트 스트림으로 변환하고,각 매체에 맞는 형식으로 변환해 전송한다.수신 측에서는 이 변환 과정의 역순으로 동작해 데이터를 받게 된다. 전송 매체최하위 계층이라서 사용자와 거리가 꽤 멀고 낯설다고 느낄 수도 있다.하지만 물리 계층에 해당하는 전송 매체는 주변에서 쉽게 찾을 수..
OSI 7계층이란?
·
Camp/Standard
OSI 7 계층이란 무엇인가?개방형 시스템 상호 연결(OSI) 모델은 네트워크 통신을 7개의 계층으로 나눈 개념 모델이다.다양한 하드웨어와 소프트웨어가 장벽을 넘어 통신할 수 있게 하기 위해이를 지원하기 위한 표준이라고 볼 수 있다. 우리가 말이 통하지 않는 외국인과 대화를 시도할 때 기본적으로 영어를 사용하는 것과 같다.서로 문화나 언어가 달라도 영어라는 공용어가 있기에 통신할 수 있게 된다.  왜 중요한가?요즈음의 네트워크는 OSI 모델에 1:1 대응하지 못하는 경우가 많다.그럼에도 중요한 이유는 표준화와 시스템에 대한 이해에 매우 효과적이기 때문이다. OSI 모델은 국제적인 표준이다. 1:1 대응할 수 없다고 하더라도 아예 매치되지 않는 것은 아니다.그리고 계층을 나눠서 시스템을 들여다보면 각 부분..
서버와 클라이언트는 무엇인가?
·
Camp/Standard
먼저 각 단어의 의미부터 생각해 보자.밥집으로 비유하면 좋을 것 같다. 홀을 도는 사람은 서빙을 한다.손님을 주문을 한다.홀은 손님에게 주문을 하지 않는다.손님은 홀에게 밥을 만들어 주지 않는다. 이렇게 서버와 클라이언트의 기본적인 구조는 정의가 된 것이다.서버는 클라이언트의 주문을 받고 만들어서 주기만 한다.클라이언트는 서버에게 주문을 하고 받기만 한다.  1. 서버와 클라이언트서버서버란 네트워크 상에서 다른 컴퓨터(클라이언트)에게 서비스를 제공하는 컴퓨터 또는,그 컴퓨터에서 동작하는 프로그램을 말한다.클라이언트의 요청을 받으면 그에 맞는 응답을 제공하는 역할을 하게 된다. 주문을 받으면 주방에서 조리가 이루어진다.클라이언트의 주문이 들어오면 주방에서 뭔갈 만들어서 클라이언트에게 넘여주게 되니 주방은 ..