728x90 전체 글376 CPU 핵심 개념 총정리: 커널 함수, 시스템 콜, 인터럽트와 CPU 이벤트 이해하기 1. CPU와 관련된 주요 개념 이해하기CPU는 컴퓨터의 중추적인 처리 장치로, 다양한 작업을 수행합니다. 이를 이해하기 위해 커널 함수, 사용자 레벨 함수, 시스템 콜, 인터럽트, CPU 이벤트 등을 살펴보겠습니다.2. 커널 함수와 사용자 레벨 함수커널 함수커널 함수는 운영 체제 커널에서 실행되는 함수로, 하드웨어와 직접 상호작용하거나 시스템 자원을 관리합니다.역할: 프로세스 관리, 메모리 관리, 파일 시스템 관리 등예시: schedule() 함수는 프로세스 스케줄링을 담당합니다.사용자 레벨 함수사용자 레벨 함수는 응용 프로그램에서 실행되는 함수로, 커널 함수를 직접 호출하지 않고 시스템 콜을 통해 간접적으로 접근합니다.예시: printf(), malloc()와 같은 C 라이브러리 함수가 이에 해당됩니.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 12. 6. 백준 20186번: 수 고르기 문제 풀이 문제 설명백준 20186번 "수 고르기" 문제는 주어진 수열에서 특정 개수의 수를 선택하여 최대 합을 구하는 문제입니다. 단, 선택된 숫자의 합에서 특정 공식을 활용한 감산값이 존재하므로, 이에 따라 최적화된 선택이 중요합니다.목차문제 요약 및 제약 조건풀이 아이디어코드 설명코드 분석최적화 방안1. 문제 요약 및 제약 조건입력:첫 줄: (N) (수열의 길이)와 (K) (선택할 숫자의 개수).둘째 줄: (N)개의 정수.출력:(K)개의 숫자를 선택해 얻을 수 있는 최대 합.감산 공식: 선택한 (K)개의 수의 합에서 (K \times (K-1) / 2)를 빼야 합니다.2. 풀이 아이디어그리디 알고리즘 활용:수열을 내림차순으로 정렬.가장 큰 수부터 (K)개를 선택해 합산.감산 처리:(1, 2, 3, \ldots.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 6. 커널의 내부 동작 완전 정복: 시스템 콜, 모드 전환, 태스크/스레드, 가상 메모리, VFS의 이해 1. 커널이란 무엇인가?커널은 운영체제의 핵심으로, 하드웨어 제어와 리소스 관리를 담당합니다. 주요 역할은 다음과 같습니다:프로세스 관리: 실행 중인 프로그램 제어.메모리 관리: 메모리 할당 및 해제.장치 관리: 하드웨어와의 상호작용.파일 시스템 관리: 데이터 저장 및 접근.2. 시스템 콜: 커널과 사용자 프로그램의 다리시스템 콜은 사용자 모드에서 실행 중인 프로그램이 커널 기능을 요청하는 메커니즘입니다.작동 원리사용자 프로그램이 특정 작업(예: 파일 읽기)을 요청.시스템 콜 인터럽트를 통해 커널로 진입.커널이 작업 수행 후 결과 반환.예시: 파일 읽기파이썬으로 파일을 읽는 예:with open("example.txt", "r") as file: data = file.read() print(d.. 프로그래밍공부(Programming Study)/운영체제(OS) 2024. 12. 6. 시스템 관리 명령어와 매뉴얼 페이지 번호: 원시 이벤트, 메타데이터, 시스템 콜과의 관계 1. 원시 이벤트란?원시 이벤트(Raw Event)는 하드웨어와 소프트웨어에서 직접 발생하는 가공되지 않은 이벤트입니다. 주로 사용자 입력이나 하드웨어 신호와 같이 가장 낮은 레벨의 이벤트를 말합니다.특징:직접적인 반응을 요구.추가적인 데이터 처리나 변환 없이 전달.키보드 입력, 마우스 클릭, 네트워크 패킷 등이 포함됨.예시:import keyboard# 키보드 입력 이벤트 감지def on_key_event(e): print(f"Key pressed: {e.name}")keyboard.on_press(on_key_event)keyboard.wait('esc') # ESC 키를 누르면 종료2. 이벤트 메타데이터란?이벤트 메타데이터(Event Metadata)는 이벤트에 대한 추가적인 정보로, 발생한.. 프로그래밍공부(Programming Study)/(e)bpf 2024. 12. 6. JIT 컴파일러와 가상머신의 동작 원리부터 명령어 집합과 저장 객체, 헬퍼 함수의 역할까지 1. JIT 컴파일러란?JIT(Just-In-Time) 컴파일러는 프로그램 실행 중에 바이트코드(Bytecode)를 기계어(Machine Code)로 변환하여 실행 속도를 높이는 기술입니다. 컴파일러와 인터프리터의 장점을 결합한 형태로, 자바(JVM) 및 닷넷(CLR) 등에서 많이 사용됩니다.특징:실시간 컴파일: 프로그램 실행 중 필요한 코드만 컴파일.최적화: 런타임 정보를 바탕으로 성능 최적화.사용 사례: 자바, 닷넷, 파이썬(PyPy) 등.// Java에서 JIT 컴파일러의 동작 예public class JITExample { public static void main(String[] args) { for (int i = 0; i 2. 가상머신(Virtual Machine)이란?가상.. 프로그래밍공부(Programming Study)/(e)bpf 2024. 12. 5. 백준 1059번: 좋은 구간 문제 풀이 1. 문제 개요백준 1059번 좋은 구간 문제는 특정 정수 (n)을 포함하지 않는 좋은 구간을 찾아, 그 안에서 (n)보다 작은 숫자와 큰 숫자 사이의 조합을 구하는 문제입니다.주어진 숫자 리스트에서 (n)을 포함하지 않는 구간을 찾아 가능한 조합 수를 계산해야 하며, 수학적 사고와 간단한 구현을 요구합니다.2. 접근 방법입력 데이터 처리 및 정렬입력받은 리스트를 정렬하고, 정렬된 리스트의 인접한 수를 사용하여 (n)이 속한 구간을 찾습니다.구간 계산(l): (n)보다 작은 가장 큰 수 + 1(r): (n)보다 큰 가장 작은 수 - 1이 구간을 기준으로 (n)을 포함하지 않는 조합을 계산합니다.조합 공식(n)보다 작은 수에서 (n)보다 큰 수로 가는 조합: ((r - n + 1) \times (n - l.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 5. 서버와 클라이언트 통신 프로토콜의 모든 것: 모바일 푸시알림, 롱폴링, 웹소켓, 서버 전송 이벤트 비교 1. 서버와 클라이언트 통신 프로토콜 개요현대 애플리케이션은 사용자와의 실시간 상호작용이 중요합니다. 이를 위해 서버와 클라이언트가 데이터를 교환하는 다양한 프로토콜이 존재하며, 각 방식은 용도와 상황에 따라 다르게 사용됩니다. 이 글에서는 **모바일 푸시알림, 롱폴링, 웹소켓, 서버 전송 이벤트(SSE)**를 중심으로 특징과 장단점을 알아보겠습니다.2. 모바일 푸시알림 (Push Notification)개념모바일 푸시알림은 서버에서 클라이언트 디바이스로 메시지를 전달하는 프로토콜입니다. 앱이 열려 있지 않더라도 디바이스에 알림을 전송할 수 있어 사용자와의 소통이 가능합니다.특징클라우드 기반 서비스: Firebase Cloud Messaging(FCM), Apple Push Notification Ser.. 프로그래밍공부(Programming Study)/네트워크(Network) 2024. 12. 5. CAP 정리: 일관성, 가용성, 분할내성의 상충관계 완벽 정리 1. CAP 정리란?CAP 정리는 분산 시스템에서 Consistency(일관성), Availability(가용성), Partition Tolerance(분할내성)의 세 가지 특성을 동시에 완벽히 만족할 수 없다는 이론이다. 이는 Eric Brewer가 2000년에 주장하였으며, 이후 2002년 ACM 논문에서 증명되었다.일관성 (Consistency): 모든 노드가 동일한 데이터를 동시에 볼 수 있는 상태.가용성 (Availability): 모든 요청이 항상 성공적으로 응답을 받을 수 있는 상태.분할내성 (Partition Tolerance): 네트워크 단절 상황에서도 시스템이 동작할 수 있는 상태.CAP 정리는 분산 시스템 설계 시 세 가지 특성 중 두 가지를 우선시해야 한다는 트레이드오프를 설명한다... 프로그래밍공부(Programming Study)/데이터베이스(Database) 2024. 12. 4. 네트워크 트러블슈팅 필수 명령어 총집합 1. 네트워크 트러블슈팅이란?네트워크 트러블슈팅은 네트워크 장애를 분석하고 해결하는 과정입니다.주요 작업으로는 다음이 포함됩니다.연결 문제 파악네트워크 성능 저하 원인 탐색보안 위협 감지이 과정에서 Nmap, Ping, Traceroute 등 다양한 명령어가 사용됩니다.2. Nmap(Network Mapper)Nmap은 네트워크 스캐닝 도구로, 네트워크의 호스트와 서비스를 탐색하는 데 사용됩니다.주요 기능포트 스캐닝: 열려 있는 포트와 해당 서비스 식별.OS 감지: 원격 호스트의 운영 체제 확인.보안 테스트: 취약한 포트와 서비스 탐지.네트워크 매핑: 네트워크 토폴로지 파악.기본 사용법# 단순한 포트 스캔nmap # 특정 포트 스캔nmap -p 22 # 운영체제 감지nmap -O # 서비스와 버전 정보 .. 프로그래밍공부(Programming Study)/네트워크(Network) 2024. 12. 4. 백준 20044번: Project Teams 문제 풀이 1. 문제 개요백준 20044번, Project Teams 문제는 주어진 개발자들의 능력치를 이용해 팀을 구성하고, 각 팀의 능력치 합 중 최댓값을 최소화하는 것이 목표입니다. 이를 효율적으로 해결하기 위해 정렬과 양 끝의 포인터를 활용하는 접근법에 대해 알아보겠습니다.2. 접근 방법문제를 효율적으로 해결하기 위해 다음과 같은 로직을 설계했습니다.정렬하기능력치 리스트를 오름차순으로 정렬하여, 가장 작은 값과 큰 값을 쌍으로 묶으면 팀 능력치의 최대값을 최소화할 수 있습니다.양끝 더해서 최솟값 계산각 팀의 능력치를 구하기 위해 정렬된 리스트의 양 끝 값을 더합니다.최솟값 비교 반복가능한 모든 팀 조합의 능력치 중 최대값의 최솟값을 구합니다. 이를 위해 NN번 반복하며 최솟값을 업데이트합니다.3. 구현 코드.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 4. 백준 28353번: 고양이 카페 문제 풀이 1. 문제 개요백준 28353번, 고양이 카페 문제는 제한된 **최대 무게(K)**를 초과하지 않도록 고양이들의 무게를 조합하여 가능한 한 많은 쌍을 만들라는 문제입니다. 이를 효율적으로 해결하기 위해 정렬과 투포인터를 활용하는 방법에 대해 알아보겠습니다.2. 접근 방법문제를 효율적으로 풀기 위해 다음과 같은 방법을 사용했습니다.무게 정렬: 무게를 오름차순으로 정렬하여 작은 값과 큰 값을 비교하기 쉽게 만듭니다.투포인터 활용:양 끝의 포인터 l과 r을 설정합니다.두 포인터의 합이 최대 무게 K 이하이면 쌍을 만들 수 있으므로 둘 다 포인터를 좁힙니다.합이 K보다 크면, 오른쪽 포인터(r)를 줄여서 더 작은 값을 탐색합니다.종료 조건:두 포인터가 교차하면 반복을 종료합니다.3. 구현 코드# 입력 받기N, .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 12. 4. CDN과 POP, 그리고 POP 선택 알고리즘의 원리와 동작 방식 1. CDN(Content Delivery Network)란?CDN(콘텐츠 전달 네트워크)은 사용자가 요청한 콘텐츠(HTML, CSS, 이미지, 동영상 등)를 가장 빠르게 전달하기 위해 전 세계에 분산된 서버 네트워크를 사용하는 시스템입니다.CDN의 주요 목적속도 향상: 사용자와 가까운 서버에서 콘텐츠를 제공.지연 시간 감소: 요청-응답 시간이 단축됨.트래픽 분산: 서버 과부하를 방지.서비스 안정성: 장애 발생 시에도 다른 서버가 역할 수행.2. POP(Point of Presence)이란?POP는 CDN의 **엣지 서버(Edge Server)**가 위치한 물리적 지점으로, 사용자의 요청을 처리하고 콘텐츠를 전달하는 역할을 합니다.POP의 주요 특징사용자와의 근접성: 네트워크 지연 시간을 줄이는 데 중요.. 프로그래밍공부(Programming Study)/네트워크(Network) 2024. 12. 4. 이전 1 2 3 4 5 ··· 32 다음 728x90