기술면접 정리 - 운영체제

김종찬·2023년 2월 6일
0

기술면접 정리

목록 보기
3/7

🔔 운영체제 대해서 설명해주세요.

운영 체제는 컴퓨터를 제어하고 관리하기 위한 소프트웨어 시스템입니다. 운영 체제는 컴퓨터의 하드웨어를 관리하고, 입력과 출력 장치, 저장 장치, 컴퓨터 내부의 자원 등을 효율적으로 제어합니다.


🔔 시스템 호출(System Call)에 대해서 설명해주세요.

운영 체제 커널은 시스템 자원을 관리하고, 입출력 장치를 제어하고, 프로세스 관리를 수행하는 등 다양한 역할을 수행합니다. 이러한 커널 서비스를 유저 모드 프로그램에서 접근할 수 있게 하기 위한것이 시스템 호출입니다.


🔔 인터럽트(Interrupt)에 대해서 설명해주세요.

인터럽트는 컴퓨터 시스템에서 외부 입력과 출력 장치, 소프트웨어 프로그램 등에서 컴퓨터 시스템에게 처리해야 할 요청을 전달하는 기능입니다. 인터럽트는 컴퓨터 시스템에서 수행 중인 작업을 일시 중지하고, 요청을 처리한 후 작업을 다시 진행하는 기능을 가지고 있습니다.


🔔 캐싱에 대해서 설명해주세요.

캐싱은 컴퓨터 시스템에서 캐시라고도 하며, 캐시는 컴퓨터 시스템의 저장 장치를 의미합니다. 먼저 캐시에 정보가 있는지 조사하여 캐시에 있으면 정보를 캐시로부터 직접사용하고, 캐시가 없다면 주 메모리로 시스템으로부터 그 정보를 가져와서 사용한다.


🔔 프로세스에 대해서 설명해주세요.

프로세스는 컴퓨터 시스템에서 수행하는 작업의 일련의 절차를 의미하며, 이를 실행하기 위해서는 컴퓨터의 CPU, 메모리, 저장장치 등의 자원이 필요합니다. 컴퓨터 시스템에서 실행되고 있는 각 프로세스는 컴퓨터 시스템의 자원을 사용하게 되며, 컴퓨터 시스템은 각 프로세스가 요청하는 자원을 제공해 주게 됩니다.


🔔 프로세스 제어 블록(Process Control Block, PCB)에 대해서 설명해주세요.

프로세스 제어 블록은 프로세스가 실행되기 전에 운영체제가 생성하고, 프로세스가 실행되는 동안 관리합니다. 프로세스 제어 블록은 프로세스의 상태와 관련된 정보, 프로세스가 실행될 때 사용할 자원의 정보, 프로세스가 실행될 때 사용할 기계어 코드의 정보 등을 저장하고 있습니다.


🔔 프로세스 스케줄링에 대해서 설명해주세요.

프로세스 스케줄링은 운영체제가 컴퓨터의 자원을 효율적으로 사용할 수 있도록 프로세스를 제어하는 기능을 의미합니다. 프로세스 스케줄링은 운영체제가 컴퓨터의 자원을 적극적으로 사용할 수 있도록 프로세스의 실행 순서를 제어합니다.


🔔 문맥 교환(Context Switch)에 대해서 설명해주세요.

문맥 교환은 컴퓨터 운영 체제가 여러 개의 프로세스를 실행할 때, 하나의 프로세스가 실행 중일 때 다른 프로세스가 실행되기 위해서 필요한 작업을 의미합니다. 컴퓨터 운영 체제는 여러 개의 프로세스를 실행할 때, 각 프로세스마다 자신의 실행 시간을 가지고 있으며, 이 시간이 지나면 컴퓨터 운영 체제가 다른 프로세스를 실행하기 위해 현재 실행 중인 프로세스의 실행을 중지하고, 다른 프로세스를 실행할 수 있도록 준비하는 과정을 문맥 교환이라고 합니다.


🔔 스레드에 대해서 설명해주세요.

