운영체제1-(3)-운영체제의 구조 및 동작

mingmin·2021년 7월 17일
0

운영체제

목록 보기
3/4

1. 운영체제의 구조

  • 멀티프로그래밍: 운영체제는 위 그림처럼 메모리에 여러 작업을 올려 놓고, 하나를 선택하여 실행한다. 어떤 작업이 대기해야 하는 경우 CPU는 다른 작업을 처리한다. 이렇게 하면 CPU는 항상 바쁘게 일할 수 있으며, 사용률이 증가한다. 하지만 사용자와 컴퓨터 시스템의 상호작용은 제공하지 않는다.

  • 시분할 시스템(Time sharing): 멀티프로그래밍의 논리적 확장으로, 프로세스마다 작업 시간을 정해주고 매우 빠르게 전환함으로써 동시에 실행되는 것처럼 보인다.

    프로세스: 프로그램이 메모리에 로드되어 실행되는 것

    작업 스케줄링(Job scheduling): 작업이 메모리에 올라와야 하는데 메모리에 자리가 없을 때 실행

    CPU 스케줄링(CPU scheduling): 여러 작업이 동시에 실행될 수 있을 때, 먼저 실행할 작업을 선택하는 것

    가상 메모리(Virtual memory): 응답 시간을 보장하기 위해 사용, 물리적인 메모리의 크기보다 더 큰 프로그램을 실행할 수 있게 해줌


2. 운영체제의 동작

운영체제는 인터럽트 기반이다.

  • 각 인터럽트의 타입별로 운영체제의 개별 코드 세그먼트가 어떤 조치를 취해야 할지 결정함

  • 인터럽트를 처리하기 위해 인터럽트 서비스 루틴이 제공됨

  • 운영체제와 사용자는 하드웨어와 소프트웨어 자원을 공유함

    → 운영체제는 사용자 프로그램에서 발생한 오류가 다른 프로세스에 영향을 미치지 않도록 방지해야 함

Dual-Mode Operation

  • 운영체제와 사용자 프로그램의 실행을 구분하기 위해 모드가 나뉘어지고, 모드 비트로 나타낼 수 있음

    → 사용자 모드: 모드 비트가 1

    → 커널 모드: 모드 비트가 0

  • 사용자 프로그램에서 시스템 호출(System call)을 통해 운영체제에 서비스를 요청함

    → 모드 비트의 상태가 0으로 변경되고, 커널 모드로 전환

    → 시스템 호출을 실행한 뒤 모드 비트의 상태가 1로 변경되고, 사용자 모드로 전환

  • 이러한 이중 모드는 잘못된 사용자로부터 운영체제를 보호함

    → 위험요소가 있는 명령을 특권 명령(Privileged instruction)으로 지정

    → 하드웨어는 커널모드에서만 특권 명령을 실행함

    → 만약 유저모드에서 특권 명령을 실행하려 하면 하드웨어는 이것을 실행하지 않고 운영체제에 트랩을 보냄

Timer

  • 운영체제는 CPU의 제어권을 유지해야 하고, 사용자 프로그램이 무한루프에 갇혀 운영체제에 제어권을 반환하지 않는 일이 없도록 해야 함

    → 이를 위해 타이머(Timer)를 사용

  • 타이머의 카운터가 0이 되면 인터럽트가 발생

  • 타이머를 사용하여 사용자 프로그램이 너무 오래 실행되는 것을 방지할 수 있음


참고자료

Peter B. Galvin, Abraham Silberschatz, Greg Gagne - operating system concepts 9th edition

profile
회고하는 공간.

0개의 댓글

관련 채용 정보