Operating System/Computer

Operating System/Computer

[Computer] Github Action의 on 이벤트 종류

Github Action의 on 이벤트 종류GitHub Actions의 on 키워드는 워크플로우가 언제(trigger) 실행될지를 정의함.이 필드는 매우 유연하며 다양한 이벤트에 반응하도록 설정할 수 있음.이벤트는 크게 GitHub 이벤트(push, pull_request 등), 배포/릴리스 이벤트(release, deployment, page_build 등), 이슈 관련 이벤트(issues, issue_comment 등), 워크플로우 자체 이벤트(workflow_dispatch, workflow_run 등)로 분류할 수 있음.또한 schedule을 사용하면 정해진 시간 간격(CRON)으로 워크플로우를 실행할 수도 있음. 저장소의 기본 이벤트 (Commit, PR 관련 등)1. push1-1. 설명저장소..

Operating System/Computer

[Computer] Github Action

Github ActionGitHub Actions는 GitHub 저장소(Repository)에 특정 이벤트가 발생했을 때 자동으로 작업(워크플로, workflow)을 수행할 수 있는 자동화/CI/CD 플랫폼임.예전에는 외부 CI/CD 솔루션(Travis CI, Jenkins 등)을 사용하거나, 자신이 직접 CI/CD 파이프라인을 구축해야 했지만, GitHub Actions를 통해 GitHub 자체에서 더 쉽고 유연하게 빌드, 테스트, 배포 등을 자동화할 수 있음. Github Action 주요 특징1. GitHub 에코시스템과 밀접한 통합저장소에서 Issue, Pull Request, Release, Push 등 다양한 이벤트가 발생했을 때 쉽게 Workflow를 트리거(Trigger)할 수 있음. 2...

Operating System/Computer

[Computer] 로드밸런서

로드밸런서로드 밸런서(Load Balancer)는 네트워크나 애플리케이션 레벨에서 들어오는 트래픽(요청)을 여러 서버(또는 서비스 노드)로 효율적으로 분산하여, 전체적인 성능과 가용성을 높이고 장애나 과부하를 방지하는 핵심 인프라 컴포넌트임.서버나 서비스 노드가 여러 대일 때, 단일 서버에만 부하가 집중되지 않도록 트래픽을 자동으로 분산함으로써 서비스 안정성과 확장성을 확보하는 것이 주된 목적임. 로드 밸런싱의 필요성1. 가용성(Availability) 보장하나의 서버에 장애가 발생하더라도, 로드 밸런서는 나머지 서버로 트래픽을 자동으로 우회시켜서 서비스 다운타임을 최소화함.시스템 전체의 고가용성(High Availability, HA)을 위해 필수적인 구성 요소임. 2. 확장성(Scalability)트..

Operating System/Computer

[Computer] 프로세스의 문맥 교환

