3️⃣ CPU 스케줄링 (CPU Scheduling)✅ 왜 스케줄링이 필요한가?컴퓨터 시스템은 멀티태스킹 환경에서 여러 프로세스가 동시에 실행되는 것처럼 보이지만, 실제로는 한정된 CPU가 프로세스를 순차적으로 실행합니다. 따라서 운영체제는 어떤 프로세스가 언제 CPU를 차지할지 결정해야 합니다. 이게 바로 스케줄링이에요.✅ 스케줄링 시점Non-preemptive (비선점):현재 실행 중인 프로세스가 CPU를 자발적으로 내놓을 때만 스위칭.Preemptive (선점형):OS가 강제로 CPU를 회수하여 다른 프로세스에 할당 가능.대부분의 현대 OS는 선점형 스케줄링을 사용합니다.✅ 주요 스케줄링 알고리즘알고리즘 설명 특징FCFS (First-Come First-Served)먼저 도착한 프로세스부터 순차 실..
2️⃣ 프로세스 관리 (Process Management)✅ 프로세스란?**프로세스(Process)**는 실행 중인 프로그램의 인스턴스입니다. 단순한 프로그램 코드가 실제 메모리에서 실행되면서 **자원(CPU, 메모리, 파일 등)**을 할당받은 존재예요.구성 요소:프로그램 코드 (텍스트 섹션)프로세스 스택 (함수 호출, 지역변수)데이터 섹션 (글로벌 변수)힙 (동적 할당)프로세스 상태 정보 (레지스터, 프로그램 카운터 등)✅ 프로세스 상태 (Process States)New: 생성 중Ready: 실행 준비 상태Running: CPU에서 실행 중Waiting (Blocked): I/O 등 대기 중Terminated: 실행 종료✅ 프로세스 제어 블록 (PCB)운영체제가 각 프로세스를 관리하기 위해 사용하는 ..
1️⃣ 운영체제 개요 (Introduction to Operating Systems)✅ 운영체제란?운영체제(OS)는 컴퓨터 하드웨어와 사용자 프로그램 사이에 위치하는 시스템 소프트웨어입니다. **자원 관리(Resource Management)**와 인터페이스 제공이 주된 역할이에요.✅ 주요 기능프로세스/스레드 관리CPU 스케줄링, 동기화, 교착상태 방지 등메모리 관리메모리 할당, 가상 메모리, 캐싱 등저장장치 관리파일 시스템, 디스크 스케줄링 등입출력(I/O) 관리장치 드라이버, 버퍼링 등보호 및 보안사용자 권한, 데이터 보호사용자 인터페이스 제공CLI (Command Line), GUI (Graphical User Interface)✅ 운영체제의 역할자원 관리자 (Resource Manager):CPU..

운영체제(OS) 강의에서 다루는 커리큘럼은 대체로 컴퓨터 구조, 병렬성, 메모리 관리, 자원 관리를 단계적으로 배우게 구성됩니다.여기서는 일반적인 CS 학부 과정을 기준으로 커리큘럼을 설명할게요:1️⃣ 운영체제 개요핵심 개념:운영체제의 정의와 역할사용자 ↔ 하드웨어 사이의 인터페이스OS 구조 (커널, 쉘, 사용자 모드/커널 모드)배경:Batch → Time Sharing → Multiprocessing → Modern OS 발전사2️⃣ 프로세스 관리프로세스와 쓰레드 개념프로세스 상태 (Ready, Running, Blocked)프로세스 제어 블록 (PCB)컨텍스트 스위칭쓰레드의 등장과 멀티스레딩심화:멀티프로세싱과 멀티스레딩 비교Thread Pool 패턴3️⃣ CPU 스케줄링스케줄링 알고리즘:FCFS (F..

캐시 히트(Cache Hit) 와 미스(Cache Miss) ― “명령어·데이터가 어디에 있느냐가 속도를 좌우한다”캐시가 하는 일, 10초 요약CPU ↔ DRAM 속도 차가 수 10 배 이상 → 중간에 SRAM 캐시(L1/L2/L3) 를 끼워서 ‘자주 쓰는 데이터’를 가까운 곳에 복사해 둔다.히트: CPU가 요구한 주소가 이미 캐시에 있음 → 수 ns 내 응답.미스: 캐시에 없음 → DRAM(또는 하위 캐시)까지 내려가 수 10 ns~㎲ 지연 후 캐시에 라인(line) 단위로 불러와 재시도.명령어 사이클 관점으로 보면 Memory 단계에서 AGU→MAR→(Cache) 시점에 히트/미스가 갈린다.미스가 나면 CU가 파이프라인을 스톨하거나 OoO 코어는 다른 μop로 지연을 ‘가린다’. 지역성(locali..
CPU Instruction Cycle단계 핵심 전용 레지스터 세부 흐름 (→ 는 데이터 이동) 메모1️⃣ FetchPC(Program Counter) → MAR → Memory → MDR → IR① PC 값을 MAR에 복사 (주소 버스)② I-Cache/TLB 경유하여 명령어 읽기③ 읽어온 32/64 bit 코드를 MDR(Memory Data Register) 에 임시 저장④ MDR 내용을 IR(Instruction Register) 로 이동⑤ PC ← PC + len (또는 분기·예외로 덮어쓰기)“주소 지시 = MAR, 데이터 수신 = MDR, 보관 = IR”2️⃣ Decode (ID)IR, 레지스터 파일• CU가 IR → opcode·오퍼랜드 분해• 레지스터 파일에서 src 값 읽기• 의존성·Haz..