기본 콘텐츠로 건너뛰기

운영체제 :: 인터럽트에 관련하여

  인터럽트(interrupt)는 한국어로 새치기, 가로채기로 번역된다. 운영체제에서 인터럽트도 비슷한 의미가 되는데 단순한 가로채기가 아니라 제어권에 대한 이양이다. CPU가 사용자 프로그램에 의해 실행하는 도중 인터럽트가 발생하면, 이는 운영체제에게 제어권이 넘겨진다. 제어권을 넘겨받은 운영체제는 발생한 인터럽트를 해소한 후 사용자 프로그램에 다시 제어권을 이양하게 된다. 인터럽트가 발생하는 경우의 예는 다음과 같다. 입출력동작이 종료되었을 때 0으로 나누는 계산을 했을 때  부적절한 기억장치를 접근하고자 할때 운영체제에 서비스를 요구할 때 등.. 이다. 이외에도 다양한 인터럽트가 있을 수 있으며 이에 대한 자세한 설명은  http://rusy.tistory.com/entry/인터럽트interrupt 에 자세히 언급되어 있다.   인터럽트와 거의 비슷한 의미로 사용되는 트랩(trap)이 있다. 이는 소프트웨어 방식으로 구현하는 인터럽트와 거의 비슷한데, 예외를 검출할 수 있는 프로그램과 같이 생각하면 좋을 것 같다. 예로 시간초과등의 예외를 발생시키기 위해서 어떤 수를 클럭이 발생할때마다 누감할경우 수가 0이 되는 순간 인터럽트를 발생하게 할 수 있다. 인터럽트가 발생한후 이를 처리하고 복귀하는 과정은 다음과 같다. 인터럽트가 발생하면 운영체제는 하던일을 중단하고 중단된 상태정보를 저장한다. 제어를 인터럽트 벡터로 옮겨 요청한 인터럽트 처리 루팅의 주소를 가리키는 포인터를 참조한다. 포인터가 가리키는 주소로 이동하여 인터럽트 처리 루팅을 실행한다. 실행이 종료하면 저장 되었던 중단된 작업의 상태 정보를 복구하여 계속 실행한다. 위의 과정에서 인터럽트 벡터라는 용어가 나온다. 인터럽트 벡터는 일종의 인터럽트를 처리할 서비스들이 적힌 메뉴판이다. 해당되는 인터럽트 번호를 메뉴판에서 참고한후 메뉴판이 가리키는 서비스로 이동하여 해당 서비스를 통해 인터럽트를 처리한다.

가상기계에 대해서

가상기계란? (Virtual Machine) 한 컴퓨터의 하드웨어를 추상화 하여 다수의 다른 실행환경을 제공하도록 한 것이다. 각각의 실행환경은 자신만의 개별적 컴퓨터를 사용하는 효과를 낸다. 즉 가상기계는 소프트웨어로 만들어낸 가상의 하드웨어들이다. 예로 Virtual Box, 윈도우 하이퍼V, VM ware 등이 있다. 가상기계는 실제 기계에 비해 다음과 같은 장점이 있다. 동일한 하드웨어를 공유하면서 다른 운영체제를 동시에 실행시킬 수 있다. 개발중 시스템의 정상동작을 보장하면서, 다른 운영체제의 시스템 개발이 이루어질 수 있다. 운영체제 연구와 개발을 위한 도구로 사용된다. 프로세스의 실행과정 가상기계를 사용하지 않을때 :  여러프로세스들이 하나의 실행환경에서 실행된다. 가상기계를 사용할 경우 : CPU스케쥴링과 가상메모리 기법을 사용함으로써 운영체제 호스트는 각 프로세스들이 자신의 전용 메모리를 갖는 효과를 가진다. 

운영체제 구성 요소

