컴퓨터 구조 설계 및 구현

SIMWOOHYUN·2025년 6월 13일
post-thumbnail

컴퓨터 구조 설계 및 구현

1. 명령어 집합 구조(ISA)

  • CISC vs RISC
    • CISC: 복잡한 명령어, 다양한 주소 지정 모드. 코드 밀도 ↑, 디코더 복잡도 ↑
    • RISC: 단순 명령어, 고정 길이, 레지스터 기반 연산. 파이프라이닝 최적화 용이
  • 레지스터 파일
    • 범용 레지스터(GPR), 특수 레지스터(PC, SP, FLAGS)
    • 읽기/쓰기 포트 설계, 데이터 경로(Data Path) 구성
  • 데이터 경로 & 제어 유닛
    • 데이터 경로: ALU, 레지스터, 멀티플렉서, 셔플 네트워크
    • 제어 유닛: 하드와이어드 vs 마이크로프로그램 제어

2. 파이프라이닝 & 병렬화

  • 기본 파이프라인 단계
    1. 명령어 인출(IF)
    2. 명령어 해독(ID)
    3. 실행(EX)
    4. 메모리 접근(MEM)
    5. 쓰기백(WB)
  • 해저드 처리
    • 구조적 해저드: 자원 충돌 → 다중 포트, 버퍼 추가
    • 데이터 해저드: RAW/WAR/WAW → 포워딩, 스톨 삽입
    • 제어 해저드: 분기 예측, 지연 슬롯

프로그램 번역 및 실행

1. 컴파일러 & 어셈블러

  • 컴파일러 단계: 어휘 분석 → 구문 분석 → 의미 분석 → 최적화 → 코드 생성
  • 어셈블러: 어셈블리 코드 → 머신 코드로 변환, 심볼 테이블 관리

2. 링커 & 로더

  • 정적 링크: 라이브러리 심볼 결합 → 단일 실행 파일
  • 동적 링크: 런타임 심볼 결합 → 공유 라이브러리(.so/.dll)
  • 로더: 실행 파일 메모리 맵핑 → 프로그램 카운터 초기화

3. 인터프리터 & JIT

  • 인터프리터: 소스 코드를 한 줄씩 해석 실행 → 디버깅 용이, 성능 ↓
  • JIT 컴파일: 런타임 최적화 코드 생성 → 성능↑, 런타임 비용 존재

프로세스 관리 및 스케줄링

1. 프로세스 vs 스레드

  • 프로세스: 독립된 메모리 공간, 무거운 컨텍스트 스위칭
  • 스레드: 동일 프로세스 내 경량 실행 단위, 공유 메모리

2. 스케줄링 알고리즘

알고리즘특징장단점
FCFS순서대로 처리간단하지만 실행 시간 편차 큼
SJF (비선점)실행 시간이 짧은 순서최적 평균 대기시간, 긴 작업 기아 발생
SRTF (선점 SJF)남은 시간이 가장 짧은 순서기아 최소화, 선점 비용 발생
RR (Round Robin)시간 할당(퀀텀) 단위로 순환응답시간 공정, 문맥교환 빈번
다단계 큐, MLFB우선순위 및 피드백 큐 복합복잡하지만 다양한 워크로드 대응 가능

3. 컨텍스트 스위칭

  • 저장/복원: 레지스터, PC, 스택 포인터, 프로세스 제어 블록(PCB)
  • 오버헤드 최소화: 여유 CPU 캐시 관리, 경량 스레드 사용

메모리 관리 및 입출력 관리

1. 메모리 계층 구조

  • 레지스터 → 캐시(L1, L2, L3) → 주기억장치(RAM) → 보조기억장치(HDD/SSD)
  • 캐시 정책: 쓰기-쓰루 vs 쓰기-백, LRU/LFU 교체 알고리즘

2. 가상 메모리

  • 페이지 기반: 페이지 테이블, TLB
  • 스와핑: 페이지 교체 알고리즘(LRU, FIFO, Clock)
  • 단편화: 내부 단편화 vs 외부 단편화

3. 입출력 관리

  • 장치 드라이버: 폴링 vs 인터럽트 vs DMA(Direct Memory Access)
  • I/O 스케줄링: FCFS, SSTF, Elevator(LOOK/SCAN)
  • 버퍼링 & 캐싱: 블록 단위 전송 최적화, 버퍼 캐시 관리

동기화 문제

1. 경쟁 조건(Race Condition)

  • 문제: 공유 자원 동시 접근 시 결과 예측 불가
  • 예시: 두 스레드가 같은 카운터 변수 동시 증가

2. 상호 배제(Mutual Exclusion)

  • 락(Lock)/뮤텍스(Mutex): 임계 구역 보호
  • 세마포어(Semaphore): 카운팅, 이진 세마포어
  • 모니터(Monitor): 조건 변수(Condition Variable) 포함

3. 교착 상태(Deadlock)

  • 필요 조건: 상호 배제, 점유-대기, 비선점, 순환 대기
  • 해결 전략: 예방, 회피(은행원 알고리즘), 탐지 & 회복

4. 기아(Starvation)

  • 원인: 우선순위 편향
  • 해결: 에이징(Aging) 기법으로 대기 시간에 따라 우선순위 상승

위 내용을 바탕으로 컴퓨터 구조부터 운영체제 핵심 요소까지 전체 흐름을 이해하고, 설계·구현·운영 시 고려해야 할 주요 기법과 알고리즘을 정리해 보세요.

0개의 댓글