Developing Myself Everyday
article thumbnail

운영체제는 응용 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램이다.

운영체제는 하드웨어와 응용 프로그램 사이에서 다른 응용 프로그램들이 유용한 작업을 할 수 있도록 환경을 제공한다.

 

다르게 표현하자면, 하드웨어를 감추고 겉으로 다른 프로그램들을 지원해준다고 생각할 수 있다. 이는 프로그램을 사용하는 사람이 편하게 쓸 수 있게 각종 기반 작업을 지원한다는 것으로 이해할 수 있다.

 

 

 

운영체제를 공부해야 하는 이유


사실 이 질문에 대한 대답은 한번이라도 오류 메시지를 접해 보았다면 쉽게 답할 수 있다. 대다수의 오류 메시지들이 운영체제로부터 발생한다. 우리가 작성한 코드가 하드웨어에서 실행되지 못한다면 운영체제는 오류 메시지를 띄워주게 된다.  프로그래밍 문법만 배워서는 해결할 수 없는 부분이기에 우리는 운영체제를 제대로 알 필요가 있다.

 

 

이중 모드


이중 모드란 운영체제가 응용 프로그램들이 자원에 접근할 때 자원 접근을 제한하여 자원을 보호하는 기법이다.

  • 커널 모드 - 시스템의 모든 메모리에 접근 할 수 있고 모든 CPU 명령을 실행할 수 있는 모드.
  • 사용자 모드 - 시스템 데이터에 제한된 접근만이 허용되며 하드웨어를 직접 접근할 수 없다.

이중 모드의 변경 과정

  1. 컴퓨터 부팅 과정 - 커널 모드
  2. 애플리케이션 실행 과정 - 커널 모드
  3. 애플리케이션 실행중 - 사용자 모드
  4. 인터럽트 발생 후 처리 과정 - 커널 모드
  5. 인터럽트 처리 후 - 사용자 모드

Reference By 'Operating System Concepts'

사용자 모드로 실행되는 프로그램이 운영체제 서비스를 제공받으려면 커널 모드로 전환되어야 한다. 이때 운영체제 서비스를 받기 위한 요청을 시스템 호출(System Call) 이라고 한다. 시스템 호출은 일정의 인터럽트로 위의 그림을 보게 되면 어떤 식으로 사용자 모드에서 커널 모드로 전환 되는지 알 수 있다.

profile

Developing Myself Everyday

@배준형

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!