응용 계층과 프로토콜
응용 계층은 사용자의 애플리케이션이 네트워크 서비스에 접근할 수 있도록 도와주는 인터페이스(Interface) 역할을 합니다. 추상화 : 네트워크 하드웨어나 라우팅의 복잡한 경로는 신경 쓰지 않습니다. 오직 도착한 데이터를 어떻게 해석(Parsing)하고 사용자 화면에 렌더링할 것인지에만 집중합니다. 클라이언트-서버 모델 : 대부분의 응용 ...
응용 계층은 사용자의 애플리케이션이 네트워크 서비스에 접근할 수 있도록 도와주는 인터페이스(Interface) 역할을 합니다. 추상화 : 네트워크 하드웨어나 라우팅의 복잡한 경로는 신경 쓰지 않습니다. 오직 도착한 데이터를 어떻게 해석(Parsing)하고 사용자 화면에 렌더링할 것인지에만 집중합니다. 클라이언트-서버 모델 : 대부분의 응용 ...
프로토콜(Protocol) 프로토콜은 서로 다른 시스템에 있는 두 개체(Entity)가 효율적이고 정확하게 통신하기 위해 합의한 ‘규칙과 약속의 집합’입니다. 두 서버가 통신할 때 가장 문제가 되는 것은 ‘데이터가 유실되는 것’보다 ‘서로 다른 상태(State)를 가지고 있다고 착각하는 것’ 입니다. 데이터를 보냈다고 생각하는데, 상대방은 받은 적이...
네트워크는 노드와 링크가 서로 연결되어 있는 구조를 말합니다. 이는 두 대 이상의 장치가 논리적, 물리적으로 연결되어 데이터를 주고 받을 수 있는 상태를 의미하며, 주로 데이터 공유, 컴퓨팅 자원(프린터, 스토리지 등) 공유, 분산 처리를 위해 사용합니다. 네트워크 설계는 항상 신뢰성(Reliability), 속도(Throughput/Latency),...
파일 시스템(File System) : 디스크의 추상화 디스크 드라이브(HDD/SSD)는 본질적으로 ‘블록(Block)’ 이라고 불리는 고정된 크기(512B, 4KB 등)의 데이터를 저장할 수 있는 거대한 1차원 배열(LBA, Logical Block Addressing)에 불과합니다. 사용자가 “내 리포트.docx 파일이 1,234,567번 블록부터...
가상 메모리(Virtual Memory) 메모리 관리는 한정된 물리 메모리(RAM) 자원을 여러 프로세스가 효율적이고 안전하게 나눠 쓰도록 관리하는 기술입니다. 가상 메모리(Virtual Memory) 는 이 메모리 관리 기법의 정점으로, 현대 운영체제가 페이징(Paging) 및 세그먼테이션 기법을 기반으로 구현한 핵심 개념입니다. 가상 메모리의 핵...
메모리 관리의 기초 : 주소와 바인딩 모든 메모리 관리 기법의 근본적인 목표는, 한정된 물리 메모리(RAM) 를 여러 프로세스가 안전하고 효율적으로 나누어 쓰도록 하는 것입니다. 논리 주소 vs 물리 주소 논리 주소 (Logical Address) : 프로세스(프로그램)의 관점에서 바라보는 주소입니다. 각 프로세스는 자신만의 0번지부터 시작하는...
프로세스 동기화와 교착 상태 현대 운영체제는 선점형 스케줄링이나 멀티코어 환경에서 여러 실행 흐름(프로세스/스레드)을 ‘동시에(Concurrently)’ 혹은 ‘병렬로(Parallel)’ 실행시킵니다. 만약 이 실행 흐름들이 서로 독립적인 자원만 사용한다면 아무런 문제가 없겠지만, 이들이 공유 자원(Shared Resource)(전역 변수, 공유 파...
CPU 스케줄링 CPU 스케줄링은 단기 스케줄러(Short-term Scheduler) 가 Ready 큐에 있는 프로세스(혹은 커널 수준 스레드) 중에서 CPU를 할당받을 프로세스를 선택하는 정책(Policy) 및 알고리즘을 의미합니다. 현대 시분할(Time-Sharing) OS에서 스케줄링은 CPU가 쉴 틈 없이 일하게(Utilization 극대화...
프로세스 (Process) “실행 중인 프로그램(A program in execution)” 하드 디스크에 저장된 ‘my_program.exe’ 파일은 코드와 데이터의 묶음, 즉 정적인(Static) 존재인 ‘프로그램’ 입니다. 사용자가 이 프로그램을 더블 클릭하면, 운영체제는 이 파일을 메모리로 가져와 CPU를 할당해줍니다. 이 순간, 프로그램은 ...
운영체제(Operating Sytstem, OS) 컴퓨터 하드웨어와 사용자(또는 응용 프로그램) 사이의 인터페이스 역할을 하는 핵심 시스템 소프트웨어입니다. OS의 가장 근본적이 두 가지 목적은 자원 관리자(Resource Manager) 로서 CPU, 메모리, 저장 장치 같은 하드웨어 자원을 효율적이고 공정하게 배분 및 관리하고, 추상화 계층(Abs...