종료 후 상주 프로그램

종료 후 상주 프로그램()은 도스 컴퓨터 운영 체제에서 시스템에 제어권을 반환하는 컴퓨터 시스템 호출이며, 프로그램을 끝내더라도 프로그램이 메모리에 계속 상주해 있음으로써 나중에 하드웨어나 소프트웨어 인터럽트에 의해 참조할 수 있게 하는 방식이다. 도스 운영 체제 상에서 제한된 멀티태스킹을 가능하게 하는 하나의 방법으로 생각할 수 있다. 수많은 하드웨어 드라이버 프로그램들은 TSR의 형태를 취했으며, 여러 유틸리티와 바이러스들이 이러한 형태를 취하기도 했다.

MS-DOS에서는 한 번에 오직 하나의 프로그램만 실행될 수 있으며, 종료될 때는 보통 시스템 호출 INT 21h/4Ch를 호출하여 기본 셸 프로그램인 COMMAND.COM에게 제어권을 돌려 주었다. 이렇게 종료할 경우 프로그램이 사용하고 있던 메모리와 자원들은 모두 초기화되지만, INT 21h/31h를 호출하여 종료할 경우 프로그램의 일부가 64kb 기본 메모리에 계속 남기 때문에 이를 통해 종료 후 상주 프로그램이 구현되었다.

쇠퇴 
640 KB의 장벽을 넘어서는 도스 확장자(초기 예시는 둠 (1993년 비디오 게임))를 사용한 게임의 개발과 함께 TSR과 관련한 문제 대부분이 사라졌으며 마이크로소프트 윈도우, 특히 윈도우 95(및 후속 운영 체제인 윈도우 98)가 널리 채택되면서 대부분의 TSR이 불필요하게 되었으며 일부 TSR은 호환이 불가능하게 되었다. TSR이 구식화되었음에도 Win16 애플리케이션이 TSR과 같은 트릭(인터럽트 서술자 테이블/IDT 패치 등)을 수행할 수 있었는데, 이는 윈도우가 이를 허용했기 때문이다.

윈도우 미와 윈도우 NT(후자의 경우 윈도우 XP 이상의 소비자용 운영 체제를 포함)는 보호 모드와 롱 모드로 항시 동작하므로 TSR이 기능하는데 필요한 리얼 모드로의 전환 기능이 비활성화되었다. 그 대신 이 운영 체제들은 메모리 보호와 선점 멀티태스킹 기능을 갖춘 현대의 드라이버와 서비스 프레임워크를 갖추고 있어서 여러 프로그램들과 장치 드라이버들이 특수한 프로그래밍 트릭의 필요 없이 동시에 실행이 가능하게 되었다. 커널과 커널의 모듈들은 예외적으로 인터럽트 테이블의 수정을 책임지게 되었다.

같이 보기 
 데몬 (컴퓨팅)
 COMMAND.COM
 CONFIG.SYS
 AUTOEXEC.BAT

각주

외부 링크 
  comp.os.msdos.programmer FAQ - TSR 유틸리티 작성 방법
  A to Z of C; a free book on DOS programming in C; Chapter 27 - TSR programming

도스 기술
도스 메모리 관리