스레드는 컴퓨터 프로그램에서 실행할 수 있는 작은 실행 단위를 의미합니다. 스레드는 하나의 프로세스 안에서 실행되며, 프로세스 내에서 스레드들은 같은 주소 공간을 공유하고 있습니다. 스레드는 운영 체제가 관리하는 것이 일반적으로 일련의 커널 자원을 사용하기 때문에, 스레드는 운영 체제의 지원을 기반으로 구현됩니다.


🔔 cpu 스케줄링에 대해서 설명해주세요.

CPU 스케줄링은 운영 체제에서 CPU 자원을 효율적으로 관리하기 위한 기법입니다. 스케줄링은 여러 프로세스가 CPU 시간을 얻는 순서와 방식을 결정하는 것으로 CPU 사용량을 최적화하고, 작업의 처리 속도를 개선하는 데 도움이 됩니다.

  • 선점 스케줄링은 운영 체제가 CPU 시간을 결정짓는 방식으로, 현재 실행 중인 프로세스가 중간에 중단되어 다른 프로세스가 CPU 시간을 얻을 수 있도록 하는 것을 말합니다.
  • 비선점 스케줄링은 프로세스가 CPU 시간을 얻은 후, 다른 프로세스가 CPU 시간을 얻기 전까지 중단되지 않는 방식으로 결정됩니다.

🔔 프로세스 동기화에 대해서 설명해주세요.

프로세스 동기화는 여러 프로세스가 공유 리소스에 접근할 때 그 프로세스들이 서로 경쟁하지 않도록 조절하는 기술을 말합니다. 프로세스 동기화는 멀티 프로세스 시스템에서 데이터의 올바른 순서를 유지하는 것이 필요할 때 특히 중요합니다.


🔔 세마포어와 뮤텍스의 차이에대해서 설명해주세요.

세마포어는 일정 수의 통제 자원이 있는 경우, 프로세스가 이를 요구할 때 자원의 사용을 관리하는 동기화 기술로 프로세스들이 서로 경쟁하지 않도록 제어할 수 있습니다.

뮤텍스는 단일 프로세스에서만 공유 리소스에 접근할 수 있도록 하는 동기화 기술로 공유 리소스에 대한 접근 권한을 가진 프로세스가 없을 때만 공유 리소스에 접근할 수 있도록 합니다.


🔔 데드락에 대해서 설명해주세요.

데드락은 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미합니다.

그렇다면 데드락이 발생하는 조건은 무엇인가요?->

데드락 상태는 프로세스들이 상호 배제(Mutual Exclusion) 조건, 점유 후 대기(Hold and Wait) 조건,
상호 대기(No Preemption) 조건, 사이클(Cycle Wait) 조건을 만족할 경우 발생할 수 있습니다.

이러한 데드락이 발생하지 않기 위해서는 어떤 처치가 필요한가요?

데드락을 피하기 위해서는 네가지 방법이 있습니다.

  1. 교착상태가 애초에 일어나지 않도록 방지하는 방법으로 교착상태의 발생조건 4가지 중 하나를 부정함으로써 교착상태를 예방하는 방법입니다.
  2. 교착상태가 발생할 가능성이 있는 자원 할당을 하지 않고 안전한 상태에서만 자원 요청을 허용하는 회피 방법입니다.
  3. 시스템에 데드락이 발생했는지에 대한 여부를 탐색하고 회복 기법 알고리즘에 활용하는 것을 의미합니다. 교착상태가 탐지되었다면 회복 기법을 통해 교착상태를 복구합니다.
  4. 자주 발생하지 않는다면 그냥 무시한다.

🔔 페이징기법 대해서 설명해주세요.

페이징은 메모리를 고정된 크기의 단위인 페이지로 나누어 관리하는 것입니다. 프로세스의 주소 공간을 여러 개의 페이지로 나누어 관리하며, 실제 메모리에 올라간 페이지와 미래에 올라갈 페이지를 관리하는 것입니다.

페이징은 메모리 공간을 효율적으로 사용하고, 메모리 부족시에 페이지 단위로 메모리 공간을 확보하는 것이 가능하며, 메모리 관리의 유연성을 제공합니다.

profile
봄이 오길

0개의 댓글