본문 바로가기

CS 기초22

IP 주소 127.0.0.1 의 의미 - 루프백(loopback) or 로컬호스트(localhost) 주소 네트워크에선 특수한 IP 주소로 127.0.0.1이라는 IP 주소가 있다. 한 번씩 봤을 법한 주소인데, 이는 루프백(loopback) 혹은 로컬호스트 주소(localhost)라고도 불린다. 네트워크 통신이란 인터넷 상에 존재하는 호스트와 서로 패킷을 주고 받는 것이다. 이때, 호스트 A에서 B로 패킷을 전달하고 싶다고 생각해 보자. 그러면 A의 네트워크 계층에서 B의 네트워크 계층으로 패킷을 전송해야 한다. 패킷엔 목적지(B)의 IP 주소가 담겨 있다. 이 정보를 통해 B의 네트워크 계층에 도달한다면, B의 네트워크 계층은 수신한 패킷을 상위 계층들로 전달하고, 각 상위 계층은 알아서 패킷을 분해하고 순수 데이터(페이로드)를 수신할 것이다. 그런데 만약 목적지 IP 주소를 127.0.0.1로 설정하게 .. 2020. 10. 6.
[OS] 스레드(Thread)와 스케줄링(Scheduling) 개인적으로 학습하는 내용이라 틀린 내용이 있을 수 있습니다. 참고 도서: 개념 이해를 위한 운영체제 [스레드란?] 스레드란 프로세스보다 조금 더 구체적인 개념으로, 하나의 프로세스 내에서 실행되는 하나 또는 여러개의 작업 단위라고 볼 수 있다. 스레드는 프로세스와 유사한 속성을 가지고 있으며 다음과 같이 정의될 수 있다. CPU 제어의 흐름 실행 단위 한 프로세스 내부에서 스케줄링이 가능한 개체 보통 하나의 프로세스 내에 기본적으로 하나의 스레드가 존재하며, 프로세스가 실행된다 함은 프로세스 내부의 스레드의 흐름을 의미한다. 이처럼 하나의 프로세스에 하나의 스레드만 허용하는 환경을 싱글 스레드 환경이라 하며, 싱글 스레드 환경에선 프로세스와 스레드를 크게 구분 짓지 않아도 된다. 하지만 요즘 대부분은 하.. 2020. 6. 7.
[OS] 프로세스(Process)에 관하여 알아보자 개인적으로 학습하는 내용이라 틀린 내용이 있을 수 있습니다. 참고 도서: 개념 이해를 위한 운영체제 [프로세스란?] 프로세스란 보통 실행 중인 프로그램으로 잘 알려져 있다. 하지만 경우에 따라 이 설명은 한계가 있을 수 있다. 운영체제에서 프로세스는 다음과 같이 다양한 개념으로 정의될 수 있다. 실행 중인 프로그램 CPU를 할당하는 대상 시스템 내부에서의 작업 단위 PCB에 존재하는 개체 위의 정의들을 이해하기 위해 프로세스의 다양한 속성들을 알아보자. [프로세스 상태] 프로세스는 우선 실행 중인 프로그램일 수도 있지만, 그렇지 않을 수도 있다. 프로세스는 기본적으로 프로그램이 메모리에 적재되어 있는 상태는 맞다. 이때부터, 프로그램은 프로세스로 분류되어 다음과 같이 세 가지 상태를 가질 수 있게 된다... 2020. 5. 31.
[OS] 운영체제 연습 문제 풀이 (1) 책 이름: 개념 이해를 위한 운영체제 (21세기사) [운영체제란 무엇인지 정의하라] 운영체제란 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공해주고, 시스템의 한정된 자원을 효율적으로 관리함으로써 보다 시스템을 경제적으로 이용할 수 있도록 해주는 소프트웨어이다. [컴퓨터 시스템의 동작원리를 중심으로 운영체제의 필요성을 설명하라] 컴퓨터 시스템은 메모리에 적재된 명령어 중 PC(Program Counter) 레지스터가 가리키는 명령어를 CPU가 실행함으로써 컴퓨터를 동작시킨다. 이를 위해선 보조 기억 장치에 저장되어 있는 응용 프로그램 파일을 찾아 메모리에 적재하고 PC 레지스터가 가리키는 값을 조작하는 등의 작업이 필요하다. 이러한 작업들을 운영 체제의 커널에서 대신해주며, 우리는 운영체.. 2020. 5. 25.
Winsock2 라이브러리를 이용하여 간단한 TCP/IP 서버와 클라이언트를 구현해보자 | C++ 참고 유튜브 MSDN tutorial MSDN Winsock2 header 멀티플레이어 게임 프로그래밍 네트워크에 대해 처음 접하거나 소켓을 모른다면 이 포스팅을 보고오는 것을 추천 [Winsock이란?] Winsock은 Windows Sockets API(WSA)라는 Windows API이다. 인터넷 네트워크 및 소켓과 관련된 함수들을 제공해준다. Winsock은 버전1과 버전2가 있으며 Winsock1에 여러 기능이 좀 더 추가된 것이 Winsock2라고 한다. 여기선 버전 2를 사용한다. [서버와 클라이언트의 기본 로직] 코드로 구현하기 전에 서버와 클라이언트의 각 로직을 알면 더 구현하기 쉽다. 참고로 UDP가 아닌 TCP/IP 프로토콜을 사용한다. 우선 서버측의 로직 먼저 살펴보자. 서버는 클라.. 2020. 5. 4.
네트워크 프로그래밍을 위한 TCP/IP와 OSI 7 layer 개인적으로 공부하는 내용이라 틀린 내용이 있을 수 있습니다. 참고 https://www.youtube.com/watch?v=laBzCcF1414&list=PLXvgR_grOs1BjBZiePPZMR1PmZybazxg6&index=2 https://www.joinc.co.kr/w/Site/Network_Programing/Documents/IntroTCPIP [TCP/IP란?] TCP/IP란 TCP와 IP라는 두 프로토콜을 함께 가리키는 말이다. TCP와 IP라는 개념을 이해하려면 먼저 프로토콜이 무엇인지 알아야 한다. 프로토콜(Protocol)이란 컴퓨터(호스트)와 같은 통신 장비들이 서로 메세지를 주고받기 위한 통신 규약이다. 이렇게만 말하면 개념이 너무 추상적이라 잘 와 닿지 않는다. 프로토콜은 인터페.. 2020. 4. 25.