기술면접 준비

운영체제란 무엇이고, 어떤 역할을 수행하는가? 3편 면접 질문 답변하기

Albosa2lol 2023. 11. 9. 01:49

운영체제 개요 & 컴퓨터 시스템 동작원리 면접 예상 질문

  • 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.
  • 시분할 시스템에 대해서 설명해주세요.
  • 다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요.
  • 대화형 시스템(interactive system)에 대해서 설명해주세요.
  • 다중 처리기 시스템(multi-processor system)에 대해서 설명해주세요.
  • 시스템 콜에 대해 설명해주세요.
  • 커널에 대해 설명해주세요.
  • 커널모드에 대해 설명해주세요.
  • 유저모드에 대해 설명해주세요.
  • 폴링에 대해 설명해주세요.
  • 인터럽트에 대해 설명해주세요.
  • DMA에 대해 설명해주세요.
  • 동기식 I/O에 대해 설명해주세요.
  • 비동기식 I/O에 대해 설명해주세요.

면접 답변

 

0. 운영체제

답변 :

 

- 운영체제는 컴퓨터 시스템이 동작할 때, 이들 자원을 적절하게 사용할 수 있는 방법을 제공합니다.

이는 현대의 정부와 유사하다고 생각합니다. 정부 자체로는 유용한 기능을 제공하지 않지만, 유용한 작업을 할 수 있는 환경을 만드는 것 입니다.

 

- 역할 1. 메모리 자원을 관리한다.

실행할 프로그램을 메모리에 적재하고, 실행되지 않는 프로그램을 메모리에서 삭제한다.

 

- 역할 2. CPU 자원을 할당하여 프로그램들이 올바르게 실행되도록 관리한다.

이는 메모리에 적재되어 실행중인 프로세스를 관리하기 위해 CPU 스케줄링 알고리즘 등을 사용하여 최대한 많은 프로세스들이 공정하게 자원을 이용할 수 있도록 하는 것이다.

 

- 역할 3. 파일 시스템 관리를 수행한다.

파일의 생성, 삭제 등 보조기억장치의 데이터를 파일과 디렉토리로 관리한다.

 

  1. 시분할 시스템: 시분할 시스템은 여러 사용자가 동시에 시스템을 사용할 수 있게 하는 컴퓨팅 기법입니다. 이 시스템은 프로세서 시간을 짧은 시간 단위로 나눠 각 작업에 할당합니다. 이를 통해 사용자는 자신이 컴퓨터 자원을 독점하고 있는 것처럼 느끼며, 시스템은 많은 작업을 거의 동시에 처리할 수 있게 됩니다.
  2. 다중 프로그래밍 시스템: 다중 프로그래밍은 여러 프로그램이 메모리에 동시에 적재되어 CPU가 항상 작업을 처리할 수 있게 하는 시스템을 말합니다. 하나의 프로그램이 입출력 작업을 수행하는 동안 대기 시간을 최소화하기 위해 CPU는 다른 프로그램으로 전환하여 처리합니다.
  3. 대화형 시스템: 대화형 시스템은 사용자 입력에 실시간으로 반응하여 즉각적인 결과를 제공하는 시스템입니다. 이러한 시스템은 터미널 또는 GUI를 통해 사용자와 상호작용하며, 사용자의 요구 사항에 따라 즉각적으로 응답할 수 있는 빠른 피드백 루프를 가지고 있습니다.
  4. 다중 처리기 시스템: 다중 처리기 시스템에는 여러 CPU가 포함되어 있어, 병렬로 작업을 수행할 수 있습니다. 이는 계산 능력을 증가시키고, 시스템의 신뢰성과 가용성을 향상시키며, 작업을 더 빨리 완료할 수 있게 합니다.
  5. 시스템 콜: 시스템 콜은 사용자 레벨 프로그램이 운영 체제의 서비스를 요청할 때 사용하는 인터페이스입니다. 시스템 콜을 통해 프로그램은 커널 모드에서만 수행 가능한 작업들을 요청하고, 운영 체제는 이러한 요청을 안전하게 처리합니다.
  6. 커널: 커널은 운영 체제의 핵심 부분으로, 시스템의 모든 중요한 기능을 관리합니다. 하드웨어와 소프트웨어 리소스를 관리하고, 프로세스 관리, 메모리 관리, 입출력 관리 등의 기본적인 컴퓨팅 작업을 담당합니다.
  7. 커널모드: 커널모드에서는 운영 체제가 모든 하드웨어 자원에 대한 완전한 제어 권한을 가집니다. 이 모드에서 실행되는 코드는 시스템의 안정성과 보안에 영향을 줄 수 있기 때문에 보통 운영 체제의 핵심 부분에 한해 제한됩니다.
  8. 유저모드: 유저모드에서는 애플리케이션이 제한된 권한으로 실행됩니다. 이 모드에서 실행되는 프로세스는 직접적으로 하드웨어 자원에 접근할 수 없으며, 시스템 콜을 통해 운영 체제의 중재를 받아야 합니다.
  9. 폴링: 폴링은 프로세서가 주기적으로 하드웨어 장치의 상태를 체크하는 방식입니다. 이 방법은 장치가 데이터를 처리할 준비가 되었는지 확인하는데 사용되며, 효율적이지는 않지만 간단한 시스템에서는 유용할 수 있습니다.
  10. 인터럽트: 인터럽트는 하드웨어 장치나 소프트웨어에서 발생하는 이벤트로 인해 CPU가 현재 작업을 중지하고, 인터럽트를 처리하는 것을 말합니다. 이를 통해 시스템은 실시간으로 중요한 사건들에 반응할 수 있습니다.
  11. DMA(Direct Memory Access): DMA는 입출력 장치가 메모리에 직접 접근할 수 있게 해주는 시스템입니다. CPU의 개입 없이 데이터를 메모리와 입출력 장치 사이에서 직접 이동시키므로, CPU는 다른 작업을 처리하는 데 사용될 수 있습니다.
  12. 동기식 I/O: 동기식 I/O에서는 입출력 작업이 완료될 때까지 프로그램의 실행이 중지됩니다. 작업이 끝나면 프로그램은 다음 명령어로 진행합니다. 이 방식은 프로그래밍이 간단하지만, 입출력 작업을 기다리는 동안 프로세스가 블록될 수 있습니다.
  13. 비동기식 I/O: 비동기식 I/O에서는 입출력 작업이 백그라운드에서 수행되고 프로그램은 작업 완료 여부와 상관없이 즉시 다음 작업을 계속합니다. 작업이 완료되면 시스템은 프로그램에게 작업 완료를 알리게 됩니다. 이 방식은 프로세스가 입출력 작업을 기다리지 않아도 되기 때문에 리소스를 효율적으로 사용할 수 있습니다.