CS/운영체제

[1주차] 운영체제 개요 & 컴퓨터 시스템 동작원리

mint* 2024. 8. 16. 14:37
728x90

운영체제 개요 & 컴퓨터 시스템 동작원리

 

운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.

운영체제란 실행할 프로그램에 필요한 자원을 관리하고 사용자에게 편리한 인터페이스를 제공하는 소프트웨어이다.

운영체제는 사용자 인터페이스를 제공하여 하드웨어와 사용자 사이 중개자 역할을 한다.
GUI(Graphical User Interface)를 통해 마우스를 이용해 조작할 수 있다.

 

운영체제 역할

  • 자원 관리
    • 키보드, 네트워크 카드 등의 자원을 응용 프로그램에 나누어주고 적당한 순서로 자원을 배분하고 회수한다.
  • 자원 보호
    • 악의적인 사용자나 미숙한 사용자로부터 자원을 보호한다.
  • 하드웨어 인터페이스 제공
    • 운영체제는 하드웨어 인터페이스를 제공하여 다양한 하드웨어를 표준화된 인터페이스를 통해 통신할 수 있다.
    • 운영체제는 각 하드웨어에 맞는 장치 드라이버를 관리한다.
    • 운영체제는 새로운 하드웨어가 연결되면 감지하여 적절한 드라이버가 자동으로 설치되도록 한다 (Plug and Play)
      • 드라이버 : 하드웨어 장치와 상호작용하기 위해 만들어진 컴퓨터 프로그램(통역사)
  • 사용자 인터페이스 제공
    • 사용자가 운영체제를 쉽게 사용하기 위해 지원하는 기능이다.
    • GUI(Graphic User Interface)를 제공하여 작업을 마우스로 수행할 수 있고, 터치스크린으로 조작할 수 있다.

 

다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요.

  • 여러 개의 프로그램을 메모리에 동시에 적재하여 실행하는 시스템
    • cpu가 한 프로그램을 실행하다가 i/o로 인해 대기 상태가 되면, 다른 프로그램으로 전환하여 실행한다.
  • 장점 : 한 프로그램의 실행을 대기하는 동안 다른 프로그램을 실행하므로 cpu 사용 효율이 높다.
  • 단점: 실시간 상호작용이 제한적이다.

 

시분할 시스템에 대해서 설명해주세요.

  • CPU 사용 시간을 작은 단위(time slice)로 나누어 여러 프로세스에게 나누어줌으로써 모든 작업이 동시에 이루어지는 것처럼 보이게 하는 것
  • 오늘날의 컴퓨터에는 대부분 시분할 시스템이 사용된다.
  • 장점: 응답 시간이 빠르다. (상호작용에 초점)
  • 단점 : 컨텍스트 스위칭 오버헤드가 발생할 수 있고, 작업이 일정 시간 내에 끝내는 것을 보장하지 못한다.

 

참고) 실시간 시스템

  • 특정 시스템 내에서 일정 시간 안에 작업이 처리되도록 보장하는 시스템
  • 원자력이나 미사일을 제어하는 시스템에서 사용된다.

 

대화형 시스템(interactive system)에 대해서 설명해주세요.

  • 사용자의 입력에 신속하게 반응하여 결과를 제공하는 시스템

 

다중 처리기 시스템(multi-processor system)에 대해서 설명해주세요.

  • 여러개의 프로세서(CPU)가 메모리, 클럭 등을 공유하여 사용하는 시스템
    • 여러개의 프로그램을 동시에 처리할 수 있다. (병렬 처리)

 

운영체제 = 인터페이스 + 커널

    • 운영체제는 인터페이스커널로 나뉜다.
      • 사용자 인터페이스(UI): 사용자와 컴퓨터 가 상호작용하는 통로
        • 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행결과를 사용자와 응용 프로그램에 돌려준다.
        • 운영체제는 GUI(그래픽 유저 인터페이스), CLI(커맨드 라인 인터페이스) 등을 지원한다.
        • 같은 커널이라도 서로 다른 인터페이스를 가진 형태로 제작할 수 있다. ex) 유닉스 - csh, tsh, bash
운영체제를 설명하는 것은 커널을 설명하는 것과 같다.

 

커널에 대해 설명해주세요.

  • 운영체제의 핵심 기능을 담당하는 영역
    • 프로세스 관리, 메모리 관리, 저장장치 관리
  • 운영체제의 성능은 커널이 좌우한다.

 

운영체제 핵심 서비스 = 커널

  • 프로세스 관리 : 프로세스에 CPU를 배분하고 환경 제공
  • 자원 접근 및 할당: CPU, 메모리, 입출력 장치 관리
  • 파일 시스템 관리: 데이터를 저장하고 접근할 수 있는 인터페이스 제공

 

이중 모드(dual mode)

  • 운영체제는 사용자가 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호한다.
  • 그 대신 하드웨어와 같은 시스템 자원을 사용할 수 있도록 시스템 호출(system call)이라는 인터페이스를 제공한다.
    => 이중 모드로서 구현된다.
  • 이중 모드 : CPU가 명령어를 실행하는 모드를 사용자 모드커널 모드로 구분하는 방식
    • 사용자 모드 : 운영체제 서비스를 제공받을 수 없는 실행 모드
    • 커널 모드 : 운영체제 서비스를 제공받을 수 있는 실행 모드

 

