티스토리 뷰

프로그램 구조와 인터럽트

프로그램이 CPU에서 명령을 수행하려면 수행하려는 주소영역이 메모리에 올라가 있어야 한다.

이때 프로그램의 주소 영역은 코드, 데이터, 스택 영역으로 구분된다.

  • 코드 영역 : 작성된 프로그램의 함수들의 코드가 기계어 명령으로 변환되어 저장되는 부분
  • 데이터 영역 : 전역 변수 등 프로그램이 사용하는 데이터를 저장하는 부분
  • 스택 영역 : 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장하는데 사용되는 공간

인터럽트 동작 원리도 함수의 호출과 비슷하다.

프로그램의 경우 인터럽트가 발생하면 현재 수행중인 명령을 프로그램의 스택 영역에 저장한다.

이후 운영체제 내부 코드인 인터럽트 처리 루틴으로 넘어가서 인터럽트를 처리하고 다시 돌아와 이전 작업부터 수행한다.

이때 인터럽트에 의해 CPU를 선점당한 위치를 저장하기 위한 공간은 운영체제 커널 부분에 존재한다. 그것이 바로 PCB이다.

PCB(프로세스 제어 블록)는 현재 실행중인 모든 프로그램을 관리하기 위한 운영체제의 자료구조이다.

PCB는 인터럽트가 발생했을 때 그 프로그램의 어느 부분까지 수행했는지를 저장한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함