운영체제/개념

운영체제 연산

chjs93 2020. 6. 6. 02:11

운영체제 개념 포스팅중에 2번째로 올린 내용은 운영체제의 구동방식이 인터럽트 라는 것을 언급했었다.

또한 cpu가 처리해야할 어떤 작업은 '사건'이라는 것에 의해 인터럽트(또는 트랩)를 발생시키며 신호를 보낸다.

 

컴퓨터 시스템(하드웨어, 소프트웨어)의 자원을 사용하는 주체가 운영체제와 사용자가 있다고 가정하에 컴퓨터 시스템은 적절하고 안정적인 동작을 취해야 하며 그 방법으로는 다음이 존재한다.

 

이중연산모드

운영체제의 적절한 동작을 보장하기 위해 운영체제 코드와 사용자 정의 코드를 구분하여 실행할 수 있는 하드웨어 기능이다.

다시 말해 두개의 분리된 연산 모드 (커널모드 or 사용자모드) 로 나누어 비트를 할당한다 커널은 0, 사용자는 1 이라는 구분을 지어 놓고 사용자가 특정 프로세스를 실행함으로써 시스템 호출을 했을 시 (운영체제에게 일을 시켰을때) 사용자 모드 1 에서 커널모드 0으로 변환후 제어권을 넘겨 커널 작업을 수행하고 다시 커널모드 0에서 사용자모드 1로 전환하고 다시 사용자에게 제어권을 전달하는 방식이다.

 

이런 방법을 사용하는 이유는 시스템작업 같이 중요한 작업에 불법적인 명령이 들어왔을 때 모드를 한번 확인해주는 과정이 있으면 안전한 제어를 보장할 수 있기 때문이다. 이 불법을 구분할 수 없다면 악성 명령으로 프로그램이 운영체제를 지워버리거나, 여러 프로그램이 한 장치에 동시적으로 기록하는 것과 같은 문제를 초래할 수 있다.

 

모드의 개념은 두개 이상으로 확장 할 수 있다. 가상화를 지원하는 cpu, 즉 가상 기계 관리자virtual machine manager 는 가상화 관리 소프트웨어가 제어하고 있는지에 대한 모드(비트값)을 가진다.

인텔의 64 계열의 cpu는 네 개나 되는 수준을 지원하기도 한다.

 

 

타이머

컴퓨터 시스템의 안전한 동작을 보장하기 위해 사용자 프로그램이 무한루프에 빠지거나 시스템 호출을 못하는 경우 즉 커널 모드 0 으로 변환하지 못하는 상황을 타이머로 방지 할 수 있다.

타이머를 지정하여 계수기의 값이 0 이하 음수가 되었을 경우 프로그램을 강제로 종료 시키는 작업을 할 수 있다.