OS의 Operations
Interrupt-driven
운영체제는 비동기적인 이벤트를 감지하고 처리하기 위해 interrupt-driven 방식으로 동작한다.
- 하드웨어 인터럽트: I/O 디바이스 작업 완료 시 발생
- 소프트웨어 인터럽트 (trap, exception):
- 오류: 0으로 나누기, 다른 프로세스의 메모리 접근 등 → 강제 종료
- 시스템 콜 함수 호출: 앱이 직접 리소스를 접근하지 않고 OS를 통해 요청
Dual-mode Operation
운영체제는 모드를 전환하며 동작함으로써 자기 자신을 보호한다.
- User mode: 사용자 프로세스를 실행하는 모드. 사용자가 접근 가능한 리소스에 한정된 작업 수행
- Kernel mode: 시스템 콜이나 하드웨어 제어 등 privileged operation 수행
Mode bit
- 0: user mode, 1: kernel mode와 같이 모드를 구분하는 비트 존재
- privileged instruction은 kernel mode에서만 실행 가능
- 시스템 콜이 실행되면 커널 모드로 전환됨
Multi-mode Operation
- Virtual Machine Manager (VMM) 등의 환경에서는 Guest VM을 위한 추가적인 모드 필요
Transition from User to Kernel Mode
- 시스템 콜 또는 타이머 인터럽트 발생 시 모드 전환
예시:
- 프로세스 시작 → 타이머 카운터 시작
- OS는 하드웨어 클럭에 의해 카운터를 감소시킴 (privileged 작업)
- 카운터가 0이 되면 interrupt 발생
- OS는 커널 권한을 획득함
- 해당 프로세스를 강제 종료하거나 작업을 전환할지 결정함
Process Management 활동
- Program = passive entity (정적 코드)
- Process = active entity (실행 중인 프로그램)
프로세스는 다음 리소스를 필요로 함:
- CPU, memory, I/O, 파일, 초기화 데이터 등
프로세스 종료 시 리소스는 회수됨
- 하나의 실행 흐름 = 하나의 Thread
- 프로세스 생성 시 최소 하나의 스레드 할당됨
- 각 스레드는 고유한 Program Counter를 갖고 실행 흐름을 유지함
- 멀티스레드 프로세스는 여러 개의 Program Counter를 가짐
OS의 프로세스 관리 기능
- 사용자 및 시스템 프로세스 생성/삭제
- 프로세스 일시 중단 및 재개
- 동기화 메커니즘 제공 (공유 자원 접근 시)
- IPC (Inter-Process Communication) 메커니즘 제공
- 데드락 감지 및 처리
Memory Management
프로그램 실행을 위해 instruction과 data를 메모리에 적재함. 응답 속도 및 자원 효율을 높이기 위해 다음 기능을 수행함:
- 어떤 메모리 영역이 어떤 프로세스에 사용되는지 추적
- 어떤 프로세스와 데이터가 메모리에 올라가고 내려갈지 결정 (Swapping, Virtual Memory)
- 메모리 공간을 동적으로 할당하거나 해제
Storage Management
운영체제는 물리 저장장치를 논리적 단위(파일)로 추상화하여 관리함.
- 파일/디렉토리 생성 및 삭제
- 접근 제어 수행 (Access Control)
- 파일을 Secondary Storage에 매핑
- Backup 및 recovery 기능 제공
Mass-storage Management
대용량 데이터를 장기 저장할 수 있는 장치를 관리함.
- 빈 공간 관리
- 저장소 할당 및 해제
- 디스크 접근 알고리즘 및 스케줄링 사용
- Tertiary Storage: optical disk, magnetic tape 등 느리지만 안전한 저장소 (WORM, RW 등)
Disk → Register 데이터 이동 경로
HDD → Main Memory → Cache → CPU Register
멀티태스킹 환경에서는 각 계층의 데이터가 최신 상태인지 항상 확인해야 함
- 멀티프로세서 환경: 여러 CPU가 동일 데이터를 사용할 경우 동기화 문제 발생 가능
I/O Subsystem
I/O 디바이스를 관리하는 OS의 영역이다.
I/O 디바이스는 OS가 직접 관리하며, 사용자에게는 추상화된 System Call 형태로 제공됨.
기능:
- 메모리와 I/O 간 데이터 전송 관리
- Buffering: 속도 차이를 해결하기 위해 데이터 임시 저장
- Caching: 성능 향상 위한 임시 저장소
- Spooling: output을 input으로 사용하는 장치 간 데이터 중첩 처리
- General한 Device Driver Interface 제공
- 하드웨어에 Specific한 Device Controller와 연동
- 하드웨어 디바이스의 특수한 오퍼레이션을 숨겨준다.(네이티브한 특성을 숨긴다)
- 유저 프로세스에게 하드웨어를 다룰수 있는 간단한 API를 system call로 제공한다
- 하드웨어 디바이스의 특수한 오퍼레이션을 숨겨준다.(네이티브한 특성을 숨긴다)
반응형
'CS 지식 > 운영체제 (OS)' 카테고리의 다른 글
[운영체제] OS의 스케쥴링의 방식과 멀티레벨 스케쥴링, 스레드 스케쥴링 (PCS, SCS) - CPU Scheduling (0) | 2025.04.15 |
---|---|
[운영체제] OS의 스레드 종류(User, Kernel)와 관련 아키텍처 소개 (1) | 2025.04.13 |
[운영체제] OS의 프로세스(Process)의 개념과 구조, IPC 매커니즘 (0) | 2025.04.13 |
[운영체제] OS의 구조와 서비스 종류 소개, 시스템 프로그램과 시스템 콜 소개 (0) | 2025.04.13 |
[운영체제] OS의 개념과 구조, 컴퓨터 시스템 아키텍처 소개 (1) | 2025.04.13 |
댓글