[OS] 내부 설계

전두엽힘주기·2025년 10월 3일

OS

목록 보기
1/7

OS

사용자가 컴퓨터를 쉽게 사용하도록 돕고 한정된 하드웨어 자원을 효율적으로 관리하는 중재자

역할

  • 프로세스 관리: 실행 중인 프로그램 (프로세스)들을 관리, CPU 시간을 공정하게 분배 (스케줄링)
  • 메모리 관리: 한정된 메모리를 여러 프로세스에 할당, 가상 메모리 기법을 통해 물리 메모리의 한계 극복
  • 파일 시스템 관리: 하드디스크나 SSD같은 저장 장치에 파일을 논리적 구조로 생성, 관리
  • 입출력 장치 관리

부팅 과정 (Booting Process)

  1. 전원 ON

  2. BIOS/UEFI 실행: 내장된 펌웨어가 하드웨어 상태를 점검(POST).

  3. 부트스트랩 로더(Bootstrap Loader) 실행: 디스크에서 OS 커널(Kernel) 을 찾아 메모리(RAM)로 불러옴.

  4. 커널 실행: OS의 심장인 커널이 메모리에서 실행되며 시스템 제어권을 넘겨받음.

(CPU는 디스크에 있는 프로그램을 직접 실행할 수 없음. 따라서 OS 커널을 포함한 모든 프로그램은 반드시 메모리에 올라와야(Load) 실행)

듀얼 모드와 멀티태스킹

사용자 모드 (User Mode): 일반 응용 프로그램이 실행되는 모드. 하드웨어 직접 접근이 차단

커널 모드 (Kernel Mode): OS 코드가 실행되는 모드. 모든 시스템 자원에 접근 가능

'시스템 콜(System Call)'

사용자 프로그램은 시스템 콜을 통해 커널 모드의 기능을 안전하게 요청

API vs. System Call

API (Application Programming Interface): 개발자가 쉽게 사용할 수 있도록 제공되는 함수. (printf(), write() 등)

System Call: API 함수 내부에서 커널에 실제 기능을 요청하기 위해 호출하는 저수준 인터페이스.

시스템 콜의 동작 과정

write() 함수로 파일에 데이터를 쓰는 과정

  1. [사용자 모드] 프로그램이 API 함수 write()를 호출

  2. 라이브러리는 write에 해당하는 시스템 콜 번호와 파라미터를 레지스터에 저장

  3. TRAP 명령이 실행되며 CPU가 커널 모드로 전환

  4. [커널 모드] 커널은 '시스템 콜 테이블'에서 해당 번호의 함수를 찾아 실행. (실제 파일 쓰기 작업 수행)

  5. 작업 완료 후, 커널은 결과를 레지스터에 저장하고 사용자 모드로 복귀

  6. [사용자 모드] write() 함수가 결과 값을 반환하고, 프로그램은 다음 코드를 실행

모놀리틱 커널 vs 마이크로커널 (Monolithic vs. Microkernel)

구분모놀리틱 커널 (Monolithic Kernel)마이크로커널 (Microkernel)
정의OS의 모든 핵심 서비스(프로세스, 메모리, 파일 시스템, 드라이버 등)가 하나의 거대한 프로그램처럼 커널 모드에서 동작커널은 가장 필수적인 기능만 남기고, 나머지 서비스(파일 시스템 등)는 사용자 모드의 독립된 프로세스로 구현
장점- 성능이 빠름 (커널 내에서 함수 호출로 통신)- 안정성이 높음 (서비스 하나가 죽어도 커널은 멀쩡) - 확장 및 유지보수가 용이함
단점- 안정성 취약 (드라이버 버그 하나가 시스템 전체를 멈출 수 있음) - 유지보수가 어려움- 성능이 느림 (사용자-커널 모드 간 전환 및 통신(IPC) 오버헤드 발생)
대표 예시Linux, Unix, Windows 등 대부분의 상용 OSMach, L4 등 (과거 macOS의 기반)

마이크로커널의 3가지 핵심 기능

  1. CPU 스케줄링 (프로세스 관리)

  2. 메모리 관리

  3. 프로세스 간 통신 (IPC, Inter-Process Communication)

링커(Linker)와 로더(Loader)의 역할

링커: 컴파일된 여러 목적 파일(.o)과 라이브러리를 엮어 하나의 실행 파일로 만드는 역할.

로더: 실행 파일을 디스크에서 메모리로 가져와 실행할 수 있도록 준비하는 역할.

소스 코드 → [컴파일러] → 목적 파일 → [링커] → 실행 파일 (디스크) → [로더] → 프로세스 (메모리)

cf)~0911

3개의 댓글

comment-user-thumbnail
2025년 10월 3일

우와와와와와ㅗ아ㅗ

1개의 답글
comment-user-thumbnail
2025년 10월 3일

어렵다..

답글 달기