운영체제의 역할과 구조

운영체제의 역할

CPU 스케줄링과 프로세스 관리

  • CPU 소유권을 어떤 프로세스에 할당할 것인지
  • 프로세스의 생성과 삭제
  • 자원 할당 및 반환 관리

메모리관리

  • 한정된 메모리를 어떤 프로세스에 얼만큼 할당하는지 관리

디스크 파일 관리

  • 디스크 파일을 어떠한 방법으로 보관할지 관리

Input / Output 디바이스 관리

  • 마우스, 키보드와 컴퓨터 간의 데이터를 주고받는 것을 관리

운영체제의 구조

  • GUI : 사용자가 전자장치와 상화 작용할 수 있도록 하는 UI(User Interface)의 한 형태
  • CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스

    시스템콜

  • 운영체제가 커널에 접근하기 위한 인터페이스
  • 유저 프로그램이 운영체제의 서비스를 받기 위해 Kernel 함수를 호출할 때 쓰임
  • 파일시스템 접근, 네트워크 통신, 메모리 관리, 프로세스 관리 등 하드웨어 자원에 접근해서 작업을 수행할 때 시스템 콜을 호출
  • 운영체제의 자원과 기능은 시스템 콜을 통해서만 제공

  • 실행 순서 : 유저 프로그램에서 fs.readfile() 함수가 실행 => 유저 모드에서 커널모드로 전환 => 파일 시스템 Read => 커널 모드에서 유저 모드로 전환 => 유저 프로그램 실행

  • 프로세스나 스레드에서 운영체제로 어떠한 요청을 할 때 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달
  • 시스템콜은 하나의 추상화 계층

modebit

  • 시스템콜이 작동될 때 modebit을 참고하여 유저 / 커널 모드를 구분
  • 1
  • 디바이스는 운영체제를 통해서만 작동 해야함

카메라를 작동하는 프로그램을 실행할 때, 유저모드를 기반으로 카메라가 켜진다면, 사용자가 의도하지 않은 공격자가 카메라를 켤 수 있는 행위를 하기가 쉬움

유저모드

  • 유저가 접근할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드

커널모드

  • 모든 컴퓨터 자원에 접근할 수 있는 모드

커널 (kernel)

  • 하드웨어와 응용 프로그램 간의 상호작용을 관리
  • 프로세스, 메모리, 입출력(I/O), 파일 시스템 관리 등
  • 시스템의 최상위 권한을 가지며, 하드웨어에 직접 접근