Skip to main content
  1. Posts/

Computer BootProcess

컴퓨터 부팅 과정
#

  1. 전원 ON → 파워가 전기를 공급 시작 → 메인보드의 플레시 메모리에 담긴 BIOS / UEFI가 실행됨 → POST(Power-On Self Test) 진행 → 특정 HW가 없거나 문제 있으면 빞 소리남.
  2. MBR/EFI 파티션 읽기 → 부트로더 실행 → OS 커널 RAM에 적재
  • 대부분 : BIOS-MBR 방식 또는 UEFI-GPT 방식
  • MBR/GPT는 “디스크 파티션 구조 정보”. BIOS/UEFI가 디스크 읽을 때 참고하는 메타데이터
    • MBR(Master Boot Record) : 옛 ver. 최대 4개의 파티션. 디스크 첫 섹터에 부팅 정보 + 파티션 정보 몰아넣음.
    • GPT(GUID Partition Table) : 이론상 무한개의 파티션 가능. 파티션 정보를 디스크 전체에 체계적으로 저장 및 관리. UEFI가 EFI 파티션 찾아서 .efi 파일 실행
  • [2026 최신] MBR VS GPT 차이점 상세 분석 가이드 : 실제 내 pc는 GPT 기반. 4개의 파티션 나뉨. EFI 파티션이, 구심이 되어, 파티션을 나누고 디스크 총 관리.

프로그램
#

  • RAM : 그냥 물리적인 메모리 덩어리
  • JVM : OS로부터 할당받은 RAM을 관리하고, 실행을 담당하는 런타임 환경
    • Java 등 언어에서 다루는 스택, 힙 = 실제로 RAM에 있는 부분.
    • OS가 JVM 프로세스 실행 → OS가 RAM 일부를 JVM에게 할당 → JVM이 그걸 내부적으로 나눔 - Heap, Stack, Metaspace 등
  • 커널 : 커널은 운영체제(OS)의 핵심 부분으로, 하드웨어와 소프트웨어 사이에서 중재자 역할을 하는 프로그램.
  • 커널 : OS 중 항상 메모리에 올라가 있는 OS의 핵심 부분으로써 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하는 역할을 하며 컴퓨터 자원들을 관리하는 역할
  1. 프로세스 관리 – CPU 시간을 각 프로그램에 나눠주고 실행 순서 결정
  2. 메모리 관리 – 프로그램이 사용할 메모리 할당과 보호
  3. 장치 관리 – 디스크, 네트워크, USB 등 하드웨어 제어
  4. 파일 시스템 관리 – 파일 읽기/쓰기, 디렉터리 관리
  5. 시스템 호출 인터페이스 제공 – 프로그램이 OS 기능 사용 가능하게 함
  • 프로그램은 커널에 PID로 등록, 네트워크 통신은 소켓 통해 포트로 연결.
    • IP + 포트 조합으로 특정 프로세스와 통신
    • 프로그램은 소켓을 통해 커널에게 “저쪽 프로그램과 통신하고 싶다”고 요청하고, 커널이 실제 네트워크 전달을 처리함.
  • 소켓 : 프로그램이 네트워크 통신을 할 때 커널이 제공하는 추상화된 인터페이스
    • 웹소켓, TCP소켓, IPC 등 여러 층에 존재하는 개념.
      • IPC = OS에서 프로세스들이 데이터를 교환하는 기술(파이프, 소켓 등).
      • TCP 소켓 = TCP 프로토콜 기반으로 신뢰성 있는 데이터 전송을 하는 소켓 인터페이스
        • TCP는 핵심 프로토콜로, OS에 기본 탑재됨. TCP 소켓은 유저가 쓰지만, 실제 동작은 커널에서 처리되는 인터페이스로 유저 모드와 커널 모드 사이를 이음.
  • 커널 모드 : CPU가 운영체제 핵심 권한으로 동작하는 상태.
    커널 모드 : 대다수의 OS에는 커널 모드와 사용자 모드가 구분되어 있으며, 사용자 모드에서는 사용자가 접근할 수 있는 영역이 제한되어 있고, 접근을 위해서는 시스템 콜을 해야한다. 커널 모드는 OS가 CPU를 사용하는 모드이다. 시스템 콜을 통해 커널모드로 전환되면 OS는 하드웨어를 제어하는 명령어(Privileged Instructions)를 실행한다. Privileged Instructions는 사용자 모드에서 실행되면 exception이 발생한다.

하드웨어 입력시
#

내가 컴퓨터에 내린 명령. 키보드/마우스를 통한 입력(HW) → 인터럽트 발생

  1. 인터럽트 요청 발생 (HW)
  2. CPU가 처리하던 프로세스 중단 후 인터럽트 수락
  3. 현재 실행 중인 프로세스 상태 PCB에 저장
  4. 커널 모드 진입
  5. 인터럽트 원인 확인 (인터럽트 벡터)
  6. 인터럽트 처리 루틴 (ISR) 실행 → 인터럽트 처리 완료
  7. 저장했던 상태 복구 (레지스터 등)
  8. PCB에서 프로세스 상태 정보 다시 로드
  9. 원래 실행하던 위치부터 계속 수행

RAM에서의 과정
#

RAM → CPU 캐시(L1/L2/L3) → 레지스터 → ALU → 레지스터 → 캐시 → RAM

There are no articles to list here yet.