CS/운영체제

운영체제의 구조: 커널, 인터페이스, 시스템 콜, 하드웨어, 메모리, 폴링, 인터럽트

나디아 Nadia 2025. 4. 23. 00:26

 

운영체제의 구조

운영체제는 사용자와 하드웨어 사이에서 중간다리 역할을 한다.
가장 핵심이 되는 건 커널이고, 사용자랑 커널 사이엔 인터페이스가 있다.

 

 

1. 커널 (Kernel)

: 프로세스, 메모리, 저장장치 등을 직접 관리하는 운영체제의 핵심 부분

  • 특징
    • 사용자나 일반 프로그램이 직접 접근할 수 없다.
    • 시스템 전체 자원을 효율적으로 관리한다.

 

 

2. 인터페이스 (interface)

: 사용자가 커널과 소통할 수 있게 도와주는 창구

  • 종류
    • GUI (Graphic User Interface)
      → 그래픽으로 커널과 상호작용 (ex. 마우스, 창, 버튼 등)
    • CLI (Command-Line Interface)
      → 명령어를 입력해서 커널과 소통 (ex. 리눅스 터미널)

 

 

3. 시스템 콜 (system call)

: 일반 프로그램(어플리케이션)이 커널 기능을 사용할 수 있도록 제공되는 인터페이스

  • 필요한 이유
    • 프로그램이 하드디스크 같은 자원에 직접 접근하면 위험
    • 시스템 콜을 통해 접근하면, 커널이 안전하게 처리해줌
  • 예시
    • write() 같은 함수로 파일을 저장하면, 커널이 자동으로 안전한 공간에 저장

 

 

4. 드라이버 (Driver)

: 하드웨어와 커널이 통신할 수 있도록 도와주는 소프트웨어

  • 역할
    • 커널은 드라이버를 통해 하드웨어를 제어함
    • 프린터, 마우스, 그래픽카드 등 전부 드라이버 필요함

 


컴퓨터 하드웨어와 구조

 

1. 폰 노이만 구조

: 현대 컴퓨터의 기본 구조

  • CPU와 메모리를 버스로 연결 → 프로그램을 메모리에 올려놓고 CPU가 실행함
    = “프로그램 내장 방식”이라고도 불림

https://m.blog.naver.com/with_msip/221981730449

 

 

 

2. 주요 하드웨어 구성

 

메인보드

  • 모든 하드웨어가 연결되는 중심 판
  • 데이터가 이동하는 통로인 “버스”도 포함됨

 

CPU (중앙처리장치)

  • 컴퓨터의 두뇌 역할
  • 아래 3가지 구성 요소가 있음
    1. 산술논리연산장치(ALU): 계산, 논리 연산 담당
    2. 제어장치: 모든 장치들한테 명령 내림
    3. 레지스터: 계산 중인 데이터를 잠깐 저장

https://taegyunwoo.github.io/interview/CS_CPU

 

 

 

 

3. 메모리 종류

 

RAM (Random Access Memory)

  • 실행 중인 프로그램들이 올라가는 공간
  • 전원이 꺼지면 내용이 사라짐

 

ROM (Read Only Memory)

  • 수정 불가능 (읽기 전용)
  • 전원이 꺼져도 데이터 유지
  • 컴퓨터의 부팅 정보 저장 (바이오스)

 

 

 

4. 컴퓨터의 부팅 과정

  1. 전원 ON
  2. ROM에 저장된 바이오스 실행
  3. 하드웨어 이상 유무 확인
  4. 이상 없으면 → 하드디스크의 부트로더 실행
  5. 운영체제를 메모리로 불러옴
  6. 바탕화면 로딩 → 부팅 완료
  7. 이후 실행되는 프로그램도 전부 메모리에 올라가고 운영체제가 관리

 


인터럽트와 폴링

 

1. 폴링 (Polling)

: CPU가 계속 입출력 상태를 확인하는 방식

  • CPU가 쓸데없이 바쁨 → 비효율적

 

 

 

2. 인터럽트 (Interrupt)

: 입출력 완료 시, 입출력 장치가 CPU에게 신호를 주는 방식

  • 장점
    • CPU는 다른 작업을 하다가 신호만 받으면 됨 → 효율적
    • 성능도 더 좋음
  • 인터럽트 종류
    • 하드웨어 인터럽트: 키보드, 마우스, 프린터 등
    • 소프트웨어 인터럽트: 잘못된 명령어 실행 시 발생 (ex. 0으로 나누기, 잘못된 메모리 접근 등)
  • ISR (Interrupt Service Routine)
    • 인터럽트가 발생했을 때, 어떤 작업을 처리할지 정해놓은 함수