티스토리 뷰
시스템 콜
프로그램에서 실행되는 시스템 콜은 함수 호출이긴 하지만 프로그램 자기 자신의 주소 공간에 존재하는 것이 아닌 커널에 존재하는 함수를 호출하는 것이다.
일반적인 함수 호출이 자신의 스택에 복귀 주소를 저장한 후 호출된 함수 위치로 점프하는 것임에 비해 시스템 콜은 주소 공간 자체가 다른곳으로 이동해야 하므로 일반 함수 호출과는 다른 방법을 사용한다.
그 방법은 프로그램 자신이 인터럽트 라인에 인터럽트를 세팅하라는 명령을 통해 이루어진다. 이는 프로그램이 스스로 인터럽트 라인을 세팅한다는 점만 다를 뿐 일반적인 인터럽트의 발생과 동일한 방법이라 할 수 있다.
어떤 프로그램이 CPU를 할당받고 명령을 수행도중 중간에 CPU를 선점당하는 경우 두가지로 나뉘게 된다.
- 타이머에 의해 인터럽트가 발생한 경우
- 입출력 요청을 위해 시스템 콜을 한 경우
'OS' 카테고리의 다른 글
[운영체제] 인터럽트의 원리 (7) - 프로세스의 상태 (0) | 2019.04.04 |
---|---|
[운영체제] 인터럽트의 원리 (5) - 인터럽트 (0) | 2019.04.04 |
[운영체제] 인터럽트의 원리 (4) - 사용자 프로그램이 사용하는 함수 (0) | 2019.04.04 |
[운영체제] 인터럽트의 원리 (3) - 프로그램의 실행 (0) | 2019.04.04 |
[운영체제] 인터럽트의 원리 (2) - 컴퓨터 시스템의 작동 개요 (0) | 2019.04.04 |