운영체제

Seung jun Cha·2023년 4월 20일
0

1. 개념

  • 사용자와 하드웨어 간의 인터페이스를 제공하고 하드웨어의 자원(=리소스)을 관리, 프로그램을 실행하는 역할을 한다.

2. 구조

  • Shell : 사용자와 운영체제간의 인터페이스로 사용자가 커널에 명령을 내리는 용도로 사용된다. Windows에서는 CMD(Command Prompt)와 PowerShell이 주로 사용된다.

  • System Call

    • 응용프로그램과 커널 간의 인터페이스로 응용 프로그램이 운영체제의 서비스를 호출하기 위해 사용하는 인터페이스이다.
      프로그램이 시스템 콜을 호출하면 제어가 커널로 넘어와서 커널모드가 실행된다. 커널은 내부에 기능별로 고유한 번호를 할당하고 있고, 커널은 그 번호에 맞는 서비스 루틴을 호출한다. 서비스 루틴을 모두 처리하고 나면 커널모드에서 사용자 모드로 다시 전환된다.
      (시스템 콜 호출 - 커널모드 - 고유번호 호출 - 사용자모드)

    • 운영체제가 직접 하드웨어 자원을 제어하면, 여러 프로그램이 동시에 하드웨어 자원을 사용하려고 할 때 충돌이 발생할 수 있기 때문에, 운영체제는 시스템콜을 통해 운영체제의 권한과 보안 정책을 따라 프로그램들이 운영체제의 서비스를 사용하도록 한다.

    • 시스템 콜에는 프로그래밍 언어별로 구현된 시스템 콜 API가 있는데, API 내부에는 필요시 해당 운영체제의 시스템콜을 호출하는 API가 있다
      따라서 응용 프로그램을 실행하면 다음 과정을 거쳐 실행된다
      응용프로그램 실행 -> 해당 api 호출 -> 시스템 콜 호출 -> 커널모드로 변경 후 OS내부에서 명령 실행 -> 프로그램 실행

  • CPU Protection Rings

  • 운영체제에서 시스템 자원에 대한 접근을 제한하는 보안 메커니즘이다.
    Ring 0부터 3까지 있고 숫자가 낮을수록 더 강한 권한을 가진다

    • Ring 0는 커널모드로 운영체제의 모든 기능에 접근할 수 있다. 커널모드를 실행하려면 반드시 시스템 콜을 거쳐야한다.

    • 어떤 모드를 사용할 지 비트에 담아서 보내면 cpu가 실행 커널 또는 사용자 모드를 실행한다.

    • 컴파일러의 코드를 차례대로 읽으면서 필요에 따라 자동으로 사용자모드과 커널모드로 전환되면서 읽는다

  • 운영체제와 프로그램과의 관계
    OS가 Application과 관계가 전혀 없는 것은 아니다

  • 커널 : 운영체제의 핵심으로 하드웨어 자원을 관리하고 운영체제의 기능을 수행하는 소프트웨어이다.
    (각 프로그램이 사용할 cpu양, 메모리 용량 할당, 저장매체의 어디에 어떻게 저장할지, 키보드/마우스의 움직임 전달여부까지 모두 결정한다.
    하드웨어 관리 및 추상화 : 디바이스 드라이버만 하드웨어에 관여를 하고 사용자는 파일 저장매체의 종류를 고려하지 않고 동일한 방식으로 사용이 가능하다. 즉 하드웨어에 종속적인 작업을 할 필요가 없다.
    프로세스와 스레드 관리)

-참고
https://gona.tistory.com/37

0개의 댓글