[혼공학습단 9기] 혼공컴운 4주차 챕터9 : 운영체제 시작하기

낙원·2023년 2월 3일
0
post-thumbnail

💻운영체제를 알아야 하는 이유

🖥운영체제란

  • 시스템 자원 / 자원
    프로그램 실행에 필요한 요소
    모든 프로그램은 실행되기 위해 반드시 자원이 필요하다.

운영체제

  • 실행할 프로그램에 필요한 자원 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램

-> 프로그램이기 때문에 메모리에 적재되며 메모리 내 커널 영역이라는 공간에 따로 적재되어 실행된다.

운영체제의 메모리 관리

  • 운영체제는 메모리 주소가 겹치지 않게 적당한 공간에 프로그램을 적재한다.
  • 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리한다.

운영체제의 CPU 관리

  • 어떤 프로그램이 CPU를 독점하면 다른 프로그램은 올바르게 실행될 수 없다. 그렇기에 운영체제는 최대한 공정하게 여러 프로그램에 CPU 자원을 할당한다.

  • 운영체제는 응용 프로그램과 하드웨어 사이에서 필요한 자원을 할당하고, 응용 프로그램이 올바르게 실행되도록 관리하는 역할을 한다.

🎨운영체제의 큰 그림

🎯운영체제의 심장, 커널

  • 운영체제가 제공하는 핵심적인 서비스
    1. 자원에 접근하고 조작하는 기능
    2. 프로그램이 올바르고 안전하게 실행되게 하는 기능

커널

  • 운영체제의 핵심 서비스를 담당하는 부분

  • 사용자 인터페이스 (UI)
    운영체제에는 속하는데 커널에는 속하지 않는 기능

🚀이중모드와 시스템 호출

  • 사용자가 실행하는 프로그램은 자원에 직접 접근할 수 없다.
    운영체제를 통해서만 접근하도록 하여 자원을 보호한다.

이중모드

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

  • 사용자 모드

    • 운영체제 서비스를 제공받을 수 없는 실행 모드
    • 커널 영역의 코드를 실행할 수 없는 모드
    • 자원 접근 불가
  • 커널 모드

    • 운영체제 서비스를 제공받을 수 있는 실행 모드
    • 자원 접근을 비롯한 모든 명령어 실행 가능
  • 슈퍼바이저 플래그를 통해 어떤 모드인지 알 수 있다.
    1이면 커널 모드, 0이면 사용자 모드로 실행 중임을 의미한다.

시스템 호출 (시스템 콜)

  • 커널 모드로 전환해 운영체제 서비스를 제공받기 위한 요청을 말한다.
  • 일종의 소프트웨어 인터럽트다.
    시스템 호출이 처리되는 방식은 하드웨어 인터럽트 처리 방식과 유사하다.

🔥운영체제의 핵심 서비스

프로세스 관리

  • 프로세스 : 실행 중인 프로그램
  • CPU는 한 번에 하나의 프로세스만 실행할 수 있어 프로세스들을 조금씩 번갈아가며 실행한다.
  • 동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 관리

자원 접근 및 할당

  1. CPU
    CPU 스케줄링 : 어떤 프로세스부터 얼마나 CPU를 이용하게 할 것인지를 결정하는 것
  2. 메모리
    메모리를 어떻게 할당하고, 메모리가 부족할 경우 해결
  3. 입출력장치
    인터럽트 서비스 루틴을 제공해 입출력 작업을 수행한다.

파일 시스템 관리

  • 관련된 정보를 파일이라는 단위로 저장 장치에 보관
  • 파일들을 묶어 폴더 (디렉토리) 단위로 저장 장치에 보관

0개의 댓글