프로그래밍/컴퓨터구조 및 운영체제

운영체제 큰 그림

gameObject 2023. 11. 12. 15:24
728x90

운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나이다.

Windows / Android / Mac OS / IOS / Linux 등이 있다.

 

운영체제의 기능은 다양하지만 가장 핵심적인 서비스는

자원에 접근하고 조작하는 기능과 프로그램이 올바르고 안전하게 실행되는 기능들을 이야기한다.

 

이런 운영체제의 핵심 서비스를 담당하는 것이 커널(kernel)이다.

 

** 운영체제에는 속하지만 커널에는 속하지 않는 기능

- 그래픽 유저 인터페이스

- 커멘드 라인 인터페이스

이렇게 크게 두가지 있다. -> 사용자와 컴퓨터 간의 통로일 뿐 운영체제의 핵심 기능(커널)은 아니다.

 


이중모드와 시스템 호출

운영체제는 응용프로그램들이 자원(CPU, 메모리, SSD, HDD등)에 접근하려고 할때 오직 자신을 통해서만 접근하도록 하여 자원을 보호한다.

이중모드

- CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널모드로 구분하는 방식이다.

- 사용자모드

  1) 운영체제 서비스를 제공받을 수 없는 실행 모드

  2) 커널 영역의 코드를 실행할 수 없는 실행 모드

  3) 자원 접근이 불가하다.

- 커널모드

  1) 운영체제의 서비스를 제공받을 수 있는 실행 모드

  2) 자원 접근을 비롯한 모든 명령어 실행이 가능하다.

 

이는 슈퍼바이저 플래그를 통해 알수 있다.

-> 커널모드로 실행중인지, 사용자 모드로 실행중인지를 나타낸다.

-> 슈퍼바이저 플래그가 1일 경우 커널모드로 실행중임을 의미한다.

 

시스템호출

- 커널 모드로 전환하여 실행하기 위해 호출한다.

- 일종의 소프트웨어 인터럽트이다. (시스템 호출이 처리되는 방식을 하드웨어 인터럽트 처리 방식과 유사)

커널모드와 사용자 모드를 굉장히 많이 왔다갔다 하며 시스템 호출의 함수는 운영체제마다 정해져 있다.

 

 

728x90