포스트

임베디드 스터디 - 자원관리자와 커널/사용자 모드 전환

임베디드 스터디 - 자원관리자와 커널/사용자 모드 전환

커널 모드 / 사용자 모드

  • CPU는 하드웨어 수준에서 두 가지 실행 모드를 제공
모드접근 가능 범위실행 주체
커널 모드모든 하드웨어 자원에 직접 접근 가능OS 커널
사용자 모드제한된 명령어만 실행 가능일반 프로세스
  • 사용자 모드에서 하드웨어 직접 접근을 허용하면 일반 프로그램이 시스템 전체를 손상시킬 위험이 있음

커널 모드/사용자 모드 전환 (Trap)

  • 사용자 모드 프로세스가 하드웨어 자원이 필요한 경우 커널에 요청 → 시스템 콜(System Call)
  • 시스템 콜 호출 시 Trap 발생 → 커널 모드로 전환 → 처리 완료 후 사용자 모드로 복귀
1
2
3
4
5
6
7
사용자 프로세스 (사용자 모드)
        ↓ 시스템 콜 호출 (예: write())
Trap 발생 → 커널 모드로 전환
        ↓ 커널이 하드웨어에 직접 접근하여 처리
사용자 모드로 복귀
        ↓ 결과 반환
사용자 프로세스 (사용자 모드)

OS 자원관리자 (Resource Manager)

OS는 4가지 하드웨어 자원을 관리하는 자원관리자 역할을 함

CPU 자원 관리

  • 여러 프로세스가 CPU를 공유할 수 있도록 CPU 시간을 쪼개어 번갈아 할당
  • 이 행위를 스케줄링 이라고 함
  • CPU가 물리적으로 하나여도 수십~수백 개의 프로세스가 동시에 실행되는 것처럼 보임

메모리 자원 관리

  • 격리 : 프로세스 간 메모리 침범 방지 → 각 프로세스에 가상 메모리 공간 제공
  • 부족 문제 해결 : 물리 메모리가 부족할 때 스와핑 기법 사용
1
2
3
4
5
6
7
물리 메모리 (8GB)          디스크 (Swap 영역)
┌─────────────┐            ┌─────────────┐
│ 현재 사용 중  │  ←swap→   │ 미사용 페이지│
└─────────────┘            └─────────────┘

안 쓰는 페이지를 디스크로 밀어냄 → Swap Out
필요해지면 다시 불러옴          → Swap In

파일시스템 자원 관리

  • 파일 저장·접근·권한 관리를 담당
  • Linux 파일 권한은 Owner · Group · Others 3그룹으로 구분
1
2
3
4
5
-rwxr-xr--
│  │   │   └── Others : r-- (읽기만 가능)
│  │   └─────── Group : r-x (읽기·실행)
│  └─────────── Owner : rwx (읽기·쓰기·실행)
└────────────── 파일 타입

숫자 권한 표기 (chmod)

  • r = 4(100), w = 2(010), x = 1 (001) 로 각각 2진수 한 비트에 대응
1
2
3
4
chmod 755
    7 = rwx (4+2+1) → Owner
    5 = r-x (4+0+1) → Group
    5 = r-x (4+0+1) → Other

I/O 자원 관리

  • I/O 장치는 CPU보다 압도적으로 느림 → CPU가 I/O를 기다리며 멈추는 블로킹 상태 발생
  • OS의 목표 : CPU가 I/O 대기 중에도 다른 작업을 수행할 수 있게 함
1
2
3
4
5
방법 1 : I/O 요청 후 CPU는 다른 프로세스 실행
         → I/O 완료되면 인터럽트로 CPU에 알림

방법 2 : DMA가 I/O 전송을 대신 처리
         → CPU는 완전히 손을 떼고 다른 작업 수행

비교 요약

자원OS의 역할핵심 기법
CPU여러 프로세스에 시간 분배스케줄링
메모리격리 + 부족 문제 해결가상 메모리, 스와핑
파일시스템저장·접근·권한 관리rwx 권한 체계
I/OCPU 대기 시간 최소화인터럽트, DMA
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.