본문 바로가기
운영체제

[OS] 인터럽트 - 운영체제와 정보기술의 원리 4장(2/2)

by BeforB 2021. 12. 5.
728x90

 

 

 

반효경 교수님의 [운영체제와 정보기술의 원리] 4장 프로그램의 구조와 실행 중

 

 

[OS] 운영체제와 정보기술의 원리 4장(1/2) - 프로세스

반효경 교수님의 [운영체제와 정보기술의 원리] 4장 프로그램의 구조와 실행 중 1. 프로그램의 구조와 인터럽트 프로그램이 CPU에서 명령을 수행하려면 해당 명령을 담은 주소 영역이 메모리에

beforb.tistory.com

 

 

 

 

 

 

5. 인터럽트

CPU는 매번 PC가 가리키는 곳의 명령만 수행

CPU를 회수하기 위해서는 인터럽트 매커니즘이 필요함

 

인터럽트 프로세스

CPU는 매 명령 수행 후 인터럽트 라인 세팅 여부 체크

→ 현재 수행하던 프로세스를 멈추고 OS의 인터럽트 처리루틴으로 이동

→ 인터럽트 처리 수행

→ 인터럽트 발생 직전의 프로세스에게 다시 CPU 제어권이 넘어감

 

 

인터럽트 중 또 다른 인터럽트가 발생할 경우

원칙적으로는 인터럽트 처리 중 또다른 인터럽트가 발생하는 것 금지 (데이터 일관성이 유지되지 않을 수 있으므로)

But, 더 급하거나 CPU를 당장 사용해야 하는 등 우선순위가 높은 인터럽트가 발생 시 처리 중이던 인터럽트를 저장하고 우선순위가 높은 인터럽트를 먼저 수행

 

 

 

 

6. 시스템 콜(System Call)

모든 프로그램은 독자적인 주소공간을 가지고 거의 모든 함수 호출은 자신의 주소 공간 내에서 호출이 이루어짐.

 

시스템 콜

함수호출이나 자신의 주소공간이 아닌 커널의 주소공간의 함수를 호출. 

자신의 주소 영역을 아예 벗어나기 때문에 인터럽트와 동일하게 동작.

입출력 컨트롤러가 아닌 프로그램이 스스로 인터럽트 라인을 세팅함

 

 

사용자 프로그램이 CPU를 할당받아 명령을 수행하다가 빼앗기는 경우

타이머

특정 프로그램에 의해 CPU가 독점되는 것을 방지하기 위한 하드웨어. 시분할 시스템 구현을 위한 필수 요소.

 

시스템 콜

사용자 프로그램이 커널 주소영역의 함수 호출하는 것. 소프트웨어 인터럽트의 일종

 

 

 

 

7. 프로세스의 두 가지 실행 상태

사용자 모드의 실행 상태(user mode running)

사용자 프로그램이 자신의 주소 공간에 정의된 코드를 실행하는 것

 

커널 모드의 실행 상태(kernel mode running)

사용자 프로그램이 커널의 시스템 콜 함수를 실행하는 것.

커널의 코드가 실행되더라도 시스템 콜에 의한 실행은 '커널의 실행상태'가 아니라 '사용자 프로그램의 실행 상태'라고 한다.

 

 

프로그램의 수행 과정에서의 모드 구분

사용자 정의 함수, 라이브러리 함수 호출(사용자 모드)

→ 시스템 콜(커널 모드)

→ 시스템 콜 완료 후 다시 복귀하여 이전에 진행하던 함수 실행(사용자 모드)

→ 프로그램 실행 끝(커널 모드로 진입 후 프로그램 종료)

 

 

 

 

 

 

 

728x90

댓글