: software that sits between applications and HW
→ provides services & interfaces to applications
- interface? OS가 권한 체크해서 권한에 맞는 HW 명령어 실행
→ user application 사용하기 위한 os routine call (= system call)
layer of abstraction for HW resources
: 직접 복잡한 HW 컨트롤 할 필요 x
higher-level, simpler, more portable
e.g. disk block 대신 file에서 fopen, fprintf 명령만
한정 자원 infinite한 것 처럼
e.g. DRAM < program
paging system 등을 이용해 infinite해 보이게
→ server등의 프로그램 돌릴 때
int a[10000000][10000000]
→ 8GB로 부족
→ 프로그램의 일부분만 memory 사용, 나머지는 disk에
→ HW적인 한계 극복
Resource의 관리
: HW뿐만 아니라 HW에서 파생 된 resource들도
할당, 반환 등
multiple applications
: 동시에 여러개, 어떻게 resources 분배할 것인지?
multiple users
: 어떻게 자원 공유?
manage & protect memory, I/O devices, others
multiplexing resouces
→ in time e.g. CPU sharing
→ in space e.g. memory sharing
Extended machine 으로서의 OS