체인 로딩
Chain loading이 글은 검증을 위해 인용구가 추가로 필요하다. – · · · (2013년 10월) (이 템플릿 하는 과 시기 |
체인 로딩(chain loading)은 컴퓨터 프로그램이 현재 실행 중인 프로그램을 새로운 프로그램으로 대체하기 위해 사용하는 방법으로, 공통 데이터 영역을 사용하여 현재 프로그램의 정보를 새 프로그램으로 전달한다.그것은 컴퓨팅의 몇 가지 영역에서 발생한다.
체인 로딩은 오버레이의 사용과 유사하다.그러나 오버레이와는 달리 체인 로딩은 현재 실행 중인 프로그램 전체를 대체한다.오버레이는 일반적으로 실행 중인 프로그램의 일부만 대체한다.오버레이의 사용과 마찬가지로, 체인 로딩의 사용은 애플리케이션의 I/O 로드를 증가시킨다.
부트 관리자 프로그램에서 체인 로드
운영 체제 부트 관리자 프로그램에서 체인 로딩은 부트 관리자에서 부트 섹터로 제어권을 전달하는 데 사용된다.대상 부트 섹터는 디스크에서 로드되어 부트 관리자 자체가 부트스트랩되어 실행된 메모리 내 부트 섹터를 대체한다.
Unix의 체인 로드
Unix(및 Unix 유사 운영 체제)에서는 system call을 사용하여 체인 로딩을 수행한다.현재 프로세스의 프로그램 이미지는 완전히 새로운 이미지로 대체되고 현재 스레드는 해당 이미지의 실행을 시작한다.공통 데이터 영역은 프로세스의 환경 변수로 구성되며, 시스템 호출에 걸쳐 보존된다.
Linux에서 체인 로드
게다가() 프로세스 레벨 체인 로딩 리눅스는 전체 운영 체제 커널을 다른 버전으로 대체하기 위해 kexec() 시스템 호출을 실행한다.새 커널은 마치 전원을 켠 상태에서 시작된 것처럼 부팅되며 실행 중인 프로세스가 보존되지 않는다.
BASIC 프로그램의 체인 로딩
BASIC 프로그램에서 체인 로딩은CHAIN
성명서(또는, Commodore BASIC에서, Commodore BASIC에서는,LOAD
문)은 현재 프로그램이 종료되고 체인으로 연결된 프로그램이 로드 및 호출되도록 한다(이를 지원하는 BASIC의 방언에서는 새 프로그램의 첫 번째 행의 기본값 대신 실행이 시작될 라인 번호를 지정하는 선택적 매개 변수).공통 데이터 영역은 사용 중인 BASIC의 특정 방언에 따라 달라진다.예를 들어 BBC BASIC에서는 모든 변수의 특정 부분 집합만이 체인에 걸쳐 보존된다.다른 BASIC에서는COM
문장은[1] 와 함께 사용할 수 있다.CHAIN
체인 작업에서 공통 데이터로 보존할 변수를 지정한다.
체인 로딩은 BASIC 프로그램이 이용 가능한 프로그램과 가변 메모리에 들어갈 수 있는 것보다 더 많은 프로그램 코드를 실행할 수 있게 해준다.따라서 BASIC으로 작성된 애플리케이션은 다음과 같은 일련의 협력 프로그램을 통해 작업 메모리의 크기보다 훨씬 클 수 있다.CHAIN
프로그램 흐름이 전체 애플리케이션 내에서 이동함에 따라 그들 사이에서 앞뒤로 움직인다.
FORTRAN 프로그램의 체인 로드
Fortran의 많은 버전에는CALL CHAIN
또는CALL LINK
CONMANY 스토리지의 내용을 보존하면서 체인 로딩을 수행하는 문장.[2]이것은 관련이 없는 것과 같지 않다.LINK
GNU 포트란의 서브루틴.[3]
OS/360의 체인 로딩
OS/360 및 후속 작업자는XCTL
("전송 제어"의 경우) 매크로 체인 로딩.운영체제의 메모리 관리 때문에 이것은 메모리에 있는 호출 프로그램의 코드를 교체하거나 교체하지 않을 수 있다.
참고 항목
- 체인(CONFIG).SYS 지시어)(여러 CONFIG를 실행하는 체인.DR-DOS의 SYS 파일)
참조
- ^ "HP 2000/Access BASIC" (PDF). bitsavers.trailing-edge.com. HP. pp. 11–25. Retrieved 16 January 2020.
- ^ IBM Corporation (1974). IBM 1130/1800 Basic FORTRAN IV Language (PDF). p. 14.
- ^ "The GNU Fortran Compiler". Retrieved Oct 27, 2013.
- "chain loading". GNU GRUB manual.
- Orlando Lee Stevenson (December 1985). "Commodore Program Chaining". Compute! (67): 114.
- Raymond, Eric Steven. "Multiprogramming: Taxonomy of Unix IPC Methods: Wrappers and Bernstein Chaining". The Art of Unix Programming.