I/O

Sung Hwi Lee·2020년 9월 28일
0

운영체제

목록 보기
2/2

🖋 # 게시글의 내용 중 틀린 부분이나 지적해주실 부분을 댓글로 알려주세요! #
🖋 # 겸손히 배우며 성장하겠습니다! #

인터럽트(Interrupt)

인터럽트란 프로그램 실행 중 급한 작업 혹은 예외 상황이 발생해 CPU에게 작업 중이던 것을 멈추고 해당 작업을 수행하도록 하는 요청하는 것이다.


즉, CPU의 할당을 받아 작업 루틴을 수행하기 위해 다른 실행 중인 프로그램을 멈추고 대기 중이던 작업들을 재치고 새치기하는 것이다.

🤔 그럼 왜 인터럽트가 필요한가?

CPU가 너무 빨라서 그렇다.
I/O 작업 속도가 CPU 연산 속도보다 현저히 느리기 때문에 마냥 CPU를 놀리고 있을 수만은 없다.
그래서 오래 걸리는 I/O 작업을 하는 동안 CPU는 다른 작업들을 수행하고 I/O 작업이 완료되면 이를 알리기 위해 CPU에게 인터럽트를 발생시켜 해당 작업이 완료됨을 알린다.

갑자기 PC에 오류가 생겨서 그렇다.
갑자기 정전이 되어 전원이 나가는 경우, 하드웨어에 오류가 있는 경우, 프로그램의 오류, 혹은 잘못된 메모리 참조 등 다양한 오류에 대응하기 위해 인터럽트를 발생시킨다.

인터럽트 종류

📍 외부 인터럽트

하드웨어 고장, 전원 off, I/O 수행 및 완료 등...

📍 내부 인터럽트

프로그램 오류, 오버/언더 플로우, 메모리 참조 오류 등...

📍 소프트웨어 인터럽트

프로그램 명령중 요청에 의한 것으로 대표적으로 감시 프로그램을 호출하는 SVC 인터럽트가 있다. (이건 잘 모르겠다.)


이중 모드(Dual Mode)


출처 - Operating System Concepts (a.k.a 공룡책)

지난 글에서 작성한 운영체제의 큰 역할 중 한 가지인 컴퓨터 자원 관리

사용자가 운영체제에게 작업을 요청하는 방식으로 운영된다.

하였다.
바로 이러한 동작이 이중 모드를 통해서 이루어진다.

User Mode (mode bit = 1)

사용자가 사용하는 프로그램 실행 중인 상태.
예를 들어 워드 프로그램에서 내가 쓴 글을 출력하기 위해 프린트 하기를 눌렀다.
여기까지는 사용자단에서 동작하므로 User mode의 영역에 속하게 된다.
( 이때 mode bit라는 것이 있는데 이중 모드 중 현재 상태가 어떤 모드에 속하는지를 알려주는 bit로써 사용자 모드일 경우 bit = 1, 운영체제(커널) 모드일 경우 bit=0가 된다. )

Kernel Mode (mode bit = 0)

운영체제(커널)가 컴퓨터 자원을 안전하고 효율적으로 사용하기 위해 작업을 수행하고 있는 상태.
사용자가 프린트 하기를 눌러 프린터에게 I/O 작업을 요청하였고 운영체제가 이를 대신 수행하고 있는 Kernel mode 상태이다.
운영체제(커널)는 프린트 작업을 워드 프로그램으로 부터 시스템 호출(System Call)을 통해 전달 받고 프린터에게 해당 작업을 요청하고 응답받게 된다.

이러한 모드 분리를 통해 컴퓨터 자원은 안전하게 운영체제에 의해서만 사용되게 된다.

특권 명령 (Privileged Instruction)

컴퓨터 자원을 보호하기 위해 오직 운영체제만이 접근할 수 있는 권한이 부여된 명령이다.
I/O 사용, 메모리 사용, CPU 사용같이 함부로 접근이 부여되면 안되는 명령에 대해서 운영체제는 Kernel mode에서만 접근할 수 있게 특권 명령을 소유하고 있다.
이를 통해서 사용자의 입장에서는 특권 명령이 없기 때문에 함부로 해당 컴퓨터 자원에 접근할 수 없게 되므로 안전하게 보호할 수 있다.

시스템 호출(System Call)

User → Kernel에게 시스템 자원을 활용한 작업을 수행하도록 호출하는 것이다.
말 그대로 시스템을 호출하는 것.

크게 다음과 같은 세 가지 방식으로 수행된다.

📍 Parameter를 CPU register에 전달하는 방식
📍 Parameter를 프로그램 Stack으로 전달하는 방식
📍 메모리에 저장 후 해당 주소를 CPU register에 전달(Linux/Solaris 방식)하는 방식


결론

결국, 이중 모드를 통해 운영체제에게 대신 작업을 요청함으로써 안전하고 효율적으로 PC를 관리 하고 운영할 수 있는 것이다.

profile
🎞 말보다는 행동과 기록으로 - 취업준비/백엔드/서버/분산

0개의 댓글