1. 프로세스 관리: 여러개의 프로세스가 충돌 없이 원활하게 수행할 수 있도록 관리한다
2. 메모리 관리: 한정된 용량의 주 기억장치에 여러개의 프로그램을 필요에 맞게 효율적으로 사용할 수 있도록 관리한다
3. 저장공간 관리(파일시스템): 파일시스템 기능을 통해 파일을 관리하고 디스크 관리 기능을 통해 보조 기억 장치를 관리한다
4. 디바이스 관리(드라이버): 컴퓨터에 연결된 입출력 장치 및 주변 하드웨어 장치를 인식하고 관리 및 제어한다
5. 네트워크: 프로세스간 정보 교환이 필요할 때에 네트워크를 통해 수행한다
: 컴퓨터가 구동을 시작하기 위해 수행하는 초기 프로그램
시스템에 전원이 인가되었을 때, 하드웨어를 초기화하고, 하드웨어에 있는 OS를 메모리에 로드한다. OS가 저장된 메모리의 첫번째 주소 값을 PC에 넘겨주어 OS 부팅을 실행한다.
OS가 저장돼있는 메모리의 첫번째 주소를 PC에 넘겨준다
: 처리해야 될 process가 많은 상황. 실행해야 할 program이 2개 이상인 상황.
한 program이 IO를 실행하는 오랜 시간 동안 CPU의 활용도를 높이기 위하여 다른 program들을 실행할 수 있도록 하기 위해 도입되었다
이와 같은 상황에서 만약 이 process가 실행되는 시간이 매우 길다면 해당 program은 CPU를 최대한 활용하여 신속하게 실행될 수 있지만, 다수의 사용자나 다수의 프로그램 관점에서 본다면 다른 process들이 기다려야 하는 시간(wating time)이 너무 길어지는 문제가 발생하여 시스템 전체의 효율이 낮아진다.
또한, IO subsystem 또한 중요한 자원(resource)인데, 이들의 활용도가 낮아져서 시스템 전체의 활용도가 저하된다.
Time Slice, Time Quantum, Time sharing
: 한 process가 실행될 수 있는 시간을 정해두고 그 시간이 지나면 다른 process로 넘겨준다. 즉, multitasking 방식의 스케줄링 알고리즘을 채택하는 것이 필요하다.
이 해결 방안에 필요한 하드웨어는 clock
[출처]
이강우 교수님 운영체제 수업