시스템 자원(자원) : 프로그램 실행에 필요한 요소

💡 운영체제 : 실행할 프로그램에 필요한 자원 할당 + 프로그램이 올바르게 실행되도록 하는 프로그램

  • 운영체제는 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역(kernal space) 공간에 따로 적재되어 실행
  • 나머지 응용 프로그램은 사용자 영역(user space)에서 실행
  • 메모리 자원 관리 : 실행할 프로그램은 메모리에 적재. 더 이상 실행 X 프로그램 메모리에서 삭제.
  • CPU 자원 할당 : 최대한 공정하게 여러 프로그램에 CPU 자원 할당
  • 응용 프로그램과 하드웨어 사이에서 자원 할당 & 실행 관리

💡 커널 : 운영체제의 핵심 서비스 담당 부분

  • 사용자 인터페이스(UI : User Interface) : 운영체제가 제공하는 서비스 중 커널 포함 X ex) 윈도우 바탕화면
  • 사용자가 컴퓨터와 상호작용할 수 있는 통로
  • 그래픽 유저 인터페이스(GUI : Graphical User Interface) : 그래픽 기반으로 컴퓨터와 상호작용
  • 커맨드 라인 인터페이스(CLI : Command Line Interface) : 명령어 기반으로 컴퓨터와 상호작용
  • 운영체제 : 응용 프로그램들이 자원에 접근할 때 오직 자신을 통해서만 접근하도록 함.
  • 이중 모드(dual mode) : CPU 명령어 실행 모드 사용자 모드 / 커널 모드 구분
    • 사용자 모드 : 운영체제 서비스 제공 X 실행 모드. 커널 영역 코드 실행 X
      • 일반적 응용 프로그램 default.
      • 하드웨어 자원 접근 불가
    • 커널 모드 : 운영체제 서비스 제공 O 실행 모드. 커널 영역 코드 실행 可
      • 하드웨어 자원 접근 가능
    • 사용자 모드 → 시스템 호출(system call) → 커널 모드 전환
      • 시스템 호출 : 일종의 인터럽트. 소프트웨어 인터럽트
        1. 시스템 호출 해 커널 모드 전환
        2. 운영체제 코드 실행해 자원 접근
        3. 접근 끝나면 다시 사용자 모드 복귀
      • 일반적으로 빈번하게 시스템 호출, 사용자 모드 & 커널 모드 왔다갔다

운영체제 핵심 서비스

1. 프로세스 관리

  • 프로세스 : 실행 중인 프로그램
    • 윈도우 ‘작업 관리자’로 확인 가능
  • CPU는 한 번에 하나의 프로세스만 실행 가능
  • 운영체제 → 다양한 프로세스 일목요연하게 관리 & 실행
    • 프로세스 동기화
    • 교착 상태 해결

      2. 자원 접근 및 할당

  • CPU 스케줄링 : 어떤 프로세스가 CPU 이용? 얼마나 오래 이용?
  • 메모리 : 프로세스에 어떻게 메모리 할당? 메모리 부족하면 어떻게 극복?
  • 입출력장치 : 인터럽트 서비스 루틴 제공

    3. 파일 시스템 관리

  • 보조기억장치 속 데이터를 어떻게 파일과 디렉터리로 관리?

글 이동

Comments