본문/내용
3. 운영체제의 서비스
운영체제는 수많은 서비스를 제공한다. 가장 낮은 단계에서 시스템 호출은 수행 중인 프로그램이 운영체제에게 직접 요청을 할 수 있도록 한다. 더 높은 단계에서 명령어 해석기는 사용자가 프로그램을 작성하지 않고 요청할 수 있는 메커니즘을 제공한다. 명령어들은 카드나 단말기로 직접 줄 수도 있다. 시스템 프로그램은 사용자가 요청을 만족하게 해주기 위한 또 다른 메커니즘을 제공한다. 요청의 형태는 요청의 수준에 따라 다르다. 시스템 호출 수준은 프로세스 제어, 파일과 장치 조작 같은 기본적인 기능들을 제공해야 한다. 더 높은 수준의 요청들이 명령어 해석기 혹은 시스템 프로그램에 의해 만족되는데 일련의 시스템 호출로 바뀐다. 시스템 서비스는 여러 범주, 즉 프로그램 제어, 상태 요청, 그리고 입출력 요청으로 분류될 수 있다. 프로그램 오류는 서비스에 대한 묵시적인 요청으로 간주할 수 있다. 일반적으로 운영체제는 인터럽트 중심이다. 운영체제의 각기 다른 부분은 여러 인터럽트, 트랩들, 그리고 시스템 호출의 각각에 대응하는 것 들이다.
4. 운영체제의 프로세스 관리
프로세스 관리의 주된 기능은 작업 스케줄링, 프로세스 스케줄링 그리고 트래픽 컨트롤이다. 작업 스케줄러는 매우 간단하고 심지어는 수작업으로 처리되는 알고리즘에서 시스템의 사용 가능한 자원뿐만 아니라 처리를 기다리는 작업의 혼합을 고려한 복잡한 다중 스케줄러에 이르기까지 존재한다. 단일 프로세스 운영 체제나 단순 우선 프로세서 스케줄러는 프로세스 스케줄링 알고리즘에서 사용 가능한 최적화의 같은 정도를 제고하지 않게 된다. 만약 작업 스케줄러가 이미 과 부화된 프로세서 스케줄러에 대해 더 많은 작업들을 덤프 시키도록 한다면 시스템 활용도는 아주 크게 고통을 받게 된다. 프로세스간 통신과 동기화에 관련된 대부분의 문제를 해결하기 위해서 필요로 하는 상당한 연구와 조사가 필요하다. 이 같은 특징은 지금의 모듈과 운영체제에 매우 중요한 것이다.
5…