본문 바로가기
CS전공지식

[CS전공지식] 운영체제 시스템 콜과 이중모드

by JINJINC 2025. 3. 26.
728x90
반응형

시스템 콜과 이중 모드란? 운영체제 핵심 개념 정리

운영체제(OS)는 시스템 자원을 효율적으로 관리하고 사용자와 하드웨어 간의 인터페이스를 제공하는 소프트웨어입니다.
오늘은 시스템 콜(System Call)이중 모드(Dual Mode)에 대해 자세히 알아보겠습니다.


🧠 사용자가 직접 메모리를 관리하면 안 되는 이유

사용자가 직접 메모리나 CPU 같은 시스템 자원을 제어할 수 있다면, 운영체제의 안정성과 보안이 위협받게 됩니다.
따라서 사용자는 운영체제의 핵심 기능에 직접 접근할 수 없고, 운영체제에게 요청해야 합니다. 이때 사용되는 것이 바로 시스템 콜(System Call)입니다.


🔁 시스템 콜(System Call)이란?

시스템 콜은 응용 프로그램이 운영체제의 서비스를 사용하고자 할 때, 운영체제에게 요청을 전달하는 인터페이스입니다.

  • 사용자 영역(User Mode) → 커널 영역(Kernel Mode)으로 전환
  • 운영체제가 요청된 기능을 대신 수행
  • 결과를 사용자 영역으로 반환

📌 시스템 콜은 운영체제의 기능을 사용하는 함수 호출의 형태로 제공됩니다.

시스템 콜


🔍 왜 시스템 콜이 필요한가?

  • 응용 프로그램은 자원에 직접 접근할 수 없음
  • 파일 읽기, 메모리 할당, 프로세스 생성 등 운영체제의 개입이 필요한 작업은 시스템 콜을 통해 요청됨

예시

기능 시스템 콜 함수 예시
프로세스 생성 fork()
파일 열기 open()
파일 읽기 read()
메모리 할당 mmap()
종료 exit()

🧬 시스템 콜과 프로세스 계층 구조

운영체제에서 프로세스는 시스템 콜을 통해 새로운 프로세스를 생성할 수 있습니다. 이로 인해 프로세스들은 계층적 구조를 이루게 됩니다.

  • 부모 프로세스: 새 프로세스를 생성한 프로세스
  • 자식 프로세스: 부모 프로세스로부터 파생된 프로세스

📌 유닉스 계열 시스템에서는 ps, pstree 명령어를 통해 프로세스 계층 구조를 시각화할 수 있습니다.


🧰 이중 모드(Dual Mode)란?

CPU는 두 가지 실행 모드를 가지고 있습니다:

  1. 사용자 모드(User Mode)

    • 일반 애플리케이션 실행 시 사용
    • 운영체제 핵심 명령어 접근 제한
  2. 커널 모드(Kernel Mode)

    • 운영체제 코드 실행 시 사용
    • 모든 하드웨어 자원 접근 가능

🔐 왜 이중 모드가 필요한가?

  • 사용자 프로그램이 운영체제 코드를 실수로 또는 악의적으로 훼손하는 것을 방지
  • 시스템 자원과 커널을 보호하기 위해 모드를 분리

🔄 시스템 콜의 실행 흐름

  1. 사용자 프로그램이 시스템 콜을 호출
  2. 소프트웨어 인터럽트 발생
  3. CPU가 커널 모드로 전환
  4. 운영체제 코드 실행
  5. 요청 작업 완료 후, 사용자 모드로 재전환
[User Mode] -> (Interrupt 발생) -> [Kernel Mode] -> (요청 처리) -> [User Mode]

📈 시스템 콜 빈도는 얼마나 될까?

단순한 Hello World 프로그램조차도 600회 이상의 시스템 콜을 호출합니다.
ls 명령어도 내부적으로 수많은 시스템 콜을 통해 파일 목록을 가져옵니다.

시스템 콜은 사용자와 운영체제 간의 핵심 연결 고리로, 거의 모든 프로그램에서 필수적으로 사용됩니다.


📌 정리: 시스템 콜과 이중 모드의 중요성

개념 설명
시스템 콜 사용자 프로그램이 운영체제 서비스를 요청하는 인터페이스
이중 모드 CPU가 사용자 코드와 운영체제 코드를 분리하여 실행하는 모드

운영체제의 안정성과 보안을 위해 시스템 콜과 이중 모드는 필수적인 개념입니다.


728x90
반응형

'CS전공지식' 카테고리의 다른 글

[CS 전공지식] 동기화와 교착상태  (0) 2025.03.29
[CS 전공지식] 프로세스와 스레드  (0) 2025.03.26
[CS전공지식] 운영체제  (0) 2025.03.26

댓글