운영체제(OS)는 시스템 자원을 효율적으로 관리하고 사용자와 하드웨어 간의 인터페이스를 제공하는 소프트웨어입니다. 오늘은 시스템 콜(System Call)과 이중 모드(Dual Mode)에 대해 자세히 알아보겠습니다.
🧠 사용자가 직접 메모리를 관리하면 안 되는 이유
사용자가 직접 메모리나 CPU 같은 시스템 자원을 제어할 수 있다면, 운영체제의 안정성과 보안이 위협받게 됩니다. 따라서 사용자는 운영체제의 핵심 기능에 직접 접근할 수 없고, 운영체제에게 요청해야 합니다. 이때 사용되는 것이 바로 시스템 콜(System Call)입니다.
🔁 시스템 콜(System Call)이란?
시스템 콜은 응용 프로그램이 운영체제의 서비스를 사용하고자 할 때, 운영체제에게 요청을 전달하는 인터페이스입니다.
사용자 영역(User Mode) → 커널 영역(Kernel Mode)으로 전환
운영체제가 요청된 기능을 대신 수행
결과를 사용자 영역으로 반환
📌 시스템 콜은 운영체제의 기능을 사용하는 함수 호출의 형태로 제공됩니다.
시스템 콜
🔍 왜 시스템 콜이 필요한가?
응용 프로그램은 자원에 직접 접근할 수 없음
파일 읽기, 메모리 할당, 프로세스 생성 등 운영체제의 개입이 필요한 작업은 시스템 콜을 통해 요청됨
예시
기능
시스템 콜 함수 예시
프로세스 생성
fork()
파일 열기
open()
파일 읽기
read()
메모리 할당
mmap()
종료
exit()
🧬 시스템 콜과 프로세스 계층 구조
운영체제에서 프로세스는 시스템 콜을 통해 새로운 프로세스를 생성할 수 있습니다. 이로 인해 프로세스들은 계층적 구조를 이루게 됩니다.
부모 프로세스: 새 프로세스를 생성한 프로세스
자식 프로세스: 부모 프로세스로부터 파생된 프로세스
📌 유닉스 계열 시스템에서는 ps, pstree 명령어를 통해 프로세스 계층 구조를 시각화할 수 있습니다.
댓글