종료 후 상주 프로그램

도스 컴퓨터 운영 체제에서 시스템에 제어권을 반환하는 컴퓨터 시스템 호출

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

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

쇠퇴 편집

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

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

같이 보기 편집

각주 편집

  1. 정보통신용어사전: 종료 후 상주 프로그램 - 기억 장치에 적재되어 실행한 후에도 기억 영역을 해방시키지 않고 그대로 상주하면서 키보드의 입력에 의해 다시 실행을 기동시킬 수 있는 프로그램. 다른 프로그램을 기동하기 전에 이 프로그램을 종료시킬 필요는 없으나 다른 프로그램을 위하여 사용할 수 있는 기억 영역의 크기는 감소된다.
  2. 릭 메이버리, BEAT THE BUG -- COMPUTER VIRUSES Archived 2013년 9월 28일 - 웨이백 머신, Accessed 2012-02-09
  3. [1] HelpPC reference: INT 21,0 - Program Terminate

외부 링크 편집