임베디드 스터디 - 자원관리자와 커널/사용자 모드 전환
임베디드 스터디 - 자원관리자와 커널/사용자 모드 전환
커널 모드 / 사용자 모드
- 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/O | CPU 대기 시간 최소화 | 인터럽트, DMA |
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.