프로세스의 문맥 교환프로세스의 문맥 교환(context switch)은 운영체제(Operating System)에서 프로세스(또는 스레드) 간 CPU 사용권을 전환하는 핵심 메커니즘임.여러 프로세스가 동시에 존재하고, 제한된 수의 CPU 코어(또는 실제로 단 하나의 CPU 코어만)가 있을 때 운영체제는 시간 분할(time-sharing) 기법이나 우선순위 기반 스케줄링, 멀티태스킹 환경을 제공하기 위해 문맥 교환을 수행함. 문맥 이란?문맥(context)이란 현재 수행 중인 프로세스(또는 스레드)의 상태를 의미함.구체적으로는 다음과 같은 정보가 포함됨. 1. CPU 레지스터 상태(Register set)일반 레지스터(General-purpose registers): EAX, EBX, ECX ... (x8..

Operating System/Computer

[Computer] 멀티프로세싱 및 멀티스레딩

멀티프로세싱과 멀티스레딩멀티프로세싱(Multiprocessing)과 멀티스레딩(Multithreading)은 현대 소프트웨어에서 동시에 여러 작업을 수행하기 위한 대표적인 두 가지 병렬(또는 병행) 처리 기법임.CPU 코어가 늘어나고 고성능 환경이 요구됨에 따라, 이 두 방식을 적절히 활용하는 것은 프로그래밍과 시스템 설계에서 매우 중요한 주제가 됨. 기본 정의와 개념 : 멀티 프로세싱1. 정의물리적으로 여러 개의 프로세스를 동시에 실행하는 것을 말함.여러 프로세스를 활용해 병렬 처리를 수행하고, 각각의 프로세스는 운영체제로부터 독립된 자원(메모리 공간, 파일 디스크립터 등)을 할당받음. 2. 운영체제 레벨에서의 특징운영체제마다 약간씩 다르지만, 보통 각 프로세스는 별도의 주소 공간을 가짐.프로세스 간 ..

Operating System/Computer

[Computer] 프로세스와 스레드의 차이

프로세스와 스레드의 차이프로세스(Process)와 스레드(Thread)는 현대 운영체제(특히 멀티태스킹 OS)에서 중요한 개념임.서로 긴밀히 연관되어 있으면서도 메모리 구조, 생성 및 종료 오버헤드, 자원 공유 방식 등에 있어 차이를 가짐. 정의1. 프로세스(Process)프로그램(코드)이 메모리에 적재되어 실행 중인 상태를 가리킴.독립된 실행 흐름을 갖고, 운영체제로부터 자원을 할당받아 구동되는 하나의 작업 단위임. 2. 스레드(Thread)프로세스 안에서 실행되는 가장 작은 실행 흐름 단위임.한 프로세스 내부에 여러 스레드가 존재할 수 있으며, 각각 병렬적(또는 병행적)으로 작업을 수행함. 주소 공간과 자원 관리1. 프로세스각 프로세스는 독립된 메모리 공간(코드 세그먼트, 데이터 세그먼트, 힙, 스택..

Operating System/Computer

[Computer] CPU 스케줄링 알고리즘

CPU 스케줄링 알고리즘운영체제에서 CPU 스케줄링(CPU Scheduling)은 여러 프로세스(또는 스레드)가 제한된 CPU 자원을 효율적으로 공유할 수 있도록, 어느 시점에 어떤 프로세스에 CPU를 할당할지를 결정하는 핵심 기법임.스케줄링 알고리즘은 다양한 시스템 목표(처리량, 응답 시간, 공정성, 실시간성 등)를 최대화 또는 최적화하기 위한 전략을 제시함. CPU 스케줄링 개념과 배경1. 프로세스 상태와 준비 큐(Ready Queue)프로세스(또는 스레드)는 Running, Ready, Waiting 등의 상태를 가짐.CPU 스케줄러는 주로 Ready 상태에 있는 프로세스 중 하나를 선택하여 CPU를 할당함. 2. 선점(Preemption) vs 비선점(Non-preemptive)비선점(Non-pr..

Operating System/Computer

[Computer] 자바 표준 스펙

자바 표준 스펙자바(Java)는 단순히 하나의 프로그래밍 언어가 아니라, 언어 사양과 가상 머신 사양, 그리고 방대한 표준 라이브러리로 구성된 플랫폼임.자바 ‘표준 스펙(사양)’이란 이러한 자바 플랫폼을 정의하는 일련의 공식 문서를 가리키며, 일반적으로 다음과 같은 세 가지 주요 축으로 나누어 설명함. 1. 자바 언어 명세서 (Java Language Specification, JLS)2. 자바 가상 머신 명세서 (Java Virtual Machine Specification, JVMS)3. 표준 라이브러리(API) 명세 (Java SE API Specification) 이 세 요소는 자바가 어떤 문법과 특징을 가진 언어이고, 그 프로그램을 어떻게 실행하며, 어떤 표준 라이브러리를 제공하는지를 정의함.또..

Operating System/Computer

[Computer] 운영체제의 PCB

운영체제의 PCB운영체제(Operating System)에서 프로세스(Process)는 프로그램이 실행 중인 ‘실체’를 의미함.이때 OS는 프로세스의 상태, 스케줄링 정보, 자원 할당 정보 등을 체계적으로 관리해야 하는데, 이를 위해 사용하는 핵심 자료구조가 바로 PCB(Process Control Block)임.PCB는 운영체제 커널이 프로세스를 식별하고 제어하기 위해 유지하는 정보의 집합임. PCB의 개념과 역할1. 프로세스 식별 및 관리운영체제가 여러 프로세스를 동시에(시분할, 멀티태스킹) 관리하기 위해서는 각 프로세스를 ‘고유하게 식별’해야 함.PCB에는 프로세스 식별자로 불리는 PID(Process ID)를 비롯한 여러 정보를 저장하여 운영체제가 프로세스를 구분, 추적, 제어할 수 있도록 함. ..

Operating System/Computer

[Computer] 메모리 계층

메모리 계층컴퓨터 메모리 계층 구조(Memory Hierarchy)는 프로세서가 데이터를 저장하고 접근하는 데 필요한 다양한 저장 매체들을 ‘속도와 비용, 용량’ 등의 여러 측면에서 계층적으로 배치한 것을 의미함.일반적으로 가장 빠르지만 용량은 작고 가격이 비싼 매체부터, 상대적으로 느리고 용량이 크며 가격이 저렴한 매체까지 층을 이루게 됨. 계층적 구조의 필요성1. 속도 vs 비용의 Trade-off반도체 기반의 초고속 메모리는 매우 빠르지만 단가가 높고, 대규모로 확장하기 어려움.느리지만 대용량 저장이 가능한 장치는 저렴하므로 데이터를 많이 저장할 수 있지만 속도가 상대적으로 낮음. 2. 지역성(Locality) 원리 활용시간적 지역성(Temporal Locality): 최근에 사용된 데이터나 명령어..

박경태
'Operating System/Computer' 카테고리의 글 목록