[운영체제] 동기화 문제(synchronization problem)
·
CS/운영체제
다중 프로세스나다중 스레드 환경에서 공유 자원에 접근할 때 발생하는 문제입니다. 동기화 문제는 여러 프로세스나 스레드가 공유 자원에 동시에 접근하려고 할 때 발생합니다.동기화 문제의 주요 원인경쟁 상태(Race Condition): 두 개 이상의 스레드가 동시에 공유 자원에 접근해 작업을 수행할 때 발생합니다. 어떤 스레드가 먼저 작업을 완료하느냐에 따라 최종 결과가 달라질 수 있습니다.원자성(Atomicity) 부족: 특정 작업이 분리된 여러 단계로 이루어져 있고, 이 작업을 중간에 다른 프로세스가 간섭할 경우 예상치 못한 결과가 발생합니다.데이터 불일치: 여러 스레드가 공유 자원에 접근하여 데이터를 변경할 때, 동기화되지 않으면 최종 결과가 일관되지 않거나 데이터 무결성이 깨질 수 있습니다.동기화 문..
[운영체제] 프로세스(Process)와 스레드(Thread) 차이 (멀티 프로세스, 멀티 스레드)
·
CS/운영체제
프로세스(Process)개념: 프로세스는 실행 중인 프로그램의 인스턴스로, 독립적인 메모리 공간(코드, 데이터, 힙, 스택)을 가지고 실행됩니다.특징:독립성: 각 프로세스는 고유의 메모리 영역을 사용하며, 다른 프로세스와 메모리를 공유하지 않기 때문에 독립적으로 실행됩니다.메모리 소비: 프로세스는 고유의 메모리를 할당받기 때문에 상대적으로 메모리 소모가 큽니다.안정성: 하나의 프로세스가 실패해도 다른 프로세스에 영향을 미치지 않으므로 안정성이 높습니다.스레드(Thread)개념: 스레드는 프로세스 내에서 실행되는 작업의 실행 단위로, 프로세스 내의 메모리 공간을 공유하면서 여러 작업을 동시에 수행합니다.특징:메모리 공유: 같은 프로세스 내 스레드는 메모리(코드, 데이터, 힙)를 공유하지만, 각 스레드는 개..
[운영체제] 컴퓨터 시스템의 구조(주기억장치, 보조기억장치)
·
CS/운영체제
1. 주기억장치 (Primary Storage)개념: 주기억장치는 CPU가 직접 접근하여 데이터를 읽고 쓸 수 있는 고속 메모리로, 현재 실행 중인 프로그램과 데이터를 저장합니다. 종류:RAM (Random Access Memory): 실행 중인 프로그램과 데이터를 저장하며, CPU가 명령어를 빠르게 처리할 수 있도록 지원합니다.ROM (Read-Only Memory): 전원을 꺼도 데이터가 유지되는 비휘발성 메모리로, 컴퓨터의 기본 부팅 프로그램(BIOS)이나 시스템 초기화 정보를 저장합니다.특징:속도: 매우 빠르지만 용량이 상대적으로 작고, 비용이 높습니다.휘발성: 전원이 끊어지면 데이터가 소멸합니다.용도: 현재 실행 중인 프로그램과 즉각적인 처리가 필요한 데이터를 저장합니다.2. 보조기억장치 (Se..
[운영체제] 운영체제란?
·
CS/운영체제
컴퓨터 시스템의 하드웨어와 소프트웨어 자원을 관리하고, 사용자가 컴퓨터를 효율적으로 사용할 수 있도록 지원하는 중앙 소프트웨어운영체제의 목적자원 관리: CPU, 메모리, 저장 장치 등 하드웨어 자원을 효율적으로 관리하여 여러 프로그램이 원활히 실행되도록 합니다.사용자 인터페이스 제공: 사용자와 컴퓨터 간의 상호작용을 쉽게 할 수 있도록 인터페이스(명령 줄 또는 GUI)를 제공합니다.프로그램 실행 환경 제공: 애플리케이션이 운영체제 위에서 실행되며, 기본적인 시스템 서비스와 자원 관리를 제공합니다.운영체제의 역할프로세스 관리: 프로세스 생성, 종료, CPU 할당 등을 관리하여 여러 프로세스가 효율적으로 실행될 수 있도록 합니다.메모리 관리: 시스템 메모리를 효율적으로 할당하고 해제하며, 각 프로세스가 필요..
[네트워크] 공인 IP와 사설 IP
·
CS/네트워크
공인 IP (Public IP)개념: 공인 IP는 인터넷에서 고유하게 할당되는 IP 주소로, 전 세계적으로 유일합니다. 인터넷 서비스 제공자(ISP)가 할당하며, 인터넷에 연결된 모든 기기는 고유한 공인 IP를 통해 서로 통신할 수 있습니다.할당 방식: 공인 IP는 ISP 또는 도메인 네임 시스템(DNS) 관리 기관에서 할당합니다.용도: 외부 인터넷과의 통신에 사용되며, 인터넷에 직접 연결되는 웹 서버, 이메일 서버, 네트워크 장비 등에 할당됩니다.보안: 공인 IP는 외부에 노출되므로, 방화벽 등의 보안 장치로 보호하는 것이 중요합니다.예시203.0.113.1, 198.51.100.5 같은 주소는 공인 IP의 예시입니다.사설 IP (Private IP)개념: 사설 IP는 내부 네트워크(로컬 네트워크)에서..
[네트워크] Stateful vs Stateless
·
CS/네트워크
Stateful(상태 유지)개념: Stateful은 서버가 클라이언트의 상태 정보를 지속적으로 유지하는 방식입니다. 클라이언트와 서버 간의 요청이 연속적인 상호작용을 통해 이루어지며, 서버는 이전 요청에 대한 정보를 기억합니다.특징: 각 요청에 대한 상태 정보를 저장하고, 클라이언트와의 상태가 유지된 상태에서 다음 요청을 처리합니다. 예를 들어, 사용자가 로그인한 상태를 유지하는 것이 Stateful 방식입니다.장점: 상태를 기억하기 때문에 지속적인 트랜잭션 처리가 필요한 작업에 유리합니다.단점: 서버가 각 클라이언트의 상태를 관리해야 하므로 서버 자원 소모가 증가하고, 확장성에 제약이 있습니다.예시FTP: 파일을 전송하는 동안 연결 상태를 유지합니다.온라인 게임: 사용자 세션을 유지하며, 진행 상황을 ..
[네트워크] 블로킹 vs 논블로킹(Blocking vs Non-blocking)
·
CS/네트워크
블로킹(Blocking)개념: 블로킹 방식은 작업이 완료될 때까지 해당 작업을 기다리는 방식입니다. 특정 I/O 작업이 완료되기 전까지는 프로그램이 다른 작업을 진행하지 못하고 대기합니다.특징: 하나의 작업이 끝날 때까지 기다리므로, 코드가 순차적으로 실행됩니다. 이 방식은 단순하지만, 작업이 오래 걸릴 경우 전체 프로세스가 느려질 수 있습니다.장점: 구현이 상대적으로 간단하고 직관적입니다.단점: 작업이 지연되면 CPU가 대기 상태로 전환되어 효율성이 떨어집니다. 특히 대규모 요청 처리에 부적합합니다.논블로킹(Non-blocking)개념: 논블로킹 방식은 작업을 요청한 후 결과를 기다리지 않고, 다른 작업을 진행하는 방식입니다. 요청된 작업이 끝나면 결과를 비동기적으로 받아옵니다.특징: 작업이 완료될 때..
[네트워크] 쿠키와 세션 차이(Cookie & Session)
·
CS/네트워크
쿠키(Cookie)개념: 쿠키는 클라이언트(사용자의 브라우저)에 저장되는 작은 텍스트 파일입니다.저장 위치: 클라이언트(브라우저) 측에 저장됩니다.생명 주기: 만료 날짜를 설정할 수 있어 일정 기간 동안 유지됩니다. 영구 쿠키(만료 날짜가 설정됨)와 세션 쿠키(브라우저 종료 시 삭제)로 나뉩니다.보안: 클라이언트에 저장되므로 보안에 취약할 수 있으며, 중요한 정보를 저장하기에는 위험합니다. HTTPS로 전송하거나, HttpOnly, Secure 옵션을 설정하여 보안을 강화할 수 있습니다.용도: 자동 로그인, 사용자 설정 저장, 방문자 추적 등 상태 정보를 간단히 저장할 때 사용됩니다.쿠키 예시Set-Cookie: userID=1234; Expires=Wed, 21 Oct 2025 07:28:00 GMT;..
[네트워크] DNS(Domain Name System)
·
CS/네트워크
사용자가 기억하기 쉬운 도메인 이름(예:www.example.com)을 입력하면 이를 **IP 주소(예: 192.0.2.1)**로 변환해주는 시스템DNS의 주요 역할도메인 이름을 IP 주소로 변환: 사용자가 브라우저에 입력한 도메인 이름을 해당 서버의 IP 주소로 변환하여 연결합니다.서버의 위치 은닉: 사용자가 직접 IP 주소를 입력할 필요가 없으므로 서버 위치가 은닉되어 보안성을 높입니다.서비스 연속성 보장: IP 주소가 변경되어도 도메인 이름은 동일하게 유지되기 때문에 서비스가 중단되지 않고 계속 제공될 수 있습니다.DNS의 동작 과정사용자 요청: 사용자가 브라우저에 도메인 이름을 입력합니다.캐싱 확인: 로컬 캐시 또는 웹 브라우저 캐시에서 IP 주소가 존재하는지 확인합니다. 있다면, 해당 IP 주소..
[네트워크] GET방식과 POST방식의 차이
·
CS/네트워크
1. GET 방식주요 특징: GET은 서버에 데이터를 요청하는 방식으로, 주로 조회나 검색과 같은 읽기 작업에 사용됩니다.데이터 전송 위치: URL의 쿼리 스트링(주소 뒤에 ?로 시작하는 부분)에 데이터를 포함시켜 전송합니다.데이터 크기 제한: URL 길이 제한 때문에 전송할 수 있는 데이터의 양이 제한됩니다 (주로 2048자 이내로 제한).보안성: 데이터가 URL에 노출되므로 민감한 정보를 포함하기에 적합하지 않습니다.캐싱 가능성: GET 요청은 캐시될 수 있으므로, 동일한 요청이 반복될 때 서버의 부담을 줄여줍니다.GET 요청 예시GET /search?q=example&sort=asc HTTP/1.1 여기서 q=example와 sort=asc는 서버로 전달되는 데이터입니다.2. POST 방식주요 특징..