CPU 스케줄링 알고리즘은 여러 프로세스가 CPU를 공유할 때 어떤 프로세스에게 CPU를 우선 배정할지를 결정하는 방식이다. 각 방식은 시스템 목표(응답 시간, 대기 시간, 공정성 등)에 따라 장단점이 존재한다.1. FCFS (First Come First Served)FCFS는 많이 들어본 FIFO와 비슷한 개념이다.개념:도착 순서대로 프로세스에게 CPU를 할당큐에 먼저 들어온 순서대로 실행한다 (FIFO 방식)특징:구현이 가장 간단하다비선점형 방식 (Non-preemptive)단점:Convoy Effect(호송 효과) 발생 가능 → CPU를 오래 점유하는 프로세스가 먼저 오면, 뒤따르는 짧은 프로세스가 오래 기다려야 함2. SJF (Shortest Job First)개념:실행 시간이 가장 짧은 프로세..
프로세스와 스레드는 운영체제에서 작업을 관리하는 기본 단위로, 각각 다른 특성과 역할을 가지고 있다.프로세스(Process)프로세스는 컴퓨터에서 실행 중인 프로그램의 인스턴스다. 운영체제로부터 자원을 할당받은 작업의 단위로 정의되며, 각 프로세스는 독립적인 메모리 공간을 가지고 있고, 다른 프로세스와 메모리를 직접적으로 공유하지 않는다.프로세스의 특징:독립된 메모리 공간(Code, Data, Stack, Heap)을 할당받음다른 프로세스의 메모리에 직접 접근할 수 없음프로세스 간 통신(IPC)을 위해 파이프, 소켓, 공유 메모리 등의 방법이 필요함새로운 프로세스 생성 시 운영체제가 자원을 새로 할당하므로 오버헤드가 큼예시:크롬의 탭 하나하나가 독립된 프로세스로 실행되어, 하나의 탭이 오류를 일으켜도 전체..
TCP/IP 4 계층 구조는 오늘날 인터넷을 포함한 대부분의 네트워크 시스템에서 실제로 사용되는 표준 모델이다.이 모델은 OSI 7 계층보다 단순하지만, 각 계층이 담당하는 역할은 분명하며 프로토콜 기반으로 동작한다.OSI 7계층은 네트워크 통신을 표준화한 모델로, 통신 시스템을 7단계로 나누어 설명한 것이다. 하지만 OSI 모델이 실무적으로 이용하기에는 복잡한 까닥 에 실제 인터넷에서는 이를 단순화한 TCP/IP 4 계층이 사용된다.1 계층. 네트워크 인터페이스 계층 (Network Interface Layer)1. 역할네트워크 인터페이스 계층은 데이터를 실제 네트워크 매체를 통해 송수신하는 역할을 한다.이 계층은 물리 계층과 데이터 링크 계층의 기능을 모두 포함하며, 프레임 단위로 데이터를 처리한다...
Web Server (웹 서버)정의웹 서버는 클라이언트(보통 웹 브라우저)의 HTTP 요청을 받아, 응답을 반환하는 서버 프로그램이다. 정적인 HTML 파일을 제공하거나, 동적인 요청을 CGI나 WAS로 전달하기도 한다.주요 기능HTTP 요청 수신 (GET, POST 등)정적 리소스 제공 (HTML, CSS, 이미지 등)동적 요청을 외부 프로그램이나 백엔드로 전달 (예: CGI, PHP, Node.js)MIME 타입에 따라 적절한 Content-Type 헤더 설정대표적인 웹 서버Apache HTTP ServerNginxMicrosoft IISPython의 http.server (간단 테스트용)CGI (Common Gateway Interface)정의CGI는 웹 서버와 외부 애플리케이션(주로 백엔드 스크립..
Datagram Socket (SOCK_DGRAM)과 Stream Socket (SOCK_STREAM)은 소켓 통신에서 사용되는 두 가지 주요 타입이며, 각각 UDP와 TCP 프로토콜에 대응된다.1. Stream Socket (SOCK_STREAM)프로토콜: TCP (Transmission Control Protocol)연결방식: 연결지향적 (Connection-oriented)데이터 전송 방식: 연속적인 바이트 스트림으로 데이터 전송신뢰성: 패킷 손실 없음, 순서 보장, 흐름제어, 혼잡 제어 제공용도: 웹 브라우징(HTTP), 메일(SMTP), 파일 전송(FTP), SSH 등동작 흐름 (3-way handshake)클라이언트가 connect() 호출 → SYN서버가 accept() → SYN-ACK클라..
socket, bind, listen, accept, connect, close는 C 언어나 시스템 프로그래밍에서 TCP/IP 네트워크 통신을 구현하기 위해 사용하는 시스템 콜이다.이 함수들을 이용하면 클라이언트-서버 통신 모델을 직접 구현할 수 있다.1. 전체 흐름 요약서버 측 순서int sockfd = socket(...); // ① 소켓 생성bind(sockfd, ...); // ② IP/포트 지정listen(sockfd, ...); // ③ 연결 대기 상태 진입int connfd = accept(sockfd); // ④ 클라이언트 연결 수락// read()/write()로 데이터 송수신close(connfd); // ⑤ 연결 ..