운영체제 기본개념 & 인터럽트

msg016·2022년 6월 15일
0

CS Study

목록 보기
2/6

운영체제

개요

운영체제(Operating system, OS)는 컴퓨터의 하드웨어를 관리하는 소프트웨어이다.

컴퓨터에는 수 많은 하드웨어가 존재하고 여러 입출력 디바이스도 연결되어있으며 동시에 수 많은 응용 프로그램들이 작동된다. 이러한 구조 속에서 사용자가 한정된 메모리나 시스템 자원을 분배하고 처리되어야 하는 일의 순서를 정하는 등의 관리를 하는 것은 쉽지 않기 때문에, 운영체제가 이를 대신하여 관리한다.

즉, 운영체제는 유저 측면에서는 편리한 사용을 위한, 시스템 측면에서는 제어와 자원의 효율적 관리를 목적으로하는 하나의 인터페이스이다.

역할

  • 프로세스 관리
    CPU 소유권을 프로세스에 할당하고, 프로세스의 생성, 삭제, 자원 접근 등을 관리한다.
  • 저장장치 관리
    프로세스에 할당하는 메모리 영역을 관리하고 각 메모리 영역을 보호하며 HDD 등의 보조 저장 장치에 저장되는 데이터 관리를 위한 파일 시스템을 제공한다.
  • 네트워킹
    TCP/IP 기반의 인터넷 연결, 응용 프로그램의 네트워크 사용 등을 위한 네트워크 프로토콜을 제공한다.
  • 사용자 관리
    여러 명이 사용하는 PC의 개인정보 보호와 보안을 위하여 접근 권한 등의 사용자 관리 기능을 제공한다.
  • 디바이스 드라이버
    마우스, 키보드와 같은 입출력 장치를 포함한 시스템에 부착된 하드웨어를 인식하고 관리한다.

구조

  • UI
    사용자가 OS와 상호작용할 수 있도록 하는 인터페이스. 명령어를 입력하는 CUI, 아이콘을 제공하는 GUI, 모바일 디바이스에 주로 사용되는 터치 스크린 등이 있다.
  • 시스템 콜
    운영체제가 커널에 접근하기 위한 인터페이스로, 응용 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용된다. 일반적으로 고수준의 언어로 작성된 어플리케이션이 저수준 기능을 이용하기 위한 인터페이스 역할을 한다.
    프로그램이 커널에 접근하기 위해 시스템콜을 호출하면, CPU 내부 레지스터의 modebit을 참고하여 유저 모드와 커널 모드를 변경하고 커널 모드로 변환 된 다음 운영체제를 통해 자원에 접근 및 요청의 처리를 진행하고 처리가 완료되념 다시 유저 모드로 돌아가게 된다. 이러한 과정을 이중 동작 모드(Dual Mode)라고 하며, 컴퓨터 자원에 대한 직접적인 접근을 차단하고 프로그램 간의 간섭을 방지하는 일종의 보호 장치이다.
  • 커널
    운영체제의 핵심 부분으로 시스템콜 인터페이스를 제공하며 보안, 메모리, 파일 시스템, I/O 디바이스 등 운영체제의 중추적인 역할을 한다.
  • 드라이버
    특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램이다. 하드웨어 장치와 운영 체제를 연결하기 위해 필요하며, 이를 통해 디바이스를 인식하고 상호작용이 가능하다.

인터럽트

프로세서가 프로그램을 실행하는 도중, 예기치 않은 상황의 발생이나 입출력 하드웨어 등의 장치에서 발생한 예외로 처리가 필요할 때, 이 상황에 대한 우선 처리의 필요성을 프로세서에게 알리는 것이 인터럽트(Interrupt)이다. 디바이스에서 프로세서로 처리를 요청하는 신호이며, 프로세서는 현재 진행하던 일을 중지하고 인터럽트를 우선적으로 처리하며, 처리가 끝나면 이전에 수행하던 일을 이어서 수행하게 된다.

분류

  • 외부 인터럽트
    입출력 장치, 타이밍 장치, 전원 등 외부적 요인으로 발생.
  • 내부 인터럽트
    Trap이라고 부르며, 잘못된 명령 또는 데이터에 잘못된 접근을 할 때 발생.
  • 소프트웨어 인터럽트
    사용자의 프로그램 실행 등 프로그램 처리 중 명령의 요청에 의해 발생.

처리 과정

주 프로그램의 실행 중 인터럽트가 발생하면 인터럽트 우선 순위에 따라 실행 여부를 판단 후, 인터럽트 벡터를 읽어 ISR(Interrupt Service Routine)의 주소값을 얻고 이동, 진행 중이던 프로그램의 상태를 보존 한 뒤 코드를 실행하고, 루틴이 종료되면 이전의 상태를 복원한 뒤 인터럽트가 해제된다.

참고

profile
프론트엔드 개발자 지망생

0개의 댓글