- 프로세스
= 실행중인 프로그램
= 작업 수행을 위해 자원을 활용하여 활발히 작동합니다.
= active entity
- 프로그램
= 메모리에 저장된 명령어들의 집합
= 필요할 때 실행되고 자체적으로 어떠한 동작도 수행하지 않습니다.
= passive entity
프로세스는 CPU, memory, I/O, files, data 등 자원을 필요로 합니다. thread 당 1개의 프로그램 카운터가 있습니다. 프로그램 카운터는 실행할 다음 명령어를 가리킵니다.
프로그램을 실행하기 위해서는, 해당 명령어들이 메모리에 존재해야 합니다. 디스크에 있으면 시간이 굉장히 오래 걸리기 때문에, 메모리에 존재해야만 합니다.
따라서 Memory Mangement는 무엇이 언제 메모리에 있어야 하는지 결정하는 역할을 합니다. 결국 메모리 관리도 CPU를 최대한 활용하기 위한 방법이라고 할 수 있습니다.
물리적 속성을 논리적 저장 유닛인 '파일'로 추상화합니다. 파일들이 모여 폴더(디렉토리)가 됩니다.
사용할 정보는 느린 저장소에서 빠른 저장소로 일시적으로 복사됩니다. (자동적으로 수행되며, 그래야만 합니다.)
빠른 저장소가 정보가 있는지 없는지 체크한 후에 있다면 캐시로 바로 전송합니다. 없을 경우, 캐시로 데이터가 캐시로 복사되어 사용됩니다. 캐시의 크기는 캐시가 적용되는 저장소보다 작습니다. 이는 캐시 관리가 중요한 설계 문제임을 의미합니다. 캐시 크기와 교체 정책이 성능을 결정합니다.
속도차이가 어마어마하므로 캐시 관리는 필수적입니다.
운영체제가 다른 운영체제의 어플리케이션을 실행할 수 있도록 해주는 것 입니다.
다른 타입의 CPU를 위해 생성된 프로그램을 기존의 리소스나 하드웨어를 이용하지 않고 소프트웨어적으로 구현하여 특정 시스템을 돌릴 수 있게 하는 것입니다.
다른 운영체제를 기존 리소스나 하드웨어 일부를 이용해 동시에 실행시키는 것을 말합니다.