🗂️ 메모리 관리
·
Computer Science/Operating System
운영체제의 가장 중요한 임무 중 하나가 바로 '메모리 관리'입니다. 컴퓨터의 한정된 '작업 공간'(메모리)을 최대한 쥐어짜서 알뜰하게 활용해야 하거든요.🪄 가상 메모리(virtual memory)메모리 관리 기술 중 하나예요. 컴퓨터에 실제 꽂혀있는 메모리(RAM) 크기와 상관없이, 마치 엄청나게 큰 메모리가 있는 것처럼 프로그램을 '속여서' 편하게 쓰게 해주는 기술입니다.이때 프로그램이 사용하는 '가짜 주소'를 가상 주소(logical address)라고 하고, 실제 메모리(RAM) 부품 위의 '진짜 주소'를 실제 주소(physical address)라고 불러요. 가상 주소는 MMU(메모리 관리 장치)라는 하드웨어가 진짜 주소로 '번역'해줍니다. 덕분에 프로그래머는 '실제 4GB 램의 1,234,56..
💾 메모리 계층
·
Computer Science/Operating System
컴퓨터의 '저장 공간'은 한 가지 종류가 아니라, 성능과 용도에 따라 여러 단계(계층)로 이루어져 있습니다. 이 계층 구조는 레지스터, 캐시, 메모리, 저장장치로 구성됩니다.레지스터 : CPU 칩 내부에 있는 아주 작은 '초고속 임시 보관함'입니다. 휘발성이고 속도가 가장 빠르지만, 용량은 가장 적습니다.캐시 : L1, L2 캐시 등을 말하며, CPU와 메모리 사이의 속도를 중재합니다. 휘발성이고 속도는 매우 빠르지만, 용량은 여전히 적습니다. (L3 캐시도 있습니다.)주기억장치 : 우리가 흔히 말하는 RAM(램)입니다. 휘발성이며 속도와 용량은 중간 정도입니다.보조기억장치 : HDD(하드디스크)나 SSD 같은 '저장 장치'입니다. 비휘발성(전원이 꺼져도 안 지워짐)이고 속도는 느리지만, 용량은 아주 큽..
🧱 컴퓨터의 요소
·
Computer Science/Operating System
컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등 여러 중요한 부품들로 조립되어 있습니다.🧠 CPU (Central Processing Unit)컴퓨터의 '두뇌'입니다. 산술논리연산장치(ALU), 제어장치(CU), 레지스터로 이루어져 있습니다. 하는 일은 메모리에 저장된 명령어를 가져와 해석하고 실행하는 것입니다. 관리자 역할을 하는 운영체제(커널)가 프로그램을 메모리에 올려 '작업(프로세스)'으로 만들어주면, CPU가 이 작업을 실제로 처리합니다. 중간중간 '인터럽트'라는 신호에 따라 하던 일을 잠시 멈추고 다른 일을 하기도 합니다.🛂 제어장치 (CU, Control Unit)CPU 안에서 '지휘자'나 '교통경찰' 역할을 하는 부품입니다. 컴퓨터의 다른 부품들(입출력장치 등..
🧑‍⚖️ 운영체제의 역할과 구조
·
Computer Science/Operating System
운영체제(OS, Operating System)는 우리가 컴퓨터를 편리하게 쓸 수 있게 도와주는 프로그램입니다. 컴퓨터의 한정된 부품(메모리, CPU 등)을 여러 프로그램이 싸우지 않고 효율적으로 나눠 쓸 수 있게 관리해줍니다. 운영체제와 비슷하지만, 나중에 다른 프로그램을 추가로 설치할 수 없는 내장형 소프트웨어를 펌웨어(firmware)라고 부릅니다. (예: TV, 냉장고 안의 프로그램)⚙️ 운영체제의 역할CPU 스케줄링과 프로세스 관리: 컴퓨터의 '뇌'인 CPU를 어떤 프로그램(프로세스)이 먼저 쓸지 순서를 정해주고, 프로그램이 시작하고 끝나는 것을 관리하며 필요한 자원을 나눠주고 회수합니다.메모리 관리: '작업대'인 메모리를 어떤 프로그램에 얼마나 나눠줄지 관리합니다.디스크 파일 관리: '서랍장'..
⚡️HTTP/3
·
Computer Science/Network
HTTP/3은 HTTP/1.1, HTTP/2와 함께 월드 와이드 웹(WWW)에서 정보를 교환하는 데 사용되는 HTTP의 세 번째 공식 버전입니다.가장 큰 차이점은 TCP 위에서 동작하던 HTTP/2와 달리, QUIC이라는 새로운 프로토콜 위에서 동작하며 UDP를 기반으로 한다는 점입니다.HTTP/2의 핵심 장점이었던 멀티플렉싱은 그대로 가져오면서, 초기 연결 속도를 획기적으로 줄인 것이 HTTP/3의 강력한 특징입니다.🚀 초기 연결 설정 시 지연 시간 감소QUIC은 TCP를 사용하지 않습니다. 덕분에 통신을 시작할 때 거쳐야 했던 번거로운 '3-way 핸드셰이크' 과정이 필요 없습니다.QUIC은 첫 연결에 단 1-RTT(딱 한 번만 왕복)만 소요됩니다. 클라이언트가 서버에 신호를 한 번 주고, 서버가 ..
🔒 HTTPS
·
Computer Science/Network
HTTP/2는 기본적으로 HTTPS 위에서 동작합니다. HTTPS란, 우리가 아는 HTTP가 SSL/TLS라는 보안 계층을 거치는 것을 말합니다. 이 보안 계층은 애플리케이션 계층과 전송 계층 사이에 끼어들어, 우리가 주고받는 모든 '통신을 암호화'합니다.🛡️ SSL/TLS인터넷 통신(전송 계층)을 위한 보안 규칙(프로토콜)입니다. 클라이언트와 서버가 데이터를 주고받을 때, 제3자가 메시지를 도청하거나 변조하지 못하도록 꽁꽁 잠가줍니다.SSL/TLS 덕분에, 공격자가 서버인 '척'하며 중간에서 사용자 정보를 가로채는 '인터셉터' 공격을 막을 수 있습니다.SSL/TLS는 '보안 세션'이라는 연결 통로를 기반으로 데이터를 암호화합니다. 이 보안 세션을 만들 때, '서로를 어떻게 믿을지(인증)', '어떤 자..
🚀 HTTP/2
·
Computer Science/Network
HTTP/2는 HTTP/1.x의 느린 속도를 개선하기 위해 등장한 새로운 버전입니다. 웹 서핑이 훨씬 쾌적해지도록 지연 시간(Latency)을 줄이고 응답 속도를 높였죠.이 빠른 속도의 비밀은 '멀티플렉싱', '헤더 압축', '서버 푸시'라는 3가지 핵심 기술에 있습니다.HTTP/1.x는 기본적으로 한 번에 하나씩 파일을 요청하고 받아야 했습니다. 인터넷 연결이 한 번 맺어져도, 웹페이지에 필요한 이미지, CSS, JS 파일 등 수많은 리소스를 처리하려면 요청한 순서대로 차례차례 기다려야 했죠. 리소스가 100개면 100번의 대기 시간이 생기는 셈입니다.📌 멀티플렉싱(Multiplexing)HTTP/1.x가 1차선 도로라면, HTTP/2는 8차선 고속도로입니다. 하나의 TCP 연결 위에서 여러 개의 '..
🏗️ HTTP/1.1
·
Computer Science/Network
HTTP/1.0에서 발전한 것이 바로 HTTP/1.1 입니다. 매번 TCP 연결을 하는 것이 아니라 한 번 TCP 초기화를 한 이후에 keep-alive 옵션을 통해 여러 개의 파일을 송수신할 수 있게 바뀌었습니다. 참고로 HTTP/1.0에서도 keep-alive가 있었지만 표준화가 되어 있지 않았고, HTTP/1.1부터 표준화가 되어 기본 옵션으로 설정되었습니다. 한 번 TCP 3-웨이 핸드셰이크가 발생하면 그다음부터 발생하지 않습니다. 하지만 문서 안에 포함된 다수의 리소스(이미지, 동영상, css 파일, js 파일)를 처리하려면 요청할 리소스 개수에 비례해서 대기 시간이 길어지는 단점이 있습니다.📌 HOL Blocking(Head Of Line Blocking)네트워크에서 같은 큐에 있는 패킷이 ..
🕰️ HTTP/1.0
·
Computer Science/Network
HTTP는 애플리케이션 계층으로 웹 서비스 통신에 사용됩니다. HTTP/1.0 부터 시작해서 발전을 거듭해 지금은 HTTP/3 입니다.HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT 증가를 불러왔습니다. 서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속 열어야 했기 때문에 RTT가 늘어나는 단점이 있었습니다.용어 설명: RTT:패킷이 목적지에 도달하고 다시 출발지로 돌아오기까지 걸리는 시간, 즉 패킷 왕복 시간⏱️ RTT의 증가를 해결하기 위한 방법매번 연결할 때마다 RTT가 증가하므로 서버 부담이 커지고 사용자 응답 시간이 길어졌습니다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 등을 사용하곤 했습니다.📌..
🧭 IP 주소
·
Computer Science/Network
🖥️ ARP(Address Resolution Protocol)컴퓨터끼리 통신할 때는 IP 주소만으로는 실제 목적지를 알 수 없기 때문에, ARP를 이용해 IP 주소에 맞는 MAC 주소를 찾아 통신합니다. 즉, ARP는 IP 주소와 MAC 주소를 연결해주는 다리 역할을 하는 프로토콜이에요.IP는 사람이 보기 쉬운 ‘가상 주소’, MAC 주소는 실제 장치에 부여된 ‘물리 주소’예요.그래서 ARP는 IP 주소 → MAC 주소로 바꿔주고, 반대로 RARP는 MAC 주소 → IP 주소로 변환합니다. 예를 들어, 장치 A가 “IP 주소 120.70.80.3은 누구야?”라는 ARP Request(브로드캐스트)를 보내면,해당 IP를 가진 장치 B가 자신의 MAC 주소를 알려주는 ARP Reply(유니캐스트)를 보내..