`프로세스` 컴퓨터에서 실행되고 있는 프로그램`작업` CPU 스케줄링의 대상→ 둘이 거의 같은 의미로 사용 `스레드` 프로세스 내 작업의 흐름📌 3.3.1 프로세스와 컴파일 과정`프로세스` 프로그램으로부터 인스턴스화된 것 `프로그램` 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일 `프로그램의 컴파일 과정``전처리` 소스 코드의 주석을 제거하고 헤더 파일을 병합하여 치환`컴파일러` 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환`어셈블러` 어셈블리어는 obj 코드로 변환, 운영체제마다 확장자가 다름`링커` 프로그램 내 라이브러리, 다른 파일들과 obj 코드를 결합하여 실행 파일을 만듦 라이브러리 - 정적/동적`정적 라이브러리` 빌드 시 라이브러리가 ..
취준/CS 정리
📌 3.2.1 메모리 계층- `레지스터`, `캐시`, `메모리`, `저장장치`로 구성 - `RAM`은 `하드디스크`로부터 `데이터를 복사해서 임시 저장하고 필요 시마다 CPU에 빠르게 전달`- 계층 위로 올라갈수록 가격이 비싸지며 용량은 작아지고 속도는 빨라짐- 이러한 경제성 때문에 계층을 두어 관리 캐시- `데이터를 미리 복사`해 놓는 임시 저장소- 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄임 - 메모리와 CPU 사이의 속도 차이가 너무 커 레지스터 계층을 통해 해결 지역성의 원리- 자주 사용하는 데이터를 기반으로 캐시 설정 필요- 자주 사용하는 근거 - 지역성 !- 시간 지역성 / 공간 지역성 `시간 지역성` 최근 사용한 데이터에 다시 접근하려는 특성`공간 지역성` 최근 접근한..
📌 3.1.1 운영체제의 역할과 구조운영체제의 역할1) CPU 스케줄링과 프로세스 관리: CPU 소유권 할당 및 프로세스 관리2) 메모리 관리: 메모리 할당3) 디스크 파일 관리4) I/O 디바이스 관리: 마우스, 키보드와 컴퓨터 간 주고받는 데이터 관리-> 관리를 열심히 하는군 ㅋㅋ 운영체제의 구조 유저 프로그램이 맨 위, 가장 밑에 하드웨어여기서 `GUI`, `시스템콜`, `커널`, `드라이버`가 운영체제(리눅스는 GUI 없이 CUI만 있음)`드라이버`: 하드웨어를 제어하기 위한 소프트웨어 시스템콜- 운영체제가 `커널에 접근`하기 위한 인터페이스`커널`: 하드웨어와 소프트웨어 간의 상호작용을 관리하고 시스템 `자원`을 효율적으로 분배- 유저 프로그램이 `운영체제의 서비스를 받기 위해 커널 함수 호출..
`HTTP`: 전송 계층 위에 있는 애플리케이션 계층으로서 웹 서비스 통신에 사용 📌 2.5.1 HTTP/1.0- 한 연결당 하나의 요청을 처리-> 파일을 가져올때마다 3-way handshake를 열어야 하기에 RTT 증가 (Round Trip Time)(`RTT`: 패킷이 목적지에 도달한 뒤 다시 출발지로 돌아오기까지 걸리는 시간, `패킷 왕복 시간`) RTT 증가를 해결하기 위한 방법- 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 사용1) 이미지 스플리팅- `이미지가 합쳐진 하나의 이미지`를 다운로드 받고, 이를 기반으로 이미지 표기2) 코드 압축- `코드를 압축`하여 개행 문자, 빈칸을 없애 코드의 크기를 최소화3) 이미지 Base64 인코딩- 이미지 파일을 `64진법으로 이루어진 ..
📌 2.4.1 ARP컴퓨터 간 통신은 정확히 IP 주소에서 `ARP`를 통해 `MAC 주소`를 찾아 MAC 주소 기반으로 통신함 `ARP`: IP 주소로부터 MAC 주소를 구하는 프로토콜`RARP`: MAC 주소를 IP 주소로 변환하는 프로토콜 ARP 주소를 찾는 과정- 장치 A가 ARP 브로드캐스를 보내 특정 IP 주소에 해당하는 MAC 주소를 찾음 (모든 호스트에 전송)- 해당 주소에 맞는 장치 B가 ARP 유니캐스트를 통해 MAC 주소를 반환 (1:1로 전송)-> IP 주소에 맞는 MAC 주소를 찾음 📌 2.4.2 홉바이홉 통신`홉바이홉 통신`: IP 주소를 통해 통신하는 과정각각의 라우터에 있는 라우팅 테이블의 IP를 기반으로 패킷을 홉바이홉으로 전달 `라우팅 테이블`- 송신지에서 수신지까지 ..
📌 2.3.1 네트워크 기기의 처리 범위 - 계층별로 처리 범위를 나눌 수 있음- 상위 계층을 처리하는 기기는 하위 계층 처리 가능, 그 반대는 불가능- L7 스위치는 애플리케이션 계층을 처리하는데 그 밑의 모든 계층의 프로토콜을 처리할 수 있음 📌 2.3.2 애플리케이션 계층을 처리하는 기기💡 L7 스위치 (로드밸런서)- 여러 장비를 연결하고 데이터 통신을 중재- 목적지가 연결된 포트로만 데이터 전송- 서버의 부하 분산- 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할 수행 (로드밸런서)- 시스템이 처리할 수 있는 트래픽 증가가 목표 - 정기적으로 헬스 체크하여 장애 발생 서버 트래픽 분산 대상에서 제외 L4 스위치와 L7 스위치 차이 - L4 스위치도 로드밸런서 - 인터넷 계층을..
2.2 TCP/IP 4계층 모델인터넷 프로토콜 스위트 - 프로토콜의 집합- 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명 💡 TCP/IP (Transmission Control Protocol / Internet Protocol) 4계층- 네트워크에서 사용되는 통신 프로토콜의 집합- 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성 📌 2.2.1 계층 구조OSI 계층- TCP/IP 계층과 달리 애플리케이션 계층을 세 개로 쪼갬- 링크 계층을 데이터 링크 계층, 물리 계층으로 나눠 표현- 인터넷 계층 = 네트워크 계층 → 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계됨 💡 애플리케이션 계층 (Application layer)- FTP, HTTP,..
📌 2.1 네트워크의 기초네트워크란?노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합노드: 서버, 라우터, 스위치 등의 네트워크 장치링크: 유선 또는 무선 💡 2.1.1 처리량과 지연 시간좋은 네트워크: 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 좋은 보안을 갖춘 네트워크 처리량: 링크 내에서 성공적으로 전달된 데이터의 양보통 처리한 트래픽의 양을 말함 단위는 bps를 사용 (초당 전송되는 비트 수)처리량은 트래픽, 대역폭, 하드웨어 스펙에 영향을 받음대역폭: 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 지연 시간: 요청이 처리되는 시간, 메시지가 두 장치 사이를 왕복하는 데 걸린 시간지연 시간은 매체 타입, 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받음 ..