유저모드에 대해 설명해주세요.

  • 운영체제 서비스를 제공받을 수 없는 실행 모드
  • 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행된다.
    • 사용자 모드로 실행중인 CPU는 i/o와 같이 하드웨어 자원에 접근하는 명령어를 실행할 수 없다.

 

커널모드에 대해 설명해주세요.

    • 운영체제 서비스를 제공받을 수 있는 실행 모드
      • 커널 영역의 코드를 실행할 수 있다.
      • 운영체제는 커널 모드로 실행된다.
입출력(i/o)는 커널 모드에서 실행된다.

 

시스템 콜에 대해 설명해주세요.

    • 운영체제의 서비스를 제공받기 위해 커널 모드로 전환하기 위한 요청
    • 사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받기 위해 요청한다.
      • 사용자 모드는 시스템 콜을 통해 커널 모드로 전환 하여 운영체제 서비스를 제공받는다.
시스템 콜은 소프트웨어 인터럽트이다.
응용 프로그램은 실행 과정에서 운영체제 서비스를 빈번하게 이용하므로, 사용자 모드와 커널 모드를 빈번하게 오간다.

시스템 콜 : 응용 프로그램과 커널의 인터페이스
드라이버: 커널과 하드웨어의 인터페이스

 

인터럽트

폴링에 대해 설명해주세요.

  • CPU가 입출력장치의 상태를 주기적으로 확인하는 방식
    • 장치가 준비되었거나 작업이 완료되었을때 데이터를 처리한다.
    • 구현이 간단하지만, CPU가 지속적으로 장치 컨트롤러의 상태 레지스터를 확인해야하므로 CPU 시간을 많이 소모한다.

 

인터럽트에 대해 설명해주세요.

    • CPU의 정상적인 작업을 방해하는 신호
    • 입출력 예시
      • 입출력 요청이 오면 CPU는 장치 컨트롤러에게 입출력 명령을 보낸다.
      • 장치 컨트롤러가 입출력장치를 제어하며 DMA Controller와 함께 입출력을 수행한다.
      • DMA Controller가 입출력 작업을 끝낸 뒤 CPU에게 인터럽트 요청 신호를 보낸다.
      • CPU는 현재 작업을 잠시 중단하고, ISR(인터럽트 처리 루틴)을 실행한다.
인터럽트 = 하드웨어 인터럽트 + 소프트웨어 인터럽트

 

참고) 동기식 인터럽트와 비동기식 인터럽트

  • 인터럽트 종류에는 동기식 인터럽트와 비동기식 인터럽트가 있다.
    • 동기 인터럽트 : CPU에 의해 발생하는 인터럽트
      • CPU가 명령어들을 수행하다가 예상치 못한 상황을 마주쳣을때 발생하는 인터럽트
      • 예외(exception)라고 부른다.
    • 비동기 인터럽트: 입출력 장치에 의해 발생하는 인터럽트
      • 입출력 작업이 끝나면 입출력 장치가 CPU에게 완료 알림(인터럽트)을 보낸다.
      • 입출력 장치가 입력을 받아들였을때 이를 처리하기 위해 CPU에게 입력 알림(인터럽트)을 보낸다.
      • 하드웨어 인터럽트라고 부른다.

 

DMA(Direct Memory Access)에 대해 설명해주세요.

    • CPU를 거치지 않고 메모리입출력 장치 간에 데이터를 주고받는 입출력 방법
      • 시스템 버스에 DMA Controller라는 하드웨어가 필요하다.
    • 입출력이 일어나는 동안 DMA Controller는 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다.
CPU는 입출력의 시작과 끝에만 관여하면 된다.

 

DMA 과정

    • 입출력 요청이 오면 CPU는 장치 컨트롤러에게 입출력 명령을 보낸다. (I/O 장치 준비)
    • CPU는 DMA Controller에 입출력 장치의 주소, 수행할 연산, 메모리 주소등으로 입출력 작업을 명령한다. (데이터 전송 정보 제공)
    • DMA Controller는 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업을 수행한다.
      • DMA Controller는 메모리에 직접 접근하여 읽거나 쓸 수 있다.
    • 입출력 작업이 끝나면 DMA Controller는 CPU에 인터럽트를 걸어 작업이 끝났음을 알린다.

CPU와 DMA가 동시에 메모리에 접근하려할 경우 보통 CPU가 메모리 사용 권한을 양보한다.
= 사이클 훔치기

 

동기식 I/O에 대해 설명해주세요.

    • 입력이나 출력을 요청한 후에 그 작업이 완료될때까지 기다리는 방식
    • 장점: 구현이 간단하고 직관적이다.
    • 단점: 입출력 작업이 오래 걸리는 경우 프로그램 성능이 저하되고, 응답성이 저하된다.
입출력 작업이 빠르게 완료되거나 순차적으로 처리되어야 할 때 유용

 

비동기식 I/O에 대해 설명해주세요.

    • 입출력을 요청한 후에 바로 다른 작업을 수행하는 방식
      • 입력, 출력 작업을 별도의 프로세스나 스레드에 위임하고, 메인 프로세스나 스레드는 작업을 계속한다.
      • 입출력 작업이 완료되면 콜백 함수나 이벤트를 통해 결과를 받아온다.
    • 장점: I/O 작업이 오래 걸리는 경우에도 프로그램의 성능과 응답성을 유지할 수 있다.
    • 단점: 구현이 복잡하고 오류 처리가 어렵다.
입출력 작업이 느리거나 동시에 처리되어야 할 때 유용
728x90