운영체제는 프로그램이 실행되는 환경을 제공해준다. 운영체제가 제공하는 것으로는 크게 서비스, 인터페이스, 구성요소와 그들간의 상호 연결로 나눠 관점을 달리 할 수 있다. 운영체제는 프로세스관리, 주기억장치 관리, 파일관리, 입출력시스템관리, 보조기억장치 관리, 네트워킹, 보호시스템의 요소로 구성된다. 프로세스 관리 프로세스란 메모리에 적재되어 실행중인 프로그램을 의미한다. 프로그램이 실행되기 위해서는 메모리, CPU시간, 입출력등 다양한 자원을 필요로 하는데 이런 자원을 관리하고 할당하는 역할을 운영체제가 한다. 주기억장치 관리 프로그램의 실행은 주기억장치에 적재되는 것으로 시작된다.  프로그램에게 메모리 공간을 할당하고, 이 과정에서 발생하는 빈 공간등에 관리를 하는 것이 운영체제의 역할이다. 파일관리 파일은 파일생성자에 의해 정의된 관련된 정보들의 집합체이다. 운영체제는 다른 형태의 정보저장장치들이 통일되게 운영될 수 있도록 단일화된 형태를 제공한다. 저장장치의 물리적이 특성은 논리적인 저장단위인 파일로 추상화 된다. 물리적 매체에 사상되며 저장장치를 통해 파일에 접근한다. 입출력 시스템 관리 사용자 프로그램은 특정장치에 대해서 단독으로 알고 있을 필요가 없다. 운영체제만의 장치구동기만이 특정장치의 정보를 가지고 있으며 드라이버에 요구를 통해 입출력 시스템을 이용할 수 있도록 한다. 보조기억장치 관리 보조기억장치의 관리는 다음과 같은 세부 요소를 가진다. 자유공간 관리 (빈공간을 관리한다) 저장장소 할당 (저장장소를 할당한다) 디스크 스케쥴 (프로세스가 요구할 경우 저장장소에 접근할 수 있는 기회를 스케쥴한다.) 네트워킹   분산시스템에 있어서 프로세서는 통신매체를 통해 통신하는데 시스템이 관리하는 여러가지 자원들에 접근할 수 있는 방법을 사용자에게 제공할 수 있다. 보호시스템   운영체제에서 보호란 다수의 사용자와 다수의 병행프로...

하드웨어를 보호하는 4가지 보호 방법 (하드웨어 보호)

대학원 기말고사중 공부한 자료   운영체제에서 하드웨어 보호란 사용자가 불법적인 명령을 수행하려하거나 비정상적인 접근을 발생시키려 하면 이를 감지하고 하드웨어를 비정상적인 작동을 방지하는 방법을 말한다. 이중모드 연산 (Dual-Mode Opreration)    하드웨어 보호방법 중 가장 먼저 언급되는 방법은 연산모드를 2가지 모드로 나누어 실행하는 방법으로 Dual-Mode Operation 즉, 이중모드 연산을 이용하는 것이다. 이는 CPU에서 지원해야 가능한 것인데 사실 인텔 8088 이후의 cpu들은 거의 이중모드연산을 지원한다고 한다.  이중모드 연산은 사용자 모드와 커널모드로 나누어 지며 모드비트라고 하는 현재의 연산상태를 나타내는 비트를 통해 구분된다.   사용자 모드는 특별한 권한이 없는 연산, 커널 모드는 특별한 권한이 있는 연산이다.  사용자 모드로 진행되는 프로그램이 사용자 모드비트를 가지고 운영체제를 변경하거나 다른 사용자의 프로그램을 변경하려 하거나 자신의 메모리 공간이 아닌 다른 공간을 침해하려 할 경우 트랩이나 인터럽트를 발생시킨다. 이때 모드비트는 커널모드로 변경되며 운영체제가 제어권을 가진다. 이를 통해 운영체제가 적절한 처리를 한 후 사용자 프로그램으로 제어권을 넘기는 행위를 할 수 있다. + 커널모드는. 특권모드, 모니터 모드라고도 한다. 입출력 보호(I/O Protection) 입출력에 대한 불법적인 행위를 막는 것으로 모든 입출력은 특권모드로 정의된다. 사용자가 입출력 권한을 운영체제에 요구하고 운영체제는 이에 대한 결과를 사용자 프로그램에 넘겨준다. 즉 입출력에 대한 과정은 운영체제가 관장하도록 하는 것이 입출력 보호이다. 기억장치 보호(Memory Protection) 사용자 프로그램은 특정 메모리 영역과 크기를 할당 받는다. 자신에게 할당받은 영역이상의 행위를 할 경우 이를 막아야 다른 프로세스의 과정에 간섭이 일어나...