[OS] 3-3. 단일 사용자 연속 기억장치 할당
단일 사용자 연속 기억장치 할당
- 초기 컴퓨터 시스템에서는 임의의 시간에 한 사용자만이 시스템을 사용하였으므로, 사용료가 비싼 편
- 오늘날의 공유 시스템(shared system)은 훨씬 복잡한 사용료 계산 알고리즘 이용
- 사용자 프로그램의 크기는 주기억장치의 용량보다 클 수 없으나, 오버레이(overlay) 기법에 의해서 주기억장치보다 더 큰 프로그램의 실행이 가능
- 오버레이 기법 : 프로그래머가 한정된 주기억장치를 확장하여 사용할 수 있는 방법을 제공하는 것
단일프로그래밍 환경에서의 문제점(1)
- 프로그램의 크기가 주기억장치의 가용 공간보다 클 경우
- 해결
- 중첩 구조 (overlay structure) 사용
- 컴파일러 및 링커, 로더의 지원 필요
단일프로그래밍 환경에서의 문제점(2)
- 사용자 프로세스로부터 커널을 보호하는 기법 필요
- 해결
- 경계 레지스터 (bound register) 사용 : 사용자 프로세스가 접근하는 주소값이 경계 레지스터의 주소값보다 큰 경우에만 허락
단일프로그래밍 환경에서의 문제점(3)
- 시스템 자원의 낭비
- 시스템 내에 프로세스가 하나만 존재함으로써 자원의 낭비초래
- 시스템 성능의 저하(performance degradation)
- 해결
- 다중 프로그래밍 기법 사용 : 동시에 여러 프로그램들이 적재되도록 함
시스템 보호
- 운영체제가 사용자로부터 보호
- 사용자 프로그램이 운영체제 영역에 들어가려고 하면 명령어의 실행은 중단되고 적절한 오류 메시지와 함께 작업을 종료
- 사용자가 입출력과 같은 서비스를 받기 위해 때때로 운영체제에 들어갈 필요가 있을 수 있는데, 이때에는 슈퍼바이저 호출(SVC: supervisor Call) 명령과 같은 특별한 명령어를 사용하여 사용자가 운영체제에 서비스를 요청