본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 이번 글에서는 LAN 간의 통신을 위해 사용하는 기술 중 가장 핵심적인 프로토콜인 IP(Internet Protocol)에 대해 알아보려고 한다. ✔️ IP의 목적과 특징IP의 목적은 크게 주소 지정과 단편화로 나뉜다. 1. 주소 지정주소 지정은 네트워크 간 통신 과정에서 호스트를 특정하는 것을 의미하며, IP 주소를 통해 이루어진다. 주소 지정을 위해 필요한 송신지와 수신지의 IP 주소는 IP 패킷 헤더에 포함된다.IP 주소는 총 4byte(32bit)의 크기로 구성되며, 숫자 당 0~255 범위의 10진수 4개로 표기된다. 각 10진수는 `.`으로 구분하는데, 이때 하나의 10진수를 옥텟이라고 ..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 네트워크 통신 모델에서 가장 하위 계층인 물리 계층과 데이터 링크 계층을 간단하게 정리하자면, 물리 계층: 통신 매체를 통해 비트 신호를 운반하는 계층 데이터 링크 계층: 같은 LAN에 속한 호스트끼리 정보를 주고받기 위한 계층이다. LAN 내의 호스트들이 올바르게 정보를 주고받을 수 있게 해주는 다양한 기술 중 하나인 이더넷에 대해 보자. ✔️ 이더넷이더넷(Ethernet)은 LAN에서 가장 널리 사용되는 통신 기술로, 여러 장치(컴퓨터, 공유기 등)를 하나의 네트워크로 연결하여 데이터를 주고받을 수 있게 한다. 이더넷은 통신 매체를 통해 신호를 송수신하는 방법, 데이터 링크 계층에서 주고받는 ..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 네트워크란?네트워크(Network)는 Net + Work의 합성어로, 그물처럼 서로 긴밀하게 연결되어 있는 것을 의미한다. IT에서 사용되는 컴퓨터 네트워크는 두 대 이상의 컴퓨터가 서로 연결되어 통신할 수 있는 것을 말한다. ✔️ 네트워크의 기본 구조 네트워크는 노드와 간선으로 이루어진 그래프의 형태이다. 네트워크 기기가 노드, 네트워크 기기 간 정보를 주고받는 통신 매체가 간선이다. 위 그림과 같이 네트워크 상에서 노드와 노드 사이의 연결 구조를 네트워크 토폴로지라고 하며, 아래 다섯 가지 유형이 있다. 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종으로 수신하는 노드를 호스트라고 하..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 논리 메모리와 물리 메모리 CPU가 프로세스를 처리할 때 보는 주소 값과 실제 메모리의 주소 값은 다르다. 프로세스가 보는 메모리 영역을 논리 메모리 영역이라 하고, 실제로 사용되는 메모리 영역을 물리 메모리 영역이라고 한다. 그리고 CPU가 프로세스를 실행할 때 보는 주소 값을 논리 주소, 메모리의 하드웨어 상 실제 주소를 물리 주소라고 한다. 논리 주소는 프로세스마다 0번지부터 시작하는 주소 체계이다. 따라서 물리 주소의 번지 수는 중복될 수 없지만, 논리 주소의 번지 수는 중복으로 존재할 수 있다. 이처럼 CPU가 프로세스를 실행할 때 사용하는 주소 값과 실제 하드웨어 상의 주소 값이 다르므로..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 한정적인 CPU 자원 내에서 모든 프로세스를 공평하게 실행하는 것은 OS의 주요 목적이다. 스케줄링의 목적 멀티 프로세스 환경에서 모든 프로세스를 공평하게 실행하기 위해 스케줄링 기법을 활용한다. schedule이라는 의미에 맞게, 어떠한 작업의 순서를 계획한다고 생각하면 된다. 스케줄링은 세부적으로 다음 5가지의 목적이 있다. 공평성 : 특정 프로세스가 실행되지 않는 경우가 없어야 한다. 효율성 : 자원을 효율적으로 사용해 자원이 사용되지 않는 시간이 없어야 한다. 안정성 : 높은 우선순위의 프로세스를 먼저 처리한다. 반응 시간 보장 : 프로세스가 오랜 시간 응답이 없으면 사용자는 시스템이 멈춘 ..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. ✔️ 임계 영역 프로세스 혹은 스레드가 공유하는 자원을 공유 자원이라고 한다. 만약 두 프로세스 A와 B가 각각 공유 메모리를 쓰고 읽는 작업을 한다고 할 때, A와 B가 실행되는 순서에 따라 다른 결과를 초래할 수 있다. B가 먼저 실행이 된다면 아직 쓰이지 않은 메모리를 읽으려 하기 때문에 문제가 발생할 수 있다. 이와 같이 접근 순서에 따라 다른 결과를 나타낼 수 있는 코드 구역을 임계 영역(critical section)이라고 한다. 이번에는 동시에 파일을 수정하는 스레드를 생각해보자. 초기 파일에 저장된 값이 'first'라 가정하고 스레드 A는 'thread A'를 파일에 추가하는 작..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 프로세스프로세스는 컴퓨터에서 실행 중인 프로그램을 의미한다. ✔️ 프로세스의 메모리 구조 컴퓨터의 메모리는 RAM, 레지스터와 같이 물리적인 컴퓨터의 구성요소이고, 지금 볼 프로세스의 메모리는 운영체제가 해당 프로세스에 할당한 논리 메모리 구조이다. 프로세스의 메모리 구조는 다음 그림과 같다. 커널 영역에는 프로세스 제어 블록 (PCB)이 저장되고, 사용자 영역에는 코드, 데이터, 힙, 스택 영역으로 나뉘어 저장된다. 코드 영역 코드 영역은 함수, 상수와 같은 기계어가 저장되는 공간으로, 텍스트 영역이라고도 한다.CPU가 읽고 실행할 명령어가 담겨 있기 때문에 읽기 전용 공간이다. 만약 쓰기가 ..
본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 운영체제란?운영체제(OS: Operating System)는 하드웨어 위에 설치되어, 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층이다. 또한, 컴퓨터 자원을 효율적으로 관리하기 위한 시스템으로, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 한다. 만약 운영체제가 컴퓨터에 탑재되어있지 않다면, 우리가 컴퓨터를 이용해서 사용하는 모든 기본적인 프로그램들을 사용할 수 없을 것이다. `ex. Excel` 대표적인 OS로는 윈도우, 맥OS, 리눅스, 유닉스가 있다. 운영체제의 구조 운영체제는 커널과 인터페이스로 구성되어 있다. 커널 커널은 운영체제의 핵심 요소로, 하드웨어